NerdWallet APInerdwallet.com ↗
Access NerdWallet mortgage rates, top credit card picks, card detail pages, and mortgage articles via a single REST API. 4 endpoints, no scraper setup.
What is the NerdWallet API?
The NerdWallet API exposes 4 endpoints covering national average mortgage rates, top-rated credit card recommendations, per-card detail pages, and mortgage editorial content. The get_mortgage_rates endpoint returns rate data across products like 30-year fixed and ARM loans, while get_credit_card_detail delivers pros, cons, ongoing APR, annual fee, and NerdWallet's own rating for any card review slug you supply.
curl -X GET 'https://api.parse.bot/scraper/8e752b64-e4e1-43f5-8f6e-3dd0698d8501/get_mortgage_rates?zip_code=10001&credit_score=750&down_payment=100000&purchase_price=500000' \ -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 nerdwallet-com-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: NerdWallet SDK — mortgage rates, credit cards, articles."""
from parse_apis.nerdwallet_api import NerdWallet, CreditCard, MortgageRate, CardRecommendation, MortgageArticle, CardNotFound
nw = NerdWallet()
# List national average mortgage rates with location context
for rate in nw.mortgagerates.list(zip_code="10001", limit=5):
print(rate.product, rate.interest_rate, rate.apr)
# Browse top credit card recommendations
for card in nw.cardrecommendations.list(limit=3):
print(card.name, card.rating, card.description)
# Get detailed info for a specific card by slug
detail = nw.creditcards.get(slug="chase-freedom-unlimited")
print(detail.name, detail.annual_fee, detail.ongoing_apr)
for pro in detail.pros:
print(pro)
# Typed error handling: catch not-found for invalid slugs
try:
nw.creditcards.get(slug="nonexistent-card-slug-xyz")
except CardNotFound as exc:
print(f"Card not found: {exc.slug}")
# Browse mortgage-related articles and resources
for article in nw.mortgagearticles.list(limit=5):
print(article.title, article.url)
print("exercised: mortgagerates.list / cardrecommendations.list / creditcards.get / mortgagearticles.list")
Get national average mortgage rates for various products (30-year fixed, 15-year fixed, ARM, etc.). Returns rate data including interest rate and APR for each product type. Optional parameters provide location and borrower context but primarily return national averages. Lender offers array may be empty when no personalized offers are available.
| Param | Type | Description |
|---|---|---|
| zip_code | string | 5-digit US ZIP code for location context (e.g. 10001). |
| credit_score | string | Credit score value (e.g. 750). |
| down_payment | string | Down payment amount in dollars (e.g. 100000). |
| purchase_price | string | Home purchase price in dollars (e.g. 500000). |
{
"type": "object",
"fields": {
"lender_offers": "array of lender offer objects (may be empty)",
"national_averages": "array of objects with product, interest_rate, and apr fields"
},
"sample": {
"data": {
"lender_offers": [],
"national_averages": [
{
"apr": "6.46%",
"product": "30-year Fixed",
"interest_rate": "6.45%"
},
{
"apr": "5.83%",
"product": "15-year Fixed",
"interest_rate": "5.80%"
}
]
},
"status": "success"
}
}About the NerdWallet API
Mortgage Rate Data
get_mortgage_rates returns two key objects: national_averages — an array of objects each containing product, interest_rate, and apr — and lender_offers, which may be populated when location context is provided. Optional parameters include zip_code, credit_score, down_payment, and purchase_price. These inputs may or may not shift the national average figures, but they provide borrower-profile context when lender-level results are available.
Credit Card Endpoints
get_best_credit_cards returns an array of card objects with id, name, description, url, and rating fields, reflecting NerdWallet's editorially curated top-card list. For deeper detail on any individual card, get_credit_card_detail accepts a card_slug matching the URL path used on NerdWallet review pages (e.g. chase-freedom-unlimited). The response includes pros, cons, ongoing_apr, annual_fee, rating, and the canonical url. If the slug does not correspond to a valid review page, the endpoint returns an input_not_found indicator rather than an error.
Mortgage Articles
get_mortgage_articles returns an array of objects with title and url fields drawn from NerdWallet's mortgage editorial section, including guides, calculators, and explainers. This endpoint takes no input parameters and reflects the current state of that section's content listing.
The NerdWallet API is a managed, monitored endpoint for nerdwallet.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when nerdwallet.com 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 nerdwallet.com 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?+
- Display current 30-year fixed and ARM national average rates in a home-buying app using
national_averagesfromget_mortgage_rates. - Build a credit card comparison tool seeded with NerdWallet's top picks via
get_best_credit_cards. - Show side-by-side
pros,cons, andannual_feefor two cards by callingget_credit_card_detailwith each card's slug. - Populate a mortgage resource hub with fresh article links and titles from
get_mortgage_articles. - Filter credit card recommendations by
ratingto surface only the highest-rated cards in a personal finance dashboard. - Use
ongoing_aprfromget_credit_card_detailto compare borrowing costs across multiple cards programmatically. - Pre-qualify mortgage rate displays by passing
credit_scoreanddown_paymenttoget_mortgage_ratesfor borrower-specific context.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does NerdWallet have an official public developer API?+
What does `get_credit_card_detail` return, and what happens if I use a wrong slug?+
name, url, rating, annual_fee, ongoing_apr, pros (array of strings), and cons (array of strings) for the matched card review. If the card_slug you supply does not match a valid NerdWallet review page, the response contains an input_not_found indicator rather than raising an HTTP error, so you should check for that field in your response handling.Does `get_mortgage_rates` return lender-specific offers, or only national averages?+
national_averages with per-product interest_rate and apr values. The lender_offers array may be populated when location and borrower parameters are provided, but it can also return empty. You should not rely on lender_offers being non-empty in all cases.Does the API cover personal loans, auto loans, banking products, or insurance from NerdWallet?+
Does `get_best_credit_cards` allow filtering by card category, such as travel or cash-back rewards?+
description and name fields often indicate reward type, so category filtering would need to be applied client-side. You can fork the API on Parse and revise it to add a category-specific endpoint if you need server-side filtering.