---
title: "Create an agent"
method: POST
path: "/companies/{company}/agents"
tags: ["AI Agent"]
---

# Create an agent

`POST /companies/{company}/agents`

## Path parameters

- `company` integer, required

## Request body

- object
  - `business_unit_id` integer, nullable
  - `agentName` string, nullable
  - `sourceAgentId` integer, nullable — Build the new agent from an existing one instead of the website: prompt, knowledge base, calendar, hours, tools, fallbacks, pronunciation aliases and post-call email settings are copied over and no crawl runs. Makes voiceId optional.
  - `skillTemplates` string[], nullable — Skill template keys the new agent should have. Only honored together with sourceAgentId; matching skills are copied from it, the rest are created from their template.
  - `firstMessage` string, nullable
  - `description` string, nullable
  - `companyName` string, nullable
  - `website` string, nullable
  - `googlePlaceId` string, nullable
  - `reviewBusinessInfo` boolean, nullable — Hold detected business info (address, industry, working hours) for user review instead of auto-applying it. The review is read and applied via the call-training analysis endpoints. Default false.
  - `voiceId` string
  - `voiceLanguage` string, nullable
  - `scheduleId` integer, nullable
  - `enabled` boolean, nullable — Whether the agent answers calls on the numbers and call flows assigned to it. Defaults to true when omitted.
  - `voicemailFallbackEnabled` boolean, nullable
  - `messageCaptureEnabled` boolean, nullable
  - `callbackCaptureEnabled` boolean, nullable
  - `transferSummaryEnabled` boolean, nullable
  - `expressiveVoiceEnabled` boolean, nullable
  - `suggestedAudioTags` object[], nullable
    - `tag` string
    - `description` string, nullable
  - `escalationPolicy` string, nullable
  - `dynamicVariables` object, nullable
  - `pronunciationAliases` object[], nullable
    - `type` 'text' | 'dynamicVariable'
    - `stringToReplace` string, nullable
    - `dynamicVariableKey` string, nullable
    - `alias` string
    - `caseSensitive` boolean
    - `wordBoundaries` boolean

## Response `202`

Agent creation happens asynchronously. This response contains batch information that can be used to check progress.

You can listen to the `agent-create-completed` event on the `companies@{company}` channel.
Progress updates are broadcast as `agent-create-progress` on the same channel.
The event payload will be an `AgentCreateResult`.

- AgentCreateBatch
  - `id` string, uuid
  - `name` string
  - `totalJobs` integer
  - `pendingJobs` integer
  - `failedJobs` integer
  - `progress` integer
  - `createdAt` string
  - `cancelledAt` string
  - `finishedAt` string

---

[API](https://skmtc.dev/800/apis/public-api.md) · [All operations](https://skmtc.dev/800/apis/public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/800/public-api/revisions/b4b302ac9e83/schema)
