CloudPit API Reference
This API documentation describes the functionality and usage of the CloudPit API v2.
Changelog
Version 1.11.0
- Add the
contract
v3 endpoints to manage contracts.
Version 1.10.0
- Add the
dnssec
endpoint to fetch the currect status of DNSSEC for a domain.
Version 1.9.0
- Add the
webcard-basic
endpoints to create, fetch and delete. - Add the possibility to create
webcard-sso
instances bywebcardBasic
reference.
Version 1.8.0
- Add the resources
dns-record
anddns-zone
for the v3 API endpoint - Add the error
general_1004
for unauthorized requests
Version 1.7.0
- Add the resources
account
,user
anduser-login
for the v3 API endpoint
Version 1.6.0
- Add the
webhosting-email
resource - Add the
contract-log
resource
Version 1.5.2
- Add the attribute
meta
to theproduct
resource - Add the possibility to change the
account
association inwebhosting
instances
Version 1.5.1
- Add the attribute
displayName
to theaccount
resource - Add the attribute
externalId
to thewebhosting
anddomain
resource
Version 1.5.0
- Add the
certificate
resource to manage certificate contracts
Version 1.4.0
- Add the
authInfoIncoming
,authInfoOutgoing
andauthInfoOutgoingExpiration
attributes to thedomain
resource to process domain transfers
Version 1.3.0
- Add the
domain-status
resource to query domain status checks
Version 1.2.0
- Add handling for protected directories and their users
- Add handling for subdomains
Version 1.2.0
- Add handling for protected directories and their users
- Add handling for subdomains
Version 1.1.2
- Add the
company
attribute to theaccount
resource
Version 1.1.1
- Add the
emailInvalid
attribute to the account resource
Version 1.1
- Add the possibility to create SSO token instances by account login
- Add the product object and it's resource actions list and read
Version 1.0
- Initial release of the CloudPit API Reference
Protocol
The API is strictly based on the JSON:API protocol which can be found here.
Endpoint
The API endpoint is IP restricted and available at the following URL: https://api.cloudpit.io/v2
For the OAuth2 authentication, all actions are available at https://cloudpit.io/oauth
You MUST provide this IP address to us. Keep in mind that it's mandatory to use a static IP address to use our API.
Authentication
We only support the OAuth2 authentication for our API. The Two-Legged OAuth (or Client Credential Grant Token) method supports the machine-to-machine authentication and is described below.
Client credentials
Initially you need a dedicated client id and secret which is bound to a CloudPit account. All API actions will be executed in the name of that referenced account. The access of the client MAY be restricted to certain API actions.
Request an access token
curl --request POST \
--url 'https://cloudpit.io/oauth/token' \
--header 'Content-Type: application/json' \
--data '{"grant_type":"client_credentials","client_id": "YOUR_CLIENT_ID","client_secret": "YOUR_CLIENT_SECRET"}'
Sample response
{
"token_type": "Bearer",
"expires_in": 1295999,
"access_token": "YOUR_ACCESS_TOKEN"
}
To send authenticated requests to the API, you need to request an access token like in the given example. All access tokens have a restricted lifetime (15 days by default).
Authorize requests
curl --request GET \
--url 'https://api.cloudpit.io/v2/account' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
After you successfully generated your access token, you can call all available API actions like in the given example, including your new access token.
Endpoints
Describes all available endpoints and possible actions. Including example JSON documents.
API Version 2
A reference for all existing API Version 2 endpoints and actions.
account
List accounts
Sample response
{
"meta": {
"page": {
"current-page": 1,
"per-page": 1,
"from": 1,
"to": 1,
"total": 1,
"last-page": 1
}
},
"links": {
"first": "https://api.cloudpit.io/v2/account?sort=id&page%5Bnumber%5D=1&page%5Bsize%5D=1",
"next": "https://api.cloudpit.io/v2/account?sort=id&page%5Bnumber%5D=1&page%5Bsize%5D=1",
"last": "https://api.cloudpit.io/v2/account?sort=id&page%5Bnumber%5D=1&page%5Bsize%5D=1"
},
"data": [
{
"type": "account",
"id": "1234",
"attributes": {
"parent": "1",
"login": "testUser",
"email": "api@docs.local",
"emailInvalid": false,
"displayName": "testUser@CloudPit",
"salutation": "m",
"company": "ApiDocs GmbH",
"firstname": "John",
"lastname": "Doe",
"language": "1",
"password": null,
"active": true,
"alias": null,
"subReseller": null,
"passwordEmailDisabled": false,
"created_at": "2024-03-25T09:08:37+01:00",
"updated_at": "2024-03-25T09:08:37+01:00"
},
"relationships": {
"language": {
"links": {
"self": "https://api.cloudpit.io/v2/account/1234/relationships/language",
"related": "https://api.cloudpit.io/v2/account/1234/language"
}
},
"parent": {
"links": {
"self": "https://api.cloudpit.io/v2/account/1234/relationships/parent",
"related": "https://api.cloudpit.io/v2/account/1234/parent"
}
}
},
"links": {
"self": "https://api.cloudpit.io/v2/account/1234"
}
}
]
}
List all available sub accounts of yours, including your own. Supports result pagination.
Request
GET /account
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
include | string | language |
Includes object references in relationships section. |
filter | array | * |
Filters by attributes |
Response
Returns a collection of account instances.
Read authorized account
Get the account instance of the current authorized client.
Request
GET /me
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
include | string | language |
Includes object references in relationships section. |
Response
Returns a single account instance.
Read account
Get a single account instance by id.
Request
GET /account/{accountId}
accountId
: The account id you want to read
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
include | string | language |
Includes object references in relationships section. |
Response
Returns a single account instance.
Create account
Create a new account instance. New accounts are automatically assigned with your client account as parent.
Request
POST /account
Payload body
A data object containing all attributes described in the object reference, excluding the read only
attributes.
Response
Returns the created account instance.
Update account
Update a single account instance by account id.
Request
PATCH /account/{accountId}
accountId
: The account id you want to change
Payload body
A data object with id, containing all changed attributes, excluding the read only
attributes.
Response
Returns the updated account instance.
certificate
List certificate contracts
Sample response
{
"data": [
{
"type": "certificate",
"id": "H12345",
"attributes": {
"applicantDetails": null,
"domains": [
"testdomain.de"
],
"product": "23",
"status": "active",
"account": "12345",
"createdAt": "2019-06-07T00:00:00+02:00",
"terminationAt": null,
"cancelationAt": null
},
"links": {
"self": "https://api.cloudpit.io/v2/certificate/H12345"
}
}
]
}
List all available certificate contract instances related to sub-accounts of your client-account.
Request
GET /certificate
Query Parameters
Parameter | Type | Allowed attributes | Description |
---|---|---|---|
filter | string | id,domains,product,status,account |
Filters by attributes |
Response
Returns a collection of certificate instances.
Read certificate contract
Get a single certificate instance by id.
Request
GET /certificate/{certificateId}
certificateId
: The certificate id you want to read
Response
Returns a single certificate instance.
Create certificate contract
Create a new certificate contract instance.
Request
POST /certificate
Payload body
A data object containing all attributes described in the object reference, excluding the read only attributes.
Response
Returns HTTP 202 Accepted
with no response body, as the creation will be handled asynchronously.
Update certificate contract
Update a single certificate contract instance.
Request
PATCH /certificate/{certificateId}
certificateId
: The certificate id you want to change
Payload body
A data object with id, containing all changed attributes, excluding the read only and create only attributes.
Response
Returns the updated certificate instance.
contractLog
List contractLogs
Sample response
{
"data": [
{
"type": "contractLog",
"id": "2",
"attributes": {
"account": "1",
"contract": "H44459",
"logType": "upgrade",
"message": "Eine Nachricht, das Upgrade betreffend.",
"cdata": {
"reasonCode": null,
"email": null,
"domain": null
},
"createdAt": "2018-10-09T00:00:00+02:00"
},
"links": {
"self": "https://api.cloudpit.io/v3/contractLog/2"
}
}
]
}
List all contract logs for the current account or a specified subaccount. Supports result pagination.
Permission
Requires no permissions keys.
Request
GET /v3/contractLog
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
filter | array | account , contract |
Filters by attribute |
Response
Returns a collection of contractLog instances.
Read contractLog
Get a single contractLog instance by id.
Permission
Requires no permissions keys.
Request
GET /v3/contractLog/{logId}
logId
: The contractLog id you want to read
Response
Returns a single contractLog instance.
domain
List domain contracts
Sample response
{
"data": {
"type": "domain",
"id": "D12345",
"attributes": {
"name": "testdomain.de",
"description": ".de-Domain",
"status": "active",
"account": "1",
"webhosting": "H12345",
"authInfoIncoming": "loremIpsum",
"authInfoOutgoing": "loremIpsum",
"authInfoOutgoingExpiration": "2019-10-09T00:00:00+02:00",
"admin_c": null,
"owner": null,
"externalId": "4e5c2a06-b52f-11e9-a2a3-2a2ae2dbcce4",
"created_at": "2018-10-09T00:00:00+02:00",
"termination_at": "2019-10-09T00:00:00+02:00"
},
"links": {
"self": "https://api.cloudpit.io/v2/domain/D12345"
}
}
}
List all available domain contract instances related to sub-accounts of your client-account.
Request
GET /domain
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
filter | string | * |
Filters by attributes |
Response
Returns a collection of domain instances.
Read domain contract
Get a single domain instance by id.
Request
GET /domain/{domainId}
domainId
: The domain id you want to read
Response
Returns a single domain instance.
Create domain contract
Create a new domain contract instance.
Request
POST /domain
Payload body
A data object containing all attributes described in the object reference, excluding the read only attributes.
Response
Returns the created domain instance.
Update domain contract
Update a single domain contract instance.
Request
PATCH /domain/{domainId}
domainId
: The domain id you want to change
Payload body
A data object with id, containing all changed attributes, excluding the read only and create only attributes.
Response
Returns the updated domain instance.
domain-status
Query domain status check
Sample response
{
"data": {
"type": "domain-status",
"id": "testdomain.de",
"attributes": {
"zone": "de",
"status": [
"undelegated",
"inactive"
]
},
"links": {
"self": "https://api.cloudpit.io/v2/domain-status/testdomain.de"
}
}
}
Get the domain availability status by domain name.
Request
GET /domain-status/{domain}
domain
: The domain with zone you want to check
Response
Returns a single domain status instance.
language
List languages
Sample response
{
"data": [
{
"type": "language",
"id": "1",
"attributes": {
"isocode": "de_DE",
"slug": "german",
"name": "Deutschland (deutsch)"
},
"links": {
"self": "https://api.cloudpit.io/v2/language/1"
}
},
{
"type": "language",
"id": "2",
"attributes": {
"isocode": "en_GB",
"slug": "english",
"name": "United Kingdom (english)"
},
"links": {
"self": "https://api.cloudpit.io/v2/language/2"
}
}
]
}
List all available languages.
Request
GET /language
Response
Returns a collection of language instances.
Read language
Get a single language instance by id.
Request
GET /language/{languageId}
languageId
: The language id you want to read
Response
Returns a single language instance.
product
List products
Sample response
{
"data": [{
"type": "product",
"id": "5",
"attributes": {
"name": "Webhosting XL",
"meta": {
"externalId": 42
}
},
"links": {
"self": "https://api.cloudpit.io/v2/product/5"
}
}]
}
List all available product instances.
Request
GET /product
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
filter | string | * |
Filters by attributes |
Response
Returns a collection of product instances.
Read product
Get a single product instance by id.
Request
GET /product/{productId}
productId
: The product id you want to read
Response
Returns a single product_instance.
sso
List SSO tokens
Sample response
{
"data": [{
"type": "sso",
"id": "45",
"attributes": {
"url": "https://cloudpit.io/?ssotoken=VNtimYDk9zJjoNRiMQWfg5ttE2Pgk6UYC7RlQ2mBQwyNgojvpjUE2xUlNcy950A2",
"token": "VNtimYDk9zJjoNRiMQWfg5ttE2Pgk6UYC7RlQ2mBQwyNgojvpjUE2xUlNcy950A2",
"account": "1",
"account_login": "testAccount",
"user": "1",
"createdBy": "1",
"valid_until": "2018-10-05T17:31:10+01:00",
"options": {
"location": "webhosting",
"webhostingId": "H12345"
},
"created_at": "2018-10-05T17:26:10+01:00",
"updated_at": "2018-10-05T17:26:10+01:00"
},
"links": {
"self": "https://api.cloudpit.io/v2/sso/45"
}
}]
}
List all available sso tokens with sub-accounts of your client-account.
Request
GET /sso
Response
Returns a collection of SSO token instances.
Read SSO token
Get a single SSO token instance by id.
Request
GET /sso/{ssoId}
ssoId
: The SSO token id you want to read
Response
Returns a single SSO token instance.
Create SSO token
Create a new SSO token instance. You can only create SSO tokens for sub-accounts of your client-account.
Request
POST /sso
Payload body
A data object with one of the following attributes you want to create the SSO token for:
Attribute | Type | Description |
---|---|---|
account | string | account id |
account_login | string | login name of the related account |
user | string | user id |
options | object/null | (optional) Various settings for the generated token, you can see details in the object reference |
Response
Returns the created SSO token instance.
Delete SSO token
Delete an existing SSO token by id. You don't need to delete expired instances yourself, as they automatically get deleted every time one is creating a new instance.
Request
DELETE /sso/{ssoId}
ssoId
: The SSO-id you want to delete
Payload body
No payload required
Response
Returns no response with HTTP 204 - No content
.
webhosting
List webhosting contracts
Sample response
{
"data": [{
"type": "webhosting",
"id": "H12345",
"attributes": {
"product": 4,
"description": "WEB XL 2.0",
"status": "active",
"account": "1",
"externalId": "4e5c2a06-b52f-11e9-a2a3-2a2ae2dbcce4",
"created_at": "2018-10-09T00:00:00+02:00",
"termination_at": "2019-11-08T00:00:00+01:00"
},
"links": {
"self": "https://api.cloudpit.io/v2/webhosting/45"
}
}]
}
List all available webhosting contract instances related to sub-accounts of your client-account.
Request
GET /webhosting
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
filter | string | * |
Filters by attributes |
Response
Returns a collection of webhosting instances.
Read webhosting contract
Get a single webhosting instance by id.
Request
GET /webhosting/{webhostingId}
webhostingId
: The webhosting id you want to read
Response
Returns a single webhosting instance.
Create webhosting contract
Create a new webhosting contract instance.
Request
POST /webhosting
Payload body
A data object containing all attributes described in the object reference, excluding the read only attributes.
Response
Returns the created webhosting instance.
Update webhosting contract
Update a single webhosting contract instance.
Request
PATCH /webhosting/{webhostingId}
webhostingId
: The webhosting id you want to change
Payload body
A data object with id, containing all changed attributes, excluding the read only and create only attributes.
Response
Returns the updated webhosting instance.
Upgrade to another product
If you want to upgrade to another product, just update the product
attribute to the new target product.
Please note, only product upgrades are permitted. When upgrading to a lower product, the product resource will not be found.
webhosting-email
List mail addresses
Sample response
{
"data": [
{
"type": "webhosting-email",
"id": "44676+test@dogado.net",
"attributes": {
"password": null,
"fowarding": {
"enabled": false,
"emails": []
},
"mailbox": {
"enabled": true,
"size": 2147483648,
"usage": 4096
},
"autoresponder": {
"enabled": false,
"subject": "Re: <request_subject>",
"message": null,
"contentType": "text/html",
"forwardMail": null,
"endDate": null
},
"aliases": []
},
"links": {
"self": "https://api.cloudpit.io/v3/webhosting-email/44676+test@dogado.net"
}
}
]
}
List all mail addresses for an webhosting account.
Request
GET /v3/webhosting-email
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
filter | array | webhosting, domain | Filters by attributes (required) |
Response
Returns a collection of email instances.
Read one email address
Output of an email instance selected in the URL.
Request
GET /v3/webhosting-email/44676+test@dogado.net
Response
Returns a single email instance.
webhosting-protectedDirectory
List protected directories
Sample response
{
"data": {
"type": "webhosting-protectedDirectory",
"id": "12345+1",
"attributes": {
"directoryId": "1",
"webhosting": "12345",
"domain": "example.org",
"directory": "/example.org/protected-directory",
"description": "A protected directory"
},
"links": {
"self": "https://api.cloudpit.io/v2/webhosting-protectedDirectory/12345+1"
}
}
}
List all available protected directory instances related to webhosting instances and a domain name.
Request
GET /webhosting-protectedDirectory
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
filter | string | domain |
Filters by domain (required) |
filter | integer | webhosting |
Filters by webhosting (required) |
Response
Returns a collection of protected directory instances.
Read protected directory
Get a single protected directory instance by id.
Request
GET /webhosting-protectedDirectory/{webhosting}+{directoryId}
webhosting
: The webhosting this directory is associated todirectoryId
: The directory you want to receive
Response
Returns a single protected directory instance.
Create protected directory
Sample request
{
"data": {
"type": "webhosting-protectedDirectory",
"attributes": {
"webhosting": "12345",
"domain": "example.org",
"directory": "/example.org/protected-directory",
"description": "A protected directory"
}
}
}
Create a new protected directory instance.
Request
POST /webhosting-protectedDirectory
Payload body
A data object containing all attributes described in the object reference, excluding the read only attributes.
Response
Returns the created protected directory instance.
Update protected directory
Sample request
{
"data": {
"type": "webhosting-protectedDirectory",
"id": "12345+1",
"attributes": {
"domain": "example.org",
"description": "A protected directory with changed description"
}
}
}
Update a single protected directory instance.
Request
PATCH /webhosting-protectedDirectory/{webhosting}+{directoryId}
webhosting
: The webhosting this directory is associated todirectoryId
: The directory you want to change
Payload body
A data object with id, containing all changed attributes, excluding the read only and create only attributes.
Because of an error inside the used third party software, we have no clue which domain a directory is associated to. As a workaround, the domain you provide in the request body will be used to complete the resource in case you need the information in the response.
Response
Returns the updated protected directory instance.
Delete protected directory
Delete a protected directory instance.
Request
DELETE /webhosting-protectedDirectory/{webhosting}+{directoryId}
webhosting
: The webhosting this directory is associated todirectoryId
: The directory you want to delete
Payload body
No payload required.
Response
Returns no response with HTTP 204 - No content
.
webhosting-protectedDirectory-user
List protected directory users
Sample response
{
"data": {
"type": "webhosting-protectedDirectory-user",
"id": "12345+1+user1",
"attributes": {
"username": "user1",
"webhosting": 12345,
"directoryId": 1,
"password": null
},
"links": {
"self": "https://api.cloudpit.io/v2/webhosting-protectedDirectory-user/12345+1+user1"
}
}
}
List all available protected directory user instances related to a webhosting and protected directory instance.
Request
GET /webhosting-protectedDirectory-user
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
filter | integer | directoryId |
Filters by directoryId (required) |
filter | integer | webhosting |
Filters by webhosting (required) |
Response
Returns a collection of protected directory user instances.
Read protected directory user
Get a single protected directory user instance by id.
Request
GET /webhosting-protectedDirectory-user/{webhosting}+{directoryId}+{username}
webhosting
: The webhosting the requested user is associated todirectoryId
: The directory the requested user is associated tousername
: The username you want to receive
Response
Returns a single protected directory user instance
Create protected directory user
Sample request
{
"data": {
"type": "webhosting-protectedDirectory-user",
"attributes": {
"username": "user1",
"webhosting": 12345,
"directoryId": 1,
"password": "5up3r53cur3pa55w0rd!"
}
}
}
Create a new protected directory user instance.
Request
POST /webhosting-protectedDirectory-user
Payload body
A data object containing all attributes described in the object reference, excluding the read only attributes.
Response
Returns the created protected directory user instance
Update protected directory user
Sample request
{
"data": {
"type": "webhosting-protectedDirectory-user",
"id": "12345+1+user1",
"attributes": {
"password": "5up3r53cur3pa55w0rd!"
}
}
}
Update a single protected directory user instance.
Request
PATCH /webhosting-protectedDirectory-user/{webhosting}+{directoryId}+{username}
webhosting
: The webhosting the requested user is associated todirectoryId
: The directory the requested user is associated tousername
: The username you want to receive
Payload body
A data object with id, containing all changed attributes, excluding the read only and create only attributes.
Response
Returns the updated protected directory user instance
Delete protected directory user
Delete a protected directory user instance.
Request
DELETE /webhosting-protectedDirectory-user/{webhosting}+{directoryId}+{username}
webhosting
: The webhosting the requested user is associated todirectoryId
: The directory the requested user is associated tousername
: The username you want to receive
Payload body
No payload required.
Response
Returns no response with HTTP 204 - No content
.
webhosting-subdomain
List subdomains
Sample response
{
"data": {
"type": "webhosting-subdomain",
"id": "12345+subdomain.example.org",
"attributes": {
"domain": "example.org",
"subdomain": "subdomain",
"webhosting": 12345,
"documentRoot": "/subdomain.example.org/httpd",
"status": "active"
},
"links": {
"self": "https://api.cloudpit.io/v2/webhosting-subdomain/12345+subdomain.example.org"
}
}
}
List all available subdomain instances related to webhosting instances and one or more domain names.
Request
GET /webhosting-subdomain
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
filter | string | domain |
Filters by domain (multiple, if comma separated) (required) |
filter | integer | webhosting |
Filters by webhosting (required) |
Response
Returns a collection of subdomain instances.
Read subdomain
Get a single subdomain instance by id.
Request
GET /webhosting-subdomain/{webhosting}+{subdomain}
webhosting
: The webhosting the domain is associated tosubdomain
: The full subdomain (subdomain.example.org) you want to receive
Response
Returns a single subdomain instance.
Create subdomain
Sample request
{
"data": {
"type": "webhosting-subdomain",
"attributes": {
"domain": "example.org",
"subdomain": "subdomain",
"webhosting": 12345,
"documentRoot": "/subdomain.example.org/httpd",
"status": "active"
}
}
}
Create a new subdomain instance.
Request
POST /webhosting-subdomain
Payload body
A data object containing all attributes described in the object reference, excluding the read only attributes.
Response
Returns the created subdomain instance.
Update subdomain
Sample request
{
"data": {
"type": "webhosting-subdomain",
"id": "12345+subdomain.example.org",
"attributes": {
"documentRoot": "/anotherFolder/",
"status": "active"
}
}
}
Update a single subdomain instance.
Request
PATCH /webhosting-subdomain/{webhosting}+{subdomain}
webhosting
: The webhosting the domain is associated tosubdomain
: The full subdomain (subdomain.example.org) you want to receive
Payload body
A data object with id, containing all changed attributes, excluding the read only and create only attributes.
Response
Returns the updated subdomain instance.
Delete subdomain
Delete a subdomain instance.
Request
DELETE /webhosting-subdomain/{webhosting}+{subdomain}
webhosting
: The webhosting the domain is associated tosubdomain
: The full subdomain (subdomain.example.org) you want to receive
Payload body
No payload required.
Response
Returns no response with HTTP 204 - No content
.
API Version 3
A reference for all existing API Version 3 endpoints and actions.
account
This is an API v3 route, it must be called with /v3/
List accounts
Sample response
{
"data": {
"type": "account",
"id": "1000",
"attributes": {
"parent": "1",
"accountType": "reseller",
"active": true,
"createdAt": "2019-07-30T12:17:14+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"user": {
"data": [
{
"type": "user",
"id": "1"
},
{
"type": "user",
"id": "2"
}
],
"links": {
"self": "https://api.cloudpit.io/v3/account/1000/relationships/user",
"related": "https://api.cloudpit.io/v3/account/1000/user"
}
}
},
"links": {
"self": "https://api.cloudpit.io/v3/account/1000"
}
},
"included": {
"type": "user",
"id": "1",
"attributes": {
"account": "1",
"language": "1",
"password": null,
"email": "max.mustermann@example.org",
"emailInvalid": false,
"salutation": "m",
"company": "Musterfirma",
"firstname": "Max",
"lastname": "Mustermann",
"active": true,
"primary": true,
"createdAt": "2019-07-22T09:10:44+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"userlogin": {
"links": {
"self": "https://api.cloudpit.io/v3/user/1/relationships/userlogin",
"related": "https://api.cloudpit.io/v3/user/1/userlogin"
}
}
},
"type": "user",
"id": "2",
"attributes": {
"account": "1",
"language": "1",
"password": null,
"email": "mccullough.chadd@example.org",
"emailInvalid": false,
"salutation": "f",
"company": "Ruecker Inc",
"firstname": "Angeline",
"lastname": "Schneider",
"active": true,
"primary": true,
"createdAt": "2019-07-30T12:17:14+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"userlogin": {
"links": {
"self": "https://api.cloudpit.io/v3/user/2/relationships/userlogin",
"related": "https://api.cloudpit.io/v3/user/2/userlogin"
}
}
}
}
}
List all available accounts. Supports result pagination.
Request
GET /v3/account
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
include | string | user |
Includes object references in relationships section. |
filter | array | * |
Filters by attributes |
Response
Returns a collection of account instances.
Read accounts
Get the account instance by id.
Request
GET /v3/account/{accountId}
accountId
: The account id you want to read
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
include | string | user |
Includes object references in relationships section. |
Response
Returns a single account instance.
Read releated users (from account endpoint)
Get all account id related user instances.
Request
GET /v3/account/{accountId}/user
accountId
: The identification of the account you want to get the user instances of
Response
Returns all related user instances of the given account id.
Create accounts
Create a new account instance.
Request
POST /account
Payload body
A data object containing all attributes described in the object reference, excluding the read only
attributes.
Response
Returns the created account instance.
Update accounts
Update a single account instance by account id.
Request
PATCH /account/{accountId}
accountId
: The account id you want to change
Payload body
A data object with id, containing all changed attributes, excluding the read only
attributes.
Response
Returns the updated account instance.
Delete accounts
Deletes the account instance of the chosen id.
Request
DELETE /v3/account/{accountId}
accountId
: The account id you want to delete
Response
Returns no response with HTTP 204 - No content
.
contract
List contracts
Sample response
{
"data": [
{
"type": "contract",
"id": "H12345",
"attributes": {
"ownerAccount": "1",
"assigneeAccount": null,
"assigneeLoginName": null,
"contractType": "hosting",
"name": "WEB S 2.0 v1",
"product": 1,
"contractStartAt": "2019-04-18T00:00:00+02:00",
"contractTerminationAt": null,
"contractCancelationAt": null,
"inclusive": false,
"dnsStatus": null,
"price": 1.19,
"vat": 19,
"currency": "EUR",
"billingInterval": 12,
"serviceType": "plesk",
"maturity": "12M",
"children": [],
"parent": null,
"status": "active",
"demoReference": null
},
"links": {
"self": "http://api.cloudpit.io/v3/contract/H44638"
}
}
]
}
List all available contracts. Supports result pagination.
Request
GET /v3/contract
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
filter | array | * |
Filters by attributes |
sort | array | * |
Enables sorting by attribute |
Response
Returns a collection of contract instances.
Read contract
Get a single contract instance by id.
Permission
Requires no permissions keys.
Request
GET /v3/contract/{contractId}
contractId
: The contract id you want to read
Response
Returns a single contract instance.
Create contract
Create a new contract instance.
Request
POST /contract
Payload body
A data object containing all attributes described in the object reference, excluding the read only attributes.
Response
Returns HTTP 201 Created
with the created contract as response body.
Update contract
Terminate, cancel or assign contract.
Permission
Requires no permissions keys.
Request
PATCH /v3/contract/{contractId}
contractId
: The contract id you want to change
Payload body
A data object with id, containing all changed attributes, excluding the read only
attributes.
Response
Returns the updated contract instance.
dns-record
This is an API v3 route, it must be called with /v3/
Show all records
Sample response
{
"data":
{
"type": "dns-record",
"id": "1",
"attributes": {
"name": "docs.dogado.net",
"data": "195.34.83.173",
"record-type": "A",
"priority": null,
"ttl": 600,
"dns-zone": "dogado.net"
},
"links": {
"self": "https://api.cloudpit.io/v3/dns-record/1"
}
}
}
Get all DNS records for the given domain zones
Request
GET /dns-record
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
filter | array | dns-zone |
Required: Filter all records by dns zone name |
Response
Returns a collection of dns-record instances.
Read one record
Get one DNS record by it's id
Request
GET /dns-record/{record-id}
Payload body
A data object containing all attributes described in the object reference.
Response
Returns one dns-record instance.
dns-zone
This is an API v3 route, it must be called with /v3/
List DNS zones
Sample response
{
"data":
{
"type": "dns-zone",
"id": "1",
"attributes": {
"domainName": "dogado.net",
"maintained": "manual",
"primaryNameserver": "ns.primary-ns.net",
"nameserver": [],
"adminEmail": "hostmaster@dogado.de",
"refresh": 28800,
"retry": 7200,
"expire": 604800,
"minimum": 600,
"ttl": 600,
"message": null,
"syncedAt": null,
"createdAt": "2020-01-24T07:40:44+01:00",
"updatedAt": "2020-01-24T07:40:45+01:00"
},
"links": {
"self": "https://api.cloudpit.io/v3/dns-zone/1"
}
}
}
List all available DNS zones.
Request
GET /v3/dns-zone
Response
Returns a collection of dns zone objects.
Read DNS zone
Get one DNS zone instance by id.
Request
GET /v3/dns-zone/{id}
id
: The id you want to read
Response
Returns a single DNS zone object.
Create DNS zone
Create a new DNS zone instance.
Request
POST /dns-zone
Payload body
A data object containing all attributes described in the object reference, excluding the read only
attributes.
Response
Returns the created DNS zone object.
Update DNS zone
Update a single DNS zone instance by id.
Request
PATCH /dns-zone/{id}
id
: The id you want to read
Payload body
A data object with id, containing all changed attributes, excluding the read only
attributes.
Response
Returns the updated DNS zone object.
Delete DNS zone
Deletes the DNS zone instance of the chosen id.
Request
DELETE /v3/dns-zone/{id}
id
: The id you want to read
Response
Returns no response with HTTP 204 - No content
.
dnssec
This is an API v3 route, it must be called with /v3/
Get DNSSEC status
Get the DNSSEC status by it's domain id
Request
GET /dnssec/{domainId}
Response
Returns one dnssec instance.
Domain Id's
You can query all domain id's of your account by using the domain endpoint
domainSuggestion
This is an API v3 route, it must be called with /v3/
Show all records
Sample response
{
"data": [
{
"type": "domainSuggestion",
"id": "test-hal.de",
"attributes": {
"keyword": "test",
"sld": "test-hal",
"tld": "de",
"decoded": "test-hal.de"
},
"links": {
"self": "http://api.cloudpit.io/v3/domainSuggestion/test-hal.de"
}
}
]
}
A list of all generated domain suggestions, depending on the filtered keyword.
Request
GET /domainSuggestion
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
filter | array | keyword |
Required: Generate suggestions for this specific keyword |
checkDomainStatus | boolean | Return only domains which are free for registration |
Response
Returns a collection of domainSuggestion instances.
user
This is an API v3 route it must be called with /v3/
List user
Sample response
{
"data": {
"type": "user",
"id": "1",
"attributes": {
"account": "1",
"language": "1",
"password": null,
"email": "max.mustermann@example.org",
"emailInvalid": false,
"salutation": "f",
"company": "Musterfirma",
"firstname": "Max",
"lastname": "Mustermann",
"active": true,
"primary": true,
"createdAt": "2019-07-30T12:17:14+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"user-login": {
"data": [
{
"type": "user-login",
"id": "admin"
},
{
"type": "user-login",
"id": "anahi.runolfsdottir"
}
],
"links": {
"self": "https://api.cloudpit.io/v3/user/1/relationships/user-login",
"related": "https://api.cloudpit.io/v3/user/1/user-login"
}
}
},
"links": {
"self": "https://api.cloudpit.io/v3/user/1"
}
},
"included": [
{
"type": "user-login",
"id": "admin",
"attributes": {
"loginType": "primary",
"user": "1",
"createdAt": "2019-07-30T12:17:14+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"user": {
"links": {
"self": "https://api.cloudpit.io/v3/user-login/admin/relationships/user",
"related": "https://api.cloudpit.io/v3/user-login/admin/user"
}
}
}
},
{
"type": "user-login",
"id": "anahi.runolfsdottir",
"attributes": {
"loginType": "secondary",
"user": "1",
"createdAt": "2019-07-30T12:17:18+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"user": {
"links": {
"self": "https://api.cloudpit.io/v3/user-login/anahi.runolfsdottir/relationships/user",
"related": "https://api.cloudpit.io/v3/user-login/anahi.runolfsdottir/user"
}
}
}
}
]
}
List all available users, including your own. Supports result pagination.
Request
GET /v3/user
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
include | string | user-login |
Includes object references in relationships section. |
filter | array | * |
Filters by attributes |
Response
Returns a collection of user instances.
Read user
Get a user instance by id.
Request
GET /v3/user/{userId}
userId
: The user id you want to read
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
include | string | user-login |
Includes object references in relationships section. |
Response
Returns a single user instance.
Read releated user-login
Get the releated user-login instances of the given user id reference.
Request
GET /v3/user/{userId}/user-login
userId
: The user id you want to read the logins of
Response
Returns collection of user-login instances.
Create user
Create a new user instance.
Request
POST /user
Payload body
A data object containing all attributes described in the object reference. Only non-primary, additional users can be created via this route.
Response
Returns the created user instance.
Update user
Update a single user instance by user id.
Request
PATCH /user/{userId}
userId
: The user id you want to change
Payload body
A data object with id, containing all changed attributes, excluding the read only
attributes.
Response
Returns the updated user instance.
Delete user
Deletes the user instance of the chosen id.
Request
DELETE /v3/user/{userId}
userId
: The user id you want to delete
Response
Returns no response with HTTP 204 - No content
.
user-login
This is an API v3 route, it must be called with /v3/
List User Login
Sample response
{
"data": {
"type": "user-login",
"id": "loginname",
"attributes": {
"loginType": "primary",
"user": "41",
"createdAt": "2019-07-25T14:14:24+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"user": {
"data": {
"type": "user",
"id": "1"
},
"links": {
"self": "https://api.cloudpit.io/v3/user-login/loginname/relationships/user",
"related": "https://api.cloudpit.io/v3/user-login/loginname/user"
}
}
},
"links": {
"self": "https://api.cloudpit.io/v3/user-login/loginname"
}
},
"included": [
{
"type": "user",
"id": "1",
"attributes": {
"account": "1",
"language": "1",
"password": null,
"email": "myrtie@example.org",
"emailInvalid": false,
"salutation": "f",
"company": "Musterfirma",
"firstname": "Myrtie",
"lastname": "Heaney",
"active": true,
"primary": true,
"createdAt": "2019-07-30T12:17:14+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"user-login": {
"links": {
"self": "https://api.cloudpit.io/v3/user/1/relationships/user-login",
"related": "https://api.cloudpit.io/v3/user/1/user-login"
}
}
}
}
]
}
List all available logins of a specific user. Supports result pagination.
Request
GET /v3/user-login
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
include | string | user-login |
Includes object references in relationships section. |
filter | array | * |
Filters by attributes |
Response
Returns a collection of user login instances.
Read User Login
Get a user login instance.
Request
GET /v3/user-login/{userloginId}
userloginId
: The user login you want to get the related user instance of
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
include | string | user |
Includes object references in relationships section. |
Response
Returns a single user instance.
Read releated user (from user-login endpoint)
Get the related user instance of a specific account.
Request
GET /v3/user-login/{userloginId}/user
userloginId
: The account id you want to read
Response
Returns a single user instances.
Create User Login
Create the secondary login for a user. There can only be one secondary login for a user.
Request
POST /user-login
Payload body
A data object containing all attributes described in the object reference.
Response
Returns the created user login instance.
Update user login
Update the secondary login of a user. The primary login cannot be changed.
Request
PATCH /user-login/{userloginId}
userloginId
: The user login id you want to change
Payload body
A data object with id, containing all changed attributes, excluding the read only
attributes.
Response
Returns the updated user login instance.
Delete user login
Delete a secondary user login by id. Primary logins cannot be deleted.
Request
DELETE /v3/user-login/{userLoginId}
userLoginId
: The user login id you want to delete
Response
Returns no response with HTTP 204 - No content
.
webcard
List webcard contracts
Sample response
{
"data": [
{
"type": "webcard",
"id": "H12345",
"attributes": {
"ownerAccount": "1",
"assigneeAccount": null,
"assigneeLoginName": null,
"contractType": "hosting",
"name": "Webcard Business",
"product": 1,
"contractStartAt": "2019-04-18T00:00:00+02:00",
"contractTerminationAt": null,
"contractCancelationAt": null,
"inclusive": false,
"dnsStatus": null,
"price": 1.19,
"vat": 19,
"currency": "EUR",
"billingInterval": 12,
"serviceType": "webcard",
"maturity": "12M",
"children": [],
"parent": null,
"status": "active",
"demoReference": null
},
"links": {
"self": "http://api.cloudpit.io/v3/contract/H44638"
}
}
]
}
List all available contracts. Supports result pagination.
Permission
Requires no permissions keys.
Request
GET /v3/webcard
Query Parameters
Parameter | Type | Allowed types | Description |
---|---|---|---|
filter | array | * |
Filters by attributes |
sort | array | * |
Enables sorting by attribute |
Response
Returns a collection of contract instances.
Read webcard contract
Get a single contract instance by id.
Permission
Requires no permissions keys.
Request
GET /v3/webcard/{webcardId}
webcardId
: The webcard contract id you want to read
Response
Returns a single contract instance.
Create webcard contract
Create a new webcard contract instance.
Permission
Requires one of the permission keys create.vm
, create.crmwh
, create.backup
, create.fit
, create.o365
, create.wh
.
A reseller can only create webcard contracts for specific products. See product for allowed products.
Request
POST /webcard
Payload body
A data object containing all attributes described in the object reference, excluding the read only attributes.
Response
Returns HTTP 201 Created
with the created webcard contract as response body.
Update webcard contract
Terminate, cancel or assign webcard contract.
Permission
Requires no permissions keys.
Request
PATCH /v3/webcard/{webcardId}
webcardId
: The webcard contract id you want to change
Payload body
A data object with id, containing all changed attributes, excluding the read only
attributes.
Response
Returns the updated webcard instance.
webcard-basic
Create Webcard Basic
Sample payload
{
"data": {
"type": "webcard-basic",
"attributes": {
"subdomain": "john-doe",
"customerData": {
"firstname": "John",
"lastname": "Doe",
"company": "dogado GmbH",
"street": "Antonio-Segni-Straße 11",
"postcode": "44263",
"city": "Dortmund",
"country": "de",
"phone": "+492312866200",
"email": "info@dogado.de"
}
}
}
}
Sample response
{
"data": {
"type": "webcard-basic",
"id": "4ac4f2c2-f5e2-46fb-a8b3-2f5b9142a67a",
"attributes": {
"contract": null,
"subdomain": "john-doe",
"customerData": {
"firstname": "John",
"lastname": "Doe",
"company": "dogado GmbH",
"street": "Antonio-Segni-Straße 11",
"postcode": "44263",
"city": "Dortmund",
"country": "de",
"phone": "+492312866200",
"email": "info@dogado.de"
},
"publishedAt": null,
"unpublishedAt": null,
"updatedAt": "2021-04-18T14:28:16+00:00",
"createdAt": "2021-04-18T14:28:16+00:00"
}
}
}
Create a webcard basic instance.
Request
POST /v3/webcard-basic
Payload
The webcard-basic
resource to create. It must contain a valid hostname validated subdomain
. All customer data is optional.
Response
Returns the created webcard-basic instance.
Read Webcard Basic
Sample response
{
"data": {
"type": "webcard-basic",
"id": "4ac4f2c2-f5e2-46fb-a8b3-2f5b9142a67a",
"attributes": {
"contract": "H12345",
"subdomain": "john-doe",
"customerData": {
"firstname": "John",
"lastname": "Doe",
"company": "dogado GmbH",
"street": "Antonio-Segni-Straße 11",
"postcode": "44263",
"city": "Dortmund",
"country": "de",
"phone": "+492312866200",
"email": "info@dogado.de"
},
"publishedAt": "2021-04-18T14:28:16+00:00",
"unpublishedAt": "2021-04-18T14:28:16+00:00",
"updatedAt": "2021-04-18T14:28:16+00:00",
"createdAt": "2021-04-18T14:28:16+00:00"
}
}
}
Read a webcard-basic
or webcard plus instance by id. A "webcard plus" instance is a webcard basic instance which got upgraded to a plus contract.
Request
GET /v3/webcard-basic/{id}
Query Parameters
Parameter | Type | Description |
---|---|---|
id | string | The webcard-basic or plus UUID identifier to fetch. |
Response
Returns the found webcard-basic or plus instance or HTTP 404 Not found
.
Delete Webcard Basic
Delete a webcard-basic
instance by id.
Request
DELETE /v3/webcard-basic/{id}
Query Parameters
Parameter | Type | Description |
---|---|---|
id | string | The webcard-basic UUID identifier to delete. |
Response
HTTP 204 No content
on success, or HTTP 404 Not found
.
webcard-sso
Create Webcard SSO
Sample request
{
"data": {
"type": "webcard-sso",
"attributes": {
"contract": "H12345",
"lifetime": 3600,
"invalidateAfterFirstUse": false
}
}
}
Sample response
{
"data": {
"type": "webcard-sso",
"id": "42",
"attributes": {
"contract": "H12345",
"webcardBasic": null,
"lifetime": 3600,
"url": "https://webcard.local/sso?token=123456",
"invalidateAfterFirstUse": false
}
}
}
Create an SSO Link for a Webcard Instance.
Request
POST /v3/webcard-sso
Payload
A webcard-sso
resource with optional settings. Must contain either contract
or webcardBasic
reference.
Response
Returns a single webcard-sso instance.
Object Reference
Describes the structure of all available resource objects.
API Version 2
A reference for all existing API Version 2 resources.
account
sample object
{
"data": {
"type": "account",
"id": "51486",
"attributes": {
"parent": 1,
"login": "apiDocs",
"email": "info@api.docs",
"emailInvalid": false,
"displayName": "testUser@CloudPit",
"salutation": "m",
"company": "ApiDocs GmbH",
"firstname": "John",
"lastname": "Doe",
"language": "1",
"password": null,
"subReseller": null,
"passwordEmailDisabled": false,
"active": true,
"created_at": "2018-10-05T16:47:48+01:00",
"updated_at": "2018-10-05T16:47:48+01:00"
},
"relationships": {
"language": {
"links": {
"self": "https://api.cloudpit.io/v2/account/51486/relationships/language",
"related": "https://api.cloudpit.io/v2/account/51486/language"
}
},
"parent": {
"links": {
"self": "https://api.cloudpit.io/v2/account/51486/relationships/parent",
"related": "https://api.cloudpit.io/v2/account/51486/parent"
}
}
},
"links": {
"self": "https://api.cloudpit.io/v2/account/51486"
}
}
}
Id: the account id
Type: account
Attributes:
Name | Type | Description | Characteristics | Default |
---|---|---|---|---|
parent | integer | parent account id | read only | |
login | string | aka username; must be between 6 and 64 characters long | unique | |
string | account email address | |||
emailInvalid | boolean | whether the current email address is not reachable and needs to be changed | ||
displayName | string/null | The name shown in the upper right of the CloudPit | ||
salutation | string/null | allowed values: m = male, f = female, d = diverse | ||
company | string/null | |||
firstname | string/null | |||
lastname | string/null | |||
language | integer | id of the related language instance | ||
password | string/null | see global password restrictions | change only | |
subReseller | string/null | can be used to change the design of CloudPit for your resellers | optional | null |
passwordEmailDisabled | boolean | whether the user gets a welcome email including his username and password | optional | false |
active | boolean | whether the user can login into the CloudPit | ||
created_at | string/null | atom timestamp of the account creation | read only | |
updated_at | string/null | atom timestamp of the last account update | read only |
The following restrictions apply to all passwords:
- minimum length 8 characters
- maximum length 64 characters
- at least one lowercase character
- at least one uppercase character
- at least one number
- at least one special character
certificate
sample object
{
"data": {
"type": "certificate",
"id": "H12345",
"attributes": {
"applicantDetails": {
"company": "dogado GmbH",
"firstname": "John",
"lastname": "Doe",
"street": "Saarlandstr. 25",
"postcode": "44139",
"city": "Dortmund",
"country": "de",
"email": "john.doe@example.local"
},
"domains": [
"testdomain.de"
],
"product": "23",
"status": "active",
"account": "12345",
"createdAt": "2019-06-07T00:00:00+02:00",
"terminationAt": "2020-06-07T00:00:00+02:00",
"cancelationAt": "2020-06-07T00:00:00+02:00"
},
"links": {
"self": "https://api.cloudpit.io/v2/certificate/H12345"
}
}
}
Id: the certificate id
Type: certificate
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
applicantDetails | array/null | Required customer data for the certificate creation | create only |
domains | array | the domain names that the certificate represents | read only, required for creation |
product | string | certificate product id | read only, required for creation |
description | string | certificate product name | read only |
status | string | see status explanation below | read only |
account | string | account id relation | create only |
createdAt | string | atom timestamp of the certificate creation | read only |
terminationAt | string/null | atom timestamp of the termination (can not be in the past on requested terminations), can be set to null to remove a pending termination | |
cancelationAt | string/null | atom timestamp of the cancelation, can only be updated and will always return null |
update only |
Available status
The following status values can not be set or updated.
Name | Description |
---|---|
active | |
cancelled | |
terminated | the contract has been terminated |
termination_pending | the termination is pending |
Applicant details objects
The applicant details are required for the CSR record which will be generated to create a certificate.
Name | Type | Characteristics |
---|---|---|
company | string/null | |
firstname | string | |
lastname | string | |
street | string | |
postcode | string | |
city | string | |
country | string | Two letter ISO country code |
string |
contractLog
sample object
{
"data": [
{
"type": "contractLog",
"id": "2",
"attributes": {
"account": "1",
"contract": "H44459",
"logType": "upgrade",
"message": "Eine Nachricht, das Upgrade betreffend.",
"cdata": {
"reasonCode": null,
"email": null,
"domain": null
},
"createdAt": "2018-10-09T00:00:00+02:00"
},
"links": {
"self": "https://api.cloudpit.io/v3/contractLog/2"
}
}
]
}
Id: the contractLog id
Type: contractLog
Attributes:
Name | Type | Description |
---|---|---|
contract | string/null | the contract this log entry belongs to |
account | string | a account id of the issuer |
message | string | describing message for this entry |
logType | string | type if the entry, either abuse or upgrade |
cdata | object | additional information |
cdata.reasonCode | string/null | in case of abuse one of the codes will be set 901 , 902 , 903 |
cdata.email | string/null | the abuse issuer domain |
cdata.domain | string/null | the abuse issuer email |
createdAt | string | date of contractLog creation |
domain
sample object
{
"data": {
"type": "domain",
"id": "D12345",
"attributes": {
"name": "testdomain.de",
"description": ".de-Domain",
"status": "active",
"account": "1",
"webhosting": "H12345",
"authInfoIncoming": "loremIpsum",
"authInfoOutgoing": "loremIpsum",
"authInfoOutgoingExpiration": "2019-10-09T00:00:00+02:00",
"admin_c": {
"firstname": "John",
"lastname": "Doe",
"address": "Saarlandstr. 25",
"postcode": "44139",
"city": "Dortmund",
"phone": "+4902312866200",
"email": "info@dogado.de"
},
"owner": {
"firstname": "John",
"lastname": "Doe",
"address": "Saarlandstr. 25",
"postcode": "44139",
"city": "Dortmund",
"phone": "+4902312866200",
"email": "info@dogado.de"
},
"externalId": "4e5c2a06-b52f-11e9-a2a3-2a2ae2dbcce4",
"created_at": "2018-10-09T00:00:00+02:00",
"termination_at": "2019-10-09T00:00:00+02:00"
},
"links": {
"self": "https://api.cloudpit.io/v2/domain/D12345"
}
}
}
Id: the domain id
Type: domain
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
name | string | the domain name | create only |
description | string | description of the selected TLD | read only |
status | string | see status explanation below | read only |
account | string | account id relation | |
webhosting | string | webhosting id relation | |
authInfoIncoming | string/null | auth info code for incoming transfers. See the additional info below | create only |
authInfoOutgoing | string/null | auth info code for outgoing transfers. See the additional info below | read only |
authInfoOutgoingExpiration | string/null | expiration date of the given outgoing auth info code | read only |
admin_c | array/null | Required Admin C data for the domain creation | create only |
owner | array/null | Required owner data for the domain creation | create only |
externalId | string/null | optional custom identifier for external references (maximum length: 255 chars) | |
created_at | string | atom timestamp of the domain creation | read only |
termination_at | string/null | atom timestamp of the termination, can be set to null to remove a pending termination |
Available status
The following status values can not be set or updated.
Name | Description |
---|---|
active | |
expired | the domain is terminated |
cancelled | |
pending | the domain provisioning is pending |
pending_transfer | domain transfer is pending |
Admin-C and Owner objects
The Admin-C and Owner objects have the same structure and are only required for the domain creation.
Name | Type |
---|---|
firstname | string |
lastname | string |
address | string |
postcode | string |
city | string |
phone | string |
string |
Incoming auth info code
The authInfoIncoming
code can be set to initiate a domain transfer to dogado. Be advised that setting this attribute may
result in a different set of possible errors.
Outgoing auth info code
The authInfoOutgoing
code automatically gets created on domain termination. The given auth code is valid until a
certain date, which is given in the authInfoOutgoingExpiration
attribute. The auth code gets renewed automatically
if the authInfoOutgoingExpiration
date is reached and the domain termination date is in the future.
domain-status
sample object
{
"data": {
"type": "domain-status",
"id": "testdomain.de",
"attributes": {
"zone": "de",
"status": [
"undelegated",
"inactive"
]
},
"links": {
"self": "https://api.cloudpit.io/v2/domain-status/testdomain.de"
}
}
}
Id: the domain name with zone
Type: domain-status
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
zone | string | the domain zone | read only |
status | string | a list of matching status values (see possible status values below) | read only |
Available status
The status array can contain the following values:
Name | Description |
---|---|
unknown | Unknown status, usually resulting from an error or misconfiguration. |
undelegated | The domain is not present in DNS. |
inactive | Available for new registration. |
pending | TLD not yet in the root zone file. |
disallowed | Disallowed by the registry, ICANN, or other (wrong script, etc.). |
claimed | Claimed or reserved by some party (not available for new registration). |
reserved | Explicitly reserved by ICANN, the registry, or another party. |
dpml | Domains Protected Marks List, reserved for trademark holders. |
invalid | Domain technically invalid, e.g. too long or too short. |
active | Registered, but possibly available via the aftermarket. |
parked | Active and parked, possibly available via the aftermarket. |
marketed | Explicitly marketed as for sale via the aftermarket. |
expiring | An expiring domain. e.g. in the Redemption Grace Period, and possibly available via a backorder service. |
deleting | A expired domain pending removal from the registry. e.g. in the Pending Delete phase, and possibly available via a backorder service. |
priced | An aftermarket domain with an explicit price. e.g. via the BuyDomains service. |
transferable | An aftermarket domain available for fast-transfer. e.g. in the Afternic inventory. |
premium | Premium domain name for sale by the registry. |
suffix | A public suffix according to publicsuffix.org. |
zone | A zone (domain extension). |
tld | A top-level domain. |
language
sample object
{
"data": {
"type": "language",
"id": "1",
"attributes": {
"isocode": "de_DE",
"slug": "german",
"name": "Deutschland (deutsch)"
},
"links": {
"self": "https://api.cloudpit.io/v2/language/1"
}
}
}
Id: the language id
Type: language
Attributes:
Name | Type | Description |
---|---|---|
isocode | string | the iso language code |
slug | string | short name |
name | string |
product
sample object
{
"data": {
"type": "product",
"id": "5",
"attributes": {
"name": "Webhosting XL",
"meta": {
"externalId": 42
}
},
"links": {
"self": "https://api.cloudpit.io/v2/product/5"
}
}
}
Id: the product id
Type: product
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
name | string | the product name | read only |
meta | array | contains optional meta data defined per product, can be an empty array | read only |
In case there are no defined products for your authenticated account, you MAY receive a warning in the
global meta
-section to get in touch with us.
sso
sample object
{
"data": {
"type": "sso",
"id": "45",
"attributes": {
"url": "https://cloudpit.io/?ssotoken=VNtimYDk9zJjoNRiMQWfg5ttE2Pgk6UYC7RlQ2mBQwyNgojvpjUE2xUlNcy950A2",
"token": "VNtimYDk9zJjoNRiMQWfg5ttE2Pgk6UYC7RlQ2mBQwyNgojvpjUE2xUlNcy950A2",
"account": "1",
"account_login": "testAccount",
"createdBy": "1",
"valid_until": "2018-10-05T17:31:10+01:00",
"options": {
"location": "webhosting",
"webhostingId": "H12345"
},
"created_at": "2018-10-05T17:26:10+01:00",
"updated_at": "2018-10-05T17:26:10+01:00"
},
"links": {
"self": "https://api.cloudpit.io/v2/sso/45"
}
}
}
Id: the sso id
Type: sso
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
url | string | URL to login to the dashboard with the SSO token | read only |
token | string | the generated SSO token | unique, read only |
account | integer | the related account id | create only |
account_login | string/null | login name of the related account | create only |
user | string | the related user id | create only |
createdBy | integer | user id of the sso creator | read only |
valid_until | string | atom timestamp about the expiration of the token instance | read only |
options | object/null | (optional) list of settings for the generated SSO token | create only |
options.location | enum | the target page to which the user will be redirected after successfull login (see possible values below) | create only |
options.cloudServerId | string | if the location is set to 'cloudserver' the target instance id is required | create only |
options.webhostingId | string | if the location is set to 'webhosting' or 'email' the target contract id is required | create only |
options.contractId | string | if the location is set to 'webcard' the target contract id is required | create only |
options.domainId | string | if the location is set to 'domain' the target contract id is required | create only |
created_at | string | atom timestamp of the sso creation | read only |
updated_at | string | atom timestamp of the last sso update | read only |
Possible options.location values
The options.location field is limited to certain values. If the location is set, the user will be redirected to the set page if the login challenge was successfull.
Name | Description |
---|---|
cloudserver | Redirect to the cloudserver detail page |
domain | Redirect to the domain detail page |
Redirect to the webhosting email tab | |
webcard | Redirect to the webcard detail page |
webcard-list | Redirect to the webcard overview page |
webhosting | Redirect to the webhosting detail page |
wordpress-list | Redirect to the wordpress overview page |
An sso token is valid for 5 minutes. Expired tokens get deleted automatically when creating new ones.
webhosting
sample object
{
"data": [{
"type": "webhosting",
"id": "H12345",
"attributes": {
"product": "1",
"description": "WEB XL 2.0",
"status": "active",
"account": "1",
"externalId": "4e5c2a06-b52f-11e9-a2a3-2a2ae2dbcce4",
"created_at": "2018-10-09T00:00:00+02:00",
"termination_at": "2019-11-08T00:00:00+01:00"
},
"links": {
"self": "https://api.cloudpit.io/v2/webhosting/H12345"
}
}]
}
Id: the webhosting id
Type: webhosting
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
product | string | The webhosting product id | |
description | string | A description of the selected product | read only |
status | string | see status explanation below | partly read only |
account | string/null | the assigned account id | |
externalId | string/null | optional custom identifier for external references (maximum length: 255 chars) | |
created_at | string | atom timestamp of the webhosting creation | read only |
termination_at | string/null | atom timestamp of the termination, can be set to null to remove a pending termination |
Available status
You can ONLY update the status to active
or suspended
. Other status values are not usable for update actions.
Name | Description |
---|---|
active | |
cancelled | |
pending | the domain provisioning is pending |
suspended | |
terminated | |
termination_pending | |
upgrade_pending |
webhosting-email
sample object
{
"data":
{
"type": "webhosting-email",
"id": "44676+test@dogado.net",
"attributes": {
"password": null,
"fowarding": {
"enabled": false,
"emails": []
},
"mailbox": {
"enabled": true,
"size": 2147483648,
"usage": 4096
},
"autoresponder": {
"enabled": false,
"subject": "Re: <request_subject>",
"message": null,
"contentType": "text/html",
"forwardMail": null,
"endDate": null
},
"aliases": []
},
"links": {
"self": "https://api.cloudpit.io/v3/webhosting-email/44676+test@dogado.net"
}
}
}
Id: compound Id of the webhosting Id and the mail address
Type: webhosting-email
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
password | string/null | password of email address | create only |
fowarding.enabled | bool | if forwarding is enabled | |
fowarding.emails | array | array of e-mail addresses to which mails mails are forwarded to. | |
mailbox.enabled | bool | if the mailbox is enabled | |
mailbox.size | integer | size of mailbox in bytes | |
mailbox.usage | integer | usage of Mailspace in bytes | read only |
autoresponder.enabled | bool | indicates whether the automatic reply is activated | |
autoresponder.subject | string | subject of the automatic reply | |
autoresponder.message | string/null | content of the automatic reply | |
autoresponder.contentType | string | Which content type should the automatic reply have. Allowed values are either text/plain or text/html |
|
autoresponder.forwardMail | string | to which address the mail should be forwarded to | |
autoresponder.endDate | string/null | Time of the end of the autoresponder | |
aliases | array | further mail addresses for this account |
webhosting-protectedDirectory
sample object
{
"data": [{
"type": "webhosting-protectedDirectory",
"id": "12345+1",
"attributes": {
"directoryId": 1,
"webhosting": 12345,
"domain": "example.org",
"directory": "/example.org/protected-directory",
"description": "A protected directory"
},
"links": {
"self": "https://api.cloudpit.io/v2/webhosting-protectedDirectory/12345+1"
}
}]
}
Id: +
concatenated key containing the webhosting
and directoryId
Type: webhosting-protectedDirectory
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
directoryId | integer | The internal numeric directory id | read only |
webhosting | integer | The id of the associated webhosting resource | create only |
domain | string | The domain name for which the directory will be protected | create only |
directory | string | The relative directory, starting from the document root of the associated domain | create only |
description | string | A describing text for this protection |
A protected directory can only be created if the associated domain contains a physical webhosting. Therefore no protected directories can be set for deactivated or forwarded domains.
webhosting-protectedDirectory-user
sample object
{
"data": [{
"type": "webhosting-protectedDirectory-user",
"id": "12345+1+user1",
"attributes": {
"username": "user1",
"webhosting": 12345,
"directoryId": 1,
"password": null
},
"links": {
"self": "https://api.cloudpit.io/v2/webhosting-protectedDirectory-user/12345+1+user1"
}
}]
}
Id: +
concatenated key containing the webhosting
, directoryId
and username
Type: webhosting-protectedDirectory-user
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
username | string | The username to be used for the login | create only |
webhosting | integer | The id of the associated webhosting resource | create only |
directoryId | integer | The internal numeric directory id | create only |
password | string | The password for this user | create/update only |
webhosting-subdomain
sample object
{
"data": [{
"type": "webhosting-subdomain",
"id": "12345+subdomain.example.org",
"attributes": {
"domain": "example.org",
"subdomain": "subdomain",
"webhosting": 12345,
"documentRoot": "/subdomain.example.org/httpd",
"status": "active"
},
"links": {
"self": "https://api.cloudpit.io/v2/webhosting-subdomain/12345+subdomain.example.org"
}
}]
}
Id: +
concatenated key containing the webhosting
and a fully qualified subdomain
(subdomain.example.org)
Type: webhosting-subdomain
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
domain | string | The domain name this subdomain ist associated to | create only |
subdomain | string | The subdomain part of the fully qualified subdomain name | create only |
webhosting | integer | The webhosting the associated domain is associated to | create only |
documentRoot | string | The document root of the subdomain (leading and trailing slashes are optional) | |
status | enum | The status of the subdomain (see possible status below) |
Possible status values
The status field is limited to the few status values listed below.
Name | Description |
---|---|
active | The subdomain can be accessed via browser |
locked | The subdomain can't be accessed via browser, but the webhosting will remain |
inactive | The subdomain can't be accessed via browser and no webhosting exists |
API Version 3
A reference for all existing API Version 3 resources.
account
sample object
{
"data": {
"type": "account",
"id": "1000",
"attributes": {
"parent": "1",
"accountType": "reseller",
"active": true,
"createdAt": "2019-07-30T12:17:14+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"user": {
"data": [
{
"type": "user",
"id": "1"
},
{
"type": "user",
"id": "2"
}
],
"links": {
"self": "https://api.cloudpit.io/v3/account/1000/relationships/user",
"related": "https://api.cloudpit.io/v3/account/1000/user"
}
}
},
"links": {
"self": "https://api.cloudpit.io/v3/account/1000"
}
},
"included": {
"type": "user",
"id": "1",
"attributes": {
"account": "1",
"language": "1",
"password": null,
"email": "max.mustermann@example.org",
"emailInvalid": false,
"salutation": "m",
"company": "Musterfirma",
"firstname": "Max",
"lastname": "Mustermann",
"active": true,
"primary": true,
"createdAt": "2019-07-22T09:10:44+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"userlogin": {
"links": {
"self": "https://api.cloudpit.io/v3/user/1/relationships/userlogin",
"related": "https://api.cloudpit.io/v3/user/1/userlogin"
}
}
},
"type": "user",
"id": "2",
"attributes": {
"account": "1",
"language": "1",
"password": null,
"email": "mccullough.chadd@example.org",
"emailInvalid": false,
"salutation": "f",
"company": "Ruecker Inc",
"firstname": "Angeline",
"lastname": "Schneider",
"active": true,
"primary": true,
"createdAt": "2019-07-30T12:17:14+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"userlogin": {
"links": {
"self": "https://api.cloudpit.io/v3/user/2/relationships/userlogin",
"related": "https://api.cloudpit.io/v3/user/2/userlogin"
}
}
}
}
}
Id: the account id
Type: account
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
parent | string/null | parent account id | read only |
accountType | enum | type of account (possible values: reseller, client) | read only |
active | boolean | whether the account users can login into the CloudPit | |
createdAt | string/null | atom timestamp of the account creation | read only |
updatedAt | string/null | atom timestamp of the last account update | read only |
contract
sample object
{
"data": [
{
"type": "contract",
"id": "H12345",
"attributes": {
"ownerAccount": "1",
"assigneeAccount": null,
"assigneeLoginName": null,
"contractType": "hosting",
"name": "WEB S 2.0 v1",
"product": 1,
"contractStartAt": "2019-04-18T00:00:00+02:00",
"contractTerminationAt": null,
"contractCancelationAt": null,
"inclusive": false,
"dnsStatus": null,
"price": 1.19,
"vat": 19,
"currency": "EUR",
"billingInterval": 12,
"serviceType": "plesk",
"maturity": "12M",
"children": [],
"parent": null,
"status": "active",
"demoReference": null
},
"links": {
"self": "http://api.cloudpit.io/v3/contract/H44638"
}
}
]
}
Id: the contract id
Type: contract
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
ownerAccount | string | owner account of the contract | read only |
assigneeAccount | string/null | administrator/user of the contract | |
assigneeLoginName | string/null | login name of athe assigned account | read only |
contractType | string | type of contract | read only |
name | string | name of product | read only |
product | integer | crm product id | create / read only |
contractStartAt | string/null | date of contract start | read only |
contractTerminationAt | string/null | date of contract termination | change only |
contractCancelationAt | string/null | date of contract cancelation | change only |
inclusive | boolean | determines if this contract is an inclusive contract without any price | read only |
dnsStatus | string/null | external, manual, auto | read only |
price | string/null | price of product | read only |
vat | float/null | read only | |
currency | string | currency of the product price | read only |
billingInterval | integer | billing interval of product in month | read only |
serviceType | string | read only | |
maturity | string | read only | |
children | array | read only | |
parent | string | parent contract id | change only |
status | string/null | status of contract (active, termination_pending, ...) | read only |
demoReference | string/null | (optional) Reference id for webcard contract creation | create only |
dns-record
sample object
{
"data":
{
"type": "dns-record",
"id": "1",
"attributes": {
"name": "docs.dogado.net",
"data": "195.34.83.173",
"record-type": "A",
"priority": null,
"ttl": 600,
"dns-zone": "dogado.net"
},
"links": {
"self": "https://api.cloudpit.io/v3/dns-record/1"
}
}
}
Id: the id of the record
Type: dns-record
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
name | string | name of the record | read only |
data | string | data of record | read only |
record-type | enum | type of record (A, AAAA, NS) | read only |
priority | int/null | priority of dns-record | read only |
ttl | int/null | time to live for record | read only |
dns-zone | string | Id of the related dns-zone | read only |
dns-zone
sample object
{
"data":
{
"type": "dns-zone",
"id": "1",
"attributes": {
"domainName": "dogado.net",
"maintained": "manual",
"primaryNameserver": "ns.primary-ns.net",
"nameserver": [],
"adminEmail": "hostmaster@dogado.de",
"refresh": 28800,
"retry": 7200,
"expire": 604800,
"minimum": 600,
"ttl": 600,
"message": null,
"syncedAt": null,
"createdAt": "2020-01-24T07:40:44+01:00",
"updatedAt": "2020-01-24T07:40:45+01:00"
},
"links": {
"self": "https://api.cloudpit.io/v3/dns-zone/1"
}
}
}
Id: the id of the record
Type: dns-zone
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
domainName | string | name of domain | create only |
maintained | enum | maintained state of the record as enum string (automatic, manual, external) | |
primaryNameserver | string | primary nameserver for this DNS zone | |
nameserver | array | other nameservers for this dns zone | |
adminEmail | string | mail address of the responsible person for this DNS zone | read only |
refresh | integer | This value configures how often a name server should check it's primary server to see if there has been any updates to the zone | read only |
retry | integer | This is how long a name server should wait to retry an attempt to get fresh zone | read only |
expire | integer (in seconds) | time at which this record expires | read only |
minimum | integer (in seconds) | Time to live for purposes of negative caching. | read only |
ttl | integer (in seconds) | time to live for this record | read only |
message | string/null | needed for validation | read only |
syncedAt | integer/null | time of the last synchronization as atom timestring | read only |
createdAt | string | time of creation as atom timestring | read only |
updatedAt | string/null | time of update as atom timestring | read only |
dnssec-record
sample object
{
"data":
{
"type": "dnssec",
"id": "1",
"attributes": {
"domainName": "dogado.net",
"status": "inactive"
},
"links": {
"self": "https://api.cloudpit.io/v3/dnssec/1"
}
}
}
Id: the id of the record
Type: dnssec-record
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
domainname | string | domain name of the record | read only |
status | string | status of the record (possible values are: active, inactive, pending.activation, pending.deactivation) | read only |
domainSuggestion
sample object
{
"data": {
"type": "domainSuggestion",
"id": "test-hal.de",
"attributes": {
"keyword": "test",
"sld": "test-hal",
"tld": "de",
"decoded": "test-hal.de"
},
"links": {
"self": "http://api.cloudpit.io/v3/domainSuggestion/test-hal.de"
}
}
}
Id: the domain name with zone
Type: domainSuggestion
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
keyword | string | The keyword this result was generated by | read only |
sld | string | The second level domain (everything except the tld part) | read only |
tld | string | The top level domain | read only |
decoded | string | The fully qualified, decoded domain name | read only |
user
sample object
{
"data": {
"type": "user",
"id": "1",
"attributes": {
"account": "1",
"language": "1",
"password": null,
"email": "max.mustermann@example.org",
"emailInvalid": false,
"salutation": "f",
"company": "Musterfirma",
"firstname": "Max",
"lastname": "Mustermann",
"active": true,
"primary": true,
"createdAt": "2019-07-30T12:17:14+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"user-login": {
"data": [
{
"type": "user-login",
"id": "admin"
},
{
"type": "user-login",
"id": "anahi.runolfsdottir"
}
],
"links": {
"self": "https://api.cloudpit.io/v3/user/1/relationships/user-login",
"related": "https://api.cloudpit.io/v3/user/1/user-login"
}
}
},
"links": {
"self": "https://api.cloudpit.io/v3/user/1"
}
},
"included": [
{
"type": "user-login",
"id": "admin",
"attributes": {
"loginType": "primary",
"user": "1",
"createdAt": "2019-07-30T12:17:14+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"user": {
"links": {
"self": "https://api.cloudpit.io/v3/user-login/admin/relationships/user",
"related": "https://api.cloudpit.io/v3/user-login/admin/user"
}
}
}
},
{
"type": "user-login",
"id": "anahi.runolfsdottir",
"attributes": {
"loginType": "secondary",
"user": "1",
"createdAt": "2019-07-30T12:17:18+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"user": {
"links": {
"self": "https://api.cloudpit.io/v3/user-login/anahi.runolfsdottir/relationships/user",
"related": "https://api.cloudpit.io/v3/user-login/anahi.runolfsdottir/user"
}
}
}
}
]
}
Id: the user id
Type: user
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
account | string | related account id | read only |
string | user email address | ||
salutation | string/null | allowed values: m = male, f = female, d = diverse | |
company | string/null | ||
firstname | string/null | ||
lastname | string/null | ||
language | string | id of the related language instance | |
password | string/null | see global password restrictions | create/change only |
active | boolean | whether the user can login into the CloudPit | |
primary | boolean | whether the user instance is the primary instance for the related account. Can only be false if there already is a primary user for the given account. | |
createdAt | string | atom timestamp of the user creation | read only |
updatedAt | string/null | atom timestamp of the last user update | read only |
The following restrictions apply to all passwords:
- minimum length 8 characters
- maximum length 64 characters
- at least one lowercase character
- at least one uppercase character
- at least one number
- at least one special character
user-login
sample object
{
"data": {
"type": "user-login",
"id": "loginname",
"attributes": {
"loginType": "primary",
"user": "41",
"createdAt": "2019-07-25T14:14:24+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"user": {
"data": {
"type": "user",
"id": "1"
},
"links": {
"self": "https://api.cloudpit.io/v3/user-login/loginname/relationships/user",
"related": "https://api.cloudpit.io/v3/user-login/loginname/user"
}
}
},
"links": {
"self": "https://api.cloudpit.io/v3/user-login/loginname"
}
},
"included": [
{
"type": "user",
"id": "1",
"attributes": {
"account": "1",
"language": "1",
"password": null,
"email": "myrtie@example.org",
"emailInvalid": false,
"salutation": "f",
"company": "Musterfirma",
"firstname": "Myrtie",
"lastname": "Heaney",
"active": true,
"primary": true,
"createdAt": "2019-07-30T12:17:14+02:00",
"updatedAt": "2019-07-30T12:17:14+02:00"
},
"relationships": {
"user-login": {
"links": {
"self": "https://api.cloudpit.io/v3/user/1/relationships/user-login",
"related": "https://api.cloudpit.io/v3/user/1/user-login"
}
}
}
}
]
}
Id: the login name (must be between 6 and 64 characters long)
Type: userlogin
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
user | string | the related user id | read only |
loginType | string | type of the login (primary/secondary) Only secondary logins can be created, changed or deleted. Primary logins are strictly connected to it's user instance. | read only |
createdAt | string | atom timestamp of the user login creation | read only |
updatedAt | string/null | atom timestamp of the user login update | read only |
webcard
sample object
{
"data": [
{
"type": "webcard",
"id": "H12345",
"attributes": {
"ownerAccount": "1",
"assigneeAccount": null,
"assigneeLoginName": null,
"contractType": "hosting",
"name": "Webcard Business",
"product": 1,
"contractStartAt": "2019-04-18T00:00:00+02:00",
"contractTerminationAt": null,
"contractCancelationAt": null,
"inclusive": false,
"dnsStatus": null,
"price": 1.19,
"vat": 19,
"currency": "EUR",
"billingInterval": 12,
"serviceType": "webcard",
"maturity": "12M",
"children": [],
"parent": null,
"status": "active",
"demoReference": null
},
"links": {
"self": "http://api.cloudpit.io/v3/webcard/H44638"
}
}
]
}
Id: the contract id
Type: webcard
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
ownerAccount | string | owner account of the contract | read only |
assigneeAccount | string/null | administrator/user of the contract | |
assigneeLoginName | string/null | login name of athe assigned account | read only |
contractType | string | type of contract | read only |
name | string | name of product | read only |
product | integer | crm product id | create / read only |
contractStartAt | string/null | date of contract start | read only |
contractTerminationAt | string/null | date of contract termination | change only |
contractCancelationAt | string/null | date of contract cancelation | change only |
inclusive | boolean | determines if this contract is an inclusive contract without any price | read only |
dnsStatus | string/null | external, manual, auto | read only |
price | string/null | price of product | read only |
vat | float/null | read only | |
currency | string | currency of the product price | read only |
billingInterval | integer | billing interval of product in month | read only |
serviceType | string | read only | |
maturity | string | read only | |
children | array | read only | |
parent | string | parent contract id | change only |
status | string/null | status of contract (active, termination_pending, ...), see status explanation below | partly read only |
demoReference | string/null | (optional) Reference id for webcard contract creation | create only |
Available status
You can ONLY update the status to active
or suspended
. Other status values are not usable for update actions.
Name | Description |
---|---|
active | |
cancelled | |
pending | the domain provisioning is pending |
suspended | |
terminated | |
termination_pending | |
upgrade_pending |
webcard-basic
sample object
{
"data": [
{
"type": "webcard-basic",
"id": "4ac4f2c2-f5e2-46fb-a8b3-2f5b9142a67a",
"attributes": {
"contract": "H12345",
"subdomain": "john-doe",
"customerData": {
"firstname": "John",
"lastname": "Doe",
"company": "dogado GmbH",
"street": "Antonio-Segni-Straße 11",
"postcode": "44263",
"city": "Dortmund",
"country": "de",
"phone": "+492312866200",
"email": "info@dogado.de"
},
"publishedAt": "2021-04-18T14:28:16+00:00",
"unpublishedAt": "2021-04-18T14:28:16+00:00",
"updatedAt": "2021-04-18T14:28:16+00:00",
"createdAt": "2021-04-18T14:28:16+00:00"
}
}
]
}
Id: the webcard basic id
Type: webcard-basic
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
contract | string/null | the contract reference, in case it has been upgraded to plus, or null if it's a regular basic instance. |
read only |
subdomain | string | the default subdomain under which the webcard should be created. | Must be a valid hostname subdomain for creation. Allowed characters: a-z, 0-9, - . |
customerData | string/null | optional customer data which will be used as prefill data in the editor | |
customerData.firstname | string/null | ||
customerData.lastname | string/null | ||
customerData.company | string/null | ||
customerData.street | string/null | ||
customerData.postcode | string/null | ||
customerData.city | string/null | ||
customerData.country | string/null | two letter ISO country code | |
customerData.phone | string/null | ||
customerData.email | string/null | ||
publishedAt | string/null | ATOM time string of the first publication. Will be null if it has never been published. |
read only |
unpublishedAt | string/null | ATOM time string of the last moment when the customer unpublished the webcard. Will be null if it's currently not forcefully unpublished. |
read only |
updatedAt | string/null | ATOM time string the webcard has last been edited. | read only |
createdAt | string/null | ATOM time string of the webcard creation. | read only |
webcard-sso
sample object
{
"data": {
"type": "webcard-sso",
"id": "550e8400-e29b-11d4-a716-446655440000",
"attributes": {
"contract": "H12345",
"webcardBasic": "550e8400-e29b-11d4-a716-446655440000",
"lifetime": 3600,
"url": "https://webcard.local/sso?token=123456",
"invalidateAfterFirstUse": false
}
}
}
Id: a uuid
Type: webcard-sso
Attributes:
Name | Type | Description | Characteristics |
---|---|---|---|
contract | string/null | webhosting contract id | either contract or webcardBasic is required for creation |
webcardBasic | string/null | webcard basic or plus UUID reference | either contract or webcardBasic is required for creation |
lifetime | integer/null | lifetime of the generated url | read only |
url | string/null | sso url | read only |
invalidateAfterFirstUse | bool/null | if the url can be called once |
Errors
Errors are returned as a part of the response. See http://jsonapi.org/format/#errors for further details.
Sample error
{
"errors": [
{
"status": "404",
"code": "http_404",
"title": "route not found"
}
]
}
General Errors
Code | HTTP Status | Description |
---|---|---|
general_1000 | 500 | a generic error with no specific handling |
general_1001 | 400 | the json payload is malformed |
general_1004 | 401 | Your request could not be authorized. Please check if your authentication credentials are correct and valid. |
http_404 | 404 | the requested route could not be found |
Resource Errors
Code | HTTP Status | Description |
---|---|---|
resource_1000 | 404 | the requested resource could not be found |
resource_1001 | 403 | the client has no access to the requested resource |
resource_1002 | 422 | at least one attribute cannot be changed |
resource_1003 | 422 | the given termination date is invalid |
resource_1004 | 422 | the provided resource id does not match the expected format (e.g concatenated ids) |
resource_1005 | 422 | a filter is missing |
resource_1006 | 422 | the resource does already exists |
resource_1007 | 422 | one of the attributes is invalid (details can be found inside the pointer) |
resource_1008 | 422 | this action is not allowed for this resource |
resource_1014 | 423 | the resource you want to access is currently locked |
Validation Errors
Code | HTTP Status | Description |
---|---|---|
validation_1000 | 422 | the document or attributes format is invalid |
validation_1001 | 422 | one of the attributes to change is read only and cannot be modified |
validation_1002 | 422 | the attribute dependency to another resource does not exist |
validation_1003 | 422 | the attribute value is unique and does already exist |
validation_1004 | 422 | the given password does not match all requirements (see messages in the meta part for further info) |
validation_1005 | 422 | the given password is not secure |
Domain registrar errors
Code | HTTP Status | Description |
---|---|---|
domain_registrar_1000 | 503 | the registrar service authentication failed |
domain_registrar_1001 | 422 | the requested domain TLD does not exist or is invalid |
domain_registrar_1002 | 422 | the postal code of one of the given handles is invalid. |
domain_registrar_1003 | 422 | the phone number of one of the given handles is invalid. |
Domain status errors
Code | HTTP Status | Description |
---|---|---|
domain_status_1000 | 422 | the given domain structure or TLD is invalid. |