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

# Create Agent

> Create Agent.

<Note>Actual endpoint: `POST https://api.ravan.ai/api/v1/agents/`</Note>

### Authorizations

<ParamField header="X-Api-Key" type="string" required>
  Your Agni API key used to authenticate the request. Pass it in the `X-Api-Key` header. Find or rotate it from your Ravan AI account settings.
</ParamField>

***

### Body

<ParamField body="organizationId" type="string" placeholder="95a4e479-03a7-4f1b-834d-8705756e8e59">
  The organization ID this agent belongs to.
</ParamField>

<ParamField body="agentName" type="string" placeholder="Input Field FROM EARTH">
  The public-facing display name for the agent.
</ParamField>

<ParamField body="status" type="string" placeholder="ACTIVE">
  Agent status. Allowed values: `ACTIVE`, `INACTIVE`.
</ParamField>

<ParamField body="model" type="string" placeholder="Agni Premium">
  The LLM model identifier used by the agent for reasoning and responses.
</ParamField>

<ParamField body="s2sModel" type="string" placeholder="Agni Premium">
  The speech-to-speech model identifier used for realtime voice conversations.
</ParamField>

<ParamField body="voiceId" type="string" placeholder="Iris">
  The voice ID used for the agent speech output.
</ParamField>

<ParamField body="temperature" type="number" placeholder="0.7">
  Controls response randomness. Lower values are more deterministic; higher values are more varied. Range: `0.0` – `1.0`.
</ParamField>

<ParamField body="reminderTriggerMs" type="integer" placeholder="10000">
  Milliseconds of silence before the agent sends a reminder message.
</ParamField>

<ParamField body="reminderMaxCount" type="integer" placeholder="2">
  Maximum number of reminder messages the agent can send during a call.
</ParamField>

<ParamField body="reminderMessage" type="string" placeholder="HI are you there??">
  The message the agent sends as a reminder during silence.
</ParamField>

<ParamField body="ambientSound" type="string" placeholder="forest_ambience">
  Background sound profile to play during calls. Leave empty to disable.
</ParamField>

<ParamField body="ambientSoundVolume" type="number" placeholder="1">
  Volume for the ambient sound. Range: `0` (muted) to `1` (full volume).
</ParamField>

<ParamField body="maxCallDurationMs" type="integer" placeholder="600000">
  Maximum allowed call duration in milliseconds.
</ParamField>

<ParamField body="ringDurationMs" type="integer" placeholder="32000">
  Maximum time in milliseconds to let an outbound call ring before treating it as unanswered.
</ParamField>

<ParamField body="voicemailMessage" type="string" placeholder="">
  Message to leave when voicemail is detected.
</ParamField>

<ParamField body="voicemailDetectionTimeoutMs" type="integer" placeholder="7000">
  Maximum time in milliseconds to wait for voicemail detection.
</ParamField>

<ParamField body="voicemailCustomPatterns" type="array">
  Custom patterns used for voicemail detection. Pass `null` to disable.
</ParamField>

<ParamField body="postCallAnalysisModel" type="string" placeholder="gpt-4o-mini">
  Model used to generate post-call analysis such as summaries and sentiment.
</ParamField>

<ParamField body="postCallAnalysisData" type="array">
  Array of structured data fields to extract after the call.

  <Expandable title="postCallAnalysisData item">
    <ParamField body="name" type="string" placeholder="sentiments">
      Field name for the extracted data.
    </ParamField>

    <ParamField body="description" type="string" placeholder="what was users sentiment throughout the call">
      Description of what to extract.
    </ParamField>

    <ParamField body="type" type="string" placeholder="enum">
      Data type: `string`, `enum`, `boolean`, `number`.
    </ParamField>

    <ParamField body="choices" type="string[]" placeholder="[&#x22;Negative&#x22;, &#x22;Positive&#x22;, &#x22;Neutral&#x22;]">
      Available choices (required when `type` is `enum`).
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="selectedTools" type="array">
  Tools enabled for the agent. Pass `null` to disable.
