Skip to content

API: DNS

Generated from the API's OpenAPI schema. Paths are relative to https://cloud.tebibhost.com. Authentication, errors, pagination and idempotency are on the API overview.

GET/api/v1/projects/{project_id}/dns/zones

List Dns Zones (listDnsZones)

IAM action: dns:DescribeZone

ParameterInTypeDescription
project_id requiredpathstring
limitqueryinteger (nullable)
cursorquerystring (nullable)

Responses

  • 200 OK (Page_DnsZoneOut_)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of Page_DnsZoneOut_
FieldTypeDescription
itemsarray of DnsZoneOut
next_cursorstring (nullable)

POST/api/v1/projects/{project_id}/dns/zones

Create Dns Zone (createDnsZone)

IAM action: dns:CreateZone

ParameterInTypeDescription
project_id requiredpathstring

Request body (JSON, DnsZoneIn)

FieldTypeDescription
descriptionstring Default: "".
domain requiredstringe.g. example.com (non-ASCII names are stored as punycode)
namestring (nullable)Defaults to the domain
tagsobject

Responses

  • 202 Accepted (DnsZoneOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of DnsZoneOut
FieldTypeDescription
created_atstring (date-time)
delegation_okboolean (nullable)The domain's delegation points at our nameservers (checked every few hours once served; null: not checked yet)
descriptionstring
domainstring
idstring
namestring
nameserversarray of stringDelegate the domain to these at your registrar
project_idstring
record_setsinteger
serialinteger (nullable)
servedbooleanOur nameservers answer for the zone
statestring
status"pending_verification" | "active" | "updating" | "error" | "deleting"pending_verification: not served until the domain is proved; error: another account serves the domain, or publishing keeps failing (see status_message)
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)
verificationDnsVerificationOut

GET/api/v1/projects/{project_id}/dns/zones/{zone_id}

Get Dns Zone (getDnsZone)

IAM action: dns:DescribeZone

ParameterInTypeDescription
project_id requiredpathstring
zone_id requiredpathstring

Responses

  • 200 OK (DnsZoneOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of DnsZoneOut
FieldTypeDescription
created_atstring (date-time)
delegation_okboolean (nullable)The domain's delegation points at our nameservers (checked every few hours once served; null: not checked yet)
descriptionstring
domainstring
idstring
namestring
nameserversarray of stringDelegate the domain to these at your registrar
project_idstring
record_setsinteger
serialinteger (nullable)
servedbooleanOur nameservers answer for the zone
statestring
status"pending_verification" | "active" | "updating" | "error" | "deleting"pending_verification: not served until the domain is proved; error: another account serves the domain, or publishing keeps failing (see status_message)
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)
verificationDnsVerificationOut

PATCH/api/v1/projects/{project_id}/dns/zones/{zone_id}

Update Dns Zone (updateDnsZone)

IAM action: dns:UpdateZone

ParameterInTypeDescription
project_id requiredpathstring
zone_id requiredpathstring

Request body (JSON, TagsPatch)

FieldTypeDescription
descriptionstring (nullable)
tagsobject (nullable)

Responses

  • 200 OK (DnsZoneOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of DnsZoneOut
FieldTypeDescription
created_atstring (date-time)
delegation_okboolean (nullable)The domain's delegation points at our nameservers (checked every few hours once served; null: not checked yet)
descriptionstring
domainstring
idstring
namestring
nameserversarray of stringDelegate the domain to these at your registrar
project_idstring
record_setsinteger
serialinteger (nullable)
servedbooleanOur nameservers answer for the zone
statestring
status"pending_verification" | "active" | "updating" | "error" | "deleting"pending_verification: not served until the domain is proved; error: another account serves the domain, or publishing keeps failing (see status_message)
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)
verificationDnsVerificationOut

DELETE/api/v1/projects/{project_id}/dns/zones/{zone_id}

Delete Dns Zone (deleteDnsZone)

