Comprehensive guide to the BIN Lookup API endpoints, response fields, and their possible values.
The BIN Lookup API provides instant Bank Identification Number (BIN) lookups with optional IP geolocation data for enhanced security and fraud detection.
All API requests require a RapidAPI key. You can subscribe and get your API key from the RapidAPI BIN Lookup & IP Intelligence API page.
Include your RapidAPI key in the X-RapidAPI-Key header.
X-RapidAPI-Key: your_rapidapi_key
Rate limits apply and vary by subscription tier. Please refer to your subscription details for specific limits.
All responses are returned in JSON format with UTF-8 encoding.
GET /api/v1/lookupRetrieves Bank Identification Number (BIN) information with optional IP geolocation data.
binstringBank Identification Number. Must be 6-11 digits. Spaces and dashes are automatically stripped.
Example:
"424242"ipstring (optional)IP address (IPv4 or IPv6) for geolocation lookup and security analysis. When provided, the response includes IP location data and security risk assessment.
Example:
"8.8.8.8"X-RapidAPI-KeystringRapidAPI key for authentication. Required for all API requests. Get your key from the RapidAPI listing.
Example:
"your_rapidapi_key"binstringThe BIN number (6-11 digits) that was queried
Example:
"424242"validbooleanWhether the BIN is valid and exists in the database
Possible Values:
Example:
trueschemestring | nullCard scheme/brand (payment network)
Possible Values:
Example:
"VISA"typestring | nullCard type classification
Possible Values:
Example:
"CREDIT"card_categorystring | nullCard category/tier classification. Common values include CLASSIC, GOLD, PLATINUM, BUSINESS, CORPORATE, PREPAID, STANDARD. Other values may exist from the data source.
Possible Values:
Example:
"CLASSIC"currency_codestring | nullISO 4217 currency code for the card's country
Example:
"USD"Information about the card issuer (bank or financial institution).
issuer.namestring | nullName of the issuing bank or financial institution
Example:
"CHASE BANK USA, N.A."issuer.country_codestring | nullISO 3166-1 alpha-2 country code of the issuer
Example:
"US"issuer.phonestring | nullContact phone number for the issuer
Example:
"1-800-935-9935"issuer.websitestring | nullWebsite URL of the issuer
Example:
"https://www.chase.com"Card attributes indicating card characteristics.
attributes.is_commercialbooleanWhether the card is a commercial/business card
Possible Values:
Example:
falseattributes.is_prepaidbooleanWhether the card is a prepaid card
Possible Values:
Example:
falseattributes.is_reloadablebooleanWhether the prepaid card is reloadable. Only meaningful if is_prepaid is true.
Possible Values:
Example:
falseConditional Field: This object is only included when the ip query parameter is provided and IP lookup succeeds.
IP geolocation data from the provided IP address.
ip_location.countrystring | nullCountry name or code from IP geolocation
Example:
"US"ip_location.regionstring | nullRegion/state name from IP geolocation
Example:
"California"ip_location.citystring | nullCity name from IP geolocation
Example:
"Mountain View"ip_location.organizationstring | nullOrganization/ISP name associated with the IP
Example:
"Google LLC"ip_location.hostnamestring | nullReverse DNS hostname of the IP address
Example:
"dns.google"ip_location.timezonestring | nullTimezone associated with the IP location
Example:
"America/Los_Angeles"ip_location.coordsobject | nullGeographic coordinates (latitude/longitude). Null if coordinates are not available.
Example:
nullip_location.coords.latitudenumberLatitude coordinate
37.4056ip_location.coords.longitudenumberLongitude coordinate
-122.0775ip_location.currencystring | nullISO 4217 currency code for the IP's country
Example:
"USD"Conditional Field: This object is only included for valid BINs. Invalid BINs will not have an intelligence object to prevent false positives.
Business intelligence layer with routing, subscription, and security recommendations.
intelligence.routing.tierenumCard tier classification for payment routing
Possible Values:
Example:
"STANDARD_CONSUMER"intelligence.routing.interchange_profileenumExpected interchange fee profile
Possible Values:
Example:
"MEDIUM"intelligence.routing.recommendationenumRouting recommendation for payment processing optimization
Possible Values:
Example:
"ROUTE_STANDARD"intelligence.subscription.healthenumRisk assessment for recurring payments
Possible Values:
Example:
"SAFE"intelligence.subscription.recommendationenumRecommendation for handling recurring payments
Possible Values:
Example:
"ACCEPT"intelligence.subscription.is_recurring_compatiblebooleanWhether the card is compatible with recurring payment processing
Possible Values:
Example:
trueConditional Field: This object is only included when IP is provided and both IP and card country codes are available.
intelligence.security.ip_countrystring | nullCountry code from IP geolocation
Example:
"US"intelligence.security.card_countrystring | nullCountry code from BIN data
Example:
"US"intelligence.security.matchbooleanWhether the IP country matches the card country
Possible Values:
Example:
trueintelligence.security.risk_levelenumSecurity risk level based on country matching
Possible Values:
Example:
"SAFE"Request metadata.
meta.request_idstring (UUID)Unique request identifier (UUID format)
Example:
"550e8400-e29b-41d4-a716-446655440000"Complete response when a valid BIN is queried with an IP address parameter.
{
"bin": "424242",
"valid": true,
"scheme": "VISA",
"type": "CREDIT",
"card_category": null,
"currency_code": "USD",
"issuer": {
"name": "CHASE BANK USA, N.A.",
"country_code": "US",
"phone": "1-800-935-9935",
"website": "https://www.chase.com"
},
"attributes": {
"is_commercial": false,
"is_prepaid": false,
"is_reloadable": false
},
"ip_location": {
"country": "US",
"region": "California",
"city": "Mountain View",
"organization": "Google LLC",
"hostname": "dns.google",
"timezone": "America/Los_Angeles",
"coords": {
"latitude": 37.4056,
"longitude": -122.0775
},
"currency": "USD"
},
"intelligence": {
"routing": {
"tier": "STANDARD_CONSUMER",
"interchange_profile": "MEDIUM",
"recommendation": "ROUTE_STANDARD"
},
"subscription": {
"health": "SAFE",
"recommendation": "ACCEPT",
"is_recurring_compatible": true
},
"security": {
"ip_country": "US",
"card_country": "US",
"match": true,
"risk_level": "SAFE"
}
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}Response when a valid BIN is queried without an IP address. Note the absence of ip_location and intelligence.security fields.
{
"bin": "424242",
"valid": true,
"scheme": "VISA",
"type": "CREDIT",
"card_category": null,
"currency_code": "USD",
"issuer": {
"name": "CHASE BANK USA, N.A.",
"country_code": "US",
"phone": "1-800-935-9935",
"website": "https://www.chase.com"
},
"attributes": {
"is_commercial": false,
"is_prepaid": false,
"is_reloadable": false
},
"intelligence": {
"routing": {
"tier": "STANDARD_CONSUMER",
"interchange_profile": "MEDIUM",
"recommendation": "ROUTE_STANDARD"
},
"subscription": {
"health": "SAFE",
"recommendation": "ACCEPT",
"is_recurring_compatible": true
}
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440001"
}
}Response when an invalid BIN is queried. Note that all data fields are null and the intelligence object is completely omitted.
{
"bin": "12312312",
"valid": false,
"scheme": null,
"type": null,
"card_category": null,
"currency_code": null,
"issuer": {
"name": null,
"country_code": null,
"phone": null,
"website": null
},
"attributes": {
"is_commercial": false,
"is_prepaid": false,
"is_reloadable": false
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440002"
}
}All error responses follow a consistent structure with an error field containing the error message.
Invalid input parameters.
Invalid BIN format:
{"error": "Invalid BIN format. Provide 6-11 digits (spaces/dashes are allowed)"}Invalid IP format:
{"error": "Invalid IP address format. Provide a valid IPv4 or IPv6 address"}Missing or invalid authentication.
Missing authentication header:
{"error": "Missing X-RapidAPI-Key header"}Invalid RapidAPI key:
{"error": "Invalid API key"}BIN not found in the database.
{"error": "BIN not found"}Server error or external service failure.
{"error": "Failed to lookup BIN. Please try again later."}When it appears: Only included when the ip query parameter is provided and IP lookup succeeds.
When it's omitted: When no IP parameter is provided, or when IP lookup fails (graceful degradation).
When it appears: Only included for valid BINs. This prevents false positives where invalid cards would be marked as "SAFE".
When it's omitted: When the BIN is invalid (valid: false). All intelligence recommendations are omitted to prevent dangerous defaults.
When it appears: Only included when:
When it's omitted: When any of the above conditions are not met, even if the intelligence object is present.
The API implements graceful degradation: if IP lookup fails but BIN lookup succeeds, the API returns a partial success response with BIN data only. The ip_location and intelligence.security fields are simply omitted, and the response still contains all other available data.
| Field | Values | Description |
|---|---|---|
| scheme | VISAMASTERCARDAMEXDISCOVERDINERSJCBUNIONPAY | Card payment network/brand (common values; others may exist) |
| type | CREDITDEBIT | Card type classification |
| card_category | CLASSICGOLDPLATINUMBUSINESSCORPORATEPREPAIDSTANDARD | Card category/tier (common values; others may exist) |
| routing.tier | PREMIUM_BUSINESSSTANDARD_CONSUMER | Card tier for payment routing |
| routing.interchange_profile | LOWMEDIUMHIGH | Expected interchange fee level |
| routing.recommendation | ROUTE_TO_PREMIUMROUTE_TO_LOWER_COSTROUTE_STANDARD | Payment routing recommendation |
| subscription.health | RISKSAFEMEDIUM | Recurring payment risk assessment |
| subscription.recommendation | BLOCK_RECURRINGACCEPTMONITOR_RECURRING | Recurring payment handling recommendation |
| security.risk_level | HIGHSAFE | Security risk based on country matching |
validtrue: BIN exists in database and is recognized
false: BIN not found or invalid
attributes.is_commercialtrue: Business/commercial card
false: Consumer/personal card
attributes.is_prepaidtrue: Prepaid card
false: Regular credit/debit card
attributes.is_reloadabletrue: Prepaid card can be reloaded with funds
false: Prepaid card is single-use or non-reloadable
intelligence.subscription.is_recurring_compatibletrue: Card supports recurring payments
false: Card should not be used for recurring payments
intelligence.security.matchtrue: IP country matches card country (lower risk)
false: IP country differs from card country (higher risk)
Many fields can be null when data is not available. This is common for:
Always check for null values before using field data in your application logic.