changedInput schema / properties / campaignNumber / description
Previous value: -"NHTSA campaign number (e.g., \"20V682000\"). When provided, returns the campaign detail plus every vehicle it covers. Mutually exclusive with make/model/modelYear."New value: +"NHTSA campaign number (e.g., \"20V682000\"). When provided, returns the campaign detail plus every vehicle it covers. A 6-character number (e.g., \"00V419\") returns every campaign it covers, each with its own detail and vehicles. Mutually exclusive with make/model/modelYear."
changedInput schema / properties / dateRange / description
Previous value: -"Inclusive received-date bounds in YYYY-MM-DD, in either lookup mode. Blank bounds are unset; records without a usable date are excluded only with active bounds."New value: +"Inclusive received-date bounds in YYYY-MM-DD, in every mode; a bound alone is a broad search. Blank bounds are unset; records without a usable date are excluded only with active bounds."
addedInput schema / properties / limit
Added value: +{
+ "description": "Campaigns per page of a broad search. Defaults to 20; at most 50 per page. Not accepted with campaignNumber or a full make + model + modelYear lookup, which return every match.",
+ "minimum": 1,
+ "multipleOf": 1,
+ "type": "number"
+}
changedInput schema / properties / make / description
Previous value: -"Vehicle manufacturer. Required with model and modelYear when not using campaignNumber."New value: +"Vehicle make (e.g., \"Toyota\"). With model and modelYear, looks up that vehicle's recalls; otherwise a broad-search filter matching the whole make name, ignoring case."
changedInput schema / properties / model / description
Previous value: -"Vehicle model. Required with make and modelYear."New value: +"Vehicle model. With make and modelYear, looks up that vehicle's recalls; otherwise a broad-search filter matching the whole model name, ignoring case."
changedInput schema / properties / modelYear / description
Previous value: -"Model year, a whole number. Required with make and model."New value: +"Model year, a whole number. With make and model, looks up that vehicle's recalls; otherwise a broad-search filter."
addedInput schema / properties / offset
Added value: +{
+ "description": "Pagination offset into the newest-first results of a broad search. Defaults to 0. Not accepted with campaignNumber or a full make + model + modelYear lookup.",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+}
changedOutput schema / properties / effectiveQuery / description
Previous value: -"The search key used: campaign number, or \"make model modelYear\" for vehicle queries."New value: +"The search key used: campaign number, \"make model modelYear\" for a vehicle lookup, or the broad-search filters as key=value pairs with make and model uppercased as matched, plus any active date bounds."
changedOutput schema / properties / error / properties / data / properties / reason / description
Previous value: -"Machine-readable failure mode. Declared by this tool: `mode_conflict`: Both campaignNumber and vehicle params were provided. `missing_required_combo`: Neither campaignNumber nor a complete vehicle triple was supplied. `campaign_not_found`: The campaignNumber did not match any NHTSA recall. `invalid_date`: A dateRange bound is not a calendar-valid YYYY-MM-DD date. `inverted_date_range`: dateRange.after is later than dateRange.before. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `mode_conflict`: campaignNumber was combined with make, model, or modelYear; or limit or offset was sent with campaignNumber or a full make + model + modelYear lookup. `missing_required_combo`: No campaignNumber, make, model, modelYear, or active dateRange bound was supplied. `limit_too_large`: limit exceeds the 50-row page maximum on a server set to reject an over-maximum limit rather than lower it. `campaign_not_found`: The campaignNumber did not match any NHTSA recall. `invalid_date`: A dateRange bound is not a calendar-valid YYYY-MM-DD date. `inverted_date_range`: dateRange.after is later than dateRange.before. Other values are possible when a failure originates below the handler."
changedOutput schema / properties / error / properties / data / properties / reason / examples
Previous value: -[
- "mode_conflict",
- "missing_required_combo",
- "campaign_not_found",
- "invalid_date",
- "inverted_date_range"
-]New value: +[
+ "mode_conflict",
+ "missing_required_combo",
+ "limit_too_large",
+ "campaign_not_found",
+ "invalid_date",
+ "inverted_date_range"
+]
addedOutput schema / properties / limit
Added value: +{
+ "description": "Broad search only: pagination limit used for this page",
+ "type": "number"
+}
changedOutput schema / properties / notice / description
Previous value: -"Guidance when no recalls are found — e.g. how to verify make/model/year spelling."New value: +"Guidance when no recalls match: for a vehicle lookup, how to list the other model names NHTSA may file its recalls under with nhtsa_lookup_vehicles operation=\"dataset_models\"; for a broad search, which filters to relax. Also explains a date range that excluded every recall, a broad-search page past the last match, and a limit lowered to the page maximum."
addedOutput schema / properties / offset
Added value: +{
+ "description": "Broad search only: pagination offset used for this page",
+ "type": "number"
+}
changedOutput schema / properties / recalls / description
Previous value: -"Matching recall campaigns"New value: +"Matching recall campaigns; in a broad search, one page of them"
changedOutput schema / properties / recalls / items / properties / component / description
Previous value: -"Affected component (vehicle-scoped queries)"New value: +"Affected component. A broad search joins all of the campaign's components with \" | \"."
changedOutput schema / properties / recalls / items / properties / consequence / description
Previous value: -"Safety consequence"New value: +"Safety consequence. Omitted for older campaigns whose record leaves it blank."
changedOutput schema / properties / recalls / items / properties / overTheAirUpdate / description
Previous value: -"OTA update availability when provided by NHTSA"New value: +"OTA update availability when provided by NHTSA. Never set by a broad search: NHTSA's recall files carry no such flag."
changedOutput schema / properties / recalls / items / properties / potentialUnitsAffected / description
Previous value: -"Units affected (campaign queries)"New value: +"Units affected (campaign queries and broad searches)"
changedOutput schema / properties / recalls / items / properties / remedy / description
Previous value: -"Corrective action"New value: +"Corrective action. Omitted for older campaigns whose record leaves it blank."
changedOutput schema / properties / recalls / items / properties / summary / description
Previous value: -"Recall summary"New value: +"Recall summary. Omitted for older campaigns whose record leaves it blank."
changedOutput schema / properties / recalls / items / required
Previous value: -[
- "campaignNumber",
- "manufacturer",
- "summary",
- "consequence",
- "remedy",
- "reportReceivedDate"
-]New value: +[
+ "campaignNumber",
+ "manufacturer",
+ "reportReceivedDate"
+]
addedOutput schema / properties / returned
Added value: +{
+ "description": "Broad search only: campaigns in this page",
+ "type": "number"
+}
changedOutput schema / properties / totalCount / description
Previous value: -"Total recalls matching criteria"New value: +"Total recalls matching criteria; in a broad search, across every page"