> ## Documentation Index
> Fetch the complete documentation index at: https://api-doc.track.graviton.ma/llms.txt
> Use this file to discover all available pages before exploring further.

# Update objects in a batch

> Each object may receive different supported changes. The complete request and access scope are validated before any update; duplicate IMEIs and unsupported fields are rejected. Requires write access. A read-only account cannot perform this operation. Requires object-edit permission.



## OpenAPI

````yaml /openapi.json patch /objects/batch
openapi: 3.0.3
info:
  title: Graviton Geo V1 Client API
  version: 2.0.0
  description: >-
    Client API for Graviton Geo V1. Use an API token to access your fleet,
    tracking, resources, commands, and reports. The REST API base path is
    /api/v2.
servers:
  - url: https://fleet.graviton.ma/api/v2
    description: Production
security:
  - ApiKey: []
tags:
  - name: System
  - name: Account
  - name: Fleet
  - name: Tracking
  - name: Commands
  - name: Places
  - name: People and groups
  - name: Events
  - name: Maintenance
  - name: Sensors
  - name: Reports
  - name: Templates
paths:
  /objects/batch:
    patch:
      tags:
        - Fleet
      summary: Update objects in a batch
      description: >-
        Each object may receive different supported changes. The complete
        request and access scope are validated before any update; duplicate
        IMEIs and unsupported fields are rejected. Requires write access. A
        read-only account cannot perform this operation. Requires object-edit
        permission.
      operationId: patch_objects_batch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ObjectBatchUpdateInput'
      responses:
        '200':
          $ref: '#/components/responses/Success'
        '401':
          $ref: '#/components/responses/Error'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/Error'
        '429':
          $ref: '#/components/responses/Error'
        '503':
          $ref: '#/components/responses/WritesDisabled'
components:
  schemas:
    ObjectBatchUpdateInput:
      type: object
      required:
        - updates
      additionalProperties: false
      properties:
        updates:
          type: array
          minItems: 1
          maxItems: 100
          items:
            type: object
            required:
              - imei
              - changes
            additionalProperties: false
            properties:
              imei:
                type: string
                pattern: ^[A-Za-z0-9_-]{1,20}$
              changes:
                $ref: '#/components/schemas/ObjectChanges'
    ObjectChanges:
      type: object
      minProperties: 1
      additionalProperties: false
      properties:
        protocol:
          type: string
        ip:
          type: string
        port:
          type: integer
        active:
          description: >-
            Canonical JSON Boolean. Case-insensitive true/false strings are
            accepted for backward compatibility.
          oneOf:
            - type: boolean
            - type: string
              enum:
                - 'true'
                - 'false'
        active_dt:
          type: string
          format: date
        dt_server:
          type: string
          description: >-
            Current object server timestamp. UTC YYYY-MM-DD HH:MM:SS or RFC3339
            with an explicit timezone; stored in UTC. Does not edit history
            rows.
        dt_tracker:
          type: string
          description: >-
            Current object tracker timestamp. UTC YYYY-MM-DD HH:MM:SS or RFC3339
            with an explicit timezone; stored in UTC. Does not edit history
            rows.
        name:
          type: string
        installation_dt:
          type: string
          format: date
        icon:
          type: string
        map_arrows:
          type: string
        map_icon:
          type: string
        tail_color:
          type: string
        tail_points:
          type: integer
        device:
          type: string
        sim_number:
          type: string
        model:
          type: string
        vin:
          type: string
        plate_number:
          type: string
        odometer_type:
          type: string
        engine_hours_type:
          type: string
        odometer:
          type: number
        engine_hours:
          type: number
        fcr:
          type: number
        time_adj:
          type: number
        accuracy:
          type: number
    SuccessEnvelope:
      type: object
      required:
        - success
        - data
      properties:
        success:
          type: boolean
          enum:
            - true
        data: {}
        meta:
          $ref: '#/components/schemas/Meta'
    ErrorEnvelope:
      type: object
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
            message:
              type: string
            details:
              type: object
              additionalProperties: true
        meta:
          $ref: '#/components/schemas/Meta'
    Meta:
      type: object
      properties:
        request_id:
          type: string
        page:
          type: integer
        per_page:
          type: integer
        total:
          type: integer
        pages:
          type: integer
  responses:
    Success:
      description: Successful response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SuccessEnvelope'
    Error:
      description: API error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    WritesDisabled:
      description: Production write safety switch is disabled
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Your Graviton API token. Send Authorization: Bearer YOUR_API_TOKEN or
        Authorization: YOUR_API_TOKEN. Each token has individual permissions; a
        valid token without the permission required by the method and route
        returns 403 TOKEN_PERMISSION_DENIED.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.