GET List Identities
List your saved identities and their credentials, or fetch a single identity by ID
https://api.anakin.io/v1/wire/identitieshttps://api.anakin.io/v1/wire/identities/{id}Returns the authenticated user's identities and their attached credentials. Use the returned credentials[].id as the credential_id when submitting authenticated tasks via POST /v1/wire/task.
An identity is a named container tied to one website (e.g. "Personal Amazon"). Each identity can have multiple credentials of different types: browser_state, credentials, api_key, or token.
This page covers two endpoints:
GET /v1/wire/identities— list all your identities (optionally filtered bycatalog_id)GET /v1/wire/identities/\{id\}— fetch a single identity by ID (returns the same identity object, just one of them)
Query Parameters (list endpoint only)
| Parameter | Type | Description |
|---|---|---|
catalog_id | string | Filter identities to a single website catalog (optional) |
Path Parameters (single endpoint only)
| Parameter | Type | Description |
|---|---|---|
id required | string (UUID) | Identity ID |
Response (list)
200 OK{
"status": "ok",
"identities": [
{
"id": "7c3f1a2b-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
"user_id": "9f8e7d6c-5b4a-3210-9876-543210fedcba",
"catalog_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Personal Amazon",
"is_default": true,
"created_at": "2026-04-15T10:00:00Z",
"updated_at": "2026-04-20T12:34:56Z",
"credentials": [
{
"id": "11111111-2222-3333-4444-555555555555",
"identity_id": "7c3f1a2b-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
"credential_type": "browser_state",
"status": "active",
"expires_at": "2026-05-15T10:00:00Z",
"last_used_at": "2026-04-20T12:34:56Z",
"metadata": {},
"created_at": "2026-04-15T10:00:00Z",
"updated_at": "2026-04-20T12:34:56Z"
}
]
}
]
}| Field | Type | Description |
|---|---|---|
identities[].id | string (UUID) | Identity ID |
identities[].user_id | string (UUID) | The user who owns this identity (always returned) |
identities[].catalog_id | string (UUID) | The catalog (website) this identity belongs to |
identities[].name | string | User-given name (unique per user + catalog) |
identities[].is_default | boolean | Marked as the user's default for this catalog |
identities[].created_at | string (RFC3339) | When the identity was created |
identities[].updated_at | string (RFC3339) | When the identity was last updated (always returned) |
credentials[].id | string (UUID) | Use this as credential_id in task requests |
credentials[].credential_type | string | One of: browser_state, credentials, api_key, token |
credentials[].status | string | active or expired — only active credentials can be used |
credentials[].expires_at | string (RFC3339) | When the credential's session expires (present on credentials-type credentials) |
credentials[].last_used_at | string (RFC3339) | When the credential was last used |
credentials[].metadata | object | Free-form metadata for the credential |
credentials[].created_at | string (RFC3339) | When the credential was created |
credentials[].updated_at | string (RFC3339) | When the credential was last updated |
credentials[].source_id | string (UUID) | The bound identity source. Present only on source-backed credentials. |
credentials[].source_ref | object | The bound vault locator — see source_ref. Present only on source-backed credentials. |
The encrypted credential data (encrypted_data) is never returned in the response.
A source-backed credential additionally carries source_id and source_ref:
{
"id": "11111111-2222-3333-4444-555555555555",
"identity_id": "7c3f1a2b-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
"credential_type": "credentials",
"status": "active",
"source_id": "f1e2d3c4-0000-0000-0000-000000000000",
"source_ref": { "entry": { "container": "abcd1234", "key": "wxyz5678" } },
"expires_at": "2026-06-09T10:00:00Z",
"last_used_at": "2026-06-08T12:34:56Z",
"metadata": {},
"created_at": "2026-06-08T10:00:00Z",
"updated_at": "2026-06-08T10:00:00Z"
}Response (single — GET /identities/\{id\})
Same shape as a single element of the identities[] array above, returned at the top level:
{
"status": "ok",
"identity": {
"id": "7c3f1a2b-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
"user_id": "9f8e7d6c-5b4a-3210-9876-543210fedcba",
"catalog_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Personal Amazon",
"is_default": true,
"created_at": "2026-04-15T10:00:00Z",
"updated_at": "2026-04-20T12:34:56Z",
"credentials": [ /* same shape */ ]
}
}Returns 404 Not Found (code NOT_FOUND) if the identity genuinely doesn't exist. If the identity exists but belongs to another user, it returns 403 Forbidden (code FORBIDDEN, "Identity does not belong to user") rather than 404.
Code Examples
curl https://api.anakin.io/v1/wire/identities \
-H "X-API-Key: your_api_key"import requests
response = requests.get(
'https://api.anakin.io/v1/wire/identities',
headers={'X-API-Key': 'your_api_key'}
)
for identity in response.json()['identities']:
print(f"{identity['name']}:")
for cred in identity.get('credentials', []):
print(f" {cred['credential_type']} → {cred['id']}")const response = await fetch('https://api.anakin.io/v1/wire/identities', {
headers: { 'X-API-Key': 'your_api_key' }
});
const { identities } = await response.json();
for (const identity of identities) {
console.log(`${identity.name}:`);
for (const cred of identity.credentials || []) {
console.log(` ${cred.credential_type} → ${cred.id}`);
}
}Managing identities via UI
You can also view and copy credential IDs from the Identities dashboard — hover over a credential pill to reveal a copy button.