Bank APIhdfc.bank.in ↗
Access HDFC Bank's full credit card catalogue via API. Get card names, fees, features, categories, and benefit tags for all 60 cards in one request.
What is the Bank API?
The HDFC Bank credit cards API returns all 60 cards from HDFC Bank's public catalogue in a single call to the list_credit_cards endpoint. Each record includes the card's stable identifier, name, tagline, catalogue categories, marketing badge, headline features, benefit tags, cashback details, occupation eligibility, annual fee, and links to the application and detail pages.
curl -X GET 'https://api.parse.bot/scraper/913ccfaa-7b53-45f8-bf0b-6f00e40f0a81/list_credit_cards?category=Premium' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace hdfc-bank-in-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: HDFC Bank credit-card catalogue — browse, filter, and inspect cards."""
from parse_apis.hdfc_bank_in_api import HdfcBank, ParseError
client = HdfcBank()
# Get the full catalogue metadata: total count and available category labels.
try:
catalogue = client.catalogues.get()
except ParseError as e:
print(f"Catalogue fetch failed ({e.code}): {e}")
raise
print(f"Total cards in catalogue: {catalogue.total_cards}")
print(f"Available categories: {', '.join(catalogue.available_categories)}")
# List all credit cards, capped to 5 for a quick overview.
for card in client.credit_cards.list(limit=5):
print(f"{card.card_name} ({card.card_network}) — {card.badge}")
# Filter by a category discovered from the catalogue above.
first_category = catalogue.available_categories[0]
filtered = client.catalogues.get(category=first_category)
print(f"\n{first_category} cards: {filtered.count} of {filtered.total_cards}")
# Drill into the first card of that filtered set.
card = client.credit_cards.list(category=first_category, limit=1).first()
if card is not None:
print(f"\n{card.card_name} (id={card.card_id})")
print(f" Joining fee: {card.joining_fee}")
print(f" Annual fee: {card.annual_fee}")
print(f" Cashback on: {card.cashback_on}")
print(f" Features: {'; '.join(card.features)}")
print(f" Categories: {', '.join(card.categories)}")
print("\nexercised: catalogues.get / credit_cards.list / category filtering")
Returns every credit card in HDFC Bank's public credit-card catalogue (60 cards at build time) in one round trip; there is no pagination. Each row is one card with its name, stable card_id, catalogue categories, marketing badge, headline features, benefit tags, occupation and annual-income eligibility hints, and, where the site publishes them in its comparison table, card_type, card_network, best_suited_for, joining_fee and annual_fee (null when the site has none for that card). Fee values are the site's display strings in Indian rupees. An optional category filter is matched case-insensitively against the site's own category labels; a value matching no card returns an empty cards list (count 0) while total_cards and available_categories still describe the full catalogue.
| Param | Type | Description |
|---|---|---|
| category | string | Catalogue category label to filter on, matched case-insensitively against each card's categories. One shape is Premium; the current label set is returned in available_categories. Omitted = all cards. |
{
"type": "object",
"fields": {
"cards": "array of card records (one per credit card), each with card_id, card_name, tagline, categories, badge, features, benefits, cashback_on, occupation, annual_income_range, card_type, card_network, best_suited_for, joining_fee, annual_fee, image_url, details_url, apply_url",
"count": "number of cards returned after the category filter",
"total_cards": "number of cards in the full catalogue before filtering",
"category_filter": "the category filter applied, or null",
"available_categories": "sorted list of every category label present in the catalogue"
},
"sample": {
"data": {
"cards": [
{
"badge": "Premium, Exclusive",
"card_id": "infinia-metal-edition",
"tagline": "By Invite Only",
"benefits": [
"Lifestyle"
],
"features": [
"Complimentary Club Marriott Membership",
"Stay & Dining Benefits At Itc Hotels",
"7 Global Personal Concierge Service"
],
"apply_url": null,
"card_name": "INFINIA Metal Edition",
"card_type": "Premium",
"image_url": "https://www.hdfc.bank.in/content/dam/hdfcbankpws/in/en/personal-banking/discover-products/cards/credit-cards/infinia-credit-card/images/infinia-credit-card.png",
"annual_fee": "Rs. 12,500 + Applicable Taxes",
"categories": [
"Premium"
],
"occupation": [
"Salaried",
"Self Employed"
],
"cashback_on": "SmartBuy",
"details_url": "https://www.hdfc.bank.in/credit-cards/infinia-credit-card",
"joining_fee": "Rs. 12,500 + Applicable Taxes",
"card_network": "Visa",
"best_suited_for": "Lifestyle",
"annual_income_range": [
"5000000",
"5000000"
]
}
],
"count": 1,
"total_cards": 60,
"category_filter": "Premium",
"available_categories": [
"Business",
"Cashback",
"Digital Cards",
"Entertainment",
"Everyday Rewards",
"Lifestyle",
"Others",
"Popular Cards",
"Premium",
"Rewards",
"Travel And Fuel"
]
},
"status": "success"
}
}About the Bank API
What the API returns
The single list_credit_cards endpoint delivers the complete HDFC Bank credit-card catalogue in one response — no pagination required. At the top level, the response includes cards (the full array of card records), count (cards returned after any filter), total_cards (catalogue size before filtering), category_filter (the filter value applied or null), and available_categories (a sorted list of every category label in the catalogue).
Each card record carries a stable card_id alongside card_name and tagline. Structural fields include categories (an array of catalogue labels such as "Travel", "Cashback", or "Super Premium"), badge (the marketing label like "Best Seller" or "New"), features (headline feature bullets), and benefits (benefit tags surfaced on the catalogue page). Financial metadata includes the annual fee and cashback terms. Application and detail page links are also present for direct deep-linking.
Filtering by category
The optional category parameter on list_credit_cards performs a case-insensitive match against each card's categories array. Pass a value like "travel" or "cashback" to receive only the matching subset; the count field in the response reflects how many cards matched, while total_cards always shows the full catalogue size. The available_categories field in every response enumerates all valid category labels, which is useful for building a dynamic filter UI without hardcoding values.
Coverage scope
The API reflects the cards HDFC Bank actively markets on its public credit-card catalogue page. Data includes occupation-eligibility signals — relevant when filtering cards for salaried vs. self-employed applicants. Fields that require a logged-in session or post-application context (account statements, reward-point balances, transaction history) are outside the scope of this catalogue-level endpoint.
The Bank API is a managed, monitored endpoint for hdfc.bank.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when hdfc.bank.in changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official hdfc.bank.in API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a credit card comparison tool filtered by category (e.g. travel, cashback, super premium) using the
categoryparam andfeaturesfields - Populate a dynamic category filter UI using the
available_categorieslist returned in every response - Track changes in HDFC Bank's card lineup by diffing
total_cardsandcard_idvalues over time - Show occupation-based eligibility (salaried vs. self-employed) when recommending cards in a personal finance app
- Generate affiliate or referral links directly from the application URLs included in each card's
linksfield - Display annual fees and cashback terms side-by-side across multiple HDFC cards for fintech comparison pages
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does HDFC Bank offer an official public developer API for its credit card catalogue?+
What does the `list_credit_cards` endpoint return for each card, and how does filtering work?+
card_id, card_name, tagline, categories, badge, features, benefits, cashback terms, occupation eligibility, annual fee, and application/detail links. Passing the optional category query parameter filters results case-insensitively against each card's categories array. The response always includes available_categories so you can discover valid filter values programmatically.Does the API return real-time reward point balances or transaction history?+
Is there pagination, and what is the current catalogue size?+
list_credit_cards returns all cards in one response. The total_cards field confirms the full catalogue size (60 cards at build time) and the count field reflects how many cards matched any category filter you applied.