Instant Domain Search APIinstantdomainsearch.com ↗
Check domain availability across 800+ TLD extensions. Search by name or verify specific fully-qualified domains with registration status, premium pricing, and aftermarket data.
What is the Instant Domain Search API?
The Instant Domain Search API provides 2 endpoints to query domain name availability across more than 800 TLD extensions. The search_domains endpoint takes a bare name like techstartup and returns registration status, premium pricing, and aftermarket listing data for each TLD. The check_domains endpoint accepts fully-qualified domain names and returns a structured availability status and trust level for each.
curl -X GET 'https://api.parse.bot/scraper/bd8ee895-e91b-4c00-8acc-96aebe902484/search_domains?tlds=com%2Cnet%2Corg%2Cio&limit=10&query=techstartup' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace instantdomainsearch-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Instant Domain Search SDK — check availability across TLDs."""
from parse_apis.instant_domain_search_api import (
InstantDomainSearch,
Availability,
InvalidQuery,
)
client = InstantDomainSearch()
# Search for domain availability across specific TLDs
for domain in client.domains.search(query="cloudnative", tlds="com,io,dev,app", limit=5):
print(domain.domain, domain.is_registered, domain.tld)
# Drill into one result to inspect aftermarket listings
result = client.domains.search(query="startupkit", tlds="com,net", limit=1).first()
if result:
print(result.domain, result.is_premium, result.premium_price_usd)
for market in result.markets:
print(market.market, market.type, market.price_usd)
# Check specific fully-qualified domains
for check in client.domainchecks.check(domains="example.com,google.com,mybrand.io", limit=5):
print(check.name, check.availability, check.trust)
# Typed error handling for invalid input
try:
client.domains.search(query="", limit=1).first()
except InvalidQuery as exc:
print(f"Invalid query: {exc}")
print("exercised: domains.search / domainchecks.check / InvalidQuery error handling")
Search domain availability for a given name across multiple TLD extensions. Returns registration status, premium pricing, and aftermarket listing information for each TLD. Results are returned in a single page; use the limit parameter to cap the number of domains checked.
| Param | Type | Description |
|---|---|---|
| tlds | string | Comma-separated list of TLD extensions to check (e.g. 'com,net,org,io,app'). When omitted, searches across 70+ popular TLDs including com, net, org, ai, io, xyz, app, shop, info, co, dev, tech, and many more. |
| limit | integer | Maximum number of results to return. |
| queryrequired | string | Domain name to search (without TLD extension), e.g. 'techstartup', 'myshop'. |
{
"type": "object",
"fields": {
"query": "string - the search term used",
"total": "integer - number of domain results returned",
"domains": "array of domain availability objects with domain, label, tld, is_registered, is_premium, premium_price_usd, and markets fields"
},
"sample": {
"data": {
"query": "techstartup",
"total": 4,
"domains": [
{
"tld": "com",
"label": "techstartup",
"domain": "techstartup.com",
"markets": [],
"is_premium": false,
"is_registered": true,
"premium_price_usd": null
},
{
"tld": "io",
"label": "techstartup",
"domain": "techstartup.io",
"markets": [
{
"type": "buyNow",
"market": "afternic.com",
"price_usd": 4995
}
],
"is_premium": false,
"is_registered": true,
"premium_price_usd": null
}
]
},
"status": "success"
}
}About the Instant Domain Search API
Endpoints and What They Return
The search_domains endpoint accepts a query parameter — a domain label without any TLD extension — and returns an array of domain availability objects covering up to 70+ TLDs by default. Pass a comma-separated tlds string (e.g. com,net,org,io,app) to restrict the search to specific extensions, or use the limit parameter to cap the number of results. Each result object includes registration status, whether the domain carries premium pricing, and any aftermarket listing data if the domain is for sale through a third-party marketplace.
Checking Specific Domains
The check_domains endpoint is designed for verification of fully-qualified domain names you already know — pass example.com,mybrand.io and get back a result for each. Availability status values include available, inuse, reserved, and unsupported, giving you precise signal on why a domain is unavailable beyond a simple registered/unregistered flag. A trust level field accompanies each result, which can be used to weight how much confidence to place in that availability reading.
Coverage and TLD Scope
The search_domains endpoint covers 800+ TLDs when tlds is not specified, spanning generic TLDs like .com and .net, country-code TLDs, and newer extensions like .app, .dev, and .io. The total field in the response tells you how many domains were evaluated for a given query. The check_domains endpoint marks domains under unsupported extensions with the unsupported status rather than silently omitting them.
The Instant Domain Search API is a managed, monitored endpoint for instantdomainsearch.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when instantdomainsearch.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official instantdomainsearch.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Checking bulk domain availability for a list of brand name candidates across
.com,.io, and.appin a single call - Monitoring whether competitor or partner domains change registration status over time using
check_domains - Surfacing aftermarket domain listings when a
.comis taken, using the aftermarket data returned bysearch_domains - Filtering premium-priced domains from search results before presenting options to end users
- Building a domain suggestion widget that queries
search_domainswith atldsfilter scoped to a target market - Validating a shortlist of fully-qualified domain names before purchasing, using the
available/inuse/reservedstatus fromcheck_domains - Identifying reserved domains (e.g. ICANN-reserved labels) to avoid registrar lookup failures downstream
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Instant Domain Search have an official developer API?+
What does the `available` vs `reserved` status mean in `check_domains` results?+
available means the domain is unregistered and can be purchased. reserved indicates the domain exists in a TLD registry's reserved list and cannot be registered through normal channels. inuse means the domain is currently registered, and unsupported means the TLD is outside what the endpoint covers for that query.