Preventive Maintenance

List upcoming preventive maintenance

Returns a paginated list of upcoming preventive maintenance schedules for the organization's assets, enriched with live telemetry (current odometer, engine hours) and due-date projections.

<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 Upcoming Preventive Maintenance under the Preventive Maintenance 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.

get/maintenance/preventive/upcoming

Request

  • Base URL
    https://api.samsara.com
  • Auth
    HTTP bearer

Query parameters

scheduleIdsstring

A filter on the data based on this comma-separated list of Preventive maintenance schedule ID values.

assetIdsstring

A filter on the data based on this comma-separated list of Asset ID values.

afterstring

If specified, this should be the endCursor value from the previous page of results. When present, this request will return the next page of results that occur immediately after the previous page of results.

limitinteger

The limit for how many objects will be in the response. Default and max for this value is 200 objects.

Response

OK response.

Example response

{
  "data": [
    {
      "asset": {
        "id": "281474976710656"
      },
      "currentEngineHours": 4120,
      "currentOdometer": 120700800,
      "dueInDays": 45,
      "dueInEngineHours": 130,
      "dueInOdometer": 4828032,
      "lastResolvedAt": "2026-05-14T09:30:00Z",
      "lastResolvedAtEngineHours": 4000,
      "lastResolvedAtOdometer": 117482112,
      "nextEngineHours": 4250,
      "nextOdometer": 125528832,
      "nextTime": "2026-10-11T09:30:00Z",
      "schedule": {
        "id": "281474976710656"
      },
      "status": "upcoming",
      "workOrder": {
        "id": "281474976710656"
      }
    }
  ],
  "pagination": {
    "endCursor": "MjkY",
    "hasNextPage": true
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.