> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/navixy-api/user-api/resources/tracking/status/listing.md).

# Listing

The set of working statuses a tracker can be set to, assigned per tracker.

A working status list is the set of [working statuses](/docs/navixy-api/user-api/resources/tracking/status.md) a tracker can be set to. Nothing can be assigned to a tracker that is not on the list assigned to that tracker.

Lists are created empty. `status/listing/create` rejects both `id` and `entries`, because a new list holds no statuses yet, and statuses are added afterwards with `status/create`. Once a list holds several, `status/listing/update` reorders them through its `entries` field, which must name the list's full set of status IDs and nothing else.

Working status lists are a tariff feature. An account with no tracker whose plan includes `statuses` gets error 236 from every operation on this page.

## Status listing object structure

## The StatusListing object

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"components":{"schemas":{"StatusListing":{"type":"object","description":"A named set of working statuses that can be assigned to trackers. Different trackers can carry different lists.","properties":{"id":{"type":"integer","description":"Status list ID. Read-only, assigned on creation, and required when updating.","minimum":1},"label":{"type":"string","description":"Human-readable label. 1 to 200 printable characters, trimmed, and cannot be blank.","minLength":1,"maxLength":200},"employee_controlled":{"type":"boolean","description":"When `true`, employees may change their own working status, for example from the Mobile Tracker App."},"supervisor_controlled":{"type":"boolean","description":"When `true`, supervisors may change the status, for example from the monitoring interface. `status/tracker/assign` returns error 13 when this is `false`."},"entries":{"type":"array","description":"IDs of the working statuses in this list, **in display order**. Rejected on creation, required on update, and on update must be exactly the statuses already in the list.","items":{"type":"integer"}}}}}}}
```

## API actions

API base path: `/status/listing`.

***

*Required sub-user rights:* `tracker_update`.

## Create working status list

> Create an empty working status list. Statuses are added to it afterwards with \`status/create\`.\
> \
> Pass the listing object without \`id\` and without \`entries\`: both are rejected on creation, since a new list has no statuses in it yet.\
> \
> Requires the \`tracker\_update\` right. Requires the \`statuses\` tariff feature on at least one tracker. Without it the call returns error 236.

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"tags":[{"name":"Working statuses","description":"Working statuses, the activity a tracker is marked as being in, the lists they are grouped into, and the assignment of a status to a tracker. All resources under the /status/ path."}],"servers":[{"url":"https://api.eu.navixy.com/v2","description":"Navixy production server on European platform"},{"url":"https://api.us.navixy.com/v2","description":"Navixy production server on American platform"},{"url":"https://api.me.navixy.com/v2","description":"Navixy production server on Middle East platform"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","description":"Either a user session hash or an API key, with the \"NVX \" prefix, for example \"NVX 22eac1c27af4be7b9d04da2ce1af111b\". Obtain a session hash from the userAuth operation, or create an API key from the API keys operations. A small number of operations accept a session hash only and reject an API key with error code 4; each says so in its description.","name":"Authorization","in":"header"}},"schemas":{"StatusListing":{"type":"object","description":"A named set of working statuses that can be assigned to trackers. Different trackers can carry different lists.","properties":{"id":{"type":"integer","description":"Status list ID. Read-only, assigned on creation, and required when updating.","minimum":1},"label":{"type":"string","description":"Human-readable label. 1 to 200 printable characters, trimmed, and cannot be blank.","minLength":1,"maxLength":200},"employee_controlled":{"type":"boolean","description":"When `true`, employees may change their own working status, for example from the Mobile Tracker App."},"supervisor_controlled":{"type":"boolean","description":"When `true`, supervisors may change the status, for example from the monitoring interface. `status/tracker/assign` returns error 13 when this is `false`."},"entries":{"type":"array","description":"IDs of the working statuses in this list, **in display order**. Rejected on creation, required on update, and on update must be exactly the statuses already in the list.","items":{"type":"integer"}}}}},"responses":{"ResponseError":{"description":"Error response object","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always false."},"status":{"type":"object","description":"Error status. Present only when an error occurred.","properties":{"code":{"type":"integer","description":"An error code in this API, not an HTTP code."},"description":{"type":"string","description":"An error description."}}},"errors":{"type":"array","description":"Per-parameter detail, returned with validation failures such as error code 7. A parameter name here may be an internal field name rather than the documented parameter name.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name of the parameter that failed validation."},"error":{"type":"string","description":"What was wrong with it."}}}}}}}}}}},"paths":{"/status/listing/create":{"post":{"tags":["Working statuses"],"summary":"Create working status list","description":"Create an empty working status list. Statuses are added to it afterwards with `status/create`.\n\nPass the listing object without `id` and without `entries`: both are rejected on creation, since a new list has no statuses in it yet.\n\nRequires the `tracker_update` right. Requires the `statuses` tariff feature on at least one tracker. Without it the call returns error 236.","operationId":"statusListingCreate","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"listing":{"allOf":[{"$ref":"#/components/schemas/StatusListing"}],"description":"The status list to create, without `id` and without `entries`."}},"required":["listing"]}}}},"responses":{"200":{"description":"The created status list","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"`true` if request finished successfully.","readOnly":true},"id":{"type":"integer","description":"ID of the new working status list."}}}}}},"400":{"description":"Bad request. The response body carries the API-level error code in `status.code`. Validation failures also include an `errors` array naming each offending parameter.","$ref":"#/components/responses/ResponseError"},"402":{"description":"Error 236: no tracker on the account has the `statuses` feature. Error 268: the account's quota for working status lists is exhausted.","$ref":"#/components/responses/ResponseError"},"default":{"$ref":"#/components/responses/ResponseError"}}}}}}
```

