{ "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.20251229", "title": "Intermax Cloudsourcing B.V. User API" }, "host": "domeinmanager.intermax.nl", "basePath": "\/api", "tags": [ { "name": "Clientarea" }, { "name": "Billing" }, { "name": "Services" }, { "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}" } } } }, "\/invoice\/{id}\/pdf": { "post": { "tags": [ "Billing" ], "summary": "Invoice PDF", "description": "Get specific invoice PDF", "operationId": "getInvoicePdf", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "string", "in": "path", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "\/service\/{id}\/cycle": { "get": { "tags": [ "Services" ], "summary": "List Billing Cycle", "description": "Get recurring billing cycle options", "operationId": "service_cycle", "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 \"current\": \"m\",\n \"cycles\": {\n \"m\": \"14.95\",\n \"a\": \"179.40\",\n \"b\": \"358.80\"\n }\n}" } } }, "post": { "tags": [ "Services" ], "summary": "Change Billing Cycle", "description": "Change recurring billing cycle for the service", "operationId": "service_cycle_set", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Service id", "required": true }, { "name": "cycle", "type": "string", "in": "query", "description": "New billing cycle" } ], "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\": \"qwerty.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": { "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\": \"qwerty.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}" } } } }, "\/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": "Account password " }, "refresh_token": { "type": "string" } } }, "Billing": { "type": "object", "properties": [] }, "Services": { "type": "object", "properties": { "id": { "type": "integer", "description": "Service id" }, "cycle": { "type": "string", "description": "New billing cycle" } } }, "DNS": { "type": "object", "properties": { "service_id": { "type": "integer", "description": "Service ID" }, "zone_id": { "type": "integer", "description": "Zone ID" }, "name": { "type": "string", "description": "Record name " }, "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:\/\/domeinmanager.intermax.nl\/?cmd=userapi" } }