> ## 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 identity configs

> List Template-specific configs for an Identity.

`GET /api/v1/forward/identities/{identity_id}/templates`

Returns the active or archived Identity Config records under a Forward Identity.

## Headers

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

## Path parameters

| Parameter     | Type   | Required | Description          |
| ------------- | ------ | -------- | -------------------- |
| `identity_id` | string | Yes      | Forward Identity ID. |

## Query parameters

| Parameter     | Type    | Required | Default  | Description                                                                     |
| ------------- | ------- | -------- | -------- | ------------------------------------------------------------------------------- |
| `template_id` | string  | No       | -        | Filter by Forward Template ID.                                                  |
| `status`      | string  | No       | `active` | Filter by `active` or `archived`.                                               |
| `limit`       | integer | No       | 20       | Items per page. Maximum 100.                                                    |
| `after_id`    | string  | No       | -        | Cursor from the previous response's `last_id`. Cannot be used with `before_id`. |
| `before_id`   | string  | No       | -        | Cursor from the previous response's `first_id`. Cannot be used with `after_id`. |

## Example request

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

## Example response

**HTTP 200 OK**

```json theme={null}
{
  "data": [
    {
      "type": "config",
      "id": "cfg_support",
      "identity_id": "idn_019eabc123",
      "template_id": "tmpl_support",
      "name": "CRM profile",
      "status": "active",
      "effective_hash": "sha256:...",
      "created_at": "2026-06-18T10:00:00Z",
      "updated_at": "2026-06-18T10:00:00Z"
    }
  ],
  "first_id": "cfg_support",
  "last_id": "cfg_support",
  "has_more": false
}
```

## Response fields

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

## Errors

| HTTP | Type                    | Trigger                                                  |
| ---- | ----------------------- | -------------------------------------------------------- |
| 400  | `invalid_request_error` | Invalid pagination parameters.                           |
| 401  | `authentication_error`  | PAT invalid or expired.                                  |
| 404  | `not_found_error`       | Identity does not exist or is not visible to the caller. |

## Notes

* Cursor values come from Identity Config IDs, not Template IDs.
* An Identity can have at most one active config for a given Template.

## Related

<CardGroup cols={2}>
  <Card title="Create or update identity config" icon="gear" href="/cloud-agents/api/forward/identities/upsert-config" />

  <Card title="Get effective config" icon="layer-group" href="/cloud-agents/api/forward/identities/effective" />
</CardGroup>
