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

# List identities

> List Forward identities under the current account with cursor pagination.

`GET /api/v1/forward/identities`

Returns Identity records owned by the authenticated account.

## Headers

| Header          | Required | Description    |
| --------------- | -------- | -------------- |
| `Authorization` | Yes      | `Bearer <PAT>` |

## Query parameters

| Parameter     | Type    | Required | Default | Description                                                    |
| ------------- | ------- | -------- | ------- | -------------------------------------------------------------- |
| `external_id` | string  | No       | -       | Filter by the integrator's end-user ID.                        |
| `limit`       | integer | No       | 20      | Items per page. Maximum 100. Values above 100 return HTTP 400. |
| `after_id`    | string  | No       | -       | Cursor for the next page. Cannot be used with `before_id`.     |
| `before_id`   | string  | No       | -       | Cursor for the previous page. Cannot be used with `after_id`.  |

## Example request

```bash theme={null}
curl -s -X GET 'https://api.qoder.com/api/v1/forward/identities?external_id=user_456&limit=20' \
  -H "Authorization: Bearer $QODER_PAT"
```

## Example response

**HTTP 200 OK**

```json theme={null}
{
  "data": [
    {
      "id": "idn_019eabc123",
      "external_id": "user_456",
      "name": "Example User",
      "enabled": true,
      "metadata": {},
      "created_at": "2026-06-18T10:00:00Z",
      "updated_at": "2026-06-18T10:00:00Z"
    }
  ],
  "first_id": "idn_019eabc123",
  "last_id": "idn_019eabc123",
  "has_more": false
}
```

## Response fields

| Field      | Type         | Description                           |
| ---------- | ------------ | ------------------------------------- |
| `data`     | array        | Identity objects on the current page. |
| `first_id` | string\|null | ID of the first record on this page.  |
| `last_id`  | string\|null | ID of the last record on this page.   |
| `has_more` | boolean      | Whether more records remain.          |

## Errors

| HTTP | Type                    | Trigger                                             |
| ---- | ----------------------- | --------------------------------------------------- |
| 400  | `invalid_request_error` | Invalid pagination parameters or `limit` above 100. |
| 401  | `authentication_error`  | PAT invalid or expired.                             |
| 403  | `permission_error`      | Not authorized for this resource.                   |

## Notes

* `after_id` and `before_id` are mutually exclusive.
* Soft-deleted identities are not intended for normal use.

## Related

<CardGroup cols={2}>
  <Card title="Create an identity" icon="plus" href="/cloud-agents/api/forward/identities/create" />

  <Card title="Get an identity" icon="file-lines" href="/cloud-agents/api/forward/identities/get" />
</CardGroup>
