# DNA Rest API > Reseller integration guide for the DNA Rest API. Register and manage domain names, contacts, DNS, SSL certificates and hosting from your own system. JSON over HTTPS; any HTTP client works, there is no SDK. Facts every integration needs: - Base URL: `https://api.domainresellerapi.com/api/v1/`. The version is part of the path; `v1` keeps working when a new version arrives. - Two headers are mandatory on every request: `X-API-KEY` (your API key) and `__reseller` (your reseller ID, a GUID). Add `Content-Type: application/json` when there is a body, and preferably a unique `X-Correlation-ID`. Call the API from a server only, never from a browser or app. - Errors: branch on `error.code`, show `message`, log `details`; never branch on the HTTP status alone. A domain that does not exist or is not yours is HTTP 404 with `Dna.DomainService:Domain:10007`; a 404 with no error code means the URL was wrong. - Rate limits per API key: 5 requests per second overall and 2 per second for search, otherwise HTTP 429 with `Retry-After`. Above a per-area points quota, responses are slowed down (up to 5 s), not rejected. - Test environment: `https://ote.domainresellerapi.com`, same paths, same reseller ID, but your separate test API key. Registry operations are simulated and your balance is not charged. Every page below is Markdown. The whole guide in one file: https://www.domainnameapi.com/docs/llms-full.txt ## Get started Base URL, authentication, request and error format, and rate limits. Read these first. - [Introduction](https://www.domainnameapi.com/docs/getting-started.md): What the DNA Rest API does, its base URL and versioning, the test environment, and four decisions to make before you write any code. - [Authentication](https://www.domainnameapi.com/docs/getting-started/authentication.md): The two headers every request needs (X-API-KEY and __reseller), what authentication failures look like, and what your key can reach. - [Requests and responses](https://www.domainnameapi.com/docs/getting-started/requests-and-responses.md): How to format requests, what each HTTP status means, and why you should branch on the error code rather than the status. - [Error format](https://www.domainnameapi.com/docs/getting-started/errors.md): The envelope every error uses, how validation and insufficient-balance errors look, and how to read an error code. - [Rate limits](https://www.domainnameapi.com/docs/getting-started/rate-limits.md): The two limits on your API key: a per-second cap that answers HTTP 429, and a per-minute points budget that slows responses down. ## Contacts The people behind a domain: the four roles, reusable handle codes, and e-mail verification. - [Contacts](https://www.domainnameapi.com/docs/contacts.md): The four contact roles, handle codes, and the field-by-field rules for contact data, including phone number format. - [Create, read and update contacts](https://www.domainnameapi.com/docs/contacts/endpoints.md): Create a contact, read it together with its open verifications, and update it on every domain that uses it. - [Contact verification](https://www.domainnameapi.com/docs/contacts/verification.md): Why an unverified contact e-mail suspends a domain after 15 days, how to check and resend verification, and how to change details mid-verification. ## Domains Check availability, register, renew, transfer, and manage a domain afterwards. - [Domains](https://www.domainnameapi.com/docs/domains.md): Rules shared by every domain call: name format, period, name servers, extra registry fields (tldAttributes), the trustee service and how paid operations work. - [Check availability](https://www.domainnameapi.com/docs/domains/availability.md): Check whether one domain, or up to 30 at once, is available and what it would cost. - [Register a domain](https://www.domainnameapi.com/docs/domains/register.md): Register a domain with inline contact details or with handle codes, and how contactType is interpreted by each endpoint. - [Renew a domain](https://www.domainnameapi.com/docs/domains/renew.md): Renew safely: check first, understand the auto-renew and renew periods, and every reason a renewal can be refused. - [Transfer a domain in](https://www.domainnameapi.com/docs/domains/transfer.md): Transfer a domain to your account: check with the authorisation code, start the transfer, then poll until the registry completes it. - [Read domain information](https://www.domainnameapi.com/docs/domains/info.md): Read everything about one domain, or page through every domain in your account to keep your own database in sync. - [Lock, privacy and authorisation code](https://www.domainnameapi.com/docs/domains/lock-privacy-auth-code.md): Turn the transfer lock and WHOIS privacy on or off, and generate a new transfer authorisation code. - [Change a domain's contacts](https://www.domainnameapi.com/docs/domains/contacts.md): Replace a domain's contacts with inline details or handle codes, and when that counts as an ownership change. - [Forwarding](https://www.domainnameapi.com/docs/domains/forwarding.md): Redirect a domain to another URL without running a web server, read the forward back, and remove it. - [Restore a deleted domain](https://www.domainnameapi.com/docs/domains/restore.md): Recover a deleted domain while it is still in the registry's redemption period. - [Registry documents](https://www.domainnameapi.com/docs/domains/documents.md): Upload and track the documents some extensions, Turkish third-level domains in particular, require before approving a registration or ownership change. ## Name servers & DNSSEC Delegation: which name servers answer for a domain, host (glue) records, and DS records. - [Name servers](https://www.domainnameapi.com/docs/name-servers.md): Change which name servers answer for a domain, and how an active DNSSEC setup affects the change. - [Host (glue) records](https://www.domainnameapi.com/docs/name-servers/hosts.md): Create, update and delete host (glue) records for name servers that live under the domain they serve, and the two registry models behind them. - [DNSSEC](https://www.domainnameapi.com/docs/name-servers/dnssec.md): Publish, read and remove DS records at the registry, in the order that keeps the domain online. ## DNS records Manage the records inside a zone hosted on our name servers: A, MX, TXT, CNAME and the rest. - [DNS records](https://www.domainnameapi.com/docs/dns-records.md): How zones on our name servers work: record sets, zone creation on first use, publishing, propagation and name matching. - [Manage DNS records](https://www.domainnameapi.com/docs/dns-records/endpoints.md): Read, add, update and delete record sets, the value format of every record type, and how to point a domain at our name servers. - [Worked example: moving a live site to our DNS](https://www.domainnameapi.com/docs/dns-records/example.md): Step by step: move a live website and Google Workspace mail to our DNS without an outage. ## SSL certificates The most order-sensitive part of the API: generate a CSR, buy, configure, poll for issuance, download. - [SSL certificates](https://www.domainnameapi.com/docs/ssl.md): The certificate lifecycle from CSR to issuance, the three rules behind most SSL errors, and how to choose a package. - [Prepare: CSR and approvers](https://www.domainnameapi.com/docs/ssl/prepare.md): Generate or inspect a CSR, and list the approver e-mail addresses a certificate can be validated with. None of these calls charge. - [Buy a certificate](https://www.domainnameapi.com/docs/ssl/buy.md): Buy a certificate. This is the step that debits your balance and starts the 7-day configuration window. - [Configure a certificate](https://www.domainnameapi.com/docs/ssl/configure.md): Submit the CSR, contact and validation method that open the order with the certificate authority. - [Issuance and download](https://www.domainnameapi.com/docs/ssl/issue.md): Poll until the certificate is issued, then read its details and download the certificate files. - [Reissue, revoke and renew](https://www.domainnameapi.com/docs/ssl/reissue-revoke-renew.md): Reissue a certificate with a new key or approver, revoke it, and renew it before it expires. ## Hosting Buy and provision shared hosting accounts. Creation is asynchronous: you get HTTP 202 and poll. - [Hosting](https://www.domainnameapi.com/docs/hosting.md): Buy and provision shared hosting asynchronously: pick a package, create the account, poll its status, and look it up later. ## Catalogue & billing What you can sell and at what price, what you have bought, and what you have left to spend. - [TLD catalogue](https://www.domainnameapi.com/docs/catalogue.md): Every extension you can sell, with its periods, prices, features and required extra fields, in one free call. Fetch it once and cache it. - [SSL catalogue and prices](https://www.domainnameapi.com/docs/catalogue/ssl.md): Certificate packages and their prices, and the exact price for any product, operation and period at checkout. - [Orders](https://www.domainnameapi.com/docs/catalogue/orders.md): Read one order and its line items. Every paid operation creates an order, failed attempts included. - [Balance](https://www.domainnameapi.com/docs/catalogue/balance.md): Read your current balances and the ledger of every balance movement, for reconciliation. ## TLDs One page per extension: terms, transfer rules, extra registry fields and ready-to-send JSON payloads. - [TLDs](https://www.domainnameapi.com/docs/tlds.md): Every extension we sell, with its terms, transfer rules and special requirements. Each one links to a page with ready-to-send JSON payloads. - Any one extension: `https://www.domainnameapi.com/docs/tlds/{name}.md`, for example [.abogado](https://www.domainnameapi.com/docs/tlds/abogado.md) ## Reference Every endpoint, error code and status value in one place. - [All endpoints](https://www.domainnameapi.com/docs/reference/endpoints.md): Every endpoint on one page, grouped by section, with its method, path, what it does and a link to its request, response and errors. - [Error codes](https://www.domainnameapi.com/docs/reference/errors.md): Every error code by area, with what it means and what to do, and the codes you must never retry. - [Status values](https://www.domainnameapi.com/docs/reference/status-values.md): Every status value in one place: domain status and reason, grace periods, contact roles, order and product types, and the quota cost of each endpoint.