---
title: "Create a test call (developer API)"
method: POST
path: "/api/v1/developer/calls"
tags: ["Developer API"]
---

# Create a test call (developer API)

`POST /api/v1/developer/calls`

## Request

- Base URL: `https://dev.noveum.ai`
- URL: `https://dev.noveum.ai/api/v1/developer/calls`
- Auth: API key in cookie `apiKeyCookie` and HTTP bearer

Creates endpoint, persona, scenario and call in one request. Supply optional projectId to use an existing project. For direction inbound, arms a Noveum number; poll returned statusUrl until ready before dialing. Outbound dials the endpoint. Voice mode only; webhook delivery is unavailable.

## Request body

- object
  - `projectId` string: An existing project in the connected organization. Defaults to the Developer API project.
  - `direction` 'outbound' | 'inbound': Inbound reserves a Noveum number for the caller; outbound dials the endpoint.
  - `endpoint` union, required
    - object
      - `type` string, required
      - `phoneNumber` string, required
      - `phoneCountryCode` string, required
    - object
      - `type` string, required
      - `livekitUrl` string, uri, required
      - `livekitApiKey` string, required
      - `livekitApiSecret` string, required
      - `livekitAgentName` string, required
    - object
      - `type` string, required
      - `websocketUrl` string, uri, required
      - `websocketAuthHeader` string
    - object
      - `type` string, required
      - `retellApiKey` string, required
      - `retellAgentId` string
    - object
      - `type` string, required
      - `vapiApiKey` string, required
      - `vapiAssistantId` string
    - object
      - `type` string, required
      - `pipecatApiKey` string, required
      - `pipecatAgentName` string, required
      - `pipecatAgentConfigJson` object
    - object
      - `type` string, required
      - `elevenLabsApiKey` string, required
      - `elevenLabsAgentId` string
    - object
      - `type` string, required
      - `endpointId` string, required
  - `persona` object, required
    - `name` string, required
    - `description` string
    - `goal` string, required
    - `personalityTraits` string[]
    - `tonePreference` string
    - `primaryLanguage` string[]
    - `understandsLanguages` string[]
    - `knowledgeBase` string[]
    - `occupation` string
    - `location` string
    - `educationLevel` string
    - `gender` string
    - `ttsVoiceModel` unknown
    - `ttsVoiceId` string
    - `speakingSpeed` number
    - `interruptionLevel` number
    - `backgroundNoise` unknown
    - `backgroundNoiseLevel` number
    - `backgroundNoiseDuration` number
    - `backgroundNoiseMode` 'mix_tts' | 'ambient'
    - `networkPacketLoss` number
    - `accentDescription` string
    - `maxDurationS` integer
  - `scenario` object, required
    - `name` string, required
    - `description` string, required
    - `events` object[]
      - `id` string, required
      - `parent_id` unknown
      - `action` string, required
      - `condition` unknown
    - `metadata` object
    - `tags` string[]
    - `scenarioType` 'conversation' | 'workflow' | 'red_team' | 'knowledge_base' | 'edge_case'
    - `folder` string
    - `libraryCategory` string
    - `categoryId` unknown
    - `interruptionLevel` number
    - `interruptions` object[]
      - `type` 're_explain' | 'hold_on' | 'third_party_aside' | 'hurry_up' | 'bad_audio' | 'not_interested' | 'clarification' | 'correction' | 'premature_answer', required
      - `marker_turn` integer, required
      - `intent` unknown
      - `opener` unknown
      - `after_event_id` unknown
      - `gate` union
        - object
          - `type` string, required
        - object
          - `type` string, required
      - `window_turns` integer
      - `on_miss` 'fire_late' | 'skip_and_log'
    - `projectId` string
    - `isPublic` boolean
  - `eval` boolean
  - `mode` 'voice' | 'text'
  - `maxCallDurationS` integer
  - `webhook` string, uri
  - `serviceVersion` string

## Response `200`

Success

- object

## Other responses

- `201`: Created
- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `409`: Conflict
- `422`: Unprocessable entity
- `500`: Internal server error

---

[API](https://skmtc.dev/noveum/apis/noveum-api.md) · [All operations](https://skmtc.dev/noveum/apis/noveum-api/llms.txt) · [OpenAPI document](https://skmtc.dev/noveum/apis/noveum-api/revisions/1745e27f38d0?raw)
