New: every message picks a fast or a slow model

Saperly

Saperly is the phone carrier for AI agents — phone numbers, voice, SMS, and compliance in one API.

What agents can do

Actions30

  • Assign number connection

    Attach a connection (the AI persona / answering brain from SAPERLY_CREATE_CONNECTION) to a phone number, so inbound calls and SMS to that number — and outbound calls placed from it — are handled by…

  • Check consent

    Check whether a contact currently has active TCPA consent for one of your Saperly numbers, given numberId (your number) and peerNumber (the contact's E.164 number) as query params.

  • Create connection

    Create a connection: the AI 'brain' that answers calls and (optionally) SMS on a Saperly phone number.

  • Delete connection

    PERMANENTLY AND IRREVERSIBLY delete a connection (the AI answering brain / persona that handles calls and SMS) by its id.

  • End call

    End an in-progress call by its id, hanging up and settling the metered cost.

  • Get call

    Fetch a single call by its id, returning its status, per-minute rate, final duration (durationSec) and cost (costCents), and the hasRecording / hasTranscript flags.

  • Get call recording

    Get the audio recording for a call and return it as a downloadable file.

  • Get call transcript

    Fetch the transcript (conversation turns/segments) of a completed call by its id.

22 more
  • Get connection

    Fetch a single connection (the AI answering brain / persona that handles calls and SMS) by its id, returning its full config: name, mode, backend, instructions, tts voice, language…

  • Get number

    Fetch a single phone number by its id, returning its E.164 phoneNumber, bound connectionId, webhookUrl, country, numberType, pricing and lifecycle fields.

  • Get usage

    Return the workspace usage summary and prepaid balance: calls {count, totalCostCents, totalDurationSec}, messages {count}, and balanceCents (the prepaid balance, in cents).

  • List calls

    Return the full voice-call history (inbound + outbound) for the connected Saperly workspace.

  • List connections

    Return every connection (the AI persona / answering 'brain' that handles calls and SMS) in the connected Saperly workspace.

  • List consent

    Return every TCPA consent record in the connected Saperly workspace, with each record's id, numberId (the Saperly number contact is authorized FROM), peerNumber (the contact's E.164 number)…

  • List languages

    Return the spoken languages Saperly supports for voice connections, each as a {code, name} pair (about 42 entries, e.g.

  • List messages

    Return SMS messages in the connected Saperly workspace (both inbound and outbound).

  • List numbers

    Return every phone number provisioned in the connected Saperly workspace, with each number's id, phoneNumber (E.164), the connectionId (answering brain) bound to it, webhookUrl, country, numberType…

  • List voices

    List the text-to-speech voices available for Saperly connections.

  • Place call

    PAID / METERED — places a REAL outbound voice call that RINGS A REAL PHONE and BILLS PER MINUTE (~26¢/min); it keeps billing until hung up — end it with SAPERLY_END_CALL to stop the meter.

  • Provision number

    PAID / METERED: provision (buy) a new phone number in a country.

  • Quote number price

    READ-ONLY and FREE: quote the price to provision a phone number in a country/type, returning { customerMonthlyCents, customerUpfrontCents }.

  • Record consent

    Record TCPA consent for a contact so outbound SMS (SAPERLY_SEND_SMS) and calls (SAPERLY_PLACE_CALL) from your number are permitted.

  • Release number

    PERMANENTLY AND IRREVERSIBLY release a phone number back to the carrier.

  • Revoke consent

    Revoke a contact's TCPA consent for a given Saperly number, blocking further outbound contact to them.

  • Send sms

    PAID / METERED: send a single SMS from one of your Saperly numbers to an E.164 destination.

  • Set number caller id

    Set the outbound caller ID name / CNAM (1-15 characters: letters, digits, spaces) presented to recipients on outbound calls from a Saperly phone number, or pass callerIdName=null to CLEAR it.

  • Set number sms sender

    Set the alphanumeric SMS sender id (1-11 alphanumeric chars, e.g.

  • Set number webhook

    Set the HTTPS webhook URL that Saperly POSTs this number's events (inbound SMS/calls, status) to.

  • Transfer call

    PAID / METERED — BLIND-transfers a LIVE, in-progress voice call to another destination `to` (an E.164 number like +15551230000, or a `sip:` URI).

  • Update connection

    Partially update a connection (the AI answering brain bound to a number).

How it connects

You paste an API key from Saperly on a page Composio hosts, so the key never passes through Definable.

Keep the connection to yourself or share it with your workspace. Any action that writes or sends can wait for your approval.