> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jitra.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Read One Object

> Returns one Object with detailed location, telemetry, metadata, and latest real-time values when available.



## OpenAPI

````yaml openapi.json GET /objects/{id}
openapi: 3.0.3
info:
  title: Jitra Public API
  version: 1.0.0
  description: >-
    Read-only integration API for organization fleet data: tracked objects, live
    and historical positions, geofences, routes, and sites.


    ## Authentication

    All endpoints except the health ping require an organization API key. Send
    it with either:

    - `x-api-key: <api_key>`

    - `Authorization: Bearer <api_key>`


    Missing, invalid, or expired keys return HTTP `401`.


    ## Versioning

    URI versioning is enabled. The current version is `v1`. The global prefix is
    `public`, so every resource lives under `/public/v1`.


    ## Rate limits

    Requests are throttled per organization:

    - Window: 10 seconds

    - Limit: 10 requests per window


    Exceeding the throttle returns HTTP `429`.


    Position endpoints also enforce a daily per-object API usage quota from the
    organization subscription (`INTEGRATION_API_DAILY`). When the quota is
    exhausted the API returns HTTP `400` with `errorCode` `PUBLIC.400_005`.
    Inactive or suspended subscriptions return HTTP `403` with `errorCode`
    `SUBSCRIPTION.403_002`.


    ## Response envelope

    Successful JSON responses use:

    ```json

    { "statusCode": 200, "result": {} }

    ```

    `result` is an object or an array depending on the endpoint.


    Error responses use:

    ```json

    {
      "statusCode": 400,
      "errorCode": "PUBLIC.400_001",
      "message": "Validation error message",
      "timestamp": "2026-05-17T01:00:00.000Z"
    }

    ```


    Datetime values are ISO 8601 UTC timestamps.
  contact:
    name: Jitra
    url: https://jitra.app
servers:
  - url: https://api.jitra.app/public/v1
    description: Production
  - url: '{scheme}://{host}:{port}/public/v1'
    description: Local or custom environment
    variables:
      scheme:
        default: http
        enum:
          - http
          - https
      host:
        default: localhost
      port:
        default: '3000'
        description: Value of PUBLIC_APP_PORT
security:
  - ApiKeyAuth: []
  - BearerAuth: []
tags:
  - name: Health
    description: Service availability check. Does not require an API key.
  - name: Objects
    description: >-
      Tracked vehicles/assets (objects) belonging to the authenticated
      organization, including catalog, detail snapshot, and historical
      positions.
  - name: Positions
    description: Latest realtime GPS positions for one or more objects.
  - name: Geofences
    description: Geographic zones defined as polygons for the authenticated organization.
  - name: Routes
    description: >-
      Planned routes with waypoints and geometry for the authenticated
      organization.
  - name: Sites
    description: Point-of-interest sites with radius for the authenticated organization.
