---
title: "Get one agent's full configuration"
method: GET
path: "/api/v1/agents/{id}"
tags: ["agents"]
---

# Get one agent's full configuration

`GET /api/v1/agents/{id}`

## Request

- Base URL: `https://www.callagent.pro`
- URL: `https://www.callagent.pro/api/v1/agents/{id}`
- Auth: HTTP bearer

## Path parameters

- `id` integer, required

## Response `200`

OK

- Agent
  - `id` integer, required
  - `name` string, required
  - `agent_type` 'prompt' | 'flow', required
  - `detect_caller_bio` boolean, required: Let the agent look the caller up and greet them with what it finds
  - `owner_id` integer, required: Account member who owns this agent
  - `owner_name` string, required
  - `is_own` boolean, required: True when the key's user owns it; false for an agent shared by a colleague
  - `knowledge_base_label` string, nullable, required: Display name of knowledge_base_id
  - `shape` string, required: Avatar shape for the dashboard tile
  - `prompt` string, required
  - `greeting_message` string, required
  - `company_information` string, required
  - `primary_language_id` integer, required
  - `default_voice_id` integer, required
  - `llm_server_id` integer, required
  - `asr_model_id` integer, required
  - `knowledge_base_id` integer, nullable, required
  - `status` 'active' | 'paused', required
  - `max_call_duration` integer, required: SECONDS, not minutes; 60-7200
  - `forwarding_number` string, nullable, required
  - `flow` object, required: Visual flow graph; only meaningful when agent_type=flow. Both arrays are required when sending a flow.
    - `nodes` object[]
      - `id` string, required
      - `type` 'agent' | 'end' | 'condition' | 'tool', required
      - `label` string
      - `prompt` string
    - `edges` object[]
      - `source` string, required: id of the node this leaves
      - `target` string, required: id of the node this enters
      - `condition` string: Plain-language test the model evaluates to decide whether to follow this edge
  - `temperature` number, required
  - `speech_speed` number, required
  - `vad_activation_threshold` number, required
  - `vad_min_silence_duration` number, required
  - `phrase_pause_ms` integer, required
  - `max_waiting_time` integer, required: seconds
  - `answer_delay` integer, required: seconds
  - `enable_recording` boolean, required
  - `enable_call_forwarding` boolean, required
  - `enable_retry` boolean, required
  - `tts_tags` boolean, required: Let the model write [emotion] tags; engines that do not read them strip them
  - `email_notifications` boolean, required
  - `notification_email` string, email, nullable, required
  - `webhook_url` string, uri, nullable, required: Post-call webhook THIS account calls after every completed call — see the WebhookPayload schema for exactly what's POSTed to it. Not an endpoint served here.
  - `tools` string, nullable, required: NOT an OpenAI function-calling / JSON schema list — a comma-separated string of built-in capability names this agent may use, e.g. "cal,email,notes" or "secretary". Recognised names: `cal` (check_availability, book_appointment), `sms` (send_sms), `email` (send_email), `notes` (save_note, recall_notes, recall_conversation), `secretary` (a bundle: contacts, calendar, scheduled calls, do-not-call, notes, email, and general lookups — everything a phone secretary needs). Omit or leave empty for a plain conversational agent with no tool access.

## Other responses

- `401`: Missing or invalid Bearer key
- `404`: No matching record on this account
- `429`: Too many requests — see the endpoint's rate limit tier (agent-api 120/min, agent-api-heavy 6/min, agent-api-secrets 10/min)

---

[API](https://skmtc.dev/callagent/apis/callagent-pro-agent-api.md) · [All operations](https://skmtc.dev/callagent/apis/callagent-pro-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/callagent/apis/callagent-pro-agent-api/revisions/38072cf8a24b?raw)
