Catchdoms Security API

Catchdoms Security API — keyless JSON API

🔧 Developer ToolsHEALTHYchecked 10h ago
AUTH NONECORS AGENT HTTPS COMMERCIAL ?

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.

93HOW IT'S SCORED ⓘ
Status badge · for your READMEshipapis health badge: 93 · healthy
Uptime history
100%90 days
100%30 days
437P50 · ms
1398P95 · ms
operationalpartialdownno data
Response time · last 48 checks
Fastest 78 ms, slowest 756 ms, most recent 162 ms.
Live response samplecaptured by our last successful check
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"
  }
}
Call itcurl · fetch · python
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

Endpoints · 6HealthyFULL DOCS ↗
Monitored path responding — GET /openapi.json437 mschecked 10h ago
GET/openapi.jsonPROBED

Catchdoms Security API — keyless JSON API

GET/openapi.json?limit=5

Paginated variant with limit parameter.

GET/domains

Search expired and auction domains

GET/domains/{domain}

Get a single domain by ID

GET/api/pending-delete

Pending Delete — documented GET route.

GET/api/domains?score_min=50&has_backlinks=1&per_page=10

Domains — documented GET route.

Machine-readable spec

We probe a documented GET and expect 2xx JSON — full uptime and health score. Export includes every documented route below.

Response-shape history

Stable. No schema drift observed since monitoring began — the response shape has not changed under our checks.

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?

As of our last scheduled check, Catchdoms Security API is healthy with 100% uptime over 90 days and a 437 ms median response. We re-probe it every sweep — the status badge and uptime chart above always show the latest.