{ "swagger": "2.0", "info": { "description": "Our HTTP [REST API](https:\/\/en.wikipedia.org\/wiki\/Representational_state_transfer) allows you to manage vital details of your account and services in client portal. [JSON](http:\/\/www.json.org\/) is used for all API returns.", "version": "4.20220819", "title": "DNS.services User API" }, "host": "dns.services", "basePath": "\/api", "tags": [ { "name": "Clientarea" }, { "name": "Billing" }, { "name": "Support" }, { "name": "Domains" }, { "name": "Services" }, { "name": "Cart" }, { "name": "DNS" } ], "schemes": [ "https" ], "paths": { "\/login": { "post": { "tags": [ "Clientarea" ], "summary": "Login", "description": "Generate new authorization token", "operationId": "getToken", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "username", "type": "string", "in": "query", "description": "Your acount email address " }, { "name": "password", "type": "string", "in": "query", "description": "Account password " } ], "responses": { "200": { "description": "`Success`" } } } }, "\/logout": { "post": { "tags": [ "Clientarea" ], "summary": "Logout", "description": "Invalidate authorization token", "operationId": "dropToken", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "`Success`" } } } }, "\/token": { "post": { "tags": [ "Clientarea" ], "summary": "Refresh Token", "description": "Generate new authorization token using refresh token", "operationId": "refreshToken", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "refresh_token", "type": "string", "in": "query", "description": "Refresh token previously obtained from `POST \/login`" } ], "responses": { "200": { "description": "`Success`" } } } }, "\/revoke": { "post": { "tags": [ "Clientarea" ], "summary": "Revoke Token", "description": "Invalidate authorization and refresh token.\nPass refresh token or call this method with valid access token", "operationId": "revokeToken", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "refresh_token", "type": "string", "in": "query" } ], "responses": { "200": { "description": "`Success`" } } } }, "\/details": { "get": { "tags": [ "Clientarea" ], "summary": "User Details", "description": "Return registration details for my account", "operationId": "getDetails", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"client\": {\n \"id\": \"26\",\n \"email\": \"api@example.com\",\n \"lastlogin\": \"2016-12-30 12:24:28\",\n \"ip\": \"172.100.2.1\",\n \"host\": \"hostname\",\n \"firstname\": \"Joe\",\n \"lastname\": \"Doe\",\n \"companyname\": \"\",\n \"address1\": \"Pretty View Lane\",\n \"address2\": \"3294\",\n \"city\": \"Santa Rosa\",\n \"state\": \"California\",\n \"postcode\": \"95401\",\n \"country\": \"US\",\n \"phonenumber\": \"+1.24123123\"\n }\n}" } } }, "put": { "tags": [ "Clientarea" ], "summary": "Update User Details", "description": "Update registration details under my account", "operationId": "postDetails", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "type", "type": "string", "in": "query", "description": "Account Type", "enum": [ "Private", "Company" ] }, { "name": "companyname", "type": "string", "in": "query", "description": "Organization - Indtast virksomhedens navn" }, { "name": "cvr", "type": "string", "in": "query", "description": "CVR - Indtast CVR nr med lande kode. f.eks DK37074640" }, { "name": "firstname", "type": "string", "in": "query", "description": "First Name" }, { "name": "lastname", "type": "string", "in": "query", "description": "Last Name" }, { "name": "phonenumber", "type": "string", "in": "query", "description": "Phone - Det er ikke et krav fra vores side, at du indtaster et telefonnummer, for f.eks. at have et dns hotel. Men langt de fleste dom\u00e6neendelser kr\u00e6ver et telefonnummer, og det kan derfor v\u00e6re en god id\u00e9 at indtaste, da autoregistrering af dit dom\u00e6ne ellers kan mislykkedes." }, { "name": "email", "type": "string", "in": "query", "description": "Email Address" }, { "name": "address1", "type": "string", "in": "query", "description": "Address 1" }, { "name": "address2", "type": "string", "in": "query", "description": "Address 2" }, { "name": "postcode", "type": "string", "in": "query", "description": "Post code" }, { "name": "city", "type": "string", "in": "query", "description": "City" }, { "name": "country", "type": "string", "in": "query", "description": "Country" } ], "responses": { "200": { "description": "`Success`" } } } }, "\/contact": { "get": { "tags": [ "Clientarea" ], "summary": "List contacts", "description": "Return a list of contacts on this account", "operationId": "profiles", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"contacts\": [\n {\n \"email\": \"mary@example.com\",\n \"id\": \"49\",\n \"firstname\": \"Mary\",\n \"lastname\": \"Sue\",\n \"companyname\": \"\",\n \"company\": \"0\",\n \"lastlogin\": \"0000-00-00 00:00:00\"\n }\n ]\n}" } } }, "post": { "tags": [ "Clientarea" ], "summary": "Add contact", "description": "Create new contact account, if password is provided you\ncan use provided email addres to login as that contact.", "operationId": "profiles_add", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "password", "type": "string", "in": "query", "description": "Optional, allows you to login as contact" }, { "name": "privileges", "type": "array", "in": "query", "description": "Array with privileges that you want to enable. Formatted the same way as output from GET \/contact\/privileges<\/code>", "items": { "type": "string" } }, { "name": "type", "type": "string", "in": "query", "description": "Account Type", "enum": [ "Private", "Company" ] }, { "name": "companyname", "type": "string", "in": "query", "description": "Organization - Indtast virksomhedens navn" }, { "name": "cvr", "type": "string", "in": "query", "description": "CVR - Indtast CVR nr med lande kode. f.eks DK37074640" }, { "name": "firstname", "type": "string", "in": "query", "description": "First Name" }, { "name": "lastname", "type": "string", "in": "query", "description": "Last Name" }, { "name": "phonenumber", "type": "string", "in": "query", "description": "Phone - Det er ikke et krav fra vores side, at du indtaster et telefonnummer, for f.eks. at have et dns hotel. Men langt de fleste dom\u00e6neendelser kr\u00e6ver et telefonnummer, og det kan derfor v\u00e6re en god id\u00e9 at indtaste, da autoregistrering af dit dom\u00e6ne ellers kan mislykkedes." }, { "name": "email", "type": "string", "in": "query", "description": "Email Address" }, { "name": "address1", "type": "string", "in": "query", "description": "Address 1" }, { "name": "address2", "type": "string", "in": "query", "description": "Address 2" }, { "name": "postcode", "type": "string", "in": "query", "description": "Post code" }, { "name": "city", "type": "string", "in": "query", "description": "City" }, { "name": "country", "type": "string", "in": "query", "description": "Country" } ], "responses": { "200": { "description": "`Success`" } } } }, "\/contact\/privileges": { "get": { "tags": [ "Clientarea" ], "summary": "Contact privileges", "description": "List possible contact privileges.\nEach domain and service may list additional privileges, depending on available features.
", "operationId": "profile_privs", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"privileges\": {\n \"billing\": [\n \"emails\", \/\/ Receive billing notifications\n \"payinvoice\", \/\/ Allow to view\/pay invoices\n \"orders\", \/\/ Allow to place new orders\n \"balance\", \/\/ View account balance\n \"addfunds\", \/\/ Add account funds\n \"creditcard\" \/\/ Edit Credit Card details\n ],\n \"support\": [\n \"newticket\", \/\/ Open new tickets\n \"tickets\", \/\/ View all tickets\n \"closeticket\", \/\/ Close tickets\n \"emails\" \/\/ Receive email notifications from support\n ],\n \"misc\": [\n \"editmain\", \/\/ Modify main profile details\n \"emails\", \/\/ View emails history\n \"editipaccess\", \/\/ Edit allowed IP access\n \"manageprofiles\", \/\/ Add \/ Edit contacts\n \"affiliates\" \/\/ Access affiliates section\n ],\n \"services\": {\n \"full\": 1, \/\/ Full control over services\n \"332\": [\n \"basic\", \/\/ View basic details\n \"billing\", \/\/ View billing info\n \"cancelation\", \/\/ Request cancellation\n \"upgrade\", \/\/ Upgrade \/ Downgrade\n \"notify\", \/\/ Receive related email notifications \n (...)\n \"logindetails\"\n ]\n },\n \"domains\": {\n \"full\": 1, \/\/ Full control over domains\n \"523\": [\n \"basic\", \/\/ View basic details\n \"renew\", \/\/ Renew domain\n \"notify\", \/\/ Receive related email notifications \n \"contactinfo\", \/\/ Contact Information\n (...)\n \"nameservers\" \/\/ Manage Nameservers\n ]\n }\n }\n}" } } } }, "\/contact\/@id": { "get": { "tags": [ "Clientarea" ], "summary": "Get contacts details", "description": "Return array with contact details", "operationId": "profile_data", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Contact ID", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"contact\": {\n \"id\": \"49\",\n \"email\": \"mary@example.com\",\n \"firstname\": \"Mary\",\n \"lastname\": \"Sue\",\n \"companyname\": \"\",\n \"address1\": \"Pretty View Lane\",\n \"address2\": \"3194\",\n \"city\": \"Santa Rosa\",\n \"state\": \"California\",\n \"postcode\": \"95401\",\n \"country\": \"US\",\n \"phonenumber\": \"+1.24123123\",\n \"type\": \"Private\",\n \"privileges\" : {\n \"support\" : [\"tickets\", \"newticket\"]\n }\n }\n}" } } }, "put": { "tags": [ "Clientarea" ], "summary": "Edit contact", "description": "Change contact details`", "operationId": "profile_edit", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true }, { "name": "privileges", "type": "array", "in": "query", "description": "Array with privileges that you want to enable. Formatted the same way as output from GET \/contact\/privileges<\/code>", "items": { "type": "string" } }, { "name": "type", "type": "string", "in": "query", "description": "Account Type", "enum": [ "Private", "Company" ] }, { "name": "companyname", "type": "string", "in": "query", "description": "Organization - Indtast virksomhedens navn" }, { "name": "cvr", "type": "string", "in": "query", "description": "CVR - Indtast CVR nr med lande kode. f.eks DK37074640" }, { "name": "firstname", "type": "string", "in": "query", "description": "First Name" }, { "name": "lastname", "type": "string", "in": "query", "description": "Last Name" }, { "name": "phonenumber", "type": "string", "in": "query", "description": "Phone - Det er ikke et krav fra vores side, at du indtaster et telefonnummer, for f.eks. at have et dns hotel. Men langt de fleste dom\u00e6neendelser kr\u00e6ver et telefonnummer, og det kan derfor v\u00e6re en god id\u00e9 at indtaste, da autoregistrering af dit dom\u00e6ne ellers kan mislykkedes." }, { "name": "email", "type": "string", "in": "query", "description": "Email Address" }, { "name": "address1", "type": "string", "in": "query", "description": "Address 1" }, { "name": "address2", "type": "string", "in": "query", "description": "Address 2" }, { "name": "postcode", "type": "string", "in": "query", "description": "Post code" }, { "name": "city", "type": "string", "in": "query", "description": "City" }, { "name": "country", "type": "string", "in": "query", "description": "Country" } ], "responses": { "200": { "description": "`Success`" } } } }, "\/balance": { "get": { "tags": [ "Billing" ], "summary": "Account balance", "description": "Get current account balance(unpaid invoices total), account credit", "operationId": "getBalance", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n {\n \"success\": true,\n \"details\": {\n \"currency\": \"USD\",\n \"acc_balance\": \"123456.55\",\n \"acc_credit\": \"0.00\"\n }\n }\n}" } } } }, "\/invoice": { "get": { "tags": [ "Billing" ], "summary": "List Invoices", "description": "List all invoices under my account", "operationId": "getInvoices", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"invoices\": [\n {\n \"id\": \"308976\",\n \"date\": \"2016-12-30\",\n \"dateorig\": \"2016-12-30\",\n \"duedate\": \"2017-01-06\",\n \"paybefore\": \"2017-01-06\",\n \"total\": \"19.65\",\n \"datepaid\": \"2016-12-30 12:40:47\",\n \"status\": \"Paid\",\n \"merge_id\": null,\n \"number\": \"2016\\\/12\\\/1\",\n \"currency\": \"USD\"\n }\n ]\n}" } } } }, "\/invoice\/@id": { "get": { "tags": [ "Billing" ], "summary": "Invoice Details", "description": "Get invoice details", "operationId": "getInvoiceDetails", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"invoice\": {\n \"id\": \"308976\",\n \"status\": \"Paid\",\n \"date\": \"2016-12-30\",\n \"duedate\": \"2017-01-06\",\n \"paybefore\": \"2017-01-06\",\n \"datepaid\": \"2016-12-30 12:40:47\",\n \"subtotal\": 16.24,\n \"credit\": 0,\n \"tax\": 3.41,\n \"taxrate\": 21,\n \"tax2\": 0,\n \"taxrate2\": 0,\n \"taxexempt\": \"0\",\n \"total\": 19.65,\n \"rate\": 1,\n \"rate2\": 0,\n \"rate3\": 1,\n \"notes\": \"\",\n \"items\": [\n {\n \"id\": \"12305\",\n \"invoice_id\": \"308976\",\n \"type\": \"Other\",\n \"item_id\": \"0\",\n \"description\": \"Example Service\",\n \"amount\": \"15.00\",\n \"taxed\": \"1\",\n \"qty\": \"1.00\",\n \"linetotal\": \"15.00\"\n },\n {\n \"id\": \"12309\",\n \"invoice_id\": \"308976\",\n \"type\": \"Other\",\n \"item_id\": \"-2\",\n \"description\": \"PayPal Payment Fee\",\n \"amount\": \"1.24\",\n \"taxed\": \"1\",\n \"qty\": \"1.00\",\n \"linetotal\": \"1.24\"\n }\n ],\n \"client\": {\n \"id\": \"26\",\n \"email\": \"api@example.com\",\n \"firstname\": \"Joe\",\n \"lastname\": \"Doe\",\n \"companyname\": \"\",\n \"address1\": \"Pretty View Lane\",\n \"address2\": \"3194\",\n \"city\": \"Santa Rosa\",\n \"state\": \"California\",\n \"postcode\": \"95401\",\n \"country\": \"US\",\n \"phonenumber\": \"+1.24123123\"\n },\n \"number\": \"2016\\\/12\\\/1\",\n \"currency\": \"USD\"\n }\n}" } } } }, "\/payment": { "get": { "tags": [ "Billing" ], "summary": "Payment Methods", "description": "List available payment methods", "operationId": "paymethod", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"payments\": {\n \"10\": \"BankTransfer\",\n \"9\": \"PayPal\"\n }\n}" } } } }, "\/payment\/fees": { "get": { "tags": [ "Billing" ], "summary": "Payment Methods Fees", "description": "List available payment methods with fees", "operationId": "paymethod_fee", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"payments\": [\n {\n \"id\": 1,\n \"name\": \"Bank Transfer\",\n \"fixed_fee\": \"0.0\",\n \"percent_fee\": \"0.0\",\n },\n {\n \"id\": 2,\n \"name\": \"Stripe\",\n \"fixed_fee\": \"0.5\",\n \"percent_fee\": \"2.9\",\n },\n {\n \"id\": 4,\n \"name\": \"Credit Card\",\n \"fixed_fee\": \"0.1\",\n \"percent_fee\": \"2.4\"\n },\n {\n \"id\": 5,\n \"name\": \"PayPal\",\n \"fixed_fee\": \"0.3\",\n \"percent_fee\": \"2.9\"\n }\n ]\n}" } } } }, "\/tickets": { "get": { "tags": [ "Support" ], "summary": "List Tickets", "description": "List support tickets under my account", "operationId": "getTickets", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"tickets\": [\n {\n \"client_read\": \"1\",\n \"ticket_number\": \"736633\",\n \"date\": \"2016-12-30 12:48:13\",\n \"deptname\": \"Billing\",\n \"subject\": \"Lore Ipsum\",\n \"status\": \"Open\"\n }\n ]\n}" } } }, "post": { "tags": [ "Support" ], "summary": "Create Ticket", "description": "Submit new ticket", "operationId": "createTicket", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "dept_id", "type": "integer", "in": "query", "description": "Department id " }, { "name": "subject", "type": "string", "in": "query", "description": "Ticket subject " }, { "name": "body", "type": "string", "in": "query", "description": "Ticket message " } ], "responses": { "200": { "description": "`Success`" } } } }, "\/tickets\/@number": { "get": { "tags": [ "Support" ], "summary": "Ticket details", "description": "Get ticket details, including all replies", "operationId": "getTicketDetails", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "number", "type": "integer", "in": "path", "description": "Ticket number", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"ticket\": {\n \"date\": \"2016-12-30 12:48:13\",\n \"ticket_number\": \"736633\",\n \"name\": \"Joe Doe\",\n \"email\": \"api@example.com\",\n \"subject\": \"Lore Ipsum\",\n \"body\": \"Donec sollicitudin molestie malesuada. \\r\\nSed porttitor lectus nibh. Vivamus magna justo, \\r\\nlacinia eget consectetur sed, convallis at tellus.\",\n \"status\": \"Answered\",\n \"client_read\": \"1\",\n \"deptname\": \"Billing\"\n },\n \"replies\": [\n {\n \"id\": \"929\",\n \"name\": \"Suppport Staff\",\n \"date\": \"2016-12-30 12:51:04\",\n \"body\": \"Vestibulum ac diam sit amet quam \\r\\nvehicula elementum sed sit amet dui. \\r\\nPraesent sapien massa\\r\\n\\r\\n-- Maecenas efficitur elit est --\",\n \"status\": \"Sent\",\n \"type\": \"Admin\"\n }\n ]\n}" } } }, "post": { "tags": [ "Support" ], "summary": "Create Reply", "description": "Reply to ticket", "operationId": "createTicketReply", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "number", "type": "integer", "in": "path", "description": "Ticket number", "required": true }, { "name": "body", "type": "string", "in": "query", "description": "Reply message " } ], "responses": { "200": { "description": "`Success`" } } } }, "\/ticket\/attachment\/@file": { "get": { "tags": [ "Support" ], "summary": "Ticket attachment", "description": "Get ticket attachment", "operationId": "getTicketAttachment", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "number", "type": "integer", "in": "query", "description": "Ticket number" }, { "name": "file", "type": "string", "in": "path", "description": "Attachment id", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/tickets\/@number\/open": { "put": { "tags": [ "Support" ], "summary": "Re-open ticket", "description": "Try to re-open closed ticket", "operationId": "reopenTicket", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "number", "type": "integer", "in": "path", "description": "Ticket number", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/tickets\/@number\/close": { "put": { "tags": [ "Support" ], "summary": "Close ticket", "description": "Send request to close a ticket", "operationId": "closeTicket", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "number", "type": "integer", "in": "path", "description": "Ticket number", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/ticket\/departments": { "get": { "tags": [ "Support" ], "summary": "List ticket departments", "description": "Get the list of ticket departments", "operationId": "listTicketDepartments", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "`Success`" } } } }, "\/domain": { "get": { "tags": [ "Domains" ], "summary": "List Domains", "description": "List domains under your account", "operationId": "domain", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"domains\": [\n {\n \"id\": \"47\",\n \"name\": \"testname.com\",\n \"expires\": \"2017-12-30\",\n \"recurring_amount\": \"15.00\",\n \"date_created\": \"2016-12-30\",\n \"status\": \"Active\",\n \"period\": \"1\",\n \"autorenew\": \"1\",\n \"daytoexpire\": \"365\"\n }\n ]\n}" } } } }, "\/domain\/@id": { "get": { "tags": [ "Domains" ], "summary": "Domain details", "description": "Get domain details", "operationId": "domainDetails", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"details\": {\n \"id\": \"47\",\n \"name\": \"testname.com\",\n \"date_created\": \"2016-12-30\",\n \"firstpayment\": \"10.00\",\n \"recurring_amount\": \"15.00\",\n \"period\": \"1\",\n \"expires\": \"2017-12-30\",\n \"status\": \"Active\",\n \"next_due\": \"2017-12-30\",\n \"next_invoice\": \"2017-11-30\",\n \"idprotection\": \"0\",\n \"nameservers\": [\n \"ns1.example.com\",\n \"ns2.example.com\",\n \"ns3.example.com\",\n \"ns4.example.com\"\n ],\n \"autorenew\": \"1\"\n }\n}" } } } }, "\/domain\/name\/@name": { "get": { "tags": [ "Domains" ], "summary": "Domain details by name", "description": "Get domain details by name", "operationId": "domainNameDetails", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "name", "type": "string", "in": "path", "description": "Domain name", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"details\": [\n {\n \"id\": \"47\",\n \"name\": \"testname.com\",\n \"date_created\": \"2016-12-30\",\n \"firstpayment\": \"10.00\",\n \"recurring_amount\": \"15.00\",\n \"period\": \"1\",\n \"expires\": \"2017-12-30\",\n \"status\": \"Active\",\n \"next_due\": \"2017-12-30\",\n \"next_invoice\": \"2017-11-30\",\n \"idprotection\": \"0\",\n \"nameservers\": [\n \"ns1.example.com\",\n \"ns2.example.com\",\n \"ns3.example.com\",\n \"ns4.example.com\"\n ],\n \"autorenew\": \"1\"\n },\n {\n \"id\": \"48\",\n \"name\": \"testname.com\",\n \"date_created\": \"2016-05-30\",\n \"firstpayment\": \"10.00\",\n \"recurring_amount\": \"15.00\",\n \"period\": \"1\",\n \"expires\": \"2017-05-30\",\n \"status\": \"Expired\",\n \"next_due\": \"2017-05-30\",\n \"next_invoice\": \"2017-04-30\",\n \"idprotection\": \"0\",\n \"nameservers\": [\n \"ns1.example.com\",\n \"ns2.example.com\",\n \"ns3.example.com\",\n \"ns4.example.com\"\n ],\n \"autorenew\": \"1\"\n },\n ]\n}" } } } }, "\/domain\/@id\/ns": { "get": { "tags": [ "Domains" ], "summary": "Get domain nameservers", "description": "", "operationId": "domain_ns_get", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } }, "put": { "tags": [ "Domains" ], "summary": "Update domain nameservers", "description": "Change domain nameservers, if `$nameservers` is left empty, default namesevers will be used", "operationId": "domain_ns", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true }, { "name": "nameservers", "type": "array", "in": "query", "description": "List of nameservers to use", "items": { "type": "string" } } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/@id\/reg": { "post": { "tags": [ "Domains" ], "summary": "Register domain nameservers", "description": "", "operationId": "domain_ns_reg", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/@id\/dns": { "get": { "tags": [ "Domains" ], "summary": "DNS Records\nDNS Records", "description": "List DNS records", "operationId": "domain_dns", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"records\": [\n {\n \"id\": 1,\n \"name\": \"test\",\n \"ttl\": 0,\n \"priority\": 0,\n \"type\": \"A\",\n \"content\": \"100.100.10.1\"\n }\n ]\n}" } } }, "post": { "tags": [ "Domains" ], "summary": "Create DNS Records", "description": "Add a new DNS record", "operationId": "domain_dns_add", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true }, { "name": "name", "type": "string", "in": "query", "description": "Reord name" }, { "name": "type", "type": "string", "in": "query", "description": "Reord type" }, { "name": "priority", "type": "string", "in": "query", "description": "Reord priority" }, { "name": "content", "type": "string", "in": "query", "description": "Reord content eg. IP addres for A records" } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/@id\/dns\/@index": { "put": { "tags": [ "Domains" ], "summary": "Update DNS Records", "description": "Change a DNS record", "operationId": "domain_dns_upd", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true }, { "name": "record_id", "type": "integer", "in": "path", "description": "Recod index", "required": true }, { "name": "name", "type": "string", "in": "query", "description": "Record name" }, { "name": "type", "type": "string", "in": "query", "description": "Record type" }, { "name": "priority", "type": "string", "in": "query", "description": "Record priority" }, { "name": "content", "type": "string", "in": "query", "description": "Record content eg. IP address for A records" } ], "responses": { "200": { "description": "`Success`" } } }, "delete": { "tags": [ "Domains" ], "summary": "Remove DNS Records", "description": "Remove a DNS record", "operationId": "domain_dns_del", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true }, { "name": "record_id", "type": "integer", "in": "path", "description": "Recod index", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/@id\/dns\/types": { "get": { "tags": [ "Domains" ], "summary": "DNS Records Types", "description": "List supported records type", "operationId": "domain_dns_suported", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"types\": [\n \"A\",\n \"CNAME\",\n \"URL\",\n \"FRAME\",\n \"MX\",\n \"MXE\",\n \"TXT\"\n ]\n}" } } } }, "\/domain\/@id\/epp": { "get": { "tags": [ "Domains" ], "summary": "Get domain EPP Code", "description": "", "operationId": "domain_eppcode", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/@id\/sync": { "get": { "tags": [ "Domains" ], "summary": "Synchronize domain", "description": "", "operationId": "domain_sync", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/@id\/reglock": { "get": { "tags": [ "Domains" ], "summary": "Get domain lock", "description": "", "operationId": "domain_reglock", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } }, "put": { "tags": [ "Domains" ], "summary": "Update domain lock", "description": "", "operationId": "domain_reglock_update", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/@id\/idprotection": { "put": { "tags": [ "Domains" ], "summary": "Update domain ID Protection", "description": "", "operationId": "domain_idprotection_update", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/@id\/contact": { "get": { "tags": [ "Domains" ], "summary": "Get domain contact info", "description": "", "operationId": "domain_contact_get", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } }, "put": { "tags": [ "Domains" ], "summary": "Update domain contact info", "description": "", "operationId": "domain_contact_update", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/@id\/emforwarding": { "get": { "tags": [ "Domains" ], "summary": "Get email forwarding", "description": "", "operationId": "domain_email_forwarding", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } }, "put": { "tags": [ "Domains" ], "summary": "Update email forwarding", "description": "", "operationId": "domain_email_forwarding_update", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/@id\/forwarding": { "put": { "tags": [ "Domains" ], "summary": "Update domain forwarding", "description": "", "operationId": "domain_forwarding_update", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/@id\/autorenew": { "get": { "tags": [ "Domains" ], "summary": "Get domain autorenew", "description": "", "operationId": "domain_autorenew", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } }, "put": { "tags": [ "Domains" ], "summary": "Enable\/disable domain autorenew", "description": "", "operationId": "domain_autorenew_update", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/@id\/dnssec\/flags": { "get": { "tags": [ "Domains" ], "summary": "Returns the available flags", "description": "", "operationId": "domain_dnssec_get_flags", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/@id\/dnssec": { "get": { "tags": [ "Domains" ], "summary": "Returns the list of DNSSEC keys", "description": "", "operationId": "domain_dnssec_get", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } }, "put": { "tags": [ "Domains" ], "summary": "Adds the DNSSEC key", "description": "", "operationId": "domain_dnssec_add", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/@id\/dnssec\/@key": { "delete": { "tags": [ "Domains" ], "summary": "", "description": "", "operationId": "domain_dnssec_remove", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true }, { "name": "key", "type": "string", "in": "path", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/lookup": { "post": { "tags": [ "Domains" ], "summary": "Domain availability", "description": "Check if domain is available for registration. Returns status: \"ok\" if domain is available, empty response otherwise", "operationId": "domain_lookup", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "name", "type": "string", "in": "query", "description": "Domain name " } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/order": { "get": { "tags": [ "Domains" ], "summary": "Available TLDs", "description": "List TLDs available for registration and transfer", "operationId": "domain_tlds", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"tlds\": [\n {\n \"id\": \"6\",\n \"tld\": \".com\",\n \"periods\": [\n {\n \"period\": \"1\",\n \"register\": \"10.00\",\n \"transfer\": \"0.00\",\n \"renew\": \"15.00\",\n \"redemption\": \"40.00\"\n },\n {\n \"period\": \"2\",\n \"register\": \"20.00\",\n \"transfer\": \"20.00\",\n \"renew\": \"30.00\",\n \"redemption\": \"80.00\"\n }\n ]\n },\n (...)\n ]\n}" } } }, "post": { "tags": [ "Domains" ], "summary": "Order new domain", "description": "Create new order for a domain, please check if requested domain is available first,\notherwise your order may get cancelled.", "operationId": "domain_order", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "name", "type": "string", "in": "query", "description": "Domain name " }, { "name": "years", "type": "string", "in": "query", "description": "Number of years" }, { "name": "action", "type": "string", "in": "query", "description": "register|transfer" }, { "name": "tld_id", "type": "string", "in": "query", "description": "TLD id" }, { "name": "pay_method", "type": "integer", "in": "query", "description": "Payment method ID" }, { "name": "epp", "type": "string", "in": "query", "description": "EPP Transfer code, required when transfering some domains" }, { "name": "nameservers", "type": "array", "in": "query", "description": "Optional array with 2 - 4 nameservers that you want to use", "items": { "type": "string" } }, { "name": "registrant", "type": "integer", "in": "query", "description": "Optional contact ID to use for registrant contact this domain" }, { "name": "admin", "type": "integer", "in": "query", "description": "Optional contact ID to use for admin contact this domain" }, { "name": "tech", "type": "integer", "in": "query", "description": "Optional contact ID to use for tech contact this domain" }, { "name": "billing", "type": "integer", "in": "query", "description": "Optional contact ID to use for billing contact this domain" }, { "name": "data", "type": "array", "in": "query", "description": "Addditional data required for some TLDs", "items": { "type": "string" } } ], "responses": { "200": { "description": "`Success`" } } } }, "\/domain\/order\/@id\/form": { "get": { "tags": [ "Domains" ], "summary": "Additinal data for TLD", "description": "Get additional forms required for some TLDs", "operationId": "domain_tld_froms", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "tld_id", "type": "integer", "in": "path", "description": "TLD ID", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"forms\": [\n {\n \"type\": \"domaindnssupport\",\n \"title\": \"DNS Management\",\n \"id\": \"1424\",\n \"firstItemId\": 9067,\n \"description\": \"\",\n \"name\": \"custom[1424][9067]\",\n \"required\": false,\n \"multiple\": false,\n \"config\": {\n \"enableddefault\": 0\n },\n \"value\": [],\n \"textvalue\": [],\n \"price\": 0,\n \"recurring_price\": 0,\n \"setup\": 0,\n \"prorata_date\": null,\n \"items\": [\n {\n \"title\": \"\",\n \"value\": 1,\n \"id\": 9067,\n \"price\": 4,\n \"setup\": 0,\n \"selected\": false\n }\n ]\n },\n {\n \"type\": \"select\",\n \"title\": \"Language\",\n \"id\": \"1755\",\n \"firstItemId\": 10952,\n \"description\": \"\",\n \"name\": \"custom[1755]\",\n \"required\": false,\n \"multiple\": false,\n \"config\": {\n \"conditionals\": []\n },\n \"value\": [],\n \"textvalue\": [],\n \"price\": 0,\n \"recurring_price\": 0,\n \"setup\": 0,\n \"prorata_date\": null,\n \"items\": [\n {\n \"title\": \"AFR\",\n \"value\": 1,\n \"id\": 10952,\n \"price\": 0,\n \"setup\": 0,\n \"selected\": false\n },\n {\n \"title\": \"ALB\",\n \"value\": 1,\n \"id\": 10953,\n \"price\": 0,\n \"setup\": 0,\n \"selected\": false\n },\n (...)\n ]\n }\n ]\n}" } } } }, "\/domain\/@id\/renew": { "post": { "tags": [ "Domains" ], "summary": "Renew domain", "description": "Create new renew order for a domain, please check if requested domain is available first, otherwise your order may get cancelled.", "operationId": "domain_renew", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true }, { "name": "years", "type": "string", "in": "query", "description": "Number of years" }, { "name": "pay_method", "type": "integer", "in": "query", "description": "Payment method ID" } ], "responses": { "200": { "description": "`Success`" } } } }, "\/service": { "get": { "tags": [ "Services" ], "summary": "List services", "description": "List all services under your account", "operationId": "service", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"services\": [\n {\n \"id\": \"301\",\n \"domain\": \"examplename.com\",\n \"total\": \"9.99\",\n \"status\": \"Pending\",\n \"billingcycle\": \"Monthly\",\n \"next_due\": \"2017-12-30\",\n \"category\": \"Hosting\",\n \"category_url\": \"hosting\",\n \"name\": \"Starter Hosting\"\n }\n ]\n}" } } } }, "\/service\/@id": { "get": { "tags": [ "Services" ], "summary": "Service details", "description": "Return details for service `@id`", "operationId": "serviceDetails", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Service id", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"service\": {\n \"id\": \"301\",\n \"date_created\": \"2016-12-30\",\n \"domain\": \"examplename.com\",\n \"firstpayment\": \"9.99\",\n \"total\": \"9.99\",\n \"billingcycle\": \"Monthly\",\n \"next_due\": \"2017-12-30\",\n \"next_invoice\": \"2017-01-27\",\n \"status\": \"Active\",\n \"label\": \"\",\n \"username\": \"examplen\",\n \"password\": \"pdtzc\",\n \"name\": \"Starter Hosting\"\n }\n}" } } } }, "\/service\/@id\/methods": { "get": { "tags": [ "Services" ], "summary": "List service methods", "description": "List methods available for service", "operationId": "serviceMethods", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"methods\": [\n {\n \"name\": \"Upgrade Request\",\n \"method\": \"POST\",\n \"route\": \"\\\/service\\\/@id\\\/upgrade\"\n },\n {\n \"name\": \"Upgrade Options\",\n \"method\": \"GET\",\n \"route\": \"\\\/service\\\/@id\\\/upgrade\"\n },\n {\n \"name\": \"Change service label\",\n \"method\": \"POST\",\n \"route\": \"\\\/service\\\/@id\\\/label\"\n },\n {\n \"name\": \"Service label\",\n \"method\": \"GET\",\n \"route\": \"\\\/service\\\/@id\\\/label\"\n },\n {\n \"name\": \"Cancel Service\",\n \"method\": \"POST\",\n \"route\": \"\\\/service\\\/@id\\\/cancel\"\n }\n ]\n}" } } } }, "\/service\/@id\/upgrade": { "get": { "tags": [ "Services" ], "summary": "Upgrade Options", "description": "List upgrade options", "operationId": "upgrade", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"resources\": [\n {\n \"id\": 1557,\n \"name\": \"Bandwidth\",\n \"type\": \"select\",\n \"items\": [\n {\n \"id\": \"9953\",\n \"name\": \"100 GB\",\n \"price\": 1,\n \"setup_price\": 0,\n \"selected\": true\n },\n {\n \"id\": \"10103\",\n \"name\": \"500 GB\",\n \"price\": 5,\n \"setup_price\": 0,\n \"selected\": false\n },\n {\n \"id\": \"10104\",\n \"name\": \"1 TB\",\n \"price\": 10,\n \"setup_price\": 0,\n \"selected\": false\n }\n ]\n }\n ],\n \"package\": []\n}" } } }, "post": { "tags": [ "Services" ], "summary": "Upgrade Request", "description": "Estimate or request upgrade\n\n```json\n\/\/ Format of ''resources'' paremeter\n{\n \"resource_id\" : \"qty_value\", \/\/ sliders & qty fields\n \"resource_id\" : \"item_id\", \/\/ dropdown & radio fields\n \"resource_id\" : {\n \"item_id\": \"qty_value\" \/\/ dropdown with qty field\n }\n}\n```", "operationId": "upgrade_test", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Service id", "required": true }, { "name": "resources", "type": "array", "in": "query", "description": "array with resource values", "items": { "type": "string" } }, { "name": "package", "type": "integer", "in": "query", "description": "New package id, optonal when upgrading resources" }, { "name": "cycle", "type": "string", "in": "query", "description": "New billing cycle, optonal when upgrading resources" }, { "name": "send", "type": "boolean", "in": "query", "description": "Set to true when you want to send your upgrade request" } ], "responses": { "200": { "description": "`Success`" } } } }, "\/service\/@id\/cancel": { "post": { "tags": [ "Services" ], "summary": "Cancel Service", "description": "Request service cancellation", "operationId": "service_cancel", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Service id", "required": true }, { "name": "immediate", "type": "string", "in": "query", "description": "set to false<\/code> to terminate service at the end of billing date, true<\/code> - terminate immediately" }, { "name": "reason", "type": "string", "in": "query", "description": "Reason for this request" } ], "responses": { "200": { "description": "`Success`" } } } }, "\/service\/@id\/label": { "get": { "tags": [ "Services" ], "summary": "Service label", "description": "Show current service label", "operationId": "service_get_label", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Service id", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"label\": \"example\"\n}" } } }, "post": { "tags": [ "Services" ], "summary": "Change service label", "description": "Set new custom label to identify this service", "operationId": "service_set_label", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Service id", "required": true }, { "name": "label", "type": "string", "in": "query", "description": "New label" } ], "responses": { "200": { "description": "`Success`" } } } }, "\/category": { "get": { "tags": [ "Cart" ], "summary": "List product categories", "description": "Return a list of product categories.", "operationId": "cart_categories", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"categories\": [\n {\n \"id\": \"10\",\n \"name\": \"Hosting\",\n \"description\": \"\",\n \"slug\": \"hosting\"\n },\n {\n \"id\": \"6\",\n \"name\": \"Domains\",\n \"description\": \"\",\n \"slug\": \"domains\"\n },\n {\n \"id\": \"16\",\n \"name\": \"Dedicated\",\n \"description\": \"\",\n \"slug\": \"dedicated\"\n }\n ]\n}" } } } }, "\/category\/@category_id\/product": { "get": { "tags": [ "Cart" ], "summary": "List products in category", "description": "Return a list of product available for purchase under requested category", "operationId": "cart_products", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "category_id", "type": "integer", "in": "path", "description": "Category ID", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"products\": [\n {\n \"id\": \"333\",\n \"type\": \"1\",\n \"name\": \"Starter Hosting\",\n \"stock\": false,\n \"paytype\": \"Regular\",\n \"description\": \"Disk:10GB
Memory:2GB
MySql:10 DB
Email:100 Users
\",\n \"qty\": \"0\",\n \"tags\": [\n\n ],\n \"periods\": [\n {\n \"title\": \"m\",\n \"value\": \"m\",\n \"price\": 9.99,\n \"setup\": 0,\n \"selected\": true\n },\n {\n \"title\": \"a\",\n \"value\": \"a\",\n \"price\": 109.89,\n \"setup\": 0,\n \"selected\": false\n },\n {\n \"title\": \"b\",\n \"value\": \"b\",\n \"price\": 199.8,\n \"setup\": 0,\n \"selected\": false\n },\n {\n \"title\": \"t\",\n \"value\": \"t\",\n \"price\": 299.7,\n \"setup\": 0,\n \"selected\": false\n }\n ]\n },\n (...)\n ]\n}" } } } }, "\/order\/@product_id": { "get": { "tags": [ "Cart" ], "summary": "Get product configuration details", "description": "Return product details with form configuration, addons and subproducts if available.", "operationId": "cart_product", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "product_id", "type": "integer", "in": "path", "description": "Product ID", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"product\": {\n \"id\": \"333\",\n \"category_name\": \"Hosting\",\n \"category_id\": \"49\",\n \"name\": \"Starter Hosting\",\n \"price\": 9.99,\n \"recurring\": \"m\",\n \"setup\": 0,\n \"config\": {\n \"product\": [\n {\n \"type\": \"select\",\n \"title\": \"pickcycle\",\n \"id\": \"cycle\",\n \"name\": \"cycle\",\n \"items\": [\n {\n \"title\": \"m\",\n \"value\": \"m\",\n \"price\": 9.99,\n \"setup\": 0,\n \"selected\": true\n },\n {\n \"title\": \"a\",\n \"value\": \"a\",\n \"price\": 109.89,\n \"setup\": 0,\n \"selected\": false\n },\n {\n \"title\": \"b\",\n \"value\": \"b\",\n \"price\": 199.8,\n \"setup\": 0,\n \"selected\": false\n },\n {\n \"title\": \"t\",\n \"value\": \"t\",\n \"price\": 299.7,\n \"setup\": 0,\n \"selected\": false\n }\n ],\n \"value\": \"m\",\n \"price\": 9.99,\n \"setup\": 0\n },\n {\n \"type\": \"input\",\n \"title\": \"domain\",\n \"id\": \"domain\",\n \"name\": \"domain\",\n \"value\": null\n }\n ],\n \"forms\": [\n {\n \"type\": \"select\",\n \"title\": \"Disk Size\",\n \"id\": \"1618\",\n \"firstItemId\": 10330,\n \"description\": \"\",\n \"name\": \"custom[1618]\",\n \"required\": false,\n \"multiple\": false,\n \"config\": {\n \"conditionals\": []\n },\n \"value\": [],\n \"textvalue\": [],\n \"price\": 0,\n \"recurring_price\": 0,\n \"setup\": 0,\n \"prorata_date\": null,\n \"items\": [\n {\n \"title\": \"512MB\",\n \"value\": 1,\n \"id\": 10330,\n \"price\": 0,\n \"setup\": 0,\n \"selected\": false\n },\n {\n \"title\": \"1GB\",\n \"value\": 1,\n \"id\": 10331,\n \"price\": 0,\n \"setup\": 0,\n \"selected\": false\n },\n {\n \"title\": \"2GB\",\n \"value\": 1,\n \"id\": 10332,\n \"price\": 0,\n \"setup\": 0,\n \"selected\": false\n }\n ]\n },\n (...)\n ],\n \"addons\": [\n {\n \"type\": \"subitem\",\n \"title\": \"Cpanel2: Add Extra IP\",\n \"id\": \"31\",\n \"value\": null,\n \"description\": \"Automatically adds IP address to account\",\n \"config\": [\n {\n \"type\": \"checkbox\",\n \"title\": \"add\",\n \"name\": \"addon[31]\",\n \"checked\": false\n },\n {\n \"type\": \"select\",\n \"title\": \"billingcycle\",\n \"name\": \"addon_cycles[31]\",\n \"items\": [\n {\n \"title\": \"m\",\n \"value\": \"m\",\n \"price\": 5,\n \"setup\": 0,\n \"selected\": true\n },\n {\n \"title\": \"q\",\n \"value\": \"q\",\n \"price\": 20,\n \"setup\": 0,\n \"selected\": false\n },\n {\n \"title\": \"a\",\n \"value\": \"a\",\n \"price\": 50,\n \"setup\": 0,\n \"selected\": false\n }\n ]\n }\n ],\n \"price\": 0,\n \"recurring_price\": 0,\n \"setup\": 0,\n \"prorata_date\": null\n },\n (...)\n ],\n \"subproducts\": []\n },\n \"recurring_price\": 9.99,\n \"prorata_date\": null\n }\n}" } } }, "post": { "tags": [ "Cart" ], "summary": "Order new service", "description": "Create and submit new order for selected product.\n\nTo get available cycle and configuration options lookup product details\nusing `GET \/order\/@product_id`", "operationId": "cart_order", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "product_id", "type": "integer", "in": "path", "description": "Product ID", "required": true }, { "name": "domain", "type": "string", "in": "query", "description": "Domain name, ie. example.com, may be optional" }, { "name": "cycle", "type": "string", "in": "query", "description": "Billing period symbol" }, { "name": "pay_method", "type": "integer", "in": "query", "description": "Payment method ID" }, { "name": "custom", "type": "array", "in": "query", "description": "Additional options data available for sop products", "items": { "type": "string" } }, { "name": "promocode", "type": "string", "in": "query", "description": "Promotion code" } ], "responses": { "200": { "description": "`Success`" } } } }, "\/order": { "post": { "tags": [ "Cart" ], "summary": "Order multiple services", "description": "Create and submit new order for multiple services\n\nEach item in the `items` array needs to include order `type` and parameters used\nby one of the method listed below:\n
• `POST \/order\/$product_id` - use `product` for item type
• `POST \/domain\/order` - use `domain` for item type", "operationId": "cart_order_multi", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "pay_method", "type": "integer", "in": "query", "description": "Payment method ID " }, { "name": "items", "type": "array", "in": "query", "description": "list with order items", "items": { "type": "string" } } ], "responses": { "200": { "description": "`Success`" } } } }, "\/quote": { "post": { "tags": [ "Cart" ], "summary": "Get order quote", "description": "Calculate order cost and recuring prices for selected items.\nUse the same parameters as for `POST \/order`", "operationId": "cart_order_quote", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "pay_method", "type": "integer", "in": "query", "description": "Payment method ID" }, { "name": "items", "type": "array", "in": "query", "description": "list with order items", "items": { "type": "string" } } ], "responses": { "200": { "description": "`Success`" } } } }, "\/dns": { "get": { "tags": [ "DNS" ], "summary": "List DNS", "description": "Returns a list of all DNS", "operationId": "dns_get", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"service_ids\": [\n \"10\",\n \"20\"\n ],\n \"zones\": [\n {\n \"domain_id\": \"60\",\n \"name\": \"booble.com\",\n \"service_id\": \"10\"\n },\n {\n \"domain_id\": \"61\",\n \"name\": \"bgg12ooble.com\",\n \"service_id\": \"20\"\n }\n ]\n}" } } } }, "\/service\/@service_id\/dns": { "post": { "tags": [ "DNS" ], "summary": "Add DNS Zone", "description": "Creates a new DNS zone", "operationId": "dns_add_zone", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "service_id", "type": "integer", "in": "path", "description": "Service ID", "required": true }, { "name": "name", "type": "string", "in": "query", "description": "Zone name " } ], "responses": { "200": { "description": "`Success`" } } }, "get": { "tags": [ "DNS" ], "summary": "List DNS for service", "description": "Returns a list of DNS zones under the service", "operationId": "dns_list_zones", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "service_id", "type": "integer", "in": "path", "description": "Service ID", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"error\": [\n \"invalid method\"\n ]\n}" } } } }, "\/service\/@service_id\/dns\/@zone_id": { "get": { "tags": [ "DNS" ], "summary": "Get DNS details", "description": "Returns details of the DNS zone", "operationId": "dns_get_zone", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "service_id", "type": "integer", "in": "path", "description": "Service ID", "required": true }, { "name": "zone_id", "type": "integer", "in": "path", "description": "Zone ID", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"service_id\": 10,\n \"name\": \"booble.com\",\n \"records\": [\n {\n \"id\":\"10\",\n \"name\":\"qwerty\",\n \"ttl\":1800,\n \"priority\":0,\n \"content\":\"127.0.0.1\",\n \"type\":\"A\"\n },\n {\n \"id\":\"11\",\n \"name\":\"qwerty\",\n \"ttl\":1800,\n \"priority\":0,\n \"content\":\"ns1.qwerty.com\",\n \"type\":\"NS\"\n }\n ]\n}" } } }, "delete": { "tags": [ "DNS" ], "summary": "Remove DNS zone", "description": "Deletes the selected DNS zone", "operationId": "dns_delete_zone", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "service_id", "type": "integer", "in": "path", "description": "Service ID", "required": true }, { "name": "zone_id", "type": "integer", "in": "path", "description": "Zone ID", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/service\/@service_id\/dns\/@zone_id\/records": { "post": { "tags": [ "DNS" ], "summary": "Add DNS Record", "description": "Creates a new record in the DNS zone", "operationId": "dns_add_record", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "service_id", "type": "integer", "in": "path", "description": "Service ID", "required": true }, { "name": "zone_id", "type": "integer", "in": "path", "description": "Zone ID", "required": true }, { "name": "name", "type": "string", "in": "query", "description": "Record name " }, { "name": "ttl", "type": "integer", "in": "query", "description": "Record ttl " }, { "name": "priority", "type": "integer", "in": "query", "description": "Priority of the record " }, { "name": "type", "type": "string", "in": "query", "description": "Record type " }, { "name": "content", "type": "string", "in": "query", "description": "Contents of the record " } ], "responses": { "200": { "description": "`Success`" } } } }, "\/service\/@service_id\/dns\/@zone_id\/records\/@record_id": { "put": { "tags": [ "DNS" ], "summary": "Edit DNS Record", "description": "Edits the selected DNS zone record", "operationId": "dns_edit_record", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "service_id", "type": "integer", "in": "path", "description": "Service ID", "required": true }, { "name": "zone_id", "type": "integer", "in": "path", "description": "Zone ID", "required": true }, { "name": "record_id", "type": "integer", "in": "path", "description": "Record ID", "required": true }, { "name": "name", "type": "string", "in": "query", "description": "Record name " }, { "name": "ttl", "type": "integer", "in": "query", "description": "Record ttl " }, { "name": "priority", "type": "integer", "in": "query", "description": "Priority of the record " }, { "name": "type", "type": "string", "in": "query", "description": "Record type " }, { "name": "content", "type": "string", "in": "query", "description": "Contents of the record " } ], "responses": { "200": { "description": "`Success`" } } }, "delete": { "tags": [ "DNS" ], "summary": "Remove DNS Record", "description": "Removes the selected DNS zone record", "operationId": "dns_delete_record", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "service_id", "type": "integer", "in": "path", "description": "Service ID", "required": true }, { "name": "zone_id", "type": "integer", "in": "path", "description": "Zone ID", "required": true }, { "name": "record_id", "type": "integer", "in": "path", "description": "Record ID", "required": true } ], "responses": { "200": { "description": "`Success`" } } } } }, "securityDefinitions": { "http": { "type": "basic" } }, "definitions": { "Clientarea": { "type": "object", "properties": { "username": { "type": "string", "description": "Your acount email address " }, "password": { "type": "string", "description": "Optional, allows you to login as contact" }, "refresh_token": { "type": "string" }, "type": { "type": "string", "description": "Account Type" }, "companyname": { "type": "string", "description": "Organization - Indtast virksomhedens navn" }, "cvr": { "type": "string", "description": "CVR - Indtast CVR nr med lande kode. f.eks DK37074640" }, "firstname": { "type": "string", "description": "First Name" }, "lastname": { "type": "string", "description": "Last Name" }, "phonenumber": { "type": "string", "description": "Phone - Det er ikke et krav fra vores side, at du indtaster et telefonnummer, for f.eks. at have et dns hotel. Men langt de fleste dom\u00e6neendelser kr\u00e6ver et telefonnummer, og det kan derfor v\u00e6re en god id\u00e9 at indtaste, da autoregistrering af dit dom\u00e6ne ellers kan mislykkedes." }, "email": { "type": "string", "description": "Email Address" }, "address1": { "type": "string", "description": "Address 1" }, "address2": { "type": "string", "description": "Address 2" }, "postcode": { "type": "string", "description": "Post code" }, "city": { "type": "string", "description": "City" }, "country": { "type": "string", "description": "Country" }, "privileges": { "type": "array", "items": { "type": "string" }, "description": "Array with privileges that you want to enable. Formatted the same way as output from GET \/contact\/privileges<\/code>" }, "id": { "type": "integer" } } }, "Billing": { "type": "object", "properties": { "id": { "type": "integer" } } }, "Support": { "type": "object", "properties": { "number": { "type": "integer", "description": "Ticket number" }, "file": { "type": "string", "description": "Attachment id" }, "dept_id": { "type": "integer", "description": "Department id " }, "subject": { "type": "string", "description": "Ticket subject " }, "body": { "type": "string", "description": "Reply message " } } }, "Domains": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string", "description": "Domain name " }, "nameservers": { "type": "array", "items": { "type": "string" }, "description": "Optional array with 2 - 4 nameservers that you want to use" }, "type": { "type": "string", "description": "Record type" }, "priority": { "type": "string", "description": "Record priority" }, "content": { "type": "string", "description": "Record content eg. IP address for A records" }, "record_id": { "type": "integer", "description": "Recod index" }, "key": { "type": "string" }, "tld_id": { "type": "string", "description": "TLD id" }, "years": { "type": "string", "description": "Number of years" }, "action": { "type": "string", "description": "register|transfer" }, "pay_method": { "type": "integer", "description": "Payment method ID" }, "epp": { "type": "string", "description": "EPP Transfer code, required when transfering some domains" }, "registrant": { "type": "integer", "description": "Optional contact ID to use for registrant contact this domain" }, "admin": { "type": "integer", "description": "Optional contact ID to use for admin contact this domain" }, "tech": { "type": "integer", "description": "Optional contact ID to use for tech contact this domain" }, "billing": { "type": "integer", "description": "Optional contact ID to use for billing contact this domain" }, "data": { "type": "array", "items": { "type": "string" }, "description": "Addditional data required for some TLDs" } } }, "Services": { "type": "object", "properties": { "id": { "type": "integer", "description": "Service id" }, "resources": { "type": "array", "items": { "type": "string" }, "description": "array with resource values" }, "package": { "type": "integer", "description": "New package id, optonal when upgrading resources" }, "cycle": { "type": "string", "description": "New billing cycle, optonal when upgrading resources" }, "send": { "type": "boolean", "description": "Set to true when you want to send your upgrade request" }, "immediate": { "type": "string", "description": "set to false<\/code> to terminate service at the end of billing date, true<\/code> - terminate immediately" }, "reason": { "type": "string", "description": "Reason for this request" }, "label": { "type": "string", "description": "New label" } } }, "Cart": { "type": "object", "properties": { "category_id": { "type": "integer", "description": "Category ID" }, "product_id": { "type": "integer", "description": "Product ID" }, "domain": { "type": "string", "description": "Domain name, ie. example.com, may be optional" }, "cycle": { "type": "string", "description": "Billing period symbol" }, "pay_method": { "type": "integer", "description": "Payment method ID" }, "custom": { "type": "array", "items": { "type": "string" }, "description": "Additional options data available for sop products" }, "promocode": { "type": "string", "description": "Promotion code" }, "items": { "type": "array", "items": { "type": "string" }, "description": "list with order items" } } }, "DNS": { "type": "object", "properties": { "service_id": { "type": "integer", "description": "Service ID" }, "name": { "type": "string", "description": "Record name " }, "zone_id": { "type": "integer", "description": "Zone ID" }, "ttl": { "type": "integer", "description": "Record ttl " }, "priority": { "type": "integer", "description": "Priority of the record " }, "type": { "type": "string", "description": "Record type " }, "content": { "type": "string", "description": "Contents of the record " }, "record_id": { "type": "integer", "description": "Record ID" } } } }, "externalDocs": { "description": "Find out more about UserAPI", "url": "https:\/\/dns.services\/?cmd=userapi" } }