{
    "openapi": "3.1.0",
    "info": {
        "title": "Domain MCP API",
        "version": "1.0.0",
        "description": "Free domain search: availability, domain prices, who holds a taken domain, and free name ideas. No key needed. Paced per address at 60 domains a minute and 2,000 a day.",
        "contact": {
            "name": "Domain MCP support",
            "url": "https://domainmcp.net/support"
        }
    },
    "servers": [
        {
            "url": "https://api.domainmcp.net"
        }
    ],
    "externalDocs": {
        "url": "https://domainmcp.net/documentation"
    },
    "paths": {
        "/v1/check": {
            "get": {
                "operationId": "check",
                "summary": "Check domains",
                "description": "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. 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.",
                "externalDocs": {
                    "url": "https://domainmcp.net/documentation/check"
                },
                "parameters": [
                    {
                        "name": "domains",
                        "in": "query",
                        "required": true,
                        "description": "Full domains, comma separated, up to 50. domain= works for a single one. Endings such as co.uk are understood.",
                        "schema": {
                            "type": "string"
                        },
                        "explode": false,
                        "style": "form"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {},
                                        "meta": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "domain": "brightfield.io",
                                            "available": true,
                                            "status": "available",
                                            "confirmed": true,
                                            "by": "registry",
                                            "checked_at": "2026-11-10T09:14:02Z",
                                            "premium": false,
                                            "price": {
                                                "first_year": 34.98,
                                                "renews": 52.98,
                                                "min_years": 1,
                                                "on_offer": false,
                                                "currency": "USD"
                                            },
                                            "buy_url": "https://buy.domainmcp.net/k7m2xqa?f=api"
                                        },
                                        {
                                            "domain": "brightfield.com",
                                            "available": false,
                                            "status": "taken",
                                            "confirmed": true,
                                            "by": "registry",
                                            "checked_at": "2026-11-10T09:14:02Z",
                                            "registrar": "Example Registrar, Inc.",
                                            "registered": "2009-04-17",
                                            "expires": "2027-04-17"
                                        }
                                    ],
                                    "meta": {
                                        "count": 2,
                                        "took_ms": 310
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "checkPost",
                "summary": "Check domains",
                "description": "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. 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.",
                "externalDocs": {
                    "url": "https://domainmcp.net/documentation/check"
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {},
                                        "meta": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "domain": "brightfield.io",
                                            "available": true,
                                            "status": "available",
                                            "confirmed": true,
                                            "by": "registry",
                                            "checked_at": "2026-11-10T09:14:02Z",
                                            "premium": false,
                                            "price": {
                                                "first_year": 34.98,
                                                "renews": 52.98,
                                                "min_years": 1,
                                                "on_offer": false,
                                                "currency": "USD"
                                            },
                                            "buy_url": "https://buy.domainmcp.net/k7m2xqa?f=api"
                                        },
                                        {
                                            "domain": "brightfield.com",
                                            "available": false,
                                            "status": "taken",
                                            "confirmed": true,
                                            "by": "registry",
                                            "checked_at": "2026-11-10T09:14:02Z",
                                            "registrar": "Example Registrar, Inc.",
                                            "registered": "2009-04-17",
                                            "expires": "2027-04-17"
                                        }
                                    ],
                                    "meta": {
                                        "count": 2,
                                        "took_ms": 310
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "domains": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            },
                            "example": {
                                "domains": [
                                    "brightfield.com",
                                    "brightfield.io"
                                ]
                            }
                        }
                    }
                }
            }
        },
        "/v1/search": {
            "get": {
                "operationId": "search",
                "summary": "Search a name",
                "description": "Give one name and get back every ending you ask for, free ones first and cheapest first, each with today's domain prices and a link to register it. Free names come first, sorted by first-year price, then unknown ones, then taken ones.",
                "externalDocs": {
                    "url": "https://domainmcp.net/documentation/search"
                },
                "parameters": [
                    {
                        "name": "name",
                        "in": "query",
                        "required": true,
                        "description": "The name to search, without an ending. Letters, digits and hyphens, up to 63. Spaces are removed, and anything after a dot is dropped.",
                        "schema": {
                            "type": "string"
                        },
                        "explode": false
                    },
                    {
                        "name": "tlds",
                        "in": "query",
                        "required": false,
                        "description": "The endings to try, comma separated, up to 25. Second-level endings such as co.uk work. When left out, 12 popular endings are tried.",
                        "schema": {
                            "type": "string"
                        },
                        "explode": false,
                        "style": "form"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {},
                                        "meta": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "domain": "brightfield.io",
                                            "available": true,
                                            "status": "available",
                                            "confirmed": true,
                                            "by": "registry",
                                            "checked_at": "2026-11-10T09:14:02Z",
                                            "premium": false,
                                            "price": {
                                                "first_year": 34.98,
                                                "renews": 52.98,
                                                "min_years": 1,
                                                "on_offer": false,
                                                "currency": "USD"
                                            },
                                            "buy_url": "https://buy.domainmcp.net/k7m2xqa?f=api"
                                        },
                                        {
                                            "domain": "brightfield.ai",
                                            "available": true,
                                            "status": "available",
                                            "confirmed": true,
                                            "by": "registry",
                                            "checked_at": "2026-11-10T09:14:02Z",
                                            "premium": false,
                                            "price": {
                                                "first_year": 69.98,
                                                "renews": 79.98,
                                                "min_years": 1,
                                                "on_offer": false,
                                                "currency": "USD"
                                            },
                                            "buy_url": "https://buy.domainmcp.net/p3x8nwe?f=api"
                                        },
                                        {
                                            "domain": "brightfield.com",
                                            "available": false,
                                            "status": "taken",
                                            "confirmed": true,
                                            "by": "registry",
                                            "checked_at": "2026-11-10T09:14:02Z",
                                            "registrar": "Example Registrar, Inc.",
                                            "registered": "2009-04-17",
                                            "expires": "2027-04-17"
                                        }
                                    ],
                                    "meta": {
                                        "count": 3,
                                        "took_ms": 412
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/suggest": {
            "get": {
                "operationId": "suggest",
                "summary": "Suggest names",
                "description": "Describe a business or project in a few words and get back name ideas, each one checked and free to register, with a line on why it fits. Suggestions take a few seconds, because every idea is checked before it comes back. They have their own allowance and do not use your 60 domains a minute.",
                "externalDocs": {
                    "url": "https://domainmcp.net/documentation/suggest"
                },
                "parameters": [
                    {
                        "name": "brief",
                        "in": "query",
                        "required": true,
                        "description": "What the business or project is, in a few words, such as a yoga studio in Chiang Mai.",
                        "schema": {
                            "type": "string"
                        },
                        "explode": false
                    },
                    {
                        "name": "count",
                        "in": "query",
                        "required": false,
                        "description": "How many names, from 1 to 10. 6 when left out. Fewer can come back when not enough free ones are found.",
                        "schema": {
                            "type": "integer"
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {},
                                        "meta": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "domain": "lannabreath.com",
                                            "name": "lannabreath",
                                            "ending": "com",
                                            "why": "Lanna is the old name of the north, and breath is at the heart of yoga.",
                                            "confirmed": true,
                                            "by": "registry",
                                            "price": {
                                                "first_year": 11.28,
                                                "renews": 16.18,
                                                "min_years": 1,
                                                "on_offer": false,
                                                "currency": "USD"
                                            },
                                            "buy_url": "https://buy.domainmcp.net/r8v2kda?f=api"
                                        },
                                        {
                                            "domain": "stillpeak.studio",
                                            "name": "stillpeak",
                                            "ending": "studio",
                                            "why": "Calm and the mountains around the city, on an ending that says what it is.",
                                            "confirmed": true,
                                            "by": "registry",
                                            "price": {
                                                "first_year": 3.98,
                                                "renews": 25.98,
                                                "min_years": 1,
                                                "on_offer": true,
                                                "currency": "USD"
                                            },
                                            "buy_url": "https://buy.domainmcp.net/m2w9tqe?f=api"
                                        }
                                    ],
                                    "meta": {
                                        "count": 2,
                                        "took_ms": 5840,
                                        "note": "Every name here was free when checked."
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "suggestPost",
                "summary": "Suggest names",
                "description": "Describe a business or project in a few words and get back name ideas, each one checked and free to register, with a line on why it fits. Suggestions take a few seconds, because every idea is checked before it comes back. They have their own allowance and do not use your 60 domains a minute.",
                "externalDocs": {
                    "url": "https://domainmcp.net/documentation/suggest"
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {},
                                        "meta": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "domain": "lannabreath.com",
                                            "name": "lannabreath",
                                            "ending": "com",
                                            "why": "Lanna is the old name of the north, and breath is at the heart of yoga.",
                                            "confirmed": true,
                                            "by": "registry",
                                            "price": {
                                                "first_year": 11.28,
                                                "renews": 16.18,
                                                "min_years": 1,
                                                "on_offer": false,
                                                "currency": "USD"
                                            },
                                            "buy_url": "https://buy.domainmcp.net/r8v2kda?f=api"
                                        },
                                        {
                                            "domain": "stillpeak.studio",
                                            "name": "stillpeak",
                                            "ending": "studio",
                                            "why": "Calm and the mountains around the city, on an ending that says what it is.",
                                            "confirmed": true,
                                            "by": "registry",
                                            "price": {
                                                "first_year": 3.98,
                                                "renews": 25.98,
                                                "min_years": 1,
                                                "on_offer": true,
                                                "currency": "USD"
                                            },
                                            "buy_url": "https://buy.domainmcp.net/m2w9tqe?f=api"
                                        }
                                    ],
                                    "meta": {
                                        "count": 2,
                                        "took_ms": 5840,
                                        "note": "Every name here was free when checked."
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "brief": {
                                        "type": "string"
                                    },
                                    "count": {
                                        "type": "integer"
                                    }
                                }
                            },
                            "example": {
                                "brief": "a yoga studio in Chiang Mai",
                                "count": 6
                            }
                        }
                    }
                }
            }
        },
        "/v1/details": {
            "get": {
                "operationId": "details",
                "summary": "Domain details",
                "description": "Everything known about one domain: free or taken, and for a taken one who holds it, when it was registered, when it expires and its nameservers. Some registries do not publish the registrar or dates. They come back as null rather than as a guess.",
                "externalDocs": {
                    "url": "https://domainmcp.net/documentation/details"
                },
                "parameters": [
                    {
                        "name": "domain",
                        "in": "query",
                        "required": true,
                        "description": "One full domain, such as example.com. /v1/whois is the same endpoint.",
                        "schema": {
                            "type": "string"
                        },
                        "explode": false
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {},
                                        "meta": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "domain": "example.com",
                                        "available": false,
                                        "status": "taken",
                                        "confirmed": true,
                                        "by": "registry",
                                        "checked_at": "2026-11-10T09:14:02Z",
                                        "registrar": "RESERVED-Internet Assigned Numbers Authority",
                                        "registered": "1995-08-14",
                                        "expires": "2027-08-13",
                                        "nameservers": [
                                            "a.iana-servers.net",
                                            "b.iana-servers.net"
                                        ]
                                    },
                                    "meta": {
                                        "took_ms": 288
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/prices": {
            "get": {
                "operationId": "prices",
                "summary": "Prices by ending",
                "description": "The public price of registering a domain on any ending: the first year, the renewal, the fewest years sold, and whether the first year is on offer. An ending you ask for that has no price is simply not in data. meta.prices_at says when the list was last refreshed.",
                "externalDocs": {
                    "url": "https://domainmcp.net/documentation/prices-endpoint"
                },
                "parameters": [
                    {
                        "name": "tlds",
                        "in": "query",
                        "required": false,
                        "description": "The endings you want, comma separated. Every priced ending, cheapest first, when left out.",
                        "schema": {
                            "type": "string"
                        },
                        "explode": false,
                        "style": "form"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {},
                                        "meta": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "ending": "com",
                                            "first_year": 11.28,
                                            "renews": 16.18,
                                            "min_years": 1,
                                            "on_offer": false,
                                            "currency": "USD"
                                        },
                                        {
                                            "ending": "io",
                                            "first_year": 34.98,
                                            "renews": 52.98,
                                            "min_years": 1,
                                            "on_offer": false,
                                            "currency": "USD"
                                        },
                                        {
                                            "ending": "ai",
                                            "first_year": 69.98,
                                            "renews": 79.98,
                                            "min_years": 2,
                                            "on_offer": false,
                                            "currency": "USD"
                                        }
                                    ],
                                    "meta": {
                                        "count": 3,
                                        "prices_at": "2026-11-10T02:53:11Z",
                                        "took_ms": 4
                                    }
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/usage": {
            "get": {
                "operationId": "usage",
                "summary": "Your usage",
                "description": "How much of your allowance is left this minute and today, without spending any of it. Every counted answer also carries the same numbers in its headers, so most clients never need this call.",
                "externalDocs": {
                    "url": "https://domainmcp.net/documentation/usage"
                },
                "parameters": [],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {},
                                        "meta": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "per_minute": 60,
                                        "used_this_minute": 12,
                                        "remaining_this_minute": 48,
                                        "per_day": 2000,
                                        "used_today": 140,
                                        "remaining_today": 1860,
                                        "day_resets_at": "2026-11-11T00:00:00Z",
                                        "counted_in": "domains checked"
                                    },
                                    "meta": {
                                        "took_ms": 1
                                    }
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "A refusal",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "Error": {
                "type": "object",
                "properties": {
                    "error": {
                        "type": "object",
                        "properties": {
                            "code": {
                                "type": "string"
                            },
                            "message": {
                                "type": "string"
                            },
                            "docs": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        }
    }
}
