zoxaAI
Homepage
API ReferenceAgents

List agents

GET /api/v1/agents — paginated list of agents in your organization.

GET /api/v1/agents

Returns the agents in your organization, paginated.

Authentication

X-API-Key: zsk_...

Query parameters

ParamTypeDefaultNotes
limitint (1..100)50Items per page.
offsetint (≥0)0Offset-based pagination.
statusstring"active"One of active, archived.

Response

Each item is an AgentEnvelope (same shape returned by GET /agents/{agent_uuid}):

{
  "agents": [
    {
      "uuid": "550e8400-e29b-41d4-a716-446655440000",
      "status": "active",
      "createdAt": "2026-06-01T10:00:00Z",
      "updatedAt": "2026-06-16T09:30:00Z",
      "config": {
        "name": "Sales bot",
        "description": "Qualifies inbound leads.",
        "languages": ["en"],
        "systemPrompt": "You are...",
        "timezone": "Asia/Kolkata",
        "greeting": { "firstMessages": ["Hi, can I help you?"], "interruptible": false, "speakFirst": "agent", "agentDelayS": 0.0, "userTimeoutS": 3.0 },
        "llm": { "provider": "openai", "model": "gpt-5.4-mini", "temperature": 1.0, "maxTokens": 251, "prewarm": true },
        "stt": { "provider": "soniox", "model": null, "interruptionMinWords": 0, "...": "per-provider tuning blocks" },
        "tts": { "provider": "elevenlabs", "model": null, "voice": null, "...": "per-provider tuning blocks" },
        "maxCallDurationS": 610,
        "userIdleTimeoutS": 7,
        "userIdleMessages": ["Are you still there?"],
        "userIdleMaxRetries": 2,
        "tools": [
          "abc12345-6789-0123-4567-89abcdef0123",
          { "type": "endCall", "name": "end_call", "description": "…", "config": { "messageType": "custom", "customMessages": ["Goodbye!"], "audioRecordingId": null } }
        ],
        "voicemailDetection": true,
        "webhook": null,
        "...": "noiseGate, human-feel audio, summarization, contextVariables — see the schema page"
      }
    }
  ],
  "total": 7,
  "limit": 50,
  "offset": 0
}
FieldNotes
uuidThe agent's identifier — used in every CRUD path and as agentId in POST /call.
status"active" or "archived".
configThe full validated Agent Config (camelCase).
config.toolsMixed array of saved-tool UUID strings and inline tool objects; the endCall tool is always present.
config.webhooknull or { "url": "…", "headers": { … } }. The write-only webhookSecret is never returned.
total / limit / offsetPagination — total matching rows, plus the echoed page window.
curl "https://dashboard.zoxa.ai/api/v1/agents?limit=20&offset=0&status=active" \
  -H "X-API-Key: zsk_..."
const params = new URLSearchParams({ limit: "20", offset: "0", status: "active" });
const res = await fetch(`https://dashboard.zoxa.ai/api/v1/agents?${params}`, {
  headers: { "X-API-Key": "zsk_..." },
});
const { agents, total } = await res.json();
import httpx
resp = httpx.get(
    "https://dashboard.zoxa.ai/api/v1/agents",
    headers={"X-API-Key": "zsk_..."},
    params={"limit": 20, "offset": 0, "status": "active"},
)
print(resp.json()["total"])

Errors

StatusWhen
400No organization selected on the API key.
422limit / offset out of range, or invalid status.

On this page