Chief Tools Logo
Domain Chief API v1

Endpoints for managing domains.


List domains

GET
https://domain.chief.app/api/v1
/domains
OpenID Connect
or
Bearer (ctp_*)
or
Bearer (ctt_*)

List all domains for the authenticated team.

List domains › query Parameters

expand[]
​string[]

Expand related resources.

Enum values:
tld
contacts
notices
query
​string · minLength: 1

Search query.

status
​string · enum

Filter by domain status.

Enum values:
active
failed
deleted
requested
pending_payment
scheduled
restorable
restriction
​

Filter by active registry restriction. Use any for domains with any restriction, or a restriction type such as suspended.

sort
​string[] · maxItems: 5 · style: form

Sort by up to five fields, separated by commas. Prefix a field with - for descending order.

Enum values:
name
-name
domain
-domain
tld
-tld
renews_at
-renews_at
Default: ["id"]
page
​integer · min: 1
Default: 1
per_page
​integer · min: 1 · max: 100
Default: 50
​object

Search metadata key-value pairs. Only exact matches are supported.

List domains › Responses

Paginated set of Domain

​Domain[] · required
​object · required
​object · required

List specific domains

POST
https://domain.chief.app/api/v1
/domains/list
OpenID Connect
or
Bearer (ctp_*)
or
Bearer (ctt_*)

Retrieve up to 100 domains by name or ID. Results preserve the requested order, but domains that do not exist or are not accessible to the authenticated team are omitted. Use expand[]=notices to include each domain's current notices.

List specific domains › Request Body

domains
​string[] · minItems: 1 · maxItems: 100 · required

List of domain names or IDs to retrieve.

expand
​string[]

Expand related resources.

Enum values:
tld
contacts
notices

List specific domains › Responses

Array of Domain

​Domain[] · required

Show domain

GET
https://domain.chief.app/api/v1
/domains/{domainNameOrId}
OpenID Connect
or
Bearer (ctp_*)
or
Bearer (ctt_*)

Show a single domain for the authenticated team.

Show domain › path Parameters

domainNameOrId
​string · required

full domain name or ID

Show domain › query Parameters

expand[]
​string[]

Expand related resources.

Enum values:
tld
contacts

Show domain › Responses

DomainWithNotices

​DomainWithNotices · required

Update a domain

PATCH
https://domain.chief.app/api/v1
/domains/{domainNameOrId}
OpenID Connect
or
Bearer (ctp_*)
or
Bearer (ctt_*)

Update properties of a single domain for the authenticated team.

Only the properties that are provided will be updated. If you omit a property it will not be changed.

Update a domain › path Parameters

domainNameOrId
​string · required

full domain name or ID

Update a domain › query Parameters

expand[]
​string[]

Expand related resources.

Enum values:
tld
contacts

Update a domain › Request Body

is_locked
​boolean

Lock or unlock the domain. If the domain is locked, it cannot be transferred to another registrar. Note that not all domains support locking. If the domain does not support locking, the request will be rejected. Check the is_lockable property on the domain to see if it supports locking.

is_using_hosted_dns
​boolean

Enable hosted DNS, or disable it to revert to the default nameservers. When disabling hosted DNS you may also provide custom nameservers.

is_autorenew_enabled
​boolean

Enabled or disables auto-renewal for the domain.

is_dnssec_enabled
​boolean

Can be used to disable DNSSEC for the domain. If you want to enable DNSSEC use dnssec_keys and provide at least one key.

is_whois_privacy_enabled
​boolean

Enable or disable WHOIS privacy for the domain. This is not supported by all TLDs, check supports_whois_privacy first before setting this attribute. If you disable WHOIS privacy the team's default contacts will be used for all handle types. Alternatively, you can provide contacts to set custom contacts for the domain which will also disable WHOIS privacy.

Cannot be provided together with contacts.

​object

