Endpoints
Domain screen
Up to 500 domain names in one call, each checked with its registry and DNS. Cut a drop list down to a shortlist, then run a report on the few that matter.
POST
/v1/domain/screen
Request
Every tool takes the same shape: a URL or a list, a few options, and back comes data plus what the call cost.
import requestsr = requests.post( 'https://api.snoopscan.com/v1/domain/screen', headers={'Authorization': 'Bearer sk_YOUR_KEY'}, json={ 'domains': [ 'example.com', 'example.io', 'example.net' ], 'dns': True },)print(r.json())
const r = await fetch('https://api.snoopscan.com/v1/domain/screen', { method: 'POST', headers: { Authorization: 'Bearer sk_YOUR_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ "domains": [ "example.com", "example.io", "example.net" ], "dns": true }),});console.log(await r.json());
curl -X POST https://api.snoopscan.com/v1/domain/screen \ -H 'Authorization: Bearer sk_YOUR_KEY' \ -H 'Content-Type: application/json' \ -d '{ "domains": [ "example.com", "example.io", "example.net" ], "dns": true}'
Returns availability · up to 500 names · 1 credit a name.
Parameters
Read from the engine itself, so this table is the request it actually validates.
| Field | Type | Default | What it does |
|---|---|---|---|
domains
required |
array of string | — | Up to 500 domains, or URLs on them. Duplicates are checked once. |
dns
|
boolean | true | Check DNS for names the registry has no record of, so they can read likely_available. Off, they read no_registry_record. |
Response
A success is always {"success": true, "data": {…}}. data carries what you asked for in formats, the page's metadata, and a cost object saying what the call was charged. A failure is {"success": false, "error": {…}} with a code you can branch on — see Errors.
Nothing is charged for a request that failed.
A page you already fetched, re-read within
maxAge, is free; one served from the shared index costs a single credit. The cost object says which it was.