---
title: "Manufacturer communications that list a model year: service bulletins, service campaigns, warranty extensions and over-the-air updates."
method: GET
path: "/v1/vehicles/{id}/bulletins"
tags: ["Bulletins"]
---

# Manufacturer communications that list a model year: service bulletins, service campaigns, warranty extensions and over-the-air updates.

`GET /v1/vehicles/{id}/bulletins`

## Request

- Base URL: `https://open.wenmarpro.com`
- URL: `https://open.wenmarpro.com/v1/vehicles/{id}/bulletins`
- Auth: none declared

One page, newest first; `counts` says how many there are in all and of
what kind, so a caller can offer the narrowings that have something.

## Path parameters

- `id` string, required

## Query parameters

- `type` string
- `component` string
- `code` string
- `q` string
- `topic` string
- `limit` integer
- `cursor` string

## Response `200`

One page of bulletins, newest first.

- VehicleBulletins: Bulletins that list one model year.
  - `as_of` string, nullable: The day the bulletins were current.
  - `attribution` string[], required: The credit lines the data's licences ask for.
  - `bulletins` Bulletin[], required: One page, newest first.
    - `component` string, nullable: NHTSA's components, in its words, separated by `; `.
    - `date` string, nullable: The manufacturer's own date.
    - `date_added` string, required: The day NHTSA published it. Lists are ordered by it.
    - `document` BulletinDocument: Where NHTSA's copy of a bulletin's document is expected to be.
      - `alternate_url` string, required: The address to try when `url` answers "not found": NHTSA files documents under one of two endings, and the data does not say which.
      - `confirmed` boolean, required: Always `false`. The addresses are built from a rule that held for a sample of documents; this API has not asked NHTSA for this one.
      - `url` string, required: The likelier address of NHTSA's copy (a PDF).
    - `document_id` string, nullable: The manufacturer's own number for the document, which a dealer looks it up by.
    - `mfr_campaign` string, nullable: The manufacturer's campaign id or software version.
    - `nhtsa_id` integer, required: NHTSA's id number for the communication.
    - `summary` string, nullable: NHTSA's summary of the communication. The document itself is the manufacturer's and is not here.
    - `type` string, required: `service_bulletin`, `service_campaign`, `warranty_extension`, `over_the_air`, `emissions` or `other`.
    - `type_name` string, required: The type in words.
    - `url` string, required: The bulletin's page on this site.
  - `counts` BulletinCounts, required: What the bulletins of one model year are, in numbers. They count every bulletin of the model year, whatever the list is narrowed by.
    - `by_type` BulletinCount[], required: Every type with at least one bulletin.
      - `count` integer, required
      - `id` string, required: What to pass as `type`, `component`, `code` or `topic`.
      - `name` string, required
    - `codes` BulletinCount[], required: The trouble codes the summaries name most, up to 20.
      - `count` integer, required
      - `id` string, required: What to pass as `type`, `component`, `code` or `topic`.
      - `name` string, required
    - `components` BulletinCount[], required: Every component with at least one, commonest first. A bulletin about a part is counted under the part and under its system.
      - `count` integer, required
      - `id` string, required: What to pass as `type`, `component`, `code` or `topic`.
      - `name` string, required
    - `count` integer, required
    - `topics` BulletinCount[], required: `maintenance`, when a bulletin is about a schedule or an interval.
      - `count` integer, required
      - `id` string, required: What to pass as `type`, `component`, `code` or `topic`.
      - `name` string, required
  - `next_cursor` string, nullable: Pass it back as `cursor` for the next page. `null` on the last.
  - `note` string, required: What a bulletin is and is not.
  - `vehicle` RecallVehicle, required: The model year an answer is about.
    - `id` string, required: The id of the year, make and model.
    - `make` string, required
    - `model` string, required
    - `year` integer, required

## Other responses

- `400`: `validation_failed`: `type`, `component`, `code`, `topic`, `limit` or `cursor` is wrong.
- `404`: `not_found`: no vehicle has that id. `dataset_unavailable`: this server holds no bulletins.

---

[API](https://skmtc.dev/wenmarpro/apis/wenmar-open.md) · [All operations](https://skmtc.dev/wenmarpro/apis/wenmar-open/llms.txt) · [OpenAPI document](https://skmtc.dev/wenmarpro/apis/wenmar-open/revisions/1027b548b6f0?raw)
