Skip to main content

SIPTEL Python SDK

Official Python client for the SIPTEL REST API — AI voice agents, programmable Voice API, SMS, phone numbers, and SIP trunks.

Install

pip install siptel

Quick start

Set your API key (from the dashboard):

export SIPTEL_API_KEY="sk_live_..."   # Linux/macOS
# set SIPTEL_API_KEY=sk_live_...      # Windows CMD
from siptel import Client

client = Client()

# List AI agents
agents = client.agent.list_agents()

# Outbound AI agent call (see docs for all parameters)
result = client.agent.create_call(
    phone_number="+31612345678",
    caller_id="+31201234567",
    voice="Rachel",
    record=True,
    voicemail_action="hangup",
    greeting_message="Hello!",
    task_prompt="You are a helpful assistant.",
    language="en-US",
)

# Voice API
call = client.voice.retrieve_call("CA20251109171204335505")

# SMS
client.sms.send(
    app_id="...",
    phone_number="+31612345678",
    sender_id="SIPTEL",
    text="Hello from SIPTEL",
)

# Numbers
numbers = client.numbers.list()

Authentication

All requests use Authorization: Bearer <api_key>. You can pass the key explicitly:

client = Client(api_key="sk_live_...")

Configuration

Option Environment variable Default
API key SIPTEL_API_KEY —
Base URL SIPTEL_BASE_URL (not auto-read; pass base_url=) https://api.siptel.ai
User-Agent SIPTEL_USER_AGENT SiptelPythonSDK/0.1
client = Client(
    api_key="sk_live_...",
    base_url="https://api.siptel.ai",
    timeout=60.0,
)

Resource layout

Namespace API area
client.agent AI agent calls, list/get agents
client.voice Voice API (play, gather, transfer, hangup, call status)
client.sip SIP users / trunks
client.sms Send SMS, list SMS apps
client.numbers List/search/purchase/assign numbers

Errors

The SDK raises typed exceptions on HTTP error responses:

from siptel import (
    Client,
    AuthenticationError,
    InvalidRequestError,
    NotFoundError,
    PaymentRequiredError,
    RateLimitError,
    APIError,
)

try:
    client.sms.send(...)
except InvalidRequestError as e:
    print(e.status_code, e.response_body)

Low-level API

For endpoints not yet wrapped, use the escape hatch:

client.post("/v1/agent/call", json={...})
client.get("/v1/custom/path")

Requirements

  • Python 3.10+
  • requests

License

MIT — see LICENSE.

Metadata

Release files for siptel 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for siptel 0.1.1
File Size Uploaded Provenance Actions
siptel-0.1.1.tar.gz 7.5 kB Without provenance Details for siptel-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for siptel 0.1.1
File Interpreter ABI Platform Actions
siptel-0.1.1-py3-none-any.whl Python 3 none any Details for siptel-0.1.1-py3-none-any.whl

Total release size: 18.9 kB

Release files / siptel-0.1.1.tar.gz

Download URL siptel-0.1.1.tar.gz
Size 7.5 kB
Tags Source
SHA-256 checksum
How to use checksums
0a85afa4668a9f40454f1fa5ba0e2fd70a51355009ca885203b6504243f1f003
BLAKE2b-256 checksum
How to use checksums
a7875953ac19b9de0573bdd5939705cca5bbb52477102004304c115d70d101f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / siptel-0.1.1-py3-none-any.whl

Download URL siptel-0.1.1-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9b7c8c3c9c07ab7641017ad06571f90139c6aaafb1237b1a224509ec878c741a
BLAKE2b-256 checksum
How to use checksums
2c9cabd940f3deb49ece8c150541a08eded9cc30f08ae264e370a7dd7270213e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Security for siptel 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page