← Docs

Card API

Card brand and CDN logo from 2–11 leading digits. Optional issuer details in Deep.

Send a prefix to get the card network and a CDN SVG logo. brand is the network key; brand_name is its display name. Core detection uses reviewed network rules independently of issuer records. Each call uses one pooled request on every plan, including Free and optional Deep.

Use 2 to 11 leading ASCII digits supplied by your payment processor, as a string. Short prefixes identify some networks; others need more digits. Never send a full card number. Leading zeros are preserved.

Input is limited to 64 characters before normalization. Only ASCII spaces, tabs, CR, LF, and hyphens are removed. Other characters and malformed prefixes return HTTP 400.

Look up a prefix

GET
api.parseapi.com/card/{bin}
Card network and CDN SVG logo; optional issuer details
Explore
Parameters 2
binstring · path · required

Processor-provided BIN/IIN prefix with 2 to 11 ASCII digits as a string, up to 64 characters before normalization. Only ASCII space, tab, CR, LF and hyphen separators are removed. Preserve leading zeros

deepboolean · query · optional

Recorded issuer details and the actual matched prefix. Partial coverage; unknown fields stay null. Included on every plan, with no additional charge.

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.card("51");
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "bin": "51",
  "brand": "mastercard",
  "brand_name": "Mastercard",
  "logo": "https://cdn.parseapi.com/card/mastercard.svg"
}

Response fields

bin
Supplied 2-11-digit card prefix with spaces and hyphens removed. Leading zeros are preserved
brand
Network key from reviewed prefix rules, or null when unknown or ambiguous
brand_name
Display name for brand, or null when brand is null

Optional issuer details

Add deep=true for recorded issuer details. Six or more digits enable directory matching; shorter inputs return all-null Deep fields. deep.prefix is the longest recorded prefix that matches the start of your input. It may be shorter than bin. An eight-digit input with only a six-digit match returns that six-digit prefix.

All Deep fields come from the one matched record. Core brand and logo remain unchanged when Deep is requested. If a more specific record has a null field, it stays null. Details from a broader record are not combined with it.

Unknown prefixes and missing fields

A well-formed unknown or ambiguous prefix returns HTTP 200 with your normalized bin, null brand fields and a generic logo. A known network can still have no issuer record. Unknown Deep fields stay null; prepaid: null means unknown, not false.

Network rules cover 15 families and issuer coverage is partial. These are reference details, not a check of current allocation, card activity, ownership, available funds, or payment acceptance.

Deep

?deep=true Recorded issuer details and the actual matched prefix. Partial coverage; unknown fields stay null. Included on every plan, with no additional charge.

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.card("51", { deep: true });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response

More digits needed for issuer details

Send at least six prefix digits for a directory lookup.

{
  "bin": "51",
  "brand": "mastercard",
  "brand_name": "Mastercard",
  "logo": "https://cdn.parseapi.com/card/mastercard.svg",
  "deep": {
    "prefix": null,
    "issuer": null,
    "country": null,
    "type": null,
    "prepaid": null
  }
}

Deep fields

deep.prefix
Longest recorded prefix matching the start of bin, or null when unknown. May be shorter than the supplied input
deep.country
Recorded card-issuer country as an ISO 3166-1 alpha-2 code, or null when unavailable
deep.issuer
Recorded issuer name, or null when unavailable
deep.type
Recorded card type, such as credit, debit, or charge, or null when unavailable or mixed
deep.prepaid
true or false only when known. null means prepaid status is unavailable

Questions? Email