DNFirst Domain Name Registration API (1.0.0)

Download OpenAPI specification:

Register/Update/Renew Domain Names

Account

Account Info

Get details of your current account

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "name": "John Doe",
  • "organization": "Example Inc.",
  • "balance": -1000,
  • "domains": {
    }
}

Domain Name Registration

TLD List

Get the full list of available TLDs

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Domain List

Get a list of domains on the account

Authorizations:
BearerAuth
query Parameters
offset
integer
Default: 0
Example: offset=50

The offset number to retrieve.

limit
integer <= 500
Default: 50
Example: limit=250

The number of domain results per query.

includeHostServers
boolean
Default: false

Include host servers in the response

includeNameServers
boolean
Default: false

Include name servers in the response

pendingEmailVerification
boolean
Default: false

Only return domains that are pending email verification

pendingTransferAway
boolean
Default: false

Only return domains that are pending transfer away

Responses

Response samples

Content type
application/json
Example
[
  • {
    },
  • {
    },
  • {
    }
]

Domain Search

Search domain availability for one or more domain names.

Authorizations:
BearerAuth
Request Body schema: application/json
required
domains
Array of strings (DomainName)
premiumDomains
boolean

Enable support for premium priced domain names

feeType
string (FeeType)
Enum: "create" "renew" "transfer" "restore"

Responses

Request samples

Content type
application/json
{
  • "domains": [
    ]
}

Response samples

Content type
application/json
{
  • "domains": {
    }
}

Register domain

Register a new domain name

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

Request Body schema: application/json
required
years
required
integer (Years) [ 1 .. 10 ]

Number of years to register the domain for

nameServers
Array of strings (NameServer)
required
object (RegistrantContact)

Contact details for the registrant

redactRegistrantDetails
boolean
Default: true

Redact contact details from public view

autoRenew
boolean
Default: false
idnLanguage
string

Responses

Request samples

Content type
application/json
{
  • "domainName": "example.com",
  • "years": 1,
  • "nameServers": [
    ],
  • "registrantContact": {
    }
}

Response samples

Content type
application/json
{
  • "domainNameRegistrationId": "3be6453c-03eb-4357-ae5a-984a0e574a54",
  • "created": "2025-01-02 03:04:05 GMT",
  • "expires": "2026-01-02 03:04:05 GMT",
  • "nameServers": [
    ],
  • "registrantContact": {
    }
}

Update Domain

Update values on a domain registration

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

Request Body schema: application/json
required
hold
boolean

Apply the clientHold flag to the domain, removing it from being published in the root name servers.

locked
boolean

Apply the clientTransferProhibited flag to the domain, preventing domain registrar transfer requests.

autoRenew
boolean
nameServers
Array of strings (NameServer)
Array of objects (dnssec)

DNSSEC keys. Send an Empty array to delete existing keys

object (RegistrantContact)

Contact details for the registrant

redactRegistrantDetails
boolean

Redact contact details from public view

Responses

Request samples

Content type
application/json
{
  • "domainName": "example.com",
  • "years": 1,
  • "nameServers": [
    ],
  • "registrantContact": {
    }
}

Response samples

Content type
application/json
{
  • "domainNameRegistrationId": "3be6453c-03eb-4357-ae5a-984a0e574a54",
  • "created": "2025-01-02 03:04:05 GMT",
  • "expires": "2026-01-02 03:04:05 GMT",
  • "nameServers": [
    ],
  • "registrantContact": {
    }
}

Delete Domain

Delete a domain registration

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

Responses

Response samples

Content type
application/json
{
  • "lang": "en-US",
  • "errorCode": 0,
  • "title": "string",
  • "description": [
    ]
}

Check Domain

Get availability and fee of a domain name

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

query Parameters
feeType
string (FeeType)
Enum: "create" "renew" "transfer" "restore"

The fee type to retrieve.

Responses

Response samples

Content type
application/json
{
  • "domainName": "example.com",
  • "available": true,
  • "reserved": true,
  • "error": "string",
  • "premium": true,
  • "fee": null,
  • "feeType": "create",
  • "feeCategory": "string"
}

Get Info

Get the details of an existing domain name registration

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

Responses

Response samples

