Beta APIs

[beta] Create a maintenance estimate

Create a priced vendor quote or expected-cost recommendation for a work order.

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

To use this endpoint, select Write Work Orders 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.

post/maintenance/estimates

Request

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

Query parameters

includeExternalIdsboolean

Include estimate external identifiers. Defaults to false.

Request body

approvalStatus'unapproved' | 'approved' | 'denied'

Defaults to unapproved on create. Approved or denied records a decision through Samsara approval and UTS and requires a stable externalIds identifier for retries; approval never awards the estimate. Valid values: unapproved, approved, denied

estimateType'expectedCost' | 'vendorQuote'

Recommendation or vendor quote. Defaults to vendorQuote when omitted. expectedCost requires an externally managed work order and must be created unapproved; lineItems and tax remain required. Valid values: expectedCost, vendorQuote

externalIdsobject

Estimate external identifiers. Responses include these only when includeExternalIds=true; default omitted.

notesstring

Notes, at most 4000 Unicode characters.

quotedAtTimestring date-time

Actual quote timestamp. Omit if the source only has a date; do not invent a time or offset.

supersedesEstimateIdstring

Same-WO/vendor denied estimate superseded by this quote.

vendorIdstring required

Same-org vendor location UUID or external ID. Resolve the location via GET /fleet/maintenance/vendor-locations.

workOrderIdstring required

Same-org numeric work order ID.

Example request

{
  "lineItems": [
    {
      "amount": {
        "amount": "640.20",
        "currency": "usd"
      },
      "description": "Replace turbocharger"
    }
  ],
  "tax": {
    "amount": "64.02",
    "currency": "usd"
  },
  "vendorId": "a81e26e6-50cd-4ae2-85b9-132c493c0871",
  "workOrderId": "464"
}

Response

OK response.

Example response

{
  "data": {
    "approvalSource": "none",
    "approvalStatus": "unapproved",
    "attachments": [
      {
        "createdAtTime": "2026-10-07T15:00:00Z",
        "id": "a81e26e6-50cd-4ae2-85b9-132c493c0871",
        "name": "repair-quote.pdf",
        "processingStatus": "finished",
        "updatedAtTime": "2026-10-07T15:00:00Z",
        "url": "https://example.com/file",
        "urlExpiresAt": "2026-10-07T15:00:00Z"
      }
    ],
    "createdAtTime": "2026-10-07T15:00:00Z",
    "estimateType": "vendorQuote",
    "externalIds": {
      "repairSystem": "quote-123"
    },
    "externalRequest": {
      "actionUrl": "https://example.com/requests/AI-563-1",
      "externalRequestId": "AI-563-1",
      "externalSystem": "Auto Integrate",
      "message": "Review quote in Auto Integrate"
    },
    "id": "a81e26e6-50cd-4ae2-85b9-132c493c0871",
    "lineItems": [
      {
        "amount": {
          "amount": "640.2",
          "currency": "usd"
        },
        "costType": "labor",
        "description": "Replace turbocharger",
        "id": "a81e26e6-50cd-4ae2-85b9-132c493c0871",
        "quantity": 2,
        "serviceTaskId": "a81e26e6-50cd-4ae2-85b9-132c493c0871",
        "unitRate": {
          "amount": "95.005",
          "currency": "usd"
        }
      }
    ],
    "notes": "Contact shop before starting work.",
    "quotedAtTime": "2026-10-07T15:00:00Z",
    "subtotal": {
      "amount": "640.2",
      "currency": "usd"
    },
    "supersededByEstimateId": "a81e26e6-50cd-4ae2-85b9-132c493c0871",
    "supersedesEstimateId": "a81e26e6-50cd-4ae2-85b9-132c493c0871",
    "tax": {
      "amount": "640.2",
      "currency": "usd"
    },
    "total": {
      "amount": "640.2",
      "currency": "usd"
    },
    "updatedAtTime": "2026-10-07T15:00:00Z",
    "vendorId": "a81e26e6-50cd-4ae2-85b9-132c493c0871",
    "version": 1,
    "workOrderId": "464"
  }
}

Changes

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