Skip to main content

calldesktech

Official Python client SDK for the CallDeskTech API — build, publish and operate voice agents.

Install

pip install -e .

(Not yet published to PyPI — install from a local clone or a git URL for now: pip install git+https://github.com/calldesktech/calldesktech-python.)

Requires Python 3.9+. Only dependency is requests.

Quickstart

Create an API key in your CallDeskTech workspace (Settings → API Keys), then:

from calldesktech import CallDeskTech, CallDeskTechError

client = CallDeskTech(api_key="cdk_live_...")

# Every key is pinned to one workspace.
me = client.me()
tenant_id = me.tenant_id

# Create an agent from a built-in template.
templates = client.list_agent_templates()
result = client.create_agent_from_template(
    tenant_id,
    {
        "templateId": templates[0].id,
        "name": "Front Desk",
        "voiceEngine": "poc",
        "variables": {"business_name": "Acme Dental"},
    },
)
print(result.agent_id, result.version_id)

# Promote that version into production, then route a number to the
# environment (not a specific version) so future promotions pick up
# automatically.
environments = client.list_environments(result.agent_id)
production = next(e for e in environments if e.name == "production")
client.promote_environment(result.agent_id, "production", version_id=result.version_id)

numbers = client.list_phone_numbers(tenant_id)
client.route_phone_number(
    numbers[0].id,
    direction="outbound",
    environment_id=production.id,
)

# Place a call (this incurs real cost — only call this when you mean it).
try:
    call = client.place_call(numbers[0].id, to_number="+15551234567")
    print(call.sid)
except CallDeskTechError as e:
    print(f"call failed: {e.status_code} {e.message}")

Coverage

  • Account: me()
  • Agents: list/create/get/rename/delete, versions (list/publish), templates (list/create-from-template)
  • Environments: list, promote (staging/production)
  • Subflows: list/create/get/update/delete
  • Knowledge bases: list/create/update/delete, Q&A items (list/add)
  • Phone numbers: list, routing (by agent version or environment)
  • Calls: place, list, get, recording
  • Batch calls: list/create/get/run (CSV + dynamic variables, scheduling, call time windows)
  • Webhooks: list/create/update/delete/test
  • Contacts: list
  • Analytics & QA: analytics, QA overview, test cases (list/create/run), Copilot suggestions

Errors

Every non-2xx response raises CallDeskTechError with .status_code and .message (the API's own error text when present).

Types

Request bodies are TypedDicts and responses are dataclasses (see calldesktech.types), inferred from the live OpenAPI spec at https://calldesk.tech/api/v1/openapi.json. Dataclasses keep the original payload on .raw in case a field isn't modeled yet.

Metadata

Release files for calldesktech 0.1.0

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

Source distribution (sdist)

Source distribution for calldesktech 0.1.0
File Size Uploaded
calldesktech-0.1.0.tar.gz 9.8 kB Details

Built distribution (wheel)

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

Total release size: 19.3 kB

Release files / calldesktech-0.1.0.tar.gz

Download URL calldesktech-0.1.0.tar.gz
Size 9.8 kB
Tags Source
SHA-256 checksum
How to use checksums
27c6369b174ba3e7cb10cc0734ccacf72f0d49d8794244c5c7bf1e5f965a4fce
BLAKE2b-256 checksum
How to use checksums
ecb309064c4adc133e8f6d71ce9924632d7386f9d55439358aa6b1eebde89abb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / calldesktech-0.1.0-py3-none-any.whl

Download URL calldesktech-0.1.0-py3-none-any.whl
Size 9.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
39f5d72fa2646ab1d882aa2fcb57cbacec8eea1a11f979fa82e1eb62f8732f63
BLAKE2b-256 checksum
How to use checksums
2eb342391a1a06df8bcca238a0e4cbe63ad3e2970ced7f085c423a12f3f329f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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