openapi: 3.0.1
info:
description: Gain greater visibility by connecting your fleets, equipment, sites, and people.
title: Samsara Defects API
version: '2024-11-18'
servers:
- url: https://api.samsara.com/
- url: https://api.eu.samsara.com/
security:
- AccessTokenHeader: []
tags:
- name: Defects
paths:
/fleet/defects/history:
get:
description: "Returns a list of DVIR defects in an organization, filtered by creation time. The maximum time period you can query for is 30 days. \n\n **Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our API feedback form. If you encountered an issue or noticed inaccuracies in the API documentation, please submit a case to our support team.\n\nTo use this endpoint, select **Read Defects** under the Maintenance category when creating or editing an API token. Learn More."
operationId: getDvirDefects
parameters:
- description: The limit for how many objects will be in the response. Default and max for this value is 512 objects.
in: query
name: limit
schema:
format: int64
maximum: 512
minimum: 1
type: integer
- description: 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.
in: query
name: after
schema:
type: string
- description: 'A start time in RFC 3339 format. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00). *The maximum time period you can query for is 30 days.*'
in: query
name: startTime
required: true
schema:
type: string
- description: 'An end time in RFC 3339 format. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00). *The maximum time period you can query for is 30 days.*'
in: query
name: endTime
required: true
schema:
type: string
- description: 'A filter on the data based on resolution status. Example: `isResolved=true`'
in: query
name: isResolved
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DefectsResponse'
description: List of all DVIR defects in the organization
default:
content:
application/json:
schema:
$ref: '#/components/schemas/standardErrorResponse'
description: Error response
summary: Get All Defects
tags:
- Defects
/fleet/defects/{id}:
patch:
description: "Updates a given defect. Can be used to resolve a defect by marking its `isResolved` field to `true`. \n\n **Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our API feedback form. If you encountered an issue or noticed inaccuracies in the API documentation, please submit a case to our support team.\n\nTo use this endpoint, select **Write Defects** under the Maintenance category when creating or editing an API token. Learn More."
operationId: updateDvirDefect
parameters:
- description: ID of the defect.
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DefectPatch'
description: The DVIR defect fields to update.
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DefectResponse'
description: Return the modified defect entity
default:
content:
application/json:
schema:
$ref: '#/components/schemas/standardErrorResponse'
description: Error response
summary: Update a Defect
tags:
- Defects
x-codegen-request-body-name: defect
components:
schemas:
trailerTinyResponse:
description: A minified trailer object.
properties:
id:
description: ID of the trailer.
example: '123456789'
type: string
name:
description: Name of the trailer.
example: 'Midwest Trailer #5'
type: string
type: object
DefectsResponse:
description: A list of defects.
properties:
data:
items:
$ref: '#/components/schemas/Defect'
type: array
pagination:
$ref: '#/components/schemas/paginationResponse'
type: object
DefectResponse:
description: A single defect.
properties:
data:
$ref: '#/components/schemas/Defect'
type: object
vehicleTinyResponse:
description: A minified vehicle object.
properties:
ExternalIds:
additionalProperties:
type: string
description: The [external IDs](https://developers.samsara.com/docs/external-ids) for the given object.
example:
maintenanceId: '250020'
payrollId: ABFS18600
type: object
id:
description: ID of the vehicle.
example: '123456789'
type: string
name:
description: Name of the vehicle.
example: 'Midwest Truck #4'
type: string
type: object
DefectPatch:
description: Information about resolving a defect. If resolving a defect, must specify `isResolved` as `true` and `resolvedBy`.
properties:
isResolved:
description: Resolves the defect. Must be `true`.
type: boolean
mechanicNotes:
description: The mechanics notes on the defect.
example: Extremely large oddly shaped hole in passenger side window.
type: string
resolvedAtTime:
description: 'Time when defect was resolved. Defaults to now if not provided. UTC timestamp in RFC 3339 format. Example: `2020-01-27T07:06:25Z`.'
example: '2020-01-27T07:06:25Z'
type: string
resolvedBy:
$ref: '#/components/schemas/ResolvedBy'
type: object
Defect:
properties:
comment:
description: Comment on the defect.
example: Air Compressor not working
type: string
createdAtTime:
description: 'Time when the defect was created. UTC timestamp in RFC 3339 format. Example: `2020-01-27T07:06:25Z`.'
example: '2020-01-27T07:06:25Z'
type: string
defectType:
description: The type of DVIR defect.
example: Air Compressor
type: string
id:
description: ID of the defect.
example: '18'
type: string
isResolved:
description: Signifies if this defect is resolved.
example: true
type: boolean
mechanicNotes:
description: The mechanics notes on the defect.
example: Extremely large oddly shaped hole in passenger side window.
type: string
mechanicNotesUpdatedAtTime:
description: 'Time when mechanic notes were last updated. UTC timestamp in RFC 3339 format. Example: `2020-01-27T07:06:25Z`.'
example: '2020-01-27T07:06:25Z'
type: string
resolvedAtTime:
description: 'Time when this defect was resolved. Will not be returned if the defect is unresolved. UTC timestamp in RFC 3339 format. Example: `2020-01-27T07:06:25Z`.'
example: '2020-01-27T07:06:25Z'
type: string
resolvedBy:
$ref: '#/components/schemas/Defect_resolvedBy'
trailer:
allOf:
- description: The trailer this defect was submitted for.
type: object
- $ref: '#/components/schemas/trailerTinyResponse'
type: object
vehicle:
allOf:
- description: The vehicle this defect was submitted for.
type: object
- $ref: '#/components/schemas/vehicleTinyResponse'
type: object
required:
- id
- isResolved
type: object
ResolvedBy:
description: Information about the user who is resolving a defect.
properties:
id:
description: The Id of user who is resolving the defect.
example: '11'
type: string
type:
description: The type of user who is resolving the defect. Must be "mechanic".
enum:
- mechanic
example: mechanic
type: string
required:
- id
- type
type: object
Defect_resolvedBy:
description: The person who resolved this defect. Will not be returned if the defect is unresolved.
properties:
id:
description: ID of the entity that resolved this defect. If the defect was resolved by a driver, this will be a Samsara Driver ID. If the defect was resolved by a mechanic, this will be the Samsara Dashboard User ID of the mechanic.
example: '11'
type: string
name:
description: Name of the person who resolved this defect.
example: Christopher 'The Handyman' Zhen
type: string
type:
description: Indicates whether this defect was resolved by a `driver` or a `mechanic`.
enum:
- driver
- mechanic
type: string
type: object
standardErrorResponse:
description: Error response
properties:
message:
description: The message of the error.
example: An error has occurred.
type: string
requestId:
description: The ID of the request.
example: 8916e1c1
type: string
type: object
paginationResponse:
description: Pagination parameters.
properties:
endCursor:
description: 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.
example: MjkY
format: string
type: string
hasNextPage:
description: True if there are more pages of results immediately available after this endCursor.
example: true
type: boolean
required:
- endCursor
- hasNextPage
type: object
securitySchemes:
AccessTokenHeader:
type: http
scheme: bearer
x-original-swagger-version: '2.0'
x-readme:
explorer-enabled: true
proxy-enabled: true