Catchdoms Security API
Catchdoms Security API — keyless JSON API
Catchdoms Security API. This API provides security verification to protect websites from malicious bots. It displays a challenge page while validating that the user is not a bot, ensuring secure access to the site.
We probe a documented GET and expect 2xx JSON — full uptime and health score. Open provider docs ↗
On our probe schedule. Uptime charts appear after the first check lands.
GET https://catchdoms.com/openapi.json
{
"openapi": "3.0.3",
"info": {
"title": "CatchDoms API",
"description": "Search 40,000+ expired and auction domains from 12 platforms with SEO metrics, quality scores, and auction prices. Updated daily.",
"version": "1.0.0",
"contact": {
"name": "CatchDoms",
"url": "https://catchdoms.com",
"email": "hello@catchdoms.com"
},
"x-logo": {
"url": "https://catchdoms.com/img/favicons/android-chrome-192x192.png"
}
},
"servers": [
{
"url": "https://catchdoms.com/api",
"description": "Production"
}
],
"security": [
{
"BearerAuth": []
}
],
"paths": {
"/domains": {
"get": {
"operationId": "listDomains",
"summary": "Search expired and auction domains",
"description": "Returns paginated list of domains matching the given filters, sorted by quality score.",
"tags": [
"Domains"
],
"parameters": [
{
"name": "source",
"in": "query",
"description": "Filter by source platform",
"schema": {
"type": "string",
"enum": [
"dynadot",
"catched"
]
}
},
{
"name": "tld",
"in": "query",
"description": "Filter by TLD (e.g. .com, .fr). Comma-separated for multiple.",
"schema": {
"type": "string"
},
"example": ".fr,.de,.it"
}
],
"responses": {
"200": {
"description": "Paginated list of domains",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Domain"
}
},
"links": {
"$ref": "#/components/schemas/PaginationLinks"
},
"meta": {
"$ref": "#/components/schemas/PaginationMeta"
}
}
}
}
}
},
"401": {
"description": "Missing or invalid API token"
},
"403": {
"description": "Valid token but no Pro subscription"
}
}
}
},
"/domains/{domain}": {
"get": {
"operationId": "getDomain",
"summary": "Get a single domain by ID",
"description": "Returns full details for a specific domain.",
"tags": [
"Domains"
],
"parameters": [
{
"name": "domain",
"in": "path",
"required": true,
"description": "Domain ID",
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "Domain details",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Domain"
}
}
}
}
}
},
"404": {
"description": "Domain not found"
}
}
}
}
},
"components": {
"securitySchemes": {
"BearerAuth": {
"type": "http",
"scheme": "bearer",
"description": "API token from your CatchDoms account. Get one at https://catchdoms.com/api-access"
}
},
"schemas": {
"Domain": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Unique domain identifier"
},
"name": {
"type": "string",
"description": "Full domain name",
"example": "example.fr"
},
"tld": {
"type": "string",
"description": "TLD with dot prefix",
"example": ".fr"
},
"source": {
"type": "string",
"description": "Source platform",
"enum": [
"dynadot",
"catched"
]
},
"type": {
"type": "string",
"description": "Domain type",
"enum": [
"auction",
"closeout"
]
},
"auction_type": {
"type": "string",
"nullable": true,
"description": "Sub-type (DropCatch: Dropped/PreRelease/PrivateSeller, GoDaddy: Bid/BuyNow)"
},
"price": {
"type": "number",
"nullable": true,
"description": "Fixed price or starting price (USD)"
},
"max_bid": {
"type": "number",
"nullable": true,
"description": "Current highest bid (USD)"
}
}
},
"PaginationLinks": {
"type": "object",
"properties": {
"first": {
"type": "string",
"nullable": true
},
"last": {
"type": "string",
"nullable": true
},
"prev": {
"type": "string",
"nullable": true
},
"next": {
"type": "string",
"nullable": true
}
}
},
"PaginationMeta": {
"type": "object",
"properties": {
"current_page": {
"type": "integer"
},
"last_page": {
"type": "integer"
},
"per_page": {
"type": "integer"
},
"total": {
"type": "integer"
},
"from": {
"type": "integer",
"nullable": true
},
"to": {
"type": "integer",
"nullable": true
}
}
}
}
},
"externalDocs": {
"description": "Full API documentation",
"url": "https://catchdoms.com/api/docs"
}
}curl "https://catchdoms.com/openapi.json"const res = await fetch("https://catchdoms.com/openapi.json");
const data = await res.json();
console.log(data);import requests
res = requests.get("https://catchdoms.com/openapi.json")
print(res.json())BROWSER CALLS BLOCKED (NO CORS/HTTPS) — USE THE CURL SNIPPET
/openapi.jsonPROBEDCatchdoms Security API — keyless JSON API
/openapi.json?limit=5Paginated variant with limit parameter.
/domainsSearch expired and auction domains
/domains/{domain}Get a single domain by ID
/api/pending-deletePending Delete — documented GET route.
/api/domains?score_min=50&has_backlinks=1&per_page=10Domains — documented GET route.
We probe a documented GET and expect 2xx JSON — full uptime and health score. Export includes every documented route below.
Not tracked yet. Shape-change history starts once this API joins our probe schedule.
Catchdoms Security API: common questions
Is Catchdoms Security API free to use?
Yes — Catchdoms Security API is a free developer tools API. Free tier: Free — limits not published. Whether the free tier allows commercial use is unclear — check the provider docs.
Does Catchdoms Security API need an API key?
No — Catchdoms Security API needs no API key or signup. You can call it straight away; rate limits still apply (Unpublished).
Can I call Catchdoms Security API from the browser?
Not directly — Catchdoms Security API doesn't send browser-friendly CORS headers, so call it from a server or proxy instead. Copy the curl or Python snippet on this page to get started.
Is Catchdoms Security API up right now?
Catchdoms Security API is catalogued but not yet on our probe schedule, so we don't publish a live status for it. Check the provider's own status page or docs for its current state.