paths:
  /objects/{id}:
    get:
      tags:
        - Objects
      summary: Get object detail
      description: >-
        Returns a single object by ID, combining persisted master data with the
        latest realtime location when available (latitude, longitude, altitude,
        angle, speed, timestamps).


        Use this when opening an object detail page or requesting a single live
        snapshot. This call increments the daily API usage counter for the
        object.
      operationId: getObject
      parameters:
        - $ref: '#/components/parameters/ObjectId'
      responses:
        '200':
          description: Object detail including current location.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectDetailResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/ObjectNotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  parameters:
    ObjectId:
      name: id
      in: path
      required: true
      description: Numeric object ID that belongs to the authenticated organization.
      schema:
        type: integer
        example: 101
  schemas:
    ObjectDetailResponse:
      type: object
      required:
        - statusCode
        - result
      properties:
        statusCode:
          type: integer
          example: 200
        result:
          $ref: '#/components/schemas/ObjectPublicDetail'
    ObjectPublicDetail:
      allOf:
        - $ref: '#/components/schemas/ObjectPublicList'
        - type: object
          description: Current location snapshot merged from realtime cache when available.
          properties:
            latitude:
              type: number
              description: Current latitude.
              example: -6.2
            longitude:
              type: number
              description: Current longitude.
              example: 106.8
            altitude:
              type: number
              description: Current altitude in meters.
              example: 15
            angle:
              type: number
              description: Heading angle in degrees (0–360).
              example: 230
            speed:
              type: number
              description: Current speed.
              example: 42
    ErrorResponse:
      type: object
      description: Standard public API error envelope.
      required:
        - statusCode
        - errorCode
        - message
        - timestamp
      properties:
        statusCode:
          type: integer
          description: HTTP status code.
          example: 400
        errorCode:
          type: string
          description: >-
            Machine-readable error code. Public-specific codes use the
            `PUBLIC.*` prefix. Uncoded HTTP exceptions default to `ERR999`.
          example: PUBLIC.400_001
        message:
          type: string
          description: Localized human-readable message.
          example: Enter From Time, because is required.
        timestamp:
          type: string
          format: date-time
          description: Error time in ISO 8601 UTC.
    ObjectPublicList:
      type: object
      description: Object catalog item without current GPS coordinates.
      properties:
        id:
          type: integer
          description: Object ID.
          example: 101
        name:
          type: string
          description: Object display name.
          example: Truck 01
        ident:
          type: string
          description: Unique device/object identifier (IMEI or similar).
          example: B-1234-XYZ
        time_server:
          type: string
          format: date-time
          description: Last time the server received a packet from this object.
        time_device:
          type: string
          format: date-time
          description: Timestamp generated by the device GPS.
        time_last_idle:
          type: string
          format: date-time
          description: Last time the object was detected as idle.
        time_last_move:
          type: string
          format: date-time
          description: Last time the object was detected as moving.
        time_last_stop:
          type: string
          format: date-time
          description: Last time the object was detected as stopped.
        engine_hours:
          type: number
          description: Accumulated engine hours.
          example: 1723.4
        engine_hours_type:
          $ref: '#/components/schemas/SystemSensorType'
        odometer:
          type: number
          description: Odometer value in the organization's distance unit.
          example: 120034.7
        odometer_type:
          $ref: '#/components/schemas/SystemSensorType'
        vehicle_data:
          $ref: '#/components/schemas/ObjectVehicleData'
        mileage:
          type: number
          description: Trip or period mileage.
          example: 256.4
        address:
          type: string
          description: Latest reverse-geocoded address.
          example: Jakarta
        accuracy:
          $ref: '#/components/schemas/ObjectAccuracy'
        created_at:
          type: string
          format: date-time
          description: Record creation timestamp.
    SystemSensorType:
      type: string
      description: >-
        Source of a system counter. `system` is calculated by Jitra; `sensor`
        comes from a device sensor.
      enum:
        - sensor
        - system
    ObjectVehicleData:
      type: object
      description: Vehicle identity metadata attached to the object.
      properties:
        vin:
          type: string
          description: Vehicle Identification Number.
          example: MH4ABC12345678901
        plate_number:
          type: string
          description: Vehicle plate number.
          example: B1234XYZ
    ObjectAccuracy:
      type: object
      description: Tracking accuracy and movement-detection settings for the object.
      properties:
        device_timezone:
          type: string
          description: IANA timezone used by the device.
          example: Asia/Jakarta
        maximum_hdop:
          type: number
          description: Maximum allowed Horizontal Dilution of Precision.
        minimum_difference_point:
          type: number
          description: Minimum distance (meters) between consecutive accepted points.
        minimum_gps_level:
          type: number
          description: Minimum GPS quality level.
        idle_speed_threshold:
          type: number
          description: Speed threshold used to detect idle state.
        minimum_moving_speed:
          type: number
          description: Minimum speed treated as movement.
        distance_source:
          type: string
          description: Source used to calculate distance, for example `gps`.
        stop_detection_method:
          type: string
          description: Method used to detect stops, for example `speed`.
  responses:
    Unauthorized:
      description: API key is missing, invalid, or expired.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            statusCode: 401
            errorCode: ERR999
            message: Unauthorized
            timestamp: '2026-05-17T01:00:00.000Z'
    ObjectNotFound:
      description: The object ID does not exist in the authenticated organization.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            statusCode: 404
            errorCode: PUBLIC.404_001
            message: Object not found.
            timestamp: '2026-05-17T01:00:00.000Z'
    TooManyRequests:
      description: Organization exceeded 10 requests in a 10-second window.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            statusCode: 429
            errorCode: ERR999
            message: 'ThrottlerException: Too Many Requests'
            timestamp: '2026-05-17T01:00:00.000Z'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Organization API key issued from Jitra (Organization → API Key).
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: 'Same organization API key sent as `Authorization: Bearer <api_key>`.'

````