Get a free key
Open recalls

Open recalls

Scale and upView as Markdown

Asks the manufacturer's own VIN recall lookup which safety recalls are open on this car, and which it reports as repaired. Unlike /recalls/{vin} this is about the VIN (scope: vin, vin_specific: true). The manufacturer is asked when the car has not been checked in the last 7 days; the answer is stored and served until then (freshness.cached). Covered makes: Honda, Acura, Chevrolet, GMC, Buick, Cadillac; any other make is 404 open_recalls_not_supported. "None open" is only ever a manufacturer answer inside that window: when the manufacturer cannot be reached the answer is 502 source_unavailable, and a VIN it does not know is 404 vin_not_recognized_by_maker. Neither is billed. Always show provenance.manufacturer and freshness.checked_at with the result.

GEThttps://api.motorsdynamic.com/api/v2/openrecalls/{vin}

Plan and price

PlanAccessPrice
FreeNonot included
GrowthNonot included
ScaleYes$0.03 per call
EnterpriseYescontract

A call is billed when it answers 2xx. See pricing.

Parameters

NameInTypeRequiredDescription
vinpathstringyes17-character VIN (case-insensitive).

Example request

curl "https://api.motorsdynamic.com/api/v2/openrecalls/1HGCM82633A004352" \
  -H "x-api-key: $MD_API_KEY"

Response fields

FieldTypeDescription
metaobject
dataobject
data.vinstring
data.vehicleobject
data.vehicle.yearinteger or null
data.vehicle.makestring or null
data.vehicle.modelstring or null
data.vehicle.trimstring or null
data.scopevin
data.vin_specifictrue
data.open_countintegerSafety recalls not reported as repaired on this car (unknown statuses included).
data.remedied_countintegerSafety recalls the manufacturer reports as repaired. Some manufacturers list only open ones.
data.recalls[]array of objectSafety recalls filed with NHTSA, open ones first.
data.recalls[].campaign_idstringThe manufacturer's own campaign number.
data.recalls[].nhtsa_campaignstring or nullNHTSA campaign number, for example 21V050000.
data.recalls[].statusopen or remedied or unknownunknown = the manufacturer gave a status we could not read; never treat it as repaired.
data.recalls[].titlestring or null
data.recalls[].descriptionstring or null
data.recalls[].safety_riskstring or null
data.recalls[].remedystring or null
data.recalls[].recall_datestring or null
data.recalls[].repair_datestring or null
data.recalls[].maker_statusstring or nullThe manufacturer's own wording of the status.
data.recalls[].nhtsa_urlstring or null
data.other_campaigns[]array of objectSpecial coverage, emission and customer programs. Not safety recalls.
data.other_campaigns[].campaign_idstringThe manufacturer's own campaign number.
data.other_campaigns[].nhtsa_campaignstring or nullNHTSA campaign number, for example 21V050000.
data.other_campaigns[].statusopen or remedied or unknownunknown = the manufacturer gave a status we could not read; never treat it as repaired.
data.other_campaigns[].titlestring or null
data.other_campaigns[].descriptionstring or null
data.other_campaigns[].safety_riskstring or null
data.other_campaigns[].remedystring or null
data.other_campaigns[].recall_datestring or null
data.other_campaigns[].repair_datestring or null
data.other_campaigns[].maker_statusstring or nullThe manufacturer's own wording of the status.
data.other_campaigns[].nhtsa_urlstring or null
data.noticestring
data.freshnessobject
data.freshness.checked_atstringWhen the manufacturer was asked.
data.freshness.cachedboolean
data.freshness.source_updatedstring or nullThe manufacturer's own data date, when it gives one.
data.freshness.cache_daysinteger
data.provenanceobject
data.provenance.sourcemanufacturer_recall_lookup
data.provenance.manufacturerstring
data.provenance.source_urlstring

Errors

StatusCodeWhen
400invalid_parameterA parameter is missing or malformed. The message names it.
401invalid_api_keyThe key is missing, revoked or mistyped.
402plan_requiredThe endpoint is on a higher plan. The body names the plan and links to the upgrade.
403not_entitledThe key may not read this dealer or source.
404not_foundNothing matches the identifier in the path.
429rate_limited or quota_exceededSlow down (see Retry-After), or the Free monthly calls are used up.
502errorSee the message.
503errorSee the message.
504query_timeoutThe query passed its 4 second budget. Narrow the filters. Not billed.

Every error has the same body. Full list: errors.