Skip to main content
POST
Initiate a phone call

Authorizations

API-Token
string
header
required

16-character API token associated with your OSVI account. Find it in your dashboard under Settings → API.

Body

application/json
agent_uuid
string
required

Unique identifier of the OSVI agent that will handle the call. Must belong to the account that owns the API token, otherwise the request is rejected with 403 Forbidden.

Example:

"agent_IsxxxxSf_60EhxxxxMGbz-Rxxg"

phone_number
string
required

Destination phone number (digits only, without country code). Normalized and validated against country_code; an implausible number returns 400 Bad Request.

Example:

"9876543210"

country_code
string
required

ISO 3166-1 alpha-2 country code of the destination number. Must be a recognized country code, otherwise the request is rejected with 400 Bad Request.

Example:

"IN"

system_prompt
string

Optional runtime override for the agent's system prompt for this call only.

Example:

"You are calling to confirm the appointment scheduled for tomorrow at 10 AM."

webhook_url
string<uri>

URL that OSVI will POST to when the call completes. Must be a valid HTTP or HTTPS URL that includes a host. The payload matches the webhook schema documented in the Webhooks section.

Example:

"https://yourdomain.com/osvi-webhook"

person_name
string

Name of the person being called. Made available to the agent during the call.

Example:

"John Doe"

additional_data
object

Arbitrary key-value object passed to the agent at runtime. Use this to provide context the agent can reference during the conversation. Must be a JSON object — arrays or scalar values are rejected with 400 Bad Request.

Example:
initial_greeting
string

Opening line the agent speaks when the call connects. Maximum 2000 characters.

Maximum string length: 2000
Example:

"Hello John, this is a reminder about your appointment tomorrow at 10 AM."

call_config_overrides
object

Per-call overrides for call behavior. All fields are optional.

Example:
data_extraction
object[]

List of data points the agent should attempt to extract during the conversation. Must be an array; each item requires a non-empty description.

Example:
scheduled_at
string

Optional. When set, the call is queued and placed at this time instead of immediately. A string in 24-hour format, in one of two shapes:

  • HH:MM — a time in IST (Asia/Kolkata). Placed today at that time if it is still ahead, otherwise tomorrow at that time. Example: 11:00.
  • YYYY-MM-DDTHH:MM:SS+05:30 — ISO 8601 with an explicit UTC offset, used exactly as given. Use this for a specific date, or for a zone other than IST. Seconds are required, fractional seconds are accepted (2026-09-12T05:30:00.000Z, as JavaScript's toISOString() emits), and the offset may be Z, ±HH:MM or ±HHMM up to ±14:00. Example: 2026-09-12T11:00:00+05:30.

Must be in the future and at most 90 days ahead. Rejected with 400 Bad Request: Unix timestamps, 12-hour clocks (11 am), date-times without an offset, and any out-of-range field (12:60, 25:00, +15:00, an invalid calendar date). Nothing is normalised silently.

Calls scheduled for the same moment start together up to the agent's concurrency limit and the rest follow as slots free up. The agent's campaign calling window still applies. All other fields behave exactly as for an immediate call.

Example:

"2026-09-12T11:00:00+05:30"

Response

Call initiated successfully

success
boolean
Example:

true

data
object