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

# Get Sources

> See which AI agents and dialer numbers an analyzer watches

Returns what the analyzer watches and the rules for new calls. `call_agents` and `dialer_numbers` (the choices, with recent recorded-call counts) are included only if you have `manage`. Numbers are masked.

> [!NOTE]
>
> Needs `view` on the analyzer.

## Request

### Headers

**Authorization** `string` *required*

Bearer token with your API key: `Bearer sk_...`

### Path

**agentId** `string` *required*

Analyzer ID (UUID)

## Response

**200**

```json theme={null}
{
  "success": true,
  "data": {
    "agent_ids": [
      "<ai-agent-uuid>"
    ],
    "agent_names": [
      "Front desk"
    ],
    "dialer_number_ids": [
      "12"
    ],
    "dialer_number_names": [
      "+91XXXXXX3210"
    ],
    "auto_new": true,
    "min_seconds": 30,
    "self_heal": {
      "mode": "suggest",
      "enabled_by": { "id": 17, "name": "Priya Nair" },
      "can_suggest": true,
      "can_auto": true,
      "auto_unavailable_reason": null,
      "defaults": { "repeat_calls": 3, "window_calls": 20, "verify_calls": 10, "cooldown_hours": 24, "daily_cap": 1 }
    },
    "call_agents": [
      {
        "id": "<ai-agent-uuid>",
        "name": "Front desk",
        "recorded_last_7d": 12,
        "recorded_last_30d": 40
      }
    ],
    "dialer_numbers": [
      {
        "id": "12",
        "name": "+91XXXXXX3210",
        "recorded_last_7d": 5,
        "recorded_last_30d": 18
      }
    ]
  }
}
```

`self_heal.mode` is `off`, `suggest` or `auto`. `enabled_by` is who set it (null when off). `can_suggest` is true when at least one AI agent is watched. `can_auto` is true when `can_suggest` is true and the caller can edit agents; otherwise `auto_unavailable_reason` is `NO_AI_AGENTS` or `NO_AGENT_WRITE`. `defaults` are the fixed thresholds.

## Errors

Errors use `{ "success": false, "message": "...", "code": "..." }`. See the [overview](https://docs.60db.ai/api-reference/call-analysis/overview.md#errors) for the codes every route can return.

### This endpoint

| Status | Code | When |
| - | - | - |
| 404 | `NOT_FOUND` | The analyzer does not exist or is not visible |

## Example

```bash cURL theme={null}
curl 'https://api.60db.ai/deep-analytics/analysis-agents/3f1c2d4e-5a6b-4c7d-8e9f-0a1b2c3d4e5f/sources' \
  -H "Authorization: Bearer your-api-key"
```

```javascript JavaScript theme={null}
const res = await fetch('https://api.60db.ai/deep-analytics/analysis-agents/3f1c2d4e-5a6b-4c7d-8e9f-0a1b2c3d4e5f/sources', {
  headers: { Authorization: 'Bearer your-api-key' },
});
const { success, data, message, code } = await res.json();
if (!success) throw new Error(`${code}: ${message}`);
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.