# Traccar API

> Traccar API on Apizie: 61 endpoints (Fetch a list of Attributes, Create an Attribute, Update an Attribute, Delete an Attribute, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/places:traccar/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `places:traccar`
- Category: Places
- Status: byok
- Source: https://www.traccar.org/
- Page: https://apizie.tech/api/places/traccar
- OpenAPI: https://apizie.tech/api/places/traccar/openapi.json

Open Source GPS Tracking Platform

## Endpoints

### Fetch a list of Attributes
`GET https://apizie.tech/v1/places:traccar/get-attributes-computed` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| all | boolean | no | Can only be used by admins or managers to fetch all entities |
| userId | integer | no | Standard users can use this only with their own _userId_ |
| deviceId | integer | no | Standard users can use this only with _deviceId_s, they have access to |
| groupId | integer | no | Standard users can use this only with _groupId_s, they have access to |
| refresh | boolean | no |  |

### Create an Attribute
`POST https://apizie.tech/v1/places:traccar/post-attributes-computed` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Update an Attribute
`POST https://apizie.tech/v1/places:traccar/put-attributes-computed-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |
| body | object | yes | JSON request body |

### Delete an Attribute
`POST https://apizie.tech/v1/places:traccar/delete-attributes-computed-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |

### Fetch a list of Calendars
`GET https://apizie.tech/v1/places:traccar/get-calendars` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| all | boolean | no | Can only be used by admins or managers to fetch all entities |
| userId | integer | no | Standard users can use this only with their own _userId_ |

### Create a Calendar
`POST https://apizie.tech/v1/places:traccar/post-calendars` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Update a Calendar
`POST https://apizie.tech/v1/places:traccar/put-calendars-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |
| body | object | yes | JSON request body |

### Delete a Calendar
`POST https://apizie.tech/v1/places:traccar/delete-calendars-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |

### Fetch a list of Saved Commands
`GET https://apizie.tech/v1/places:traccar/get-commands` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| all | boolean | no | Can only be used by admins or managers to fetch all entities |
| userId | integer | no | Standard users can use this only with their own _userId_ |
| deviceId | integer | no | Standard users can use this only with _deviceId_s, they have access to |
| groupId | integer | no | Standard users can use this only with _groupId_s, they have access to |
| refresh | boolean | no |  |

### Create a Saved Command
`POST https://apizie.tech/v1/places:traccar/post-commands` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Fetch a list of Saved Commands supported by Device at the moment
`GET https://apizie.tech/v1/places:traccar/get-commands-send` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | integer | no | Standard users can use this only with _deviceId_s, they have access to |

### Dispatch commands to device
`POST https://apizie.tech/v1/places:traccar/post-commands-send` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Fetch a list of available Commands for the Device or all possible Commands if Device ommited
`GET https://apizie.tech/v1/places:traccar/get-commands-types` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | integer | no | Internal device identifier. Only works if device has already reported some locations |
| protocol | string | no | Protocol name. Can be used instead of device id |
| textChannel | boolean | no | When `true` return SMS commands. If not specified or `false` return data commands |

### Update a Saved Command
`POST https://apizie.tech/v1/places:traccar/put-commands-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |
| body | object | yes | JSON request body |

### Delete a Saved Command
`POST https://apizie.tech/v1/places:traccar/delete-commands-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |

### Fetch a list of Devices
`GET https://apizie.tech/v1/places:traccar/get-devices` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| all | boolean | no | Can only be used by admins or managers to fetch all entities |
| userId | integer | no | Standard users can use this only with their own _userId_ |
| id | integer | no | To fetch one or more devices. Multiple params can be passed like `id=31&id=42` |
| uniqueId | string | no | To fetch one or more devices. Multiple params can be passed like `uniqueId=333331&uniqieId=44442` |

### Create a Device
`POST https://apizie.tech/v1/places:traccar/post-devices` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Update a Device
`POST https://apizie.tech/v1/places:traccar/put-devices-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |
| body | object | yes | JSON request body |

### Delete a Device
`POST https://apizie.tech/v1/places:traccar/delete-devices-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |

### Update total distance and hours of the Device
`POST https://apizie.tech/v1/places:traccar/put-devices-id-accumulators` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |
| body | object | yes | JSON request body |

### Fetch a list of Drivers
`GET https://apizie.tech/v1/places:traccar/get-drivers` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| all | boolean | no | Can only be used by admins or managers to fetch all entities |
| userId | integer | no | Standard users can use this only with their own _userId_ |
| deviceId | integer | no | Standard users can use this only with _deviceId_s, they have access to |
| groupId | integer | no | Standard users can use this only with _groupId_s, they have access to |
| refresh | boolean | no |  |

### Create a Driver
`POST https://apizie.tech/v1/places:traccar/post-drivers` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Update a Driver
`POST https://apizie.tech/v1/places:traccar/put-drivers-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |
| body | object | yes | JSON request body |

### Delete a Driver
`POST https://apizie.tech/v1/places:traccar/delete-drivers-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |

### GET /events/{id}
`GET https://apizie.tech/v1/places:traccar/get-events-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |

### Fetch a list of Geofences
`GET https://apizie.tech/v1/places:traccar/get-geofences` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| all | boolean | no | Can only be used by admins or managers to fetch all entities |
| userId | integer | no | Standard users can use this only with their own _userId_ |
| deviceId | integer | no | Standard users can use this only with _deviceId_s, they have access to |
| groupId | integer | no | Standard users can use this only with _groupId_s, they have access to |
| refresh | boolean | no |  |

### Create a Geofence
`POST https://apizie.tech/v1/places:traccar/post-geofences` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Update a Geofence
`POST https://apizie.tech/v1/places:traccar/put-geofences-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |
| body | object | yes | JSON request body |

### Delete a Geofence
`POST https://apizie.tech/v1/places:traccar/delete-geofences-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |

### Fetch a list of Groups
`GET https://apizie.tech/v1/places:traccar/get-groups` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| all | boolean | no | Can only be used by admins or managers to fetch all entities |
| userId | integer | no | Standard users can use this only with their own _userId_ |

### Create a Group
`POST https://apizie.tech/v1/places:traccar/post-groups` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Update a Group
`POST https://apizie.tech/v1/places:traccar/put-groups-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |
| body | object | yes | JSON request body |

### Delete a Group
`POST https://apizie.tech/v1/places:traccar/delete-groups-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |

### Fetch a list of Maintenance
`GET https://apizie.tech/v1/places:traccar/get-maintenance` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| all | boolean | no | Can only be used by admins or managers to fetch all entities |
| userId | integer | no | Standard users can use this only with their own _userId_ |
| deviceId | integer | no | Standard users can use this only with _deviceId_s, they have access to |
| groupId | integer | no | Standard users can use this only with _groupId_s, they have access to |
| refresh | boolean | no |  |

### Create a Maintenance
`POST https://apizie.tech/v1/places:traccar/post-maintenance` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Update a Maintenance
`POST https://apizie.tech/v1/places:traccar/put-maintenance-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |
| body | object | yes | JSON request body |

### Delete a Maintenance
`POST https://apizie.tech/v1/places:traccar/delete-maintenance-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |

### Fetch a list of Notifications
`GET https://apizie.tech/v1/places:traccar/get-notifications` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| all | boolean | no | Can only be used by admins or managers to fetch all entities |
| userId | integer | no | Standard users can use this only with their own _userId_ |
| deviceId | integer | no | Standard users can use this only with _deviceId_s, they have access to |
| groupId | integer | no | Standard users can use this only with _groupId_s, they have access to |
| refresh | boolean | no |  |

### Create a Notification
`POST https://apizie.tech/v1/places:traccar/post-notifications` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Send test notification to current user via Email and SMS
`POST https://apizie.tech/v1/places:traccar/post-notifications-test` (byok)

### Fetch a list of available Notification types
`GET https://apizie.tech/v1/places:traccar/get-notifications-types` (byok)

### Update a Notification
`POST https://apizie.tech/v1/places:traccar/put-notifications-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |
| body | object | yes | JSON request body |

### Delete a Notification
`POST https://apizie.tech/v1/places:traccar/delete-notifications-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |

### Link an Object to another Object
`POST https://apizie.tech/v1/places:traccar/post-permissions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Unlink an Object from another Object
`POST https://apizie.tech/v1/places:traccar/delete-permissions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Fetches a list of Positions
`GET https://apizie.tech/v1/places:traccar/get-positions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | integer | no | _deviceId_ is optional, but requires the _from_ and _to_ parameters when used |
| from | string | no | in IS0 8601 format. eg. `1963-11-22T18:30:00Z` |
| to | string | no | in IS0 8601 format. eg. `1963-11-22T18:30:00Z` |
| id | integer | no | To fetch one or more positions. Multiple params can be passed like `id=31&id=42` |

### Fetch a list of Events within the time period for the Devices or Groups
`GET https://apizie.tech/v1/places:traccar/get-reports-events` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | array | no |  |
| groupId | array | no |  |
| type | array | no | % can be used to return events of all types |
| from | string | yes | in IS0 8601 format. eg. `1963-11-22T18:30:00Z` |
| to | string | yes | in IS0 8601 format. eg. `1963-11-22T18:30:00Z` |

### Fetch a list of Positions within the time period for the Devices or Groups
`GET https://apizie.tech/v1/places:traccar/get-reports-route` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | array | no |  |
| groupId | array | no |  |
| from | string | yes | in IS0 8601 format. eg. `1963-11-22T18:30:00Z` |
| to | string | yes | in IS0 8601 format. eg. `1963-11-22T18:30:00Z` |

### Fetch a list of ReportStops within the time period for the Devices or Groups
`GET https://apizie.tech/v1/places:traccar/get-reports-stops` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | array | no |  |
| groupId | array | no |  |
| from | string | yes | in IS0 8601 format. eg. `1963-11-22T18:30:00Z` |
| to | string | yes | in IS0 8601 format. eg. `1963-11-22T18:30:00Z` |

### Fetch a list of ReportSummary within the time period for the Devices or Groups
`GET https://apizie.tech/v1/places:traccar/get-reports-summary` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | array | no |  |
| groupId | array | no |  |
| from | string | yes | in IS0 8601 format. eg. `1963-11-22T18:30:00Z` |
| to | string | yes | in IS0 8601 format. eg. `1963-11-22T18:30:00Z` |

### Fetch a list of ReportTrips within the time period for the Devices or Groups
`GET https://apizie.tech/v1/places:traccar/get-reports-trips` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | array | no |  |
| groupId | array | no |  |
| from | string | yes | in IS0 8601 format. eg. `1963-11-22T18:30:00Z` |
| to | string | yes | in IS0 8601 format. eg. `1963-11-22T18:30:00Z` |

### Fetch Server information
`GET https://apizie.tech/v1/places:traccar/get-server` (byok)

### Update Server information
`POST https://apizie.tech/v1/places:traccar/put-server` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Fetch Session information
`GET https://apizie.tech/v1/places:traccar/get-session` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| token | string | no |  |

### Create a new Session
`POST https://apizie.tech/v1/places:traccar/post-session` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | Form fields as a JSON object |

### Close the Session
`POST https://apizie.tech/v1/places:traccar/delete-session` (byok)

### Fetch server Statistics
`GET https://apizie.tech/v1/places:traccar/get-statistics` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| from | string | yes | in IS0 8601 format. eg. `1963-11-22T18:30:00Z` |
| to | string | yes | in IS0 8601 format. eg. `1963-11-22T18:30:00Z` |

### Fetch a list of Users
`GET https://apizie.tech/v1/places:traccar/get-users` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | string | no | Can only be used by admin or manager users |

### Create a User
`POST https://apizie.tech/v1/places:traccar/post-users` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Update a User
`POST https://apizie.tech/v1/places:traccar/put-users-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |
| body | object | yes | JSON request body |

### Delete a User
`POST https://apizie.tech/v1/places:traccar/delete-users-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes |  |

## Example
```
curl "https://apizie.tech/v1/places:traccar/get-attributes-computed" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Traccar API?
Create a free Apizie key, then send GET https://apizie.tech/v1/places:traccar/get-attributes-computed with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Traccar API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Traccar itself also needs your own key from traccar.org.

### Can AI agents use the Traccar API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key places:traccar.

### What is the status of the Traccar API?
Needs your own provider key (bring your own key)
