> For the complete documentation index see https://domscan.net/llms.txt. Markdown versions of every docs page are available by appending .md to the page URL.

Source: https://domscan.net/docs/credits-pricing

# Credits & pricing

DomScan API: DomScan includes 10,000 free credits per month. No credit card required. We'll give plenty of notice before any pricing changes.

DomScan includes 10,000 free credits per month. No credit card required. We'll give plenty of notice before any pricing changes.

Credits refresh monthly on signup anniversary. Need more credits? Purchase packs that never expire:

### Credits per endpoint

Find common endpoint costs below. Some reference endpoints are free. For the complete, machine-readable rate card, use /v1/pricing.

| Endpoint | Credits | Description |
| --- | --- | --- |
| `/v1/coverage` | 0 | List TLDs with RDAP mappings |
| `/v1/tlds` | 0 | TLD metadata list |
| `/v1/watchlist` | 1 | View your watchlist |
| `/v1/webhooks` | 2 | Per alert delivered to your webhook endpoint. Failed deliveries are refunded and test events are free. |
| `/v1/status` | 1 | Check domain availability |
| `/v1/health/quick` | 1 | Quick health check |
| `/v1/dns` | 1 | DNS lookup |
| `/v1/dns/bulk` | 1/domain | Bulk DNS lookup (up to 25 domains) |
| `/v1/ip` | 1 | IP geolocation |
| `/v1/value` | 2 | Domain valuation |
| `/v1/prices` | 0-1/pair | Registration prices |
| `/v1/tlds/:tld` | 1 | TLD details |
| `/v1/watchlist/check` | 1 | Check watchlist item |
| `/v1/typos/permutations` | 1 | Typo permutations |
| `/v1/typos/score` | 1 | Typo risk score |
| `/v1/email/check` | 1 | Email blacklist check |
| `/v1/status/bulk` | 1/domain | Check availability for multiple domain names at once. Supports up to 50 domains per request. |
| `/v1/health` | 3 | Full health check |
| `/v1/dns/all` | 2 | All DNS records |
| `/v1/profile` | 3 | Domain profile |
| `/v1/redirects` | 2 | Redirect chain |
| `/v1/tech` | 3-9 | Tech stack detection |
| `/v1/categorize` | 3 | Website categorization |
| `/v1/similarity` | 2 | Domain similarity |
| `/v1/typos` | 2-3 | Typosquatting detection |
| `/v1/reputation` | 3 | Domain reputation |
| `/v1/reputation/bulk` | 3/domain | Bulk domain reputation (up to 3 domains) |
| `/v1/certificates` | 2 | SSL certificate |
| `/v1/certificates/bulk` | 2/domain | SSL certificate |
| `/v1/social` | 2 | Social handle check |
| `/v1/social/bulk` | 2/handle | Bulk Social Handle Check |
| `/v1/company` | 3 | Company lookup |
| `/v1/suggest` | 2-5 | Domain suggestions |
| `/v1/whois` | 3 | WHOIS lookup |
| `/v1/whois/history` | 3 | WHOIS change history |
| `/v1/whois/bulk` | 3/domain | Bulk WHOIS lookup (up to 20 domains) |
| `/v1/rdap/bulk` | 2/query | WHOIS lookup |
| `/v1/prices/bulk` | 1/pair | Bulk pricing |
| `/v1/dns/security` | 3 | DNS security analysis |
| `/v1/dns/propagation` | 2 | DNS resolver comparison |
| `/v1/dns/propagation/bulk` | 2/domain | DNS resolver comparison |
| `/v1/email-auth/bulk` | 3/domain | Email authentication |
| `/v1/hosting/bulk` | 3/domain | Hosting detection |
| `/v1/value/bulk` | 2/domain | Bulk valuation |
| `/v1/health/bulk` | 3/domain | Bulk health check |
| `/v1/subdomains` | 4-5 | Subdomain finder |
| `/v1/subdomains/bulk` | 4-5/domain | Subdomain finder |
| `/v1/report` | 5 | Comprehensive report (saves ~10 credits vs individual calls) |

