Toyota APItoyota.ca ↗
Access current Toyota Canada vehicle deals by province. Get lease rates, finance APR, monthly payments, cash incentives, and EVAP rebate eligibility via one endpoint.
What is the Toyota API?
The Toyota Canada Deals API exposes current vehicle promotions from toyota.ca through a single endpoint, get_vehicle_deals, returning up to dozens of deal objects per province with 13 supported province codes. Each response includes lease terms, finance APR, monthly payment amounts, down payments, cash incentives, and EVAP rebate eligibility flags — all filtered to the Canadian province you specify.
curl -X GET 'https://api.parse.bot/scraper/fc160b05-45a8-4d6f-95c8-d450dd01ea11/get_vehicle_deals?province=ON' \ -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 toyota-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: Toyota Canada Vehicle Deals API — browse current offers by province."""
from parse_apis.toyota_canada_vehicle_deals_api import ToyotaCanada, Province, ProvinceInvalid
client = ToyotaCanada()
# List all current deals for Ontario (default province).
for deal in client.deals.list(province=Province.ON, limit=5):
print(deal.model_year, deal.series, deal.powertrain)
print(f" Featured payment: ${deal.featured_payment.amount} ({deal.featured_payment.type})")
# Drill into the first BC deal's offers for financial details.
bc_deal = client.deals.list(province=Province.BC, limit=1).first()
if bc_deal:
for offer in bc_deal.offers:
print(offer.offer_title, offer.offer_message)
if offer.apr is not None:
print(f" APR: {offer.apr}%, term: {offer.term_months} months")
# Typed error handling: catch an invalid province code.
try:
for deal in client.deals.list(province="XX", limit=1):
print(deal.model)
except ProvinceInvalid as exc:
print(f"Invalid province: {exc.province}")
print("exercised: deals.list (ON) / deals.list (BC) + offer drill-down / ProvinceInvalid catch")
Get all current vehicle deals and promotions for a specific Canadian province. Returns detailed offer information including lease rates, finance APR, monthly payments, terms, down payments, cash incentives, and EVAP rebate eligibility. Each deal includes the vehicle model info and one or more province-specific offers with structured financial details parsed from disclaimer text. Vehicles with no offers matching the requested province are excluded from results.
| Param | Type | Description |
|---|---|---|
| province | string | Canadian province code to filter offers. |
{
"type": "object",
"fields": {
"deals": "array of deal objects containing model info, pricing, and province-specific offers",
"province": "string - province code used for filtering",
"total_deals": "integer - number of vehicle deals found"
},
"sample": {
"data": {
"deals": [
{
"msrp": null,
"model": "C-HR SE FWD",
"offers": [
{
"provinces": [
"BC",
"AB",
"NS"
],
"offer_title": "Electric Vehicle Affordability Program",
"offer_message": "Eligible for EVAP Rebate",
"disclaimer_text": "Rebate amount if purchased..."
},
{
"provinces": [
"AB",
"BC",
"NB"
],
"offer_title": "Customer Incentive",
"offer_message": "Cash Incentives of $5,000",
"disclaimer_text": "Customer Incentive offers valid..."
}
],
"series": "C-HR",
"province": "ON",
"card_label": "Battery Electric 2026 C-HR SE FWD",
"model_year": "2026",
"powertrain": "Battery Electric",
"explorer_url": "https://www.toyota.ca/en/vehicles/c-hr/overview/",
"vehicle_image": "https://toyotacanada.scene7.com/is/image/toyotacanada/b26_ababde_fl1_04z3_c?fmt=png-alpha",
"vehicle_types": [
"Electrified",
"SUVs & Minivans"
],
"featured_payment": {
"type": "Finance",
"amount": 1303.65
},
"build_and_price_url": "https://www.toyota.ca/en/build-price/c-hr/?year=2026&model=ABABDE&package=C",
"limited_availability": null,
"vehicle_from_pricing": null
}
],
"province": "ON",
"total_deals": 10
},
"status": "success"
}
}About the Toyota API
What the API Returns
The get_vehicle_deals endpoint returns an array of deal objects covering Toyota Canada's current promotional offers. Each object contains model-level information alongside province-specific pricing: lease monthly payments and terms, finance APR and term length, cash purchase incentives, required down payments, and whether the vehicle qualifies for Canada's EVAP (electric vehicle) rebate program. The response also surfaces total_deals as an integer, giving you a quick count of active promotions without iterating the array.
Province Filtering
The single input parameter province accepts standard two-letter Canadian province and territory codes: ON, BC, AB, QC, MB, SK, NS, NB, PE, NL, NT, NU, and YT. Toyota Canada prices and structures offers differently by province — particularly for Quebec, which has distinct tax treatment and occasionally separate incentive stacks — so specifying the correct province code is important for accurate figures. If the parameter is omitted, the API falls back to a default province.
Response Shape and Coverage
Each deal object within the deals array carries the model name and trim alongside all active offer types simultaneously — a single model may carry both a lease offer and a finance offer within the same object. Cash purchase incentives and EVAP rebate flags appear as discrete fields, making it straightforward to filter for EV-eligible deals or purely cash-back promotions. The province field in the response echoes back the code used so downstream logic can confirm which market the data reflects.
The Toyota API is a managed, monitored endpoint for toyota.ca — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when toyota.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 toyota.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?+
- Aggregate and compare Toyota Canada lease rates across all provinces for a side-by-side monthly payment table
- Filter deals by EVAP rebate eligibility to surface EV and hybrid incentive stacks for a Canadian EV buyer's guide
- Track changes in finance APR offers month-over-month to identify when Toyota Canada adjusts promotional rates
- Build a province-specific deal alert system that notifies users when cash incentives exceed a threshold
- Populate a dealership CRM with current national Toyota Canada promotional offers by region
- Compare lease terms and down payment requirements across models to calculate total cost of ownership
| 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.