Preventive Maintenance

Update an upcoming preventive maintenance instance

Patches the due-target and last-resolved values on the open preventive maintenance instance for a schedule and asset. Only fields provided in the request are updated.

<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 Write 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.

patch/maintenance/preventive/upcoming

Request

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

Query parameters

assetIdstring

Samsara ID for the asset.

scheduleIdstring

ID of the preventive maintenance schedule that the vehicle is scheduled to be serviced for.

Request body

lastResolvedAtstring

Date and time when the prior instance was resolved.

lastResolvedAtEngineHoursinteger

Engine hours at the time the prior instance was resolved.

lastResolvedAtOdometerinteger

Odometer reading at the time the prior instance was resolved. Measured in meters.

nextEngineHoursinteger

The next engine hour value that the vehicle is scheduled to be serviced.

nextOdometerinteger

The next odometer value that the vehicle is scheduled to be serviced. Measured in meters.

nextTimestring

The next time that the vehicle is scheduled to be serviced for a date based PM.

Example request

{
  "lastResolvedAt": "2026-05-14T09:30:00Z",
  "lastResolvedAtEngineHours": 4000,
  "lastResolvedAtOdometer": 117482112,
  "nextEngineHours": 4250,
  "nextOdometer": 125528832,
  "nextTime": "2026-10-11T09:30:00Z"
}

Response

OK response.

Example response

{
  "data": {
    "asset": {
      "id": "281474976710656"
    },
    "currentEngineHours": 4120,
    "currentOdometer": 120700800,
    "currentOdometerMiles": 75000,
    "dueInDays": 45,
    "dueInEngineHours": 130,
    "dueInOdometer": 4828032,
    "dueInOdometerMiles": 3000,
    "lastResolvedAt": "2026-05-14T09:30:00Z",
    "lastResolvedAtEngineHours": 4000,
    "lastResolvedAtOdometer": 117482112,
    "nextEngineHours": 4250,
    "nextOdometer": 125528832,
    "nextOdometerMiles": 78000,
    "nextTime": "2026-10-11T09:30:00Z",
    "priority": 45,
    "schedule": {
      "id": "281474976710656"
    },
    "status": "upcoming",
    "workOrder": {
      "id": "281474976710656"
    }
  }
}

Changes

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