← Back to Account
Domain Availability API
Check domain availability programmatically from your own apps and scripts. Premium only.
Authentication
Create an API key from your Account → Subscription tab. Include it in the Authorization header:
Authorization: Bearer nml_your_api_key_here
Rate limit: 1,000 requests/day per key. Max 5 keys per account.
POST /api/domains/check
Check a single domain name across multiple TLDs.
Request
curl -X POST https://namilio.com/api/domains/check \
-H "Authorization: Bearer nml_your_key" \
-H "Content-Type: application/json" \
-d '{
"name": "acmecorp",
"tlds": [".com", ".net", ".io", ".app"]
}'Response
{
"name": "acmecorp",
"results": [
{ "domain": "acmecorp.com", "tld": ".com", "status": "taken" },
{ "domain": "acmecorp.net", "tld": ".net", "status": "available" },
{ "domain": "acmecorp.io", "tld": ".io", "status": "available" },
{ "domain": "acmecorp.app", "tld": ".app", "status": "available" }
],
"checkedAt": "2026-04-13T12:00:00.000Z"
}tlds is optional — defaults to .com, .net, .org, .app, .dev. Max 20 TLDs per request.
POST /api/domains/bulk
Check up to 50 domain names at once.
Request
curl -X POST https://namilio.com/api/domains/bulk \
-H "Authorization: Bearer nml_your_key" \
-H "Content-Type: application/json" \
-d '{
"domains": [
{ "name": "acmecorp", "tlds": [".com", ".io"] },
{ "name": "brandify" },
{ "name": "nexaflow", "tlds": [".app", ".dev"] }
]
}'Response
{
"domains": [
{
"name": "acmecorp",
"results": [
{ "domain": "acmecorp.com", "tld": ".com", "status": "taken" },
{ "domain": "acmecorp.io", "tld": ".io", "status": "available" }
]
},
{
"name": "brandify",
"results": [
{ "domain": "brandify.com", "tld": ".com", "status": "taken" },
...
]
}
],
"checkedAt": "2026-04-13T12:00:00.000Z"
}Each domain can have its own tlds array (optional, defaults to popular 5). Max 50 domains, 20 TLDs each.
GET /api/domains/tlds
List all supported TLDs. No authentication required.
curl https://namilio.com/api/domains/tlds
Response
{
"tlds": [".com", ".net", ".org", ".app", ".dev", ".tech", ".bot", ...],
"categories": {
"popular": [".com", ".net", ".org", ".app", ".dev"],
"tech": [".tech", ".bot", ".io", ".ai"],
"modern": [".xyz", ".online", ".site", ".store", ".shop", ".blog"],
"other": [".co", ".ly", ".to", ".biz", ".inc", ".ca"]
},
"zoneTlds": [".com", ".net", ".org", ...],
"note": "Zone TLDs use instant zone file lookup. Others use RDAP/DNS (slower)."
}Domain Statuses
| Status | Meaning |
|---|---|
| available | Domain is available for registration |
| taken | Domain is registered |
| premium | Available at a premium price from the registry |
| forsale | Registered but listed for sale |
| unknown | Could not determine status (timeout or unsupported TLD) |
| error | Check failed |
Errors
| Code | Meaning |
|---|---|
| 400 | Invalid request body (check name format, TLD format, limits) |
| 401 | Missing or invalid API key |
| 403 | Active Premium subscription required |
| 429 | Daily rate limit reached (1,000 requests/day) |
Need an API key?
Go to Account Settings