Logo
Search
API Docs

Creating a Single Outbound Call via API

Outbound Calling

Creating a Single Outbound Call via API

Overview

The /call endpoint is the simplest way to place one outbound phone call from your own server or backend. This page covers only that basic single-call case. For calling many numbers at once, or scheduling a batch for a future time, see Batch Calling. For a structured, Dashboard-managed campaign workflow with CSV recipient uploads and campaign analytics, see Outbound Campaigns.


Required Fields

A single outbound call needs three pieces of information:

FieldTypeDescription
assistantId or assistantstring / objectEither the ID of a saved assistant, or a full transient (inline) assistant configuration — not both.
phoneNumberIdstringThe ID of the Sulus phone number to call from.
customer.numberstringThe destination number in E.164 format, e.g. +11231231234.

Example Request

JSON body:

{
  "assistantId": "your-assistant-id",
  "phoneNumberId": "your-phone-number-id",
  "customer": {
    "number": "+11231231234"
  }
}

cURL:

curl 'https://api.sulus.ai/call' \
  -H 'authorization: Bearer YOUR_API_KEY' \
  -H 'content-type: application/json' \
  --data-raw '{
    "assistantId": "your-assistant-id",
    "phoneNumberId": "your-phone-number-id",
    "customer": {
      "number": "+11231231234"
    }
  }'

A successful call returns an object including the call ID, status, and concurrency information:

{
  "id": "7420f27a-30fd-4f49-a995-5549ae7cc00d",
  "assistantId": "your-assistant-id",
  "phoneNumberId": "your-phone-number-id",
  "type": "outboundPhoneCall",
  "status": "queued",
  "customer": {
    "number": "+11231231234"
  },
  "subscriptionLimits": {
    "concurrencyBlocked": false,
    "concurrencyLimit": 10,
    "remainingConcurrentCalls": 9
  }
}

assistantId vs. a Transient Assistant

You must provide either assistantId (a reference to a saved assistant) or assistant (a full transient assistant configuration object defined inline in the request), but never both in the same request. Use assistantId for assistants you've already created and reuse across calls; use a transient assistant object when you need a one-off configuration you don't intend to save.


Free Numbers and Scaling Beyond Them

Free platform-provided numbers cannot be used to call international destinations, and are limited to a capped number of outbound calls per day. These limits are fine for testing or light use, but they will throttle any attempt to scale outbound volume.

To place calls without those limits, import a number you already own, or provision one from an external carrier so it isn't subject to the free-number caps. See Bring Your Own Phone Number for the full import process.


Compliance Note

Dialing phone numbers in an automated manner without the recipient's consent violates telemarketing law in most jurisdictions. Before placing any outbound call through this endpoint, confirm you have obtained consent to contact the recipient — this applies regardless of whether the call is placed one at a time through this endpoint, in a batch, or through a Dashboard campaign.