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

# Jitra Public API

> Integrate with the Jitra Public API to read Objects, Positions, Geofences, Sites, and Routes from your Organization.

The Jitra Public API provides read-only access to Organization data such as Objects, Positions, Geofences, Sites, and Routes.

## Before you start

Prepare the following:

* a valid API key for your Organization
* network access to the API host over HTTPS
* an HTTP client such as cURL, Postman, or an HTTP library

## Base URL and versioning

Use the versioned public base URL:

```text theme={null}
https://api.jitra.app/public/v1
```

Append the resource path shown on each endpoint page.

## Authentication

All endpoints require an API key. Send it with either header:

```text theme={null}
x-api-key: <api_key>
Authorization: Bearer <api_key>
```

See [Authentication](/en/api-reference/authentication) for examples and security guidance.

## Rate limits

Requests are limited per Organization.

| Setting | Value |
| - | - |
| Window | 10 seconds |
| Maximum | 10 requests per window |

The API returns `429 Too Many Requests` when the limit is exceeded. API usage limits may also apply per Object on position endpoints.

## Response format

A successful response contains `statusCode` and `result`. The result can be an object or array, depending on the endpoint.

```json theme={null}
{
  "statusCode": 200,
  "result": {}
}
```

Errors use a consistent wrapper:

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

## Quickstart workflow

<Steps>
  <Step title="Verify the API key">
    Start with the Object list because it has no path or query parameters.

    ```bash theme={null}
    curl --request GET \
      --url https://api.jitra.app/public/v1/objects \
      --header 'x-api-key: <api_key>'
    ```
  </Step>

  <Step title="Read one Object">
    Use an `id` returned by the first request.

    ```bash theme={null}
    curl --request GET \
      --url https://api.jitra.app/public/v1/objects/101 \
      --header 'x-api-key: <api_key>'
    ```
  </Step>

  <Step title="Read latest positions">
    Request multiple Object IDs in one call.

    ```bash theme={null}
    curl --request GET \
      --url 'https://api.jitra.app/public/v1/positions/latest?ids=101,102' \
      --header 'x-api-key: <api_key>'
    ```
  </Step>
</Steps>

## Common HTTP outcomes

| Status | Meaning | Typical action |
| - | - | - |
| `200` | Request succeeded. | Process `result`. |
| `400` | Request input is invalid. | Correct path or query values. |
| `401` | Authentication failed. | Check the API key and header format. |
| `404` | Resource not found. | Confirm the resource belongs to the Organization. |
| `429` | Rate limit exceeded. | Wait and retry with backoff. |

## Integration checklist

* Store API keys in secure secrets storage, not source code.
* Use HTTPS in every environment.
* Add retry and backoff handling for `429`.
* Log response status and request identifiers available to your client.
* Parse datetime values as ISO 8601 UTC timestamps.
