The Domainyze REST API gives your scripts and systems the same view of your account as the dashboard: your watchlist and portfolio, each domain's stage, forecast and DNS, your alert history, and the actions to add, configure, pause, move, group, remove and re-check domains.
The API is included on the Business plan. On other plans, requests are refused with the code plan_required. If you want an AI assistant rather than your own code to read your account, the MCP server is available on Pro too.
1. Create a token
Go to Settings → API & MCP, give the token a name you will recognise later (for example "Reporting script"), tick only the scopes it needs, choose how long it lasts, and choose Create token.
The token is shown once. Copy it into your secret store straight away; Domainyze keeps only an identifier to revoke it by and cannot show it again. Managing API tokens covers scopes, expiry and revoking.
2. Make your first request
Every request goes to https://domainyze.com/api/v1 and carries the token in the Authorization header:
curl https://domainyze.com/api/v1/me \
-H "Authorization: Bearer $DOMAINYZE_TOKEN"
The answer describes your account: plan, how many domains you can still add, how many lookups (scans and domain tools) remain today, and the scopes this token holds. If it answers 401, the token is missing, mistyped, expired or revoked.
Never put the token in a URL or query string. The API reads it only from the header.
3. Explore the reference
The full reference, with every field, parameter and example response, is at developers.domainyze.com. It is generated from the API itself, so it is always current, and you can try requests from the page with your own token.
What you can do
| Endpoint | What it does | Scope |
|---|---|---|
GET /me |
Your account, limits and token scopes | any |
GET /domains?lane=watchlist or lane=portfolio |
A page of your domains, with the same filters as the dashboard | domains:read |
GET /domains/{domain} |
One domain in full | domains:read |
GET /domains/{domain}/dns |
Its DNS records and email-authentication posture (portfolio) | domains:read |
GET /groups |
Your domain groups | domains:read |
GET /alerts |
Your alert history, newest first | alerts:read |
POST /scan |
Read a name you do not monitor, once | scan |
POST /tools/{tool} |
Run a domain tool (availability, whois, expiry, age, ssl, dns, dns-propagation, email-deliverability, typosquats, name-ideas, bulk-check, punycode) | scan |
POST /domains |
Add up to 100 names to a lane | domains:write |
PATCH /domains/{domain} |
Change its alert and monitoring settings | domains:write |
PATCH /domains/{domain}/dns-preferences |
Change its DNS alert settings | domains:write |
POST /domains/pause, /resume, /move, /group |
Act on up to 100 names at once | domains:write |
DELETE /domains/{domain} |
Stop monitoring it | domains:write |
POST /domains/{domain}/check |
Queue a fresh check | domains:write |
How requests work
- Address a domain by its full name, such as
example.co.uk. A name you do not monitor answers404, exactly as one that does not exist, so the API never reveals what other accounts watch. - Batch endpoints take a
domainslist of up to 100 names. If any of them is not yours, the request answers404with those names indetails.domainsand changes nothing. - Adding is per name.
POST /domainsreturns the names it added and, separately, the ones it could not add with a reason (for examplealready_monitoring). If your plan's domain limit leaves no room for any of them, it answers403 limit_reached. - Lists are paginated. Pass
pageandper_page(15, 30, 50 or 100); the response'smetacarries the totals. - Checks are queued.
POST /domains/{domain}/checkanswers202straight away; read the result later withGET /domains/{domain}. Check requests share one budget with the dashboard's Check now button. - Settings follow your plan. A setting your plan does not include is refused with a message saying so (
validation_failednaming the field, orplan_required), the same rule as in the dashboard.
Errors and limits
Every error has the same JSON shape with a stable code to switch on. You can make 60 requests a minute. The codes, the limits and what to do about each are in API and MCP limits and errors.