Subdomains from certificate transparency

GET https://api.api.sh/web/v1/subdomains
1 credit / call web data try it in the playground →

Subdomains of a domain found in public certificate-transparency logs (every publicly trusted TLS certificate is logged): each name with whether it is a wildcard, when it was first and last seen in a certificate, when its newest certificate expires, how many certificates name it and their issuers. total counts all names found; certificates the certificates read. Only names with a currently valid certificate by default; include_expired=true adds names whose certificates have all expired (older infrastructure). Domains with very many certificates can take up to a minute. Pages with page / next_page (null on the last page).

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
domainrequired string Domain name. Example: stripe.com
include_expired boolean Also include names seen only in expired certificates. Default: false
wildcards boolean Include wildcard names (*.example.com). Default true. Default: true
limit integer Names per page (default 1000, max 5000). Default: 1000
page integer Page number (default 1). Default: 1

Every endpoint also takes fresh, raw, fields (see lean responses and caching).

Example

curl "https://api.api.sh/web/v1/subdomains?domain=stripe.com" \
  -H "x-api-key: $APISH_KEY"

Response

A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.