Data & Analytics

List and filter raw rate rows

Lists raw, freshness-filtered rate rows (the core data primitive) joined to credit-union metadata. Filter by product, state, lender, term, loan program, and APR band; sort and paginate with limit/offset. Returns the matched rows plus pagination totals and the latest snapshot timestamp. This route is the single source of truth; the MCP list_rates tool and the consumer-app /rates page call it.

Authentication required: Pass your API key in the X-API-Key header.

post/v1/rates

Request

  • Base URL: https://api.rateapi.dev
  • URL: https://api.rateapi.dev/v1/rates
  • Auth: API key in header X-API-Key

Request body

product_type'mortgage' | 'auto_loan' | 'rv' | 'boat' | 'motorcycle' | 'powersports' | 'heloc' | 'personal_loan' | 'student_loan' | 'equipment_loan' | 'credit_card'

Filter to a single product family. Omit for all products.

statestring

2-letter US state code. Omit for all states.

lenderstring

Case-insensitive substring match on the credit-union name.

term_monthsinteger

Exact term in months (matches auto/personal/savings term columns).

loan_programstring

Exact loan-program match (e.g., conventional, jumbo, FHA, VA, USDA).

min_aprnumber

Lower bound on APR (percent).

max_aprnumber

Upper bound on APR (percent). Must be >= min_apr.

sort'apr_asc' | 'apr_desc' | 'rate_asc' | 'rate_desc' | 'updated_desc'

Sort order. Default apr_asc.

limitinteger

Max rows to return (clamped to 1..500). Default 50.

offsetinteger

Pagination offset (>= 0). Default 0.

audience'business' | 'consumer'

Audience scope: 'business' returns business-audience offers only; 'consumer' excludes them. Omit for both.

occupancy'investor' | 'second_home' | 'primary'

Real-estate occupancy filter (investor/DSCR, second home, primary residence).

Example request

{
  "product_type": "mortgage",
  "state": "CA",
  "lender": "navy",
  "term_months": 60,
  "loan_program": "conventional",
  "min_apr": 5,
  "max_apr": 8,
  "sort": "apr_asc",
  "limit": 50,
  "audience": "consumer",
  "occupancy": "investor"
}

Response

Matched raw rate rows with pagination.

as_ofstring nullable

When the underlying rates were published.

Example response

{
  "rates": [
    {
      "product_key": "mortgage|30-year-fixed|conventional|30-year-fixed|0||~~~~~~~~",
      "eligibility": {
        "status": "likely_eligible",
        "join_path": "Join the American Consumer Council (one-time $8 donation) during application",
        "eligibility_type": "community",
        "confidence": 0.9,
        "matched_rule": {
          "type": "county",
          "detail": "Sacramento"
        }
      }
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.