Acura APIacura.ca ↗
Access current Acura Canada vehicle offers, lease and finance rates, incentives, and MSRP pricing across all provinces and models via 3 structured endpoints.
What is the Acura API?
The Acura Canada API provides 3 endpoints covering the full current vehicle catalog, provincial incentive offers, and detailed payment calculations for Acura models sold in Canada. The get_offers endpoint returns lease incentives, finance incentives, and cash rebates broken down by province and model — including ADX, MDX, RDX, and Integra — while calculate_payment returns APR, monthly payment, levies, and available terms for a specific trim and configuration.
curl -X GET 'https://api.parse.bot/scraper/4be36c44-9e7c-42d4-8b97-f347923e6f63/get_models?language=en' \ -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 acura-ca-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: Acura Canada Deals & Offers API — bounded, re-runnable."""
from parse_apis.acura_canada_deals_offers_api import (
AcuraCanada, Province, PaymentMethod, Language, InvalidInput
)
client = AcuraCanada()
# List all models with their trims and pricing
for model in client.models.list(language=Language.EN, limit=5):
print(model.name, model.year, model.categories)
for trim in model.trims[:2]:
print(f" {trim.display_name} — ${trim.transmissions[0].msrp}")
# Get current offers for a specific province
offer = client.offers.list(model="mdx", province=Province.ON, limit=3).first()
if offer:
print(offer.model_name, offer.model_year, offer.province)
for inc in offer.lease_incentives:
print(f" Lease incentive: {inc.name} — ${inc.value}")
# Calculate a lease payment using keys from the catalog
first_model = client.models.list(limit=1).first()
if first_model:
trim = first_model.trims[0]
tx = trim.transmissions[0]
try:
payment = client.payments.calculate(
model_key=first_model.model_key,
trim_key=trim.trim_key,
transmission_key=tx.transmission_key,
province=Province.BC,
payment_method=PaymentMethod.LEASE,
term=36,
)
print(payment.payment_method, payment.term, payment.apr)
print(f" Monthly: ${payment.gross_payment_amount}, MSRP: ${payment.msrp}")
print(f" Offer period: {payment.offer_period.start_date} to {payment.offer_period.end_date}")
except InvalidInput as exc:
print(f"Invalid input: {exc}")
print("exercised: models.list / offers.list / payments.calculate")
Get all current Acura models with trims, transmissions, and MSRP pricing. Returns the full vehicle catalog needed to look up keys for other endpoints. Each model contains nested trims, each trim contains nested transmissions with MSRP. The keys returned here (model_key, trim_key, transmission_key) are required inputs for calculate_payment.
| Param | Type | Description |
|---|---|---|
| language | string | Language code for response content. |
{
"type": "object",
"fields": {
"total": "integer count of models returned",
"models": "array of model objects each containing model_key, name, year, categories, trims with transmission details and MSRP"
},
"sample": {
"data": {
"total": 4,
"models": [
{
"name": "ADX",
"year": 2026,
"trims": [
{
"name": "ADX",
"seats": 5,
"trim_id": 10344,
"trim_key": "adx_10344",
"display_name": "ADX",
"transmissions": [
{
"msrp": 45980,
"type": "Automatic",
"model_code": "SA2H3TJN",
"transmission_id": 10319,
"transmission_key": "10319-Automatic"
}
],
"freight_pdi_cost": 2595,
"is_future_vehicle": false
}
],
"model_id": 10138,
"model_key": "adx",
"categories": [
"SUVs"
],
"show_price": false,
"display_order": 0
}
]
},
"status": "success"
}
}About the Acura API
Vehicle Catalog
The get_models endpoint returns the full Acura Canada vehicle catalog as an array of model objects. Each object includes a model_key, model name, year, category tags, and a trims array. Each trim carries a trim_key, transmission details, and MSRP. These keys are required inputs to the other two endpoints, so get_models is typically the first call in any integration. The optional language parameter controls the language of returned text content.
Provincial Incentive Offers
The get_offers endpoint accepts a province code (ON, BC, AB, SK, MB, QC, NB, NS, PE, NL) and an optional model filter (e.g., 'rdx', 'mdx', 'adx', 'integra'). Each offer object in the response includes model info, trim details, and three incentive arrays: lease_incentives, finance_incentives, and cash_. The response includes a province field echoing the queried province. When no active incentives exist for a given model/province combination, the offers array is empty — this is expected behavior, not an error.
Payment Calculation
The calculate_payment endpoint takes a required model_key and trim_key from get_models, plus optional parameters including province, term (in months), down_payment (CAD), km_allowance (for lease), and model_year. The response returns apr, msrp, term, a levies array with itemized fees, payment_method ('Lease' or 'Finance'), and an available_terms array listing each term option with its APR, standard flag, and validity dates. The offer_period object exposes the start and end dates of the current promotional period.
The Acura API is a managed, monitored endpoint for acura.ca — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when acura.ca 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 acura.ca 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 province-specific lease and finance offers for each Acura model on a Canadian automotive comparison site
- Monitor changes to Acura Canada incentive periods using the offer_period start/end dates from calculate_payment
- Build a payment estimator letting users select province, trim, term, and down payment to see monthly lease or finance costs
- Track MSRP and APR trends across Acura trims by polling get_models and calculate_payment over time
- Alert users when cash rebates or finance incentives become active for a specific model in their province
- Populate a dealer tool with current trim-level pricing and available terms without manually checking acura.ca
| 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.