#### Errors

These errors come in addition to the [general error codes](/docs/navixy-api/general/errors.md#error-codes):

* 236 - Feature unavailable due to tariff restrictions, when no tracker on the account has the `statuses` tariff feature.
* 268 - Over quota, when the user's quota for working status lists is exceeded.

***

*Required sub-user rights:* `tracker_update`.

## Delete working status list

> Delete a working status list and everything in it.\
> \
> Requires the \`tracker\_update\` right. Requires the \`statuses\` tariff feature on at least one tracker. Without it the call returns error 236.\
> \
> Also accepts GET with the same parameters as query-string values.

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"tags":[{"name":"Working statuses","description":"Working statuses, the activity a tracker is marked as being in, the lists they are grouped into, and the assignment of a status to a tracker. All resources under the /status/ path."}],"servers":[{"url":"https://api.eu.navixy.com/v2","description":"Navixy production server on European platform"},{"url":"https://api.us.navixy.com/v2","description":"Navixy production server on American platform"},{"url":"https://api.me.navixy.com/v2","description":"Navixy production server on Middle East platform"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","description":"Either a user session hash or an API key, with the \"NVX \" prefix, for example \"NVX 22eac1c27af4be7b9d04da2ce1af111b\". Obtain a session hash from the userAuth operation, or create an API key from the API keys operations. A small number of operations accept a session hash only and reject an API key with error code 4; each says so in its description.","name":"Authorization","in":"header"}},"responses":{"OK":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"`true` if request finished successfully.","readOnly":true}}}}}},"ResponseError":{"description":"Error response object","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always false."},"status":{"type":"object","description":"Error status. Present only when an error occurred.","properties":{"code":{"type":"integer","description":"An error code in this API, not an HTTP code."},"description":{"type":"string","description":"An error description."}}},"errors":{"type":"array","description":"Per-parameter detail, returned with validation failures such as error code 7. A parameter name here may be an internal field name rather than the documented parameter name.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name of the parameter that failed validation."},"error":{"type":"string","description":"What was wrong with it."}}}}}}}}}}},"paths":{"/status/listing/delete":{"post":{"tags":["Working statuses"],"summary":"Delete working status list","description":"Delete a working status list and everything in it.\n\nRequires the `tracker_update` right. Requires the `statuses` tariff feature on at least one tracker. Without it the call returns error 236.\n\nAlso accepts GET with the same parameters as query-string values.","operationId":"statusListingDelete","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"listing_id":{"type":"integer","description":"ID of the working status list.","minimum":1}},"required":["listing_id"]}}}},"responses":{"200":{"description":"Status list deleted","$ref":"#/components/responses/OK"},"400":{"description":"Bad request. The response body carries the API-level error code in `status.code`. Validation failures also include an `errors` array naming each offending parameter.","$ref":"#/components/responses/ResponseError"},"402":{"description":"Error 236: no tracker on the account has the `statuses` feature.","$ref":"#/components/responses/ResponseError"},"default":{"$ref":"#/components/responses/ResponseError"}}}}}}
```

#### Errors

These errors come in addition to the [general error codes](/docs/navixy-api/general/errors.md#error-codes):

* 201 - Not found in the database, when no working status list has the given ID.
* 236 - Feature unavailable due to tariff restrictions, when no tracker on the account has the `statuses` tariff feature.

***

## List working status lists

> Return every working status list belonging to the account, each with its \`entries\` in display order.\
> \
> Callable with an empty body. Requires the \`statuses\` tariff feature on at least one tracker. Without it the call returns error 236.\
> \
> Also accepts GET.

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"tags":[{"name":"Working statuses","description":"Working statuses, the activity a tracker is marked as being in, the lists they are grouped into, and the assignment of a status to a tracker. All resources under the /status/ path."}],"servers":[{"url":"https://api.eu.navixy.com/v2","description":"Navixy production server on European platform"},{"url":"https://api.us.navixy.com/v2","description":"Navixy production server on American platform"},{"url":"https://api.me.navixy.com/v2","description":"Navixy production server on Middle East platform"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","description":"Either a user session hash or an API key, with the \"NVX \" prefix, for example \"NVX 22eac1c27af4be7b9d04da2ce1af111b\". Obtain a session hash from the userAuth operation, or create an API key from the API keys operations. A small number of operations accept a session hash only and reject an API key with error code 4; each says so in its description.","name":"Authorization","in":"header"}},"schemas":{"StatusListing":{"type":"object","description":"A named set of working statuses that can be assigned to trackers. Different trackers can carry different lists.","properties":{"id":{"type":"integer","description":"Status list ID. Read-only, assigned on creation, and required when updating.","minimum":1},"label":{"type":"string","description":"Human-readable label. 1 to 200 printable characters, trimmed, and cannot be blank.","minLength":1,"maxLength":200},"employee_controlled":{"type":"boolean","description":"When `true`, employees may change their own working status, for example from the Mobile Tracker App."},"supervisor_controlled":{"type":"boolean","description":"When `true`, supervisors may change the status, for example from the monitoring interface. `status/tracker/assign` returns error 13 when this is `false`."},"entries":{"type":"array","description":"IDs of the working statuses in this list, **in display order**. Rejected on creation, required on update, and on update must be exactly the statuses already in the list.","items":{"type":"integer"}}}}},"responses":{"ResponseError":{"description":"Error response object","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always false."},"status":{"type":"object","description":"Error status. Present only when an error occurred.","properties":{"code":{"type":"integer","description":"An error code in this API, not an HTTP code."},"description":{"type":"string","description":"An error description."}}},"errors":{"type":"array","description":"Per-parameter detail, returned with validation failures such as error code 7. A parameter name here may be an internal field name rather than the documented parameter name.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name of the parameter that failed validation."},"error":{"type":"string","description":"What was wrong with it."}}}}}}}}}}},"paths":{"/status/listing/list":{"post":{"tags":["Working statuses"],"summary":"List working status lists","description":"Return every working status list belonging to the account, each with its `entries` in display order.\n\nCallable with an empty body. Requires the `statuses` tariff feature on at least one tracker. Without it the call returns error 236.\n\nAlso accepts GET.","operationId":"statusListingList","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"The status lists","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"`true` if request finished successfully.","readOnly":true},"list":{"type":"array","items":{"$ref":"#/components/schemas/StatusListing"}}}}}}},"400":{"description":"Bad request. The response body carries the API-level error code in `status.code`. Validation failures also include an `errors` array naming each offending parameter.","$ref":"#/components/responses/ResponseError"},"402":{"description":"Error 236: no tracker on the account has the `statuses` feature.","$ref":"#/components/responses/ResponseError"},"default":{"$ref":"#/components/responses/ResponseError"}}}}}}
```

#### Errors

These errors come in addition to the [general error codes](/docs/navixy-api/general/errors.md#error-codes):

* 236 - Feature unavailable due to tariff restrictions, when no tracker on the account has the `statuses` tariff feature.

***

*Required sub-user rights:* `tracker_update`.

## Update working status list

> Update a working status list's label, control flags and status order.\
> \
> \*\*\`entries\` must contain exactly the statuses already in the list\*\*, no more and no fewer, with no duplicates. It exists to set their display order, not to add or remove statuses; a mismatched set returns error 262. Use \`status/create\` and \`status/delete\` to change membership.\
> \
> Updating the list invalidates the status cache on every tracker assigned to it.\
> \
> Requires the \`tracker\_update\` right. Requires the \`statuses\` tariff feature on at least one tracker. Without it the call returns error 236.

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"tags":[{"name":"Working statuses","description":"Working statuses, the activity a tracker is marked as being in, the lists they are grouped into, and the assignment of a status to a tracker. All resources under the /status/ path."}],"servers":[{"url":"https://api.eu.navixy.com/v2","description":"Navixy production server on European platform"},{"url":"https://api.us.navixy.com/v2","description":"Navixy production server on American platform"},{"url":"https://api.me.navixy.com/v2","description":"Navixy production server on Middle East platform"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","description":"Either a user session hash or an API key, with the \"NVX \" prefix, for example \"NVX 22eac1c27af4be7b9d04da2ce1af111b\". Obtain a session hash from the userAuth operation, or create an API key from the API keys operations. A small number of operations accept a session hash only and reject an API key with error code 4; each says so in its description.","name":"Authorization","in":"header"}},"schemas":{"StatusListing":{"type":"object","description":"A named set of working statuses that can be assigned to trackers. Different trackers can carry different lists.","properties":{"id":{"type":"integer","description":"Status list ID. Read-only, assigned on creation, and required when updating.","minimum":1},"label":{"type":"string","description":"Human-readable label. 1 to 200 printable characters, trimmed, and cannot be blank.","minLength":1,"maxLength":200},"employee_controlled":{"type":"boolean","description":"When `true`, employees may change their own working status, for example from the Mobile Tracker App."},"supervisor_controlled":{"type":"boolean","description":"When `true`, supervisors may change the status, for example from the monitoring interface. `status/tracker/assign` returns error 13 when this is `false`."},"entries":{"type":"array","description":"IDs of the working statuses in this list, **in display order**. Rejected on creation, required on update, and on update must be exactly the statuses already in the list.","items":{"type":"integer"}}}}},"responses":{"OK":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"`true` if request finished successfully.","readOnly":true}}}}}},"ResponseError":{"description":"Error response object","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always false."},"status":{"type":"object","description":"Error status. Present only when an error occurred.","properties":{"code":{"type":"integer","description":"An error code in this API, not an HTTP code."},"description":{"type":"string","description":"An error description."}}},"errors":{"type":"array","description":"Per-parameter detail, returned with validation failures such as error code 7. A parameter name here may be an internal field name rather than the documented parameter name.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name of the parameter that failed validation."},"error":{"type":"string","description":"What was wrong with it."}}}}}}}}}}},"paths":{"/status/listing/update":{"post":{"tags":["Working statuses"],"summary":"Update working status list","description":"Update a working status list's label, control flags and status order.\n\n**`entries` must contain exactly the statuses already in the list**, no more and no fewer, with no duplicates. It exists to set their display order, not to add or remove statuses; a mismatched set returns error 262. Use `status/create` and `status/delete` to change membership.\n\nUpdating the list invalidates the status cache on every tracker assigned to it.\n\nRequires the `tracker_update` right. Requires the `statuses` tariff feature on at least one tracker. Without it the call returns error 236.","operationId":"statusListingUpdate","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"listing":{"allOf":[{"$ref":"#/components/schemas/StatusListing"}],"description":"The status list to update, including `id` and the full `entries` array."}},"required":["listing"]}}}},"responses":{"200":{"description":"Status list updated","$ref":"#/components/responses/OK"},"400":{"description":"Bad request. The response body carries the API-level error code in `status.code`. Validation failures also include an `errors` array naming each offending parameter.","$ref":"#/components/responses/ResponseError"},"402":{"description":"Error 236: no tracker on the account has the `statuses` feature.","$ref":"#/components/responses/ResponseError"},"403":{"description":"Error 262: `entries` does not match the statuses in the list, either missing some or naming ones that do not exist.","$ref":"#/components/responses/ResponseError"},"default":{"$ref":"#/components/responses/ResponseError"}}}}}}
```

#### Errors

These errors come in addition to the [general error codes](/docs/navixy-api/general/errors.md#error-codes):

* 201 - Not found in the database, when no working status list has the given ID.
* 236 - Feature unavailable due to tariff restrictions, when no tracker on the account has the `statuses` tariff feature.
* 262 - Entries list is missing some entries or contains nonexistent entries, when `entries` omits a status ID associated with the list, or names one that does not exist.

## More in this section

#### Tracker's working status list

| Endpoint                                                                                                                                      | Method | What it does                          |
| --------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ------------------------------------- |
| [`/status/listing/tracker/assign`](/docs/navixy-api/user-api/resources/tracking/status/listing/tracker.md#post-status-listing-tracker-assign) | POST   | Assign working status list to tracker |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://navixy.com/docs/navixy-api/user-api/resources/tracking/status/listing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
