domainmcp
SearchCheck a name across every endingDomain pricesFirst year and renewal, every endingMCP setupClaude, ChatGPT and Gemini in a minuteAPIOpen REST endpoints, no key neededDocumentationEvery endpoint, tool and limit

Documentation / Endpoints / Check domains

Domain availability check API: GET /v1/check

Check domains

Give up to 50 full domains and find out which are free to register, with today's domain prices and a buy link for each free one.

Free, no keyCosts 1 a domainGET or POSTMCP tool: check_domains
GEThttps://api.domainmcp.net/v1/check?domains=brightfield.com,brightfield.io
Try itReal answers, counted in your allowance
https://api.domainmcp.net/v1/check?domains=brightfield.com,brightfield.io

Code

curl "https://api.domainmcp.net/v1/check?domains=brightfield.com,brightfield.io"

It also takes POST with a JSON body, which suits long lists:

POST /v1/check
curl -X POST "https://api.domainmcp.net/v1/check" \
  -H "Content-Type: application/json" \
  -d '{"domains": ["brightfield.com", "brightfield.io"]}'

Parameters

domainslist, required
Full domains, comma separated, up to 50. domain= works for a single one. Endings such as co.uk are understood.

Returns

A domain that cannot be checked (a typo, no ending, an ending we do not know) is left out of data and listed in meta.skipped with the reason.

domainstring
The full domain, in lower case.
availabletrue, false or null
Null when the answer is not known yet.
statusstring
One of three values.
availabletakenunknown
confirmedboolean
True once the registry has answered. A free answer from DNS alone is confirmed within about a minute.
bystring
Where the answer came from. See Reading a result.
registryregistrardnsdns_onlyconfirming
checked_atstring
When it was checked, in UTC.
premiumboolean
Free names only. True when the registry sets its own, higher price.
priceobject or null
Free names only: first_year, renews, min_years, on_offer and currency. Null for a premium name, or an ending we have no price for.
buy_urlstring or null
Free names only: a short link that opens a registrar with the name ready to register. Null for a premium name, or an ending not sold through our links, with a note saying which.
registrarstring or null
Taken names only: who holds it, with registered and expires dates when known.

Example answer

GET /v1/check?domains=brightfield.com,brightfield.io

{
    "data": [
        {
            "domain": "brightfield.com",
            "available": false,
            "status": "taken",
            "confirmed": true,
            "by": "dns",
            "checked_at": "2026-11-11T03:23:10Z",
            "registrar": null,
            "registered": null,
            "expires": null
        },
        {
            "domain": "brightfield.io",
            "available": false,
            "status": "taken",
            "confirmed": true,
            "by": "dns",
            "checked_at": "2026-11-11T03:23:10Z",
            "registrar": null,
            "registered": null,
            "expires": null
        }
    ],
    "meta": {
        "count": 2,
        "took_ms": 0
    }
}

Errors

bad_request400
No domains, or more than 50.
unknown_parameter422
A parameter this endpoint does not take, such as domian for domain.
rate_limited429
Over 60 domains this minute from your address. Wait for the seconds in Retry-After.
quota_exceeded429
Over 2,000 domains today. It resets at 00:00 UTC.

Every error has the same shape. See Errors for all of them.