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

# GET /v1/agents

> The account's AI agents, with their setup, status and today's figures.

Every agent on the account, in one list — the same agents the panel's **AI agents → Agents** screen shows. Deleted agents aren't listed.

<Note>Needs the `agents:read` scope.</Note>

## Request

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://api.fireflo.au/v1/agents" \
    -H "Authorization: Bearer $OMNI_API_KEY"
  ```

  ```python Python theme={null}
  import os

  import requests

  response = requests.get(
      "https://api.fireflo.au/v1/agents",
      headers={"Authorization": f"Bearer {os.environ['OMNI_API_KEY']}"},
  )
  print(response.status_code, response.json())
  ```

  ```javascript Node theme={null}
  const response = await fetch("https://api.fireflo.au/v1/agents", {
    headers: { Authorization: `Bearer ${process.env.OMNI_API_KEY}` },
  });
  console.log(response.status, await response.json());
  ```
</CodeGroup>

## Response

`200 OK` — `data` holds every agent, in the shape [GET /v1/agents/\{agent\_id}](/api-reference/ai-agents/get) answers. The list isn't paged.

```json theme={null}
{
  "data": [
    {
      "id": 12,
      "name": "Priya",
      "role": "support",
      "workflow": {
        "version": 3,
        "blocks": 4,
        "ai_blocks": 1,
        "unpublished": false
      },
      "status": "active",
      "objective": "Answer order and refund questions within minutes and hand complaints to the team.",
      "provider": {
        "id": 4,
        "label": "OpenAI — main",
        "provider": "openai"
      },
      "model": "gpt-4o-mini",
      "instructions": "You are Priya from Sharma Electronics, Pune. Reply in the customer's language — English, Hindi or Hinglish. Never promise a refund date.",
      "channels": [
        "whatsapp",
        "sms"
      ],
      "booking_types": [],
      "knowledge_collections": [
        3
      ],
      "answer_threshold": 80,
      "handoff_assignees": [
        21,
        34
      ],
      "channels_available": [
        "whatsapp",
        "sms"
      ],
      "channels_missing": [],
      "action_policy": {
        "send_message": "auto",
        "send_whatsapp_template": "approval",
        "send_broadcast": "approval",
        "request_template": "approval",
        "create_deal": "off",
        "move_deal_stage": "auto",
        "mark_deal_won": "off",
        "mark_deal_lost": "off",
        "update_deal_value": "off",
        "add_note": "auto",
        "update_contact": "auto",
        "follow_up": "auto",
        "close_conversation": "auto",
        "handoff_to_human": "auto"
      },
      "approval_mode": "plan",
      "replan": {
        "triggers": [
          "on_inbound"
        ],
        "every_n_hours": null,
        "max_replans_per_contact_per_day": 6
      },
      "working_hours": {
        "days": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "start": "09:00",
        "end": "19:00"
      },
      "limits": {
        "daily_token_limit": 100000,
        "max_steps_per_plan": 6,
        "max_messages_per_contact_per_day": 3,
        "max_broadcast_audience": 500
      },
      "auto_assign_inbound": true,
      "pause_on_human_reply": true,
      "pause_minutes": 30,
      "after_pause": "resume",
      "pipelines": [
        {
          "id": 2,
          "name": "Service requests",
          "engaged": true,
          "entry_stage": "New"
        }
      ],
      "stats": {
        "tokens_today": 18450,
        "active_contacts": 27,
        "awaiting_approval": 2,
        "plans_today": 41
      },
      "verified_at": "2026-09-28T11:04:52+05:30",
      "created_at": "2026-09-28T10:41:07+05:30"
    }
  ]
}
```

## Errors

Every refusal is `{"error": {"code", "message", "field"}}`; `field` is there when one input is at fault.

| Status | Error code | When |
| :- | :- | :- |
| 404 | `module_off` | The account doesn't have AI agents on: they aren't in its plan, or are switched off for it. |
| 403 | `scope_missing` | The key doesn't have the `agents:read` scope. |

Any request can also be refused for its key, its account or its rate (`key_required`, `invalid_key`, `account_suspended`, `plan_excludes_api`, `address_not_allowed`, `rate_limited`); see [the overview](/api-reference/overview).


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