</ParamField>

<ParamField body="knowledgeBase" type="string" placeholder="8619dc3f-......">
  Knowledge base ID to attach to this agent.
</ParamField>

<ParamField body="beginMessage" type="string" placeholder="">
  The first message the agent says when the conversation starts.
</ParamField>

<ParamField body="startSpeaker" type="string" placeholder="agent">
  Who speaks first. Allowed values: `agent`, `user`.
</ParamField>

<ParamField body="prompt" type="string" placeholder="The current date and Time in Asia/Calcutta is {{current_time_Asia/Calcutta}}">
  The system prompt used by the agent. Supports template variables like `{{current_time_Asia/Calcutta}}`.
</ParamField>

<ParamField body="webhookUrls" type="string[]" placeholder="[&#x22;https://webhook.site/&#x22;]">
  List of webhook URLs to receive call events.
</ParamField>

<ParamField body="endcallOnSilenceDuration" type="integer" placeholder="10000">
  Duration of silence in milliseconds after which the call ends automatically.
</ParamField>

<ParamField body="interruptionSensitivity" type="number" placeholder="0.1">
  Sensitivity for detecting user interruptions. Range: `0.0` – `1.0`.
</ParamField>

<ParamField body="memory" type="boolean" placeholder="true">
  Whether the agent retains memory across turns in a conversation.
</ParamField>

<ParamField body="calendarTimezone" type="string" placeholder="Asia/Calcutta">
  IANA timezone used for calendar scheduling.
</ParamField>

<ParamField body="accent" type="string[]" placeholder="[&#x22;india/hindi&#x22;]">
  Accent preferences for the agent voice.
</ParamField>

<ParamField body="emotion" type="boolean" placeholder="true">
  Whether the agent expresses emotion in its voice.
</ParamField>

<ParamField body="salesforceCalendarId" type="string" placeholder="">
  Salesforce calendar ID for appointment scheduling.
</ParamField>

<ParamField body="emergencyFallback" type="string" placeholder="+919123456789">
  Backup phone number to transfer the call to on failure (E.164 format).
</ParamField>

***

### Response

<ResponseField name="success" type="boolean">
  Whether the request succeeded.
</ResponseField>

<ResponseField name="message" type="string">
  Human-readable status message. Example: `Agent created successfully`
</ResponseField>