### Credit enforcement

When your credits reach zero, API requests that cost credits return HTTP 402 (Payment Required). Free browser-based tools are not affected.

`HTTP 402 Payment Required`

```json
{
  "error": {
    "code": "INSUFFICIENT_CREDITS",
    "message": "Insufficient credits. This endpoint costs 2 credits but you have 0.",
    "credits_remaining": 0,
    "credits_required": 2,
    "purchase_url": "https://domscan.net/billing"
  }
}
```

Credits refresh monthly on signup anniversary.

### Credit response headers

All authenticated API responses include an X-Credits-Remaining header showing your current credit balance after the request.

`X-Credits-Remaining: 9500`

Every authenticated /v1 response, including errors, carries these headers:

- `X-Credits-Charged`: credits this request charged, net of any refund made in the same request (0 when nothing was charged).

- `X-Credits-Remaining`: your balance after the request. It is left out in the rare case the balance is not already known.

- `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset`: your burst capacity, the requests you can still send immediately, and the Unix time in seconds when the capacity is fully refilled.

- MCP over HTTP returns `X-Credits-Charged` and `X-Credits-Remaining` for the tool calls in each request.

### Estimate the cost before running

Send the method, path, query and body of a request to `POST /v1/estimate` to get the credits it would charge, with a breakdown and notes. Nothing is executed and the estimate costs 0 credits. When the final charge depends on the outcome, the estimate is the maximum and a note explains why.

POST /v1/estimate

#### Request body

| Parameter | Type | Description |
| --- | --- | --- |
| method required | string Allowed values `GET`, `POST`, `PUT`, `PATCH`, `DELETE` | HTTP method of the request to estimate. |
| path required | string | Path of the request to estimate, for example `/v1/value/bulk`. A query string in the path is also read. |
| query optional | object | Query parameters as an object. Arrays are joined with commas. |
| body optional | any | JSON body the request would send. |

#### Example request

```bash
curl -X POST "https://domscan.net/v1/estimate" \
  -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"method":"POST","path":"/v1/value/bulk","body":{"domains":["example.com","example.org"]}}'
```

#### Example response

```json
{
  "credits": 2,
  "breakdown": [
    { "component": "domains", "quantity": 2, "unit_credits": 1, "credits": 2 }
  ],
  "notes": ["Requests rejected with a 4xx status or failing with a 5xx status are refunded automatically."],
  "maximum": false,
  "rejected": false
}
```

#### Response fields

| Field | Type |
| --- | --- |
| `credits` | integer |
| `breakdown[]` | object[] |
| `breakdown[]` | object |
| `breakdown[].component` | string |
| `breakdown[].quantity` | integer |
| `breakdown[].unit_credits` | number |
| `breakdown[].credits` | integer |
| `notes[]` | string[] |
| `maximum` | boolean |
| `rejected` | boolean |
| `billing_model` | string |
| `endpoint` | object |
| `endpoint.method` | string |
| `endpoint.path` | string |
| `dry_run` | boolean |

Bulk, compare, recipe and pricing endpoints also accept `dry_run=true`. The request is answered with HTTP 200 and the same estimate plus `"dry_run": true`, without running it or charging credits.

### Credit calculator

Estimate your credit usage for bulk operations:

Endpoint

Number of API calls

Total credits needed

100

That's 1.0 % of your free monthly credits
Exceeds free tier by 0 credits

### Credit packs

Need more credits? Purchase packs that never expire:

| Pack | Price | Per credit |
| --- | --- | --- |
| 50,000 credits | €9 / £7.50 / ¥1,500 | €0.00018 |
| 250,000 credits | €29 / £24 / ¥4,800 | €0.000116 |
| 1,000,000 credits | €79 / £66 / ¥13,000 | €0.000079 |
