Endpoint

MethodGET
URLhttps://cardbincheck.com/api/bin/{bin}
AuthNone required for the free per-IP allowance. An IPNOVA API key (free account at api.ipnova.com) applies your plan allowance instead: send it as the X-Api-Key header or the ?key= query parameter. Keyed responses carry X-Credits-Remaining and X-Credits-Used.
Rate limit100 requests a day and 30 a minute, per IP (see X-RateLimit-Remaining header)
CORSAccess-Control-Allow-Origin: * - call it straight from the browser
CachingResponses are cacheable for 24h (Cache-Control: max-age=86400)
OpenAPIMachine-readable spec at /openapi.json

Plans

One key. Twelve APIs.

A free IPNOVA API account gives you 5,000 lookups a month across every API below, 60 a minute, no card, for evaluation and small projects. Paid plans from $19 a month for production volumes, with a commercial licence and a hard cap instead of overage billing.

Card BINVINSWIFT/BICIBANHS tariffDisposable emailIP dataPhoneHolidaysMAC vendorPostal codeAirport
Create your free key

Takes a minute. Send it as X-Api-Key or ?key=.

Without a key this API answers 100 requests a day per IP address, for evaluation and personal use. Try it: curl https://cardbincheck.com/api/bin/424242

Example Request

Look up the BIN 424242:

curlcurl https://cardbincheck.com/api/bin/424242
JavaScriptconst r = await fetch('https://cardbincheck.com/api/bin/424242').then(r => r.json());
PHP$r = json_decode(file_get_contents('https://cardbincheck.com/api/bin/424242'), true);
Pythonr = requests.get('https://cardbincheck.com/api/bin/424242').json()

Example Response

A successful lookup returns 200 OK with:

FieldTypeDescription
successbooleantrue when the BIN was found
data.binstringThe matched BIN (longest dataset prefix of your input)
data.schemestringCard network - Visa, Mastercard, American Express, …
data.fundingstringCredit, Debit, Prepaid, or Charge Card
data.segmentstringCard product segment - Classic, Gold, Platinum, Business, …
data.issuerstringIssuing bank / financial institution
data.country_codestringISO 3166-1 alpha-2 country code
data.country_namestringCountry of issue
data.bank_urlstringIssuer website (when available)
data.bank_phonestringIssuer customer-service phone (when available)
pagestringHuman-readable page for this BIN on cardbincheck.com

Errors

Every non-200 response uses the same envelope: success: false, an error flag, a machine-readable reason, a human message, and a docs link back to this page.

StatusReasonMeaning
400invalid_inputThe BIN is not 6 to 8 digits
401invalid_keyThe supplied API key is unknown or revoked
404not_foundBIN not in the dataset
405method_not_allowedThe batch endpoint was called with GET instead of POST
413payload_too_largeThe batch request body is too large
429rate_limitToo many requests in the last minute (Retry-After: 60)
429daily_limitKeyless per-IP daily cap reached
429credits_exhaustedKeyed monthly allowance used up

Example, a BIN not in the dataset:

{"success": false, "error": true, "reason": "not_found", "message": "BIN not in the public dataset.", "docs": "https://cardbincheck.com/bin-lookup-api", "bin": "999999"}

Batch Lookups

Check up to 100 BINs in one request:

POST /api/bin-batch
Content-Type: application/json

{"bins": ["424242", "510510", "379354"]}

Each batch counts as one tenth of its size against the daily limit (a 100-BIN batch = 10 requests). There is also a browser version with CSV export.

Fair Use

  • 100 requests per day per IP - enough to evaluate the API; a free IPNOVA API key raises the limit.
  • Cache responses on your side (they rarely change); this effectively multiplies your quota.
  • A link back to cardbincheck.com is appreciated but not required.
  • Only the first 6-8 digits are ever processed. Never send full card numbers to any API.

Frequently Asked Questions

Is the BIN lookup API really free?

Yes. No API key, no registration, no credit card. Each IP can make up to 100 requests per day, and CORS is enabled for direct browser use.

Where does the data come from?

An open, regularly refreshed dataset of 343,000+ BIN records covering all major card networks and virtually every country.

Can I use it in production?

Yes, within fair use (100 requests/day per IP). Responses are cacheable for 24 hours, so caching on your side effectively multiplies your quota.

Do you have test BINs I can try?

Try 424242 (Visa), 511332 (Mastercard), or 371449 (American Express).

How do I call the BIN lookup API?

Send a GET request to https://cardbincheck.com/api/bin/{bin} where {bin} is the first 6-8 digits of a card, e.g. https://cardbincheck.com/api/bin/424242. The response is JSON.

What data does the API return?

The card scheme (Visa, Mastercard, etc.), funding type (credit/debit), card segment, issuing bank, country code and name, and the issuer website and phone when available.