<ResponseField name="data" type="object">
  Created agent object.

  <Expandable title="data">
    <ResponseField name="id" type="string">
      Agent UUID. Example: `019ebc45-3cae-79b5-bd64-658da275fd08`
    </ResponseField>

    <ResponseField name="organizationId" type="string">
      Organization UUID. Example: `95a4e479-03a7-4f1b-834d-8705756e8e59`
    </ResponseField>

    <ResponseField name="agentName" type="string">
      Display name of the agent. Example: `Input Field FROM EARTH`
    </ResponseField>

    <ResponseField name="status" type="string">
      Agent status. Example: `ACTIVE`
    </ResponseField>

    <ResponseField name="model" type="string">
      LLM model identifier. Example: `Agni Premium`
    </ResponseField>

    <ResponseField name="s2sModel" type="string">
      Speech-to-speech model identifier. Example: `Agni Premium`
    </ResponseField>

    <ResponseField name="voiceId" type="string">
      Voice ID for TTS. Example: `Iris`
    </ResponseField>

    <ResponseField name="temperature" type="number">
      LLM temperature setting. Example: `0.7`
    </ResponseField>

    <ResponseField name="reminderTriggerMs" type="integer">
      Milliseconds before sending a reminder. Example: `10000`
    </ResponseField>

    <ResponseField name="reminderMaxCount" type="integer">
      Maximum reminders per call. Example: `2`
    </ResponseField>

    <ResponseField name="reminderMessage" type="string">
      Reminder message text. Example: `HI are you there??`
    </ResponseField>

    <ResponseField name="ambientSound" type="string">
      Ambient sound identifier. Example: `forest_ambience`
    </ResponseField>

    <ResponseField name="ambientSoundVolume" type="number">
      Ambient sound volume (0–1). Example: `1`
    </ResponseField>

    <ResponseField name="maxCallDurationMs" type="integer">
      Maximum call duration in milliseconds. Example: `600000`
    </ResponseField>

    <ResponseField name="ringDurationMs" type="integer">
      Ring duration in milliseconds. Example: `32000`
    </ResponseField>

    <ResponseField name="voicemailMessage" type="string">
      Voicemail message text.
    </ResponseField>

    <ResponseField name="voicemailDetectionTimeoutMs" type="integer">
      Voicemail detection timeout in milliseconds. Example: `7000`
    </ResponseField>

    <ResponseField name="voicemailCustomPatterns" type="array">
      Custom voicemail detection patterns.
    </ResponseField>

    <ResponseField name="postCallAnalysisModel" type="string">
      Post-call analysis model. Example: `gpt-4o-mini`
    </ResponseField>

    <ResponseField name="postCallAnalysisData" type="array">
      Structured fields extracted after the call.
    </ResponseField>

    <ResponseField name="selectedTools" type="array">
      Tools enabled for this agent.
    </ResponseField>

    <ResponseField name="knowledgeBase" type="string">
      Attached knowledge base ID. Example: `8619dc3f-.......`
    </ResponseField>

    <ResponseField name="beginMessage" type="string">
      Opening message spoken by the agent.
    </ResponseField>

    <ResponseField name="startSpeaker" type="string">
      Who speaks first. Example: `agent`
    </ResponseField>

    <ResponseField name="prompt" type="string">
      System prompt used by the agent.
    </ResponseField>

    <ResponseField name="webhookUrls" type="string[]">
      Webhook URLs receiving call events. Example: `["https://webhook.site/"]`
    </ResponseField>

    <ResponseField name="endcallOnSilenceDuration" type="integer">
      Silence duration in ms before call ends. Example: `10000`
    </ResponseField>

    <ResponseField name="interruptionSensitivity" type="number">
      Interruption detection sensitivity. Example: `0.1`
    </ResponseField>

    <ResponseField name="memory" type="boolean">
      Whether memory is enabled. Example: `true`
    </ResponseField>

    <ResponseField name="calendarTimezone" type="string">
      Calendar timezone. Example: `Asia/Calcutta`
    </ResponseField>

    <ResponseField name="accent" type="string[]">
      Accent preferences. Example: `["india/hindi"]`
    </ResponseField>

    <ResponseField name="emotion" type="boolean">
      Whether emotion is enabled. Example: `true`
    </ResponseField>

    <ResponseField name="calcomStatus" type="string">
      Cal.com integration status. Example: `inactive`
    </ResponseField>

    <ResponseField name="ghlAssignUserIdList" type="array">
      GHL assigned user IDs.
    </ResponseField>

    <ResponseField name="crmSyncProviders" type="object">
      CRM sync provider configuration.
    </ResponseField>

    <ResponseField name="salesforceCalendarId" type="string">
      Salesforce calendar ID.
    </ResponseField>

    <ResponseField name="salesforceAssignUserIdList" type="array">
      Salesforce assigned user IDs.
    </ResponseField>

    <ResponseField name="emergencyFallback" type="string">
      Emergency fallback phone number. Example: `+919123456789`
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      Creation timestamp. Example: `2026-06-12 14:38:34.670214 +0000 UTC`
    </ResponseField>

    <ResponseField name="updatedAt" type="string">
      Last updated timestamp. Example: `2026-06-12 14:38:34.670214 +0000 UTC`
    </ResponseField>
  </Expandable>
</ResponseField>
