---
title: "[beta] Gets campaign items."
method: GET
path: "/maintenance/campaigns/items"
tags: ["Beta APIs"]
---

# \[beta\] Gets campaign items.

`GET /maintenance/campaigns/items`

## Request

- Base URL: `https://api.samsara.com`
- URL: `https://api.samsara.com/maintenance/campaigns/items`
- Auth: HTTP bearer

Gets the items of a campaign, with each item's stored state, effective state, linked work order, VIN and source.

 <b>Rate limit:</b> 5 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).

To use this endpoint, select **Read Campaigns** under the Work Orders category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
 

 **Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our <a href="https://forms.gle/zkD4NCH7HjKb7mm69" target="_blank">API feedback form</a>. If you encountered an issue or noticed inaccuracies in the API documentation, please <a href="https://www.samsara.com/help" target="_blank">submit a case</a> to our support team.

## Query parameters

- `campaignId` string, required
- `after` string

## Response `200`

OK response.

- CampaignsGetCampaignItemsResponseBody
  - `data` CampaignItemResponseObjectResponseBody[], required: Campaign items.
    - `assetId` string, required: ID of the asset affected by the campaign.
    - `campaignId` string, required: Unique ID of the campaign the item belongs to.
    - `completedAtTime` string, date-time: Time the item was completed, in RFC 3339 format.
    - `createdAtTime` string, date-time, required: Time the item was created, in RFC 3339 format.
    - `dismissedReason` string: Reason the item was dismissed, when `state` is `dismissed`.
    - `effectiveState` 'pending' | 'hold' | 'ready' | 'workOrderCreated' | 'complete' | 'dismissed' | 'cancelled' | 'suspended' | 'unknown', required: The state the item behaves as. Equal to `state`, except `suspended` for an open item (`pending`, `hold`, `ready`) on a campaign that is in `draft` or `onHold`, where the item is kept off work orders until the campaign is active. Valid values: `pending`, `hold`, `ready`, `workOrderCreated`, `complete`, `dismissed`, `cancelled`, `suspended`, `unknown`
    - `id` string, required: Unique ID of the campaign item.
    - `linkedWorkOrderId` string: ID of the work order that materialized from this item, if any. Uses the same ID as the Work Orders API.
    - `sourceBasis` 'api' | 'targeting' | 'manual' | 'csv' | 'assistant' | 'nhtsa' | 'unknown', required: How the asset joined the campaign. Items added through this API are `api`. Valid values: `api`, `targeting`, `manual`, `csv`, `assistant`, `nhtsa`, `unknown`
    - `sourceRef` string: Opaque reference to the source feed row, supplied when the item was ingested, for external reconciliation.
    - `state` 'pending' | 'hold' | 'ready' | 'workOrderCreated' | 'complete' | 'dismissed' | 'cancelled' | 'unknown', required: Stored lifecycle state of the item. Defaults to `unknown` when the state is not recognized. Valid values: `pending`, `hold`, `ready`, `workOrderCreated`, `complete`, `dismissed`, `cancelled`, `unknown`
    - `stateSinceTime` string, date-time, required: Time the item entered its current state, in RFC 3339 format.
    - `vin` string: VIN as provided by the source of the item, if any.
  - `pagination` GoaPaginationResponseResponseBody, required: Pagination parameters.
    - `endCursor` string, required: Cursor identifier representing the last element in the response. This value should be used in conjunction with a subsequent request's 'after' query parameter. This may be an empty string if there are no more pages left to view.
    - `hasNextPage` boolean, required: True if there are more pages of results immediately available after this endCursor.

## Other responses

- `401`: Unauthorized response.
- `404`: Not Found response.
- `405`: Method Not Allowed response.
- `413`: Content Too Large response.
- `429`: Too Many Requests response.
- `500`: Internal Server Error response.
- `501`: Not Implemented response.
- `502`: Bad Gateway response.
- `503`: Service Unavailable response.
- `504`: Gateway Timeout response.
- `default`: Bad Request response.

---

[API](https://skmtc.dev/samsara/apis/samsara-api.md) - [All operations](https://skmtc.dev/samsara/apis/samsara-api/llms.txt) - [OpenAPI document](https://skmtc.dev/samsara/apis/samsara-api/revisions/a9e35d4999be?raw)