Content type
application/json
{
  • "domainNameRegistrationId": "a54a57ca-36f8-421b-a6b4-2e8f26858a4c",
  • "created": "2023-10-29",
  • "updated": "2023-10-29",
  • "expires": "2023-10-29",
  • "deactivated": "2023-10-29",
  • "restoreUntil": "2023-10-29",
  • "lock": true,
  • "autoRenew": true,
  • "nameServers": [
    ],
  • "hostServers": [
    ],
  • "registrantContact": {
    },
  • "registrantEmailVerification": {
    },
  • "registrantRedacted": true,
  • "transfer": {
    },
  • "dnssec": [
    ]
}

Renew

Renew a domain name registration

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

Request Body schema: application/json
required
years
required
integer (Years) [ 1 .. 10 ]

Whole number of years to register/renew

newExpiration
required
string <date> (Date)
amount
required
number <float> (Amount)

Transaction Amount

Responses

Request samples

Content type
application/json
{
  • "years": 1,
  • "newExpiration": "2026-12-13",
  • "amount": 43.21
}

Response samples

Content type
application/json
{
  • "expires": "2026-12-13",
  • "amount": 43.21
}

Transfer domain

Transfer a domain name

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

Request Body schema: application/json
required
nameServers
required
Array of strings (NameServer)
required
object (RegistrantContact)

Contact details for the registrant

autoRenew
boolean
Default: false
idnLanguage
string
authCode
required
string

Responses

Request samples

Content type
application/json
{
  • "domainName": "example.com",
  • "authCode": "abcd1234&*()",
  • "nameServers": [
    ],
  • "registrantContact": {
    }
}

Response samples

Content type
application/json
{
  • "lang": "en-US",
  • "errorCode": 0,
  • "title": "string",
  • "description": [
    ]
}

Update transfer of domain

Update the transfer of a domain to rerequest at the registry and/or update authorization code

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

Request Body schema: application/json
required
authCode
string

Responses

Request samples

Content type
application/json
{
  • "authCode": "1234zyx##"
}

Response samples

Content type
application/json
{
  • "lang": "en-US",
  • "errorCode": 0,
  • "title": "string",
  • "description": [
    ]
}

Send Email Verification

Send the Verification email to the registrant contact

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

Responses

Response samples

Content type
application/json
{
  • "lang": "en-US",
  • "errorCode": 0,
  • "title": "string",
  • "description": [
    ]
}

Check Auth Code

Check the Auth code for a Domain

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

Request Body schema: application/json
required
authCode
string

Responses

Request samples

Content type
application/json
{
  • "authCode": "string"
}

Response samples

Content type
application/json
{
  • "lang": "en-US",
  • "errorCode": 0,
  • "title": "string",
  • "description": [
    ]
}

Approve Transfer domain

Approve the transfer of a domain name away from the current owner

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

Responses

Response samples

Content type
application/json
{
  • "lang": "en-US",
  • "errorCode": 0,
  • "title": "string",
  • "description": [
    ]
}

Reject Transfer domain

Reject the transfer of a domain name away from the current owner

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

Responses

Response samples

Content type
application/json
{
  • "lang": "en-US",
  • "errorCode": 0,
  • "title": "string",
  • "description": [
    ]
}

Restore

Restore a domain name registration

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

Responses

Response samples

Content type
application/json
{
  • "lang": "en-US",
  • "errorCode": 0,
  • "title": "string",
  • "description": [
    ]
}

DNS

Get DNS Records

Get all DNS records for the name

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Replace DNS Records

Replace all DNS records on the Domain

Authorizations:
BearerAuth
path Parameters
domainName
required
string (DomainName)
Example: example.com

Domain Name

Request Body schema: application/json
required
Array
name
string
type
string
Enum Description
A

A

AAAA

AAAA

MX

MX

CNAME

CNAME

TXT

TXT

SRV

SRV

CAA

CAA

CERT

CERT

HTTPS

HTTPS

LOC

LOC

NAPTR

NAPTR

NS

NS

SMIMEA

SMIMEA

SSHFP

SSHFP

SVCB

SVCB

TLSA

TLSA

URL

URL Forwarding (Non-Standard Record)

PROXY

Proxy record will load the remote content masked. (Non-Standard Record, Additional Fees May Apply)

ttl
integer
records
Array of strings

One or more records for this hostname + type combination.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "lang": "en-US",
  • "errorCode": 0,
  • "title": "string",
  • "description": [
    ]
}