A REST API for the domains you monitor
Read your watchlist and portfolio, manage domains in bulk and run domain lookups from your own scripts and systems.
- 28 endpoints under one base URL
- Scoped bearer tokens you can revoke
- One JSON error shape with a stable code
Included with Business. The dashboard and email alerts stay free on every plan.
- GET /api/v1/me any
- GET /api/v1/domains domains:read
- GET /api/v1/domains/{domain} domains:read
- GET /api/v1/domains/{domain}/dns domains:read
- GET /api/v1/alerts alerts:read
- GET /api/v1/groups domains:read
- POST /api/v1/scan scan
+ 21 more
What is the Domainyze API?
The Domainyze REST API is a JSON API over the same account you use in the dashboard. It returns your watchlist and portfolio, each domain's lifecycle stage, drop forecast, expiry, SSL and DNS, and your alert history. It also lets you add, configure, pause, resume, move, group, remove and re-check domains, up to 100 names per request.
It also runs the domain tools on any name, monitored or not: availability, WHOIS, expiry, age, SSL, DNS, propagation, email deliverability, typosquats, name ideas, bulk checks and punycode. Those calls spend lookups from a monthly budget: 300 a month on Pro and 1,500 a month on Business.
Alerts still arrive by push. Use webhooks to be told when something changes, and the API to ask what is true right now or to change what you monitor.
- Base URL
- https://domainyze.com/api/v1
- Auth
- Bearer token, scoped
- Format
- JSON in, JSON out
- Rate limit
- 60 requests a minute
- Plans
- Business
Every field, parameter and response is in the API reference, generated from the API itself.
How do I call the Domainyze API?
Create a token in Settings, then send it in the Authorization header. That is the whole handshake.
- Authorization: Bearer is the only place a token is read. Never put it in a URL.
- GET /me answers with your plan, your domain allowance, the lookups left this month and the scopes the token holds.
-
Every error has the same body, so a client switches on
error.codeand showserror.messageto people.
Tokens last 30, 90 or 365 days and are shown once. Try any request from the reference with your own token.
curl https://domainyze.com/api/v1/me \
-H "Authorization: Bearer $DOMAINYZE_TOKEN"
curl "https://domainyze.com/api/v1/domains?lane=portfolio&expiring=1" \
-H "Authorization: Bearer $DOMAINYZE_TOKEN"
{
"error": {
"code": "unauthenticated",
"message": "A valid bearer token is required.",
"details": []
}
}
Every endpoint and the scope it needs
A token carries only the scopes you tick when you create it. This table is read from the routes the API serves, so it is the full list.
| Endpoint | What it does | Type |
|---|---|---|
| Any scope | ||
| GET /api/v1/me | Your plan, domain allowance, lookups left and token scopes | Read |
| domains:read · Read your domains, their status and DNS. | ||
| GET /api/v1/domains | A page of your watchlist or portfolio, with the dashboard's filters | Read |
| GET /api/v1/domains/{domain} | One domain in full: settings, stage, drop forecast, recent checks | Read |
| GET /api/v1/domains/{domain}/dns | A portfolio domain's DNS records and email authentication posture | Read |
| GET /api/v1/groups | Your domain groups | Read |
| domains:write · Add, change, move and remove your domains, and request checks. | ||
| POST /api/v1/domains | Start monitoring a batch of names in a lane | Write |
| POST /api/v1/domains/{domain}/check | Queue a fresh check of a domain you monitor | Write |
| PATCH /api/v1/domains/{domain} | Change a domain's alert and monitoring settings | Write |
| PATCH /api/v1/domains/{domain}/dns-preferences | Change a domain's DNS alert settings | Write |
| POST /api/v1/domains/pause | Pause monitoring for a batch of names | Write |
| POST /api/v1/domains/resume | Resume monitoring for a batch of names | Write |
| POST /api/v1/domains/move | Move a batch between watchlist and portfolio | Write |
| POST /api/v1/domains/group | Put a batch of names in a group | Write |
| DELETE /api/v1/domains/{domain} | Stop monitoring a domain | Write |
| alerts:read · Read your alert history. | ||
| GET /api/v1/alerts | Your alert history, newest first | Read |
| scan · Scan domain names you do not monitor. | ||
| POST /api/v1/scan | Read a name you do not monitor, once, from its registry | Write |
| POST /api/v1/tools/availability | Whether a name can be registered right now | Write |
| POST /api/v1/tools/whois | The registration record over RDAP or WHOIS | Write |
| POST /api/v1/tools/expiry | When a name expires and where it sits on its lifecycle | Write |
| POST /api/v1/tools/age | When a name was first registered | Write |
| POST /api/v1/tools/ssl | The certificate a host serves and when it expires | Write |
| POST /api/v1/tools/dns | A name's live DNS records | Write |
| POST /api/v1/tools/dns-propagation | The same records from several public resolvers, and where they disagree | Write |
| POST /api/v1/tools/email-deliverability | MX records and the SPF, DKIM and DMARC posture, graded | Write |
| POST /api/v1/tools/typosquats | Look-alike names (typos, homoglyphs) and which are registered | Write |
| POST /api/v1/tools/name-ideas | Brandable name ideas from keywords, checked for availability | Write |
| POST /api/v1/tools/bulk-check | Availability for a list of names at once | Write |
| POST /api/v1/tools/punycode | Convert between Unicode and punycode | Write |
Paths are relative to https://domainyze.com/api/v1's host. A {domain} is a full name such as example.co.uk.
How the API behaves
The rules a client has to know, each the same rule the dashboard follows.
Domains by full name
Address a domain as example.co.uk, not by an internal id. The same name works in the dashboard, the API and the MCP server.
A name you do not monitor is a 404
It answers exactly as a name that does not exist, so the API never reveals what other accounts watch.
Batches of 100
Add, pause, resume, move and group take a domains list. If any name is not yours, the request changes nothing and names the strays.
Checks are queued
A check request answers 202 at once. Read the result later from the domain; check requests share one budget with the Check now button.
Lookups have a monthly budget
Scans and domain tools spend lookups, 300 a month on Pro and 1,500 a month on Business, shared with the MCP server and reset on the 1st. A call costing more than is left is refused whole.
Your plan's rules apply
A setting your plan does not include is refused with a sentence saying so, and adding past your domain limit answers limit_reached.
Start using the API in four steps
No SDK to install. Any language that can send an HTTPS request with a header can use it.
Be on Business
Step 1The REST API is part of the Business plan. On other plans every request answers plan_required.
Create a scoped token
Step 2In Settings, then API & MCP, name the token, tick only the scopes it needs and pick 30, 90 or 365 days. Copy it into your secret store; it is shown once.
Call /me
Step 3Send the token as a bearer header to https://domainyze.com/api/v1/me. A 200 confirms the token, its scopes and your remaining lookups.
Build from the reference
Step 4The API reference lists every field and lets you try each endpoint with your token.
Who builds on the Domainyze API
The API is for when the dashboard is not where the work happens. Each links to the full workflow.
Digital agencies
Client reportingPull each client group's renewals, SSL and DNS posture into the report you already send, instead of copying from a dashboard.
How agencies use DomainyzeIT teams and MSPs
ProvisioningAdd a domain to monitoring the moment it is provisioned, and remove it when it is decommissioned, from the same script.
How IT teams use DomainyzeEnterprise portfolios
System of recordKeep an internal inventory in step with what is monitored, and read status and expiry into the tools that own the portfolio.
How enterprises use DomainyzeRegistrars and resellers
Lookups at scaleRun availability, WHOIS and bulk checks from your own systems against a predictable monthly budget.
How registrars use DomainyzeStart Monitoring & Catching Domains Today
Join founders, agencies, and domainers already protecting their portfolio. Your first 5 domains are free.
No credit card required • Cancel anytime
Frequently Asked Questions
For whoever is writing the client.
Does Domainyze have an API?
Yes. Domainyze has a REST API at https://domainyze.com/api/v1 that returns your monitored domains, their DNS and your alert history, manages domains in batches of up to 100, and runs domain lookups such as availability and WHOIS. It is included with Business.
Is the API on the free plan?
No. The REST API is included with Business. The free plan keeps the dashboard and email alerts on 5 domains. If you want an AI assistant rather than your own code to read your account, the MCP server is also on Pro.
How do I authenticate?
Create a personal access token on the API and MCP tab in Settings, choose its scopes and a lifetime of 30, 90 or 365 days, and send it on every request in the Authorization header as Bearer followed by the token. Revoke it from the same page at any time.
What are the API rate limits?
You can make 60 requests a minute per account; past that the API answers 429 with a Retry-After header. Scans and domain tools also spend lookups from a monthly budget, 300 a month on Pro and 1,500 a month on Business, shared with the MCP server.
Can I check domain availability or WHOIS through the API?
Yes. The tools endpoints run availability, WHOIS, expiry, age, SSL, DNS, propagation, email deliverability, typosquat, name idea, bulk and punycode lookups on any name, and each call spends lookups from your monthly budget.
Should I poll the API or use webhooks?
Use webhooks to be told when something changes, and the API to read the current state or change what you monitor. Polling for changes works, but a signed webhook arrives when the alert fires and costs no requests.
Is there an OpenAPI specification?
Yes. The API reference is generated from the API itself and publishes its OpenAPI document, so you can generate a client in the language you use.
Start Monitoring Your Domains
Your first 5 domains are free, with email alerts, and no card required.