Your first check in 30 seconds
Copy & run
Example response: {"result":"Live","id":1284,"gateway":"fast-checker","balance":"99.33","charge":"0.0300"}
Authentication
Send your API key in the X-API-Key request header. Headers stay out of URLs and access logs, so this is the only method you should use.
For backward compatibility the key is also accepted as an api_key query parameter or POST field — not recommended.
Base URL
Single endpoint. Method: GET — the same URL also accepts POST form fields.
Gateways & pricing
| API identifier | Gateway | Input format | Live charge | Dead charge |
|---|---|---|---|---|
| fast-checker | Fast Checker | CC|MM|YYYY|CVV 4111111111111111|12|2027|123 |
$0.0200 | $0.0200 |
Pass the API identifier as the gateway parameter. The numeric id and the exact gateway name are also accepted.
Prices shown are the gateway rate. Individual accounts may have custom per-check pricing — check your dashboard for your effective charges.
Making a request
| Parameter | Value | |
|---|---|---|
| X-API-Key | header · required | Your API key |
| gateway | query · required | Gateway API identifier, id, or exact name |
| cc | query · required | Pipe-separated card data in the gateway's input format |
| json | query · optional | Set to 1 for a JSON response (recommended) |
Card formats
- CC|MM|YYYY|CVV — standard gateways
- CC|MM|YYYY|CVV|ZIP — AVS gateways
- CC|MM|YYYY|ZIP — CCN gateways
- CC|MM|YYYY — dumps-format gateways
The exact format for each active gateway is listed in the table above — wrong field counts return HTTP 422.
In browser address bars and some HTTP clients the pipe may appear percent-encoded as %7C — both forms are identical to the API.
Examples per gateway
Input format: CC|MM|YYYY|CVV — example payload: 4111111111111111|12|2027|123
Plain text response: https://c4check.com/api/v1/api.php?gateway=fast-checker&cc=4111111111111111|12|2027|123
JSON response: https://c4check.com/api/v1/api.php?gateway=fast-checker&cc=4111111111111111|12|2027|123&json=1
Responses
Plain text (default)
Live active and chargeable · Dead closed, blocked or invalid · Error no definitive answer — never charged.
JSON (&json=1)
| Field | Type | Meaning |
|---|---|---|
| result | string | Live Dead Error |
| id | integer | Check record id — quote it in support requests and for reconciliation |
| gateway | string | The gateway API identifier used |
| balance | string | Your balance after the check |
| charge | string | Amount charged, 4 decimals — 0 on errors |
Errors
Errors use standard HTTP status codes and a JSON body: {"error":"..."}.
| HTTP | Error | Meaning |
|---|---|---|
| 401 | API key required | No key supplied |
| 401 | Invalid API key | Key not found — regenerate it if it leaked |
| 401 | Account disabled | The account is not active |
| 402 | Insufficient balance | Rejected before any gateway call; nothing charged |
| 404 | Invalid gateway or gateway not active | Unknown, disabled or deleted gateway |
| 404 | Gateway URL not configured | The gateway has no provider URL set |
| 422 | No card data provided | The cc parameter is missing |
| 422 | Invalid card format | Wrong number of fields for this gateway |
| 422 | Invalid Card | Failed the Luhn checksum |
| 422 | Zipcode is required for this gateway | This gateway's format requires a ZIP field |
| 429 | Rate limit exceeded | More than 5 requests/second from one IP |
| 500 | Check failed; no charge applied | Unexpected internal failure; reservation released |
| 502 | Gateway returned empty response | Provider failure; nothing charged |
Rate limits & billing
- Rate limit: 5 requests per second per IP (burst of 10). Exceeding it returns HTTP 429.
- Billing: charged per classified result only — Live and Dead at the gateway rates above; Error is free.
- Self-metering: every response returns the balance and the exact charge, so spend is traceable without a second call.
- Unknown retries: when a provider returns no definitive answer, the card is re-checked once automatically — on the fallback route if configured, otherwise the same provider (per-gateway toggle). Unknowns are never charged, so retries are free.
- API vs web: API checks always bill normally; free-check promotions apply to the web checker only.
For bulk work, loop with modest concurrency (or follow the bulk verification guide). A Live/Dead result never needs a retry; Error results are the only ones to re-run.