Stops serving the zone and deletes its record sets with it.

IAM action: dns:DeleteZone

ParameterInTypeDescription
project_id requiredpathstring
zone_id requiredpathstring

Responses

  • 202 Accepted (DnsZoneOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of DnsZoneOut
FieldTypeDescription
created_atstring (date-time)
delegation_okboolean (nullable)The domain's delegation points at our nameservers (checked every few hours once served; null: not checked yet)
descriptionstring
domainstring
idstring
namestring
nameserversarray of stringDelegate the domain to these at your registrar
project_idstring
record_setsinteger
serialinteger (nullable)
servedbooleanOur nameservers answer for the zone
statestring
status"pending_verification" | "active" | "updating" | "error" | "deleting"pending_verification: not served until the domain is proved; error: another account serves the domain, or publishing keeps failing (see status_message)
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)
verificationDnsVerificationOut

GET/api/v1/projects/{project_id}/dns/zones/{zone_id}/export

Export Dns Zone (exportDnsZone)

The zone as a BIND zone file (SOA serial as last published).

IAM action: dns:GetZoneFile

ParameterInTypeDescription
project_id requiredpathstring
zone_id requiredpathstring

Responses

  • 200 OK (DnsZoneFileOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of DnsZoneFileOut
FieldTypeDescription
zone_filestring

POST/api/v1/projects/{project_id}/dns/zones/{zone_id}/import

Import Dns Zone (importDnsZone)

Add the record sets of a BIND zone file. The SOA and the apex NS records are skipped (TebibHost serves its own), as are types we don't host; the response lists them.

IAM action: dns:ImportZoneFile

ParameterInTypeDescription
project_id requiredpathstring
zone_id requiredpathstring

Request body (JSON, DnsZoneFileIn)

FieldTypeDescription
delete_missingbooleanAlso delete the zone's record sets the file doesn't have (default: add and replace the file's record sets, keep the rest) Default: false.
zone_file requiredstringBIND zone file text

Responses

  • 200 OK (DnsImportOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of DnsImportOut
FieldTypeDescription
createdinteger
deletedinteger
skippedarray of DnsSkippedOut
unchangedinteger
updatedinteger

GET/api/v1/projects/{project_id}/dns/zones/{zone_id}/records

List Dns Records (listDnsRecords)

IAM action: dns:DescribeRecord

ParameterInTypeDescription
project_id requiredpathstring
zone_id requiredpathstring
namequerystring (nullable)
typequerystring (nullable)
limitqueryinteger (nullable)
cursorquerystring (nullable)

Responses

  • 200 OK (Page_DnsRecordOut_)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of Page_DnsRecordOut_
FieldTypeDescription
itemsarray of DnsRecordOut
next_cursorstring (nullable)

POST/api/v1/projects/{project_id}/dns/zones/{zone_id}/records

Create Dns Record (createDnsRecord)

IAM action: dns:CreateRecord

ParameterInTypeDescription
project_id requiredpathstring
zone_id requiredpathstring

Request body (JSON, DnsRecordIn)

FieldTypeDescription
descriptionstring Default: "".
namestringRelative to the zone (www, _dmarc, *); @ is the apex Default: "@".
ttlintegerSeconds Default: 3600.
type required"A" | "AAAA" | "CNAME" | "MX" | "TXT" | "SRV" | "CAA" | "NS"
values requiredarray of stringPresentation format, one per record: '192.0.2.1', '10 mail.example.com', 'v=spf1 -all', '0 issue "letsencrypt.org"'

Responses

  • 202 Accepted (DnsRecordOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of DnsRecordOut
FieldTypeDescription
created_atstring (date-time)
descriptionstring
fqdnstring
idstring
namestringRelative to the zone; @ is the apex
ttlinteger
typestring
updated_atstring (date-time)
valuesarray of string
zone_idstring

GET/api/v1/projects/{project_id}/dns/zones/{zone_id}/records/{record_id}

Get Dns Record (getDnsRecord)

IAM action: dns:DescribeRecord

ParameterInTypeDescription
project_id requiredpathstring
zone_id requiredpathstring
record_id requiredpathstring

Responses

  • 200 OK (DnsRecordOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of DnsRecordOut
FieldTypeDescription
created_atstring (date-time)
descriptionstring
fqdnstring
idstring
namestringRelative to the zone; @ is the apex
ttlinteger
typestring
updated_atstring (date-time)
valuesarray of string
zone_idstring

PATCH/api/v1/projects/{project_id}/dns/zones/{zone_id}/records/{record_id}

Update Dns Record (updateDnsRecord)

IAM action: dns:UpdateRecord

ParameterInTypeDescription
project_id requiredpathstring
zone_id requiredpathstring
record_id requiredpathstring

Request body (JSON, DnsRecordPatch)

FieldTypeDescription
descriptionstring (nullable)
ttlinteger (nullable)
valuesarray of string (nullable)

Responses

  • 202 Accepted (DnsRecordOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of DnsRecordOut
FieldTypeDescription
created_atstring (date-time)
descriptionstring
fqdnstring
idstring
namestringRelative to the zone; @ is the apex
ttlinteger
typestring
updated_atstring (date-time)
valuesarray of string
zone_idstring

DELETE/api/v1/projects/{project_id}/dns/zones/{zone_id}/records/{record_id}

Delete Dns Record (deleteDnsRecord)

IAM action: dns:DeleteRecord

ParameterInTypeDescription
project_id requiredpathstring
zone_id requiredpathstring
record_id requiredpathstring

Responses

  • 202 Accepted (DnsRecordOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of DnsRecordOut
FieldTypeDescription
created_atstring (date-time)
descriptionstring
fqdnstring
idstring
namestringRelative to the zone; @ is the apex
ttlinteger
typestring
updated_atstring (date-time)
valuesarray of string
zone_idstring

POST/api/v1/projects/{project_id}/dns/zones/{zone_id}/verify

Verify Dns Zone (verifyDnsZone)

Check the domain's delegation or TXT record now, instead of at the next scheduled check.

IAM action: dns:VerifyZone

ParameterInTypeDescription
project_id requiredpathstring
zone_id requiredpathstring

Responses

  • 202 Accepted (DnsZoneOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of DnsZoneOut
FieldTypeDescription
created_atstring (date-time)
delegation_okboolean (nullable)The domain's delegation points at our nameservers (checked every few hours once served; null: not checked yet)
descriptionstring
domainstring
idstring
namestring
nameserversarray of stringDelegate the domain to these at your registrar
project_idstring
record_setsinteger
serialinteger (nullable)
servedbooleanOur nameservers answer for the zone
statestring
status"pending_verification" | "active" | "updating" | "error" | "deleting"pending_verification: not served until the domain is proved; error: another account serves the domain, or publishing keeps failing (see status_message)
status_messagestring
tagsobject
trnstring
updated_atstring (date-time)
verificationDnsVerificationOut

POST/api/v1/projects/{project_id}/dns/zones/{zone_id}/vm-records

Create Dns Vm Records (createDnsVmRecords)

A and/or AAAA records for a VM's public addresses, set to the addresses it has now (a copy: they don't follow the VM if its public IP moves). Replaces existing A/AAAA sets at the name.

IAM action: dns:CreateRecord

ParameterInTypeDescription
project_id requiredpathstring
zone_id requiredpathstring

Request body (JSON, DnsVmRecordsIn)

FieldTypeDescription
ipv4booleanAn A record for the VM's public IPv4 address Default: true.
ipv6booleanAn AAAA record for the VM's public IPv6 address Default: true.
name requiredstringRelative to the zone; @ is the apex
ttlintegerSeconds Default: 3600.
vm_id requiredstring

Responses

  • 202 Accepted (array of DnsRecordOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)