Map of contacts for the domain. Only the provided contact types will be updated, any omitted contact types will remain unchanged. When you provide contact handles that are not supported by the TLD they will be ignored.

If you want to reset all contacts to the team's default provide an empty object.

If WHOIS privacy is enabled for the domain it will be disabled.

Cannot be provided together with is_whois_privacy_enabled.

​object[]

Enable or disable DNSSEC for the domain. This is not supported by all TLDs, check supports_dnssec first before setting this attribute. If you enable DNSSEC you need to provide at least one DNSSEC key. To disable DNSSEC provide an empty array.

Cannot be provided together with is_dnssec_enabled.

​array | null · minItems: 2 · maxItems: 8

Custom nameservers to use when hosted DNS is disabled. You need to provide at least two nameservers.

​object

Optional metadata to attach to the domain. Metadata keys must be strings and cannot exceed 40 characters or contain [ or ] characters. Keys starting with domainchief: are read-only system metadata: they may be returned in responses, but are ignored in write requests and do not count towards the 50 key limit. Metadata values must be strings and cannot exceed 500 characters. A domain cannot have more than 50 metadata keys.

To remove a metadata key, set its value to an empty string. To remove all metadata, set the metadata field to an empty object: {}.

Example: {"key1":"value1","key2":"value2"}

Update a domain › Responses

DomainWithNotices

​DomainWithNotices · required

Delete a domain

DELETE
https://domain.chief.app/api/v1
/domains/{domainNameOrId}
OpenID Connect
or
Bearer (ctp_*)
or
Bearer (ctt_*)

Request immediate deletion for a single domain for the authenticated team.

This action may not always be possible to be reversed and may involve extra costs.

Delete a domain › path Parameters

domainNameOrId
​string · required

full domain name or ID

Delete a domain › Responses

DomainWithNotices

​DomainWithNotices · required

Review domain renewal options

GET
https://domain.chief.app/api/v1
/domains/{domainNameOrId}/renew
OpenID Connect
or
Bearer (ctp_*)
or
Bearer (ctt_*)

Lists the years that can currently be added to this domain and their total prices. An empty list means manual renewal is unavailable. Prices are in EUR cents excluding VAT.

Review domain renewal options › path Parameters

domainNameOrId
​string · required

full domain name or ID

Review domain renewal options › Responses

DomainRenewalQuote

​DomainRenewalQuote · required

Request a domain renewal

POST
https://domain.chief.app/api/v1
/domains/{domainNameOrId}/renew
OpenID Connect
or
Bearer (ctp_*)
or
Bearer (ctt_*)

Confirm one of the options returned by GET /domains/{domainNameOrId}/renew. The domain will renew asynchronously. For prepaid customers, a priced renewal waits for payment through the existing web checkout before it is sent to the registrar; the returned domain notice indicates when payment is required.

This endpoint can create a charge or invoice. The registration term end changes only after the registrar confirms the renewal.

Request a domain renewal › path Parameters

domainNameOrId
​string · required

full domain name or ID

Request a domain renewal › Request Body

years
​integer · min: 1 · required

Number of whole years to add, chosen from the renewal options.

confirmed_price
​integer · min: 0 · required

Total price from the selected option, in EUR cents excluding VAT.

expected_expires_at
​string · required

Current registration term end returned by the renewal options endpoint.

Request a domain renewal › Responses

The renewal request was accepted. A priced prepaid renewal waits for payment; other accepted renewals are processed asynchronously.

​DomainWithNotices · required

Restore a domain after confirming its price

POST
https://domain.chief.app/api/v1
/domains/{domainNameOrId}/restore
OpenID Connect
or
Bearer (ctp_*)
or
Bearer (ctt_*)

Restore a domain after confirming its price › path Parameters

domainNameOrId
​string · required

Restore a domain after confirming its price › Request Body

confirmed_price
​integer · min: 0 · required

Restore a domain after confirming its price › Responses

DomainWithNotices

​DomainWithNotices · required