aid: saperly name: Saperly description: 'Saperly is the phone carrier for AI agents: one API call gives an agent a real phone number with inbound and outbound voice and SMS, routing to a hosted in-network voice agent or to your own runtime (manual mode), and TCPA compliance enforced in the carrier layer — AI disclosure, consent records, 10DLC brand/campaign registration and an append-only audit trail. The v2 REST API at api.saperly.com (48 operations, OpenAPI 3.2) covers numbers, connections, messaging, voice, voices, consent, pricing quotes, usage and ceiling-bounded scoped API keys; a remote MCP server at api.saperly.com/mcp (Streamable HTTP, OAuth 2.1 or sap_sk_ bearer) exposes the same surface as tools, with official Node and Python SDKs, signed webhooks and prepaid usage-based pricing.' url: https://raw.githubusercontent.com/api-evangelist/saperly/refs/heads/main/apis.yml x-type: company x-source: harvest:monid-connectors x-tier: profiled x-tier-reason: enrichment pass 2026-10-07 (local-v5; was harvest) specificationVersion: '0.20' created: '2026-10-07' modified: '2026-10-07' tags: - Telephony - Voice - SMS - Phone Numbers - AI Agents - Consent - Compliance - MCP - Messaging - Communications maintainers: - FN: Kin Lane email: kin@apievangelist.com - FN: APIs.json email: info@apis.io image: https://saperly.com/saperly-flower-hero.jpg common: - type: RateLimits url: rate-limits/saperly-rate-limits.yml - type: DeveloperPortal url: https://api.saperly.com- Manage the scoped `sk_` API keys agents use to call Saperly. Each key carries a set of scopes, an optional number allow-list, and an optional spend cap; revoke a key when it is no longer needed. humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - api-token-registry properties: - type: OpenAPI url: openapi/saperly-api-token-registry-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-assistant-api name: Saperly Assistant API description: >- Ask the built-in workspace assistant a natural-language question and get a text answer back. Backed by an in-network model; availability depends on the operator configuration. humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - assistant properties: - type: OpenAPI url: openapi/saperly-assistant-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-connections-api name: Saperly Connections API description: >- Connections — the handler bound to a phone number that answers and talks. Hosted lines run an in-network voice assistant (pick the model, voice, language, and MCP tools); manual lines forward turns to your own brain. Audio always stays in-network. humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - connections properties: - type: OpenAPI url: openapi/saperly-connections-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-consent-api name: Saperly Consent API description: >- Track opt-in consent for contacts on your numbers. Record, revoke, list, and check the consent that backs your outbound messaging compliance. (Inbound STOP/START opt-out is handled automatically by the carrier-side keyword path.) humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - consent properties: - type: OpenAPI url: openapi/saperly-consent-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-customvoices-api name: Saperly Custom Voices API description: The customVoices API from Saperly — 2 operation(s) for customvoices. humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - customVoices properties: - type: OpenAPI url: openapi/saperly-customvoices-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-health-api name: Saperly Health API description: >- Service liveness. A lightweight, unauthenticated probe for uptime checks and load balancers. humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - health properties: - type: OpenAPI url: openapi/saperly-health-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-keys-api name: Saperly Keys API description: >- Provision and manage scoped `sk_` API keys for the workspace. The workspace is always read from the calling key, never from client input. A key holding the `keys:admin` scope can mint child keys (and list/revoke the workspace's keys), bounded by the parent ceiling: a child's scopes, number allow-list, and spend cap must each be a subset of the minting key's own grant. humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - keys properties: - type: OpenAPI url: openapi/saperly-keys-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-languages-api name: Saperly Languages API description: >- Discover the spoken languages a connection can use (its `language` field). The list is derived from the voice catalogue — every language here has at least one voice that speaks it (see `GET /voices`) — and is ordered most-supported first. Any well-formed BCP-47 tag is also accepted on a connection; this is the curated, recommended set. humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - languages properties: - type: OpenAPI url: openapi/saperly-languages-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-messaging-api name: Saperly Messaging API description: >- Send and list SMS messages on your numbers. Outbound sends are billed per segment and pass through opt-out (STOP) and spend-limit enforcement before reaching the carrier; inbound messages are recorded against the receiving number. humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - messaging properties: - type: OpenAPI url: openapi/saperly-messaging-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-numbers-api name: Saperly Numbers API description: >- Phone numbers — provision, list, release, and configure the lines in your workspace. Bind a connection to a number to make it answer calls and messages, set a per-number webhook, and override the SMS sender id or caller ID name. The fleet belongs to the workspace your API key resolves to. humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - numbers properties: - type: OpenAPI url: openapi/saperly-numbers-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-pricing-api name: Saperly Pricing API description: >- Pricing — get a live quote for what a phone number will cost before you provision it. Returns the customer-facing monthly and upfront prices for a given country and number type, so you can confirm the cost up front and pass it to `POST /numbers` as the `expected*` price. humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - pricing properties: - type: OpenAPI url: openapi/saperly-pricing-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-usage-api name: Saperly Usage API description: >- Read metered usage for the workspace — call and message counts, total call cost and duration, and the current prepaid balance. Aggregated over an optional time window; the balance is point-in-time. humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - usage properties: - type: OpenAPI url: openapi/saperly-usage-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-voice-api name: Saperly Voice API description: >- Place and control outbound calls and fetch call records. Audio always stays in-network — there is no live media-control surface here by design. Funds are reserved on start and settled from the carrier-reported duration on end. humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - voice properties: - type: OpenAPI url: openapi/saperly-voice-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-voices-api name: Saperly Voices API description: >- Discover the in-network text-to-speech voices a hosted connection can speak with. Each voice carries its language, so this endpoint also doubles as the catalogue of supported spoken languages (use a voice's `language` value for a connection's `language` field). humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - voices properties: - type: OpenAPI url: openapi/saperly-voices-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-workspace-api name: Saperly Workspace API description: >- Workspace administration — read the members, API tokens, webhook endpoints, and audit log for a workspace. Dashboard/management routes keyed by the workspace slug in the path. humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - workspace properties: - type: OpenAPI url: openapi/saperly-workspace-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference - aid: saperly:saperly-workspace-invitations-api name: Saperly Workspace Invitations API description: Invite teammates to a workspace by email address. humanURL: https://saperly.com/docs/api-reference baseURL: https://api.saperly.com tags: - workspace-invitations properties: - type: OpenAPI url: openapi/saperly-workspace-invitations-api-openapi.yml - type: Documentation url: https://saperly.com/docs/api-reference - type: APIReference url: https://api.saperly.com/reference x-enrichment: date: '2026-10-07' status: enriched artifacts_added: 37 pass: local-v5