# List message thread statuses

```http
GET https://secure.yoprint.com/v1/api/store/{team_slug}/setting/status/customer_message
```

- API version: v1
- Operation ID: `v1_public_status_list_customer_message`
- Section: Team settings › [Statuses](https://developer.yoprint.com/reference/statuses.md)
- Web page: https://developer.yoprint.com/reference/statuses/v1-status-list-customer-message/
- Authentication: `Authorization: Bearer YOUR_API_KEY`

Returns the team's message thread (role `customer_message`) statuses. Deleted statuses are left out. These exist once the "customer message statuses" add-on has been turned on (`PUT /v1/api/store/{team_slug}/setting/feature_addon/cust_msg_status/enable`).

The list is not sorted: sort by `position` (lowest first) to show it in the order the team set. Use the `id` of a status wherever a request asks for a status id.

## Permission

Any member of the team, whatever their role. This is wider than the web app, whose Settings pages need Manage Settings: on the API only changes need it.

## Path parameters

- `team_slug` (string, required): Your team slug, shown as Team ID next to your API key in Profile. Example `your-team`.

## Request body

This operation takes no request body.

### Example request

```bash
curl 'https://secure.yoprint.com/v1/api/store/your-team/setting/status/customer_message' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Accept: application/json' \
  -H 'X-Yoprint-Decimal-Format: exact-v1'
```

## Response

`200` Successful response.

Fields:

- `data` (array of objects, required)
  - Each item:
    - `color` (string, required)
    - `customer_label` (string, required): What customers see in the customer portal. When none is set: `Pending` for `start`, `In Progress` for `in_progress` and `pre_production`, `Completed` for `end`.
    - `id` (string, required)
    - `label` (string, required)
    - `position` (integer, required): Sort order within the list, lowest first.
    - `role` (string, required): Which list the status belongs to: - `order`: sales orders - `quote`: quotes - `job`: jobs - `purchase_order`: purchase orders - `shipment`: shipments - `customer_message`: message threads - `pipeline`: tasks within a task preset One of: `"order"`, `"quote"`, `"job"`, `"purchase_order"`, `"shipment"`, `"customer_message"`, `"pipeline"`.
    - `trashed` (boolean, required): True for a deleted status. Only the full list includes deleted ones.
    - `type` (string, required): The stage of the status in the workflow: `start` (first status in the list), `pre_production`, `in_progress`, or `end` (final status). One of: `"start"`, `"pre_production"`, `"in_progress"`, `"end"`.
    - `pipeline_id` (string, optional): The task preset, for `pipeline` statuses only. Absent for every other role.
- `status` (integer, required)
- `success` (boolean, required)

Example response:

```json
{
  "data": [
    {
      "color": "#f5f5f5",
      "customer_label": "Pending",
      "id": "ID5Uq31nRDPaUa",
      "label": "Awaiting Customer Reply",
      "position": 0,
      "role": "customer_message",
      "trashed": false,
      "type": "start"
    },
    {
      "color": "#c6ff00",
      "customer_label": "In Progress",
      "id": "MjaAFMWeKzfwDl",
      "label": "Need to Respond",
      "position": 1,
      "role": "customer_message",
      "trashed": false,
      "type": "in_progress"
    },
    {
      "color": "#424242",
      "customer_label": "Completed",
      "id": "k6ui4z13Dps9KT",
      "label": "Completed",
      "position": 6,
      "role": "customer_message",
      "trashed": false,
      "type": "end"
    }
  ],
  "status": 200,
  "success": true
}
```

## Errors

- `401` The API key is missing or wrong (`unauthenticated`).
- `403` You are not allowed to do this. `api_access_not_in_plan`: your team's plan doesn't include API access (Pro and above, with an active subscription or trial), so every request answers this until the team upgrades. When your role lacks the permission the operation needs, the body is only `{"message": "Insufficient Permission"}`. Other refusals use the error envelope, with `unauthorized` or `user_is_not_authorized`.
- `404` Not found. `page_not_found`: the team slug is unknown, you are not a member of the team, or an id in the path is not one of this team's. `code: null`, with a message that starts "No query results for": there is no record with that id.

## Notes

- Read the list once and reuse the ids; statuses change rarely.

## Related

- [List every status, including deleted ones](https://developer.yoprint.com/reference/statuses/v1-status-index.md): `GET /v1/api/store/{team_slug}/setting/status`
- [Create a status](https://developer.yoprint.com/reference/statuses/v1-status-store.md): `POST /v1/api/store/{team_slug}/setting/status`
