# personas.contexts_list

`GET /api/public/v1/personas/contexts`

Fresh measured persona contexts for profile creation; expired contexts are omitted.

- Capability: `profile.create`
- Command (idempotent): No
- MCP tool: `personas_contexts_list`

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `proxy_id` | query | string (uuid) | No |  |

## Response

`200` with `{ data, correlation_id }`.

| Field | Type | Always present | Description |
|---|---|---|---|
| `data` | object | Yes |  |
| `data.rows` | array<object> | Yes |  |
| `data.rows[].id` | string (uuid) | Yes |  |
| `data.rows[].device_id` | string (uuid) | Yes |  |
| `data.rows[].device_name` | string | Yes |  |
| `data.rows[].proxy_id` | string (uuid) \| null | Yes |  |
| `data.rows[].context` | object | Yes |  |
| `data.rows[].measured_at` | string (date-time) | Yes |  |
| `data.rows[].expires_at` | string (date-time) | Yes |  |
| `correlation_id` | string (uuid) | Yes |  |
| `ok` | true | No |  |
| `operation_id` | string \| null | No |  |
| `state_version` | integer | No | (min 0) |
| `retryable` | false | No |  |
| `next` | null | No |  |

New fields can appear at any time; ignore the ones you do not know.

## Errors

| Code | HTTP | Retryable |
|---|---|---|
| `UNAUTHENTICATED` | 401 | No |
| `FORBIDDEN` | 403 | No |
| `RATE_LIMITED` | 429 | Yes |
| `VALIDATION_FAILED` | 422 | No |
| `DEPENDENCY_UNAVAILABLE` | 503 | Yes |
| `UNKNOWN` | 500 | No |

## Examples (curl)

```bash
curl "https://browlix.com/api/public/v1/personas/contexts" \
  -H "Authorization: Bearer $BROWLIX_API_KEY"
```

## Examples (TypeScript SDK)

```ts
import { Browlix } from "@browlix/sdk";

const bx = new Browlix({ apiKey: process.env.BROWLIX_API_KEY! });
const reply = await bx.call("personas.contexts_list");
console.log(reply.data);
```

## Examples (Python)

```python
import os
import requests

r = requests.get(
    "https://browlix.com/api/public/v1/personas/contexts",
    headers={"Authorization": f"Bearer {os.environ['BROWLIX_API_KEY']}"},
    timeout=60,
)
print(r.status_code, r.json())
```

## Examples (MCP)

```json
{
  "method": "tools/call",
  "params": {
    "name": "personas_contexts_list",
    "arguments": {}
  }
}
```
