Python SDK

Python SDK

Thin client over the BookedIn REST API — one HTTP request per call, plain dicts in and out. The same package also installs a bookedin CLI; see the CLI page.

Installation

$pip install bookedin

Quick start

1from bookedin import BookedIn
2
3client = BookedIn(api_key="your_api_key")
4
5# Create a lead
6lead = client.leads.create(
7 first_name="John",
8 phone="+15551234567"
9)
10
11# Send a message
12client.execute(
13 lead_id=lead["id"],
14 agent_id="agt_xxx",
15 channel="sms"
16)

Available methods

1# Agents
2client.agents.list()
3client.agents.create(name=..., prompt=..., objective=...)
4client.agents.get(agent_id)
5client.agents.update(agent_id, prompt=...)
6client.agents.delete(agent_id)
7client.agents.clone(agent_id)
8client.agents.test(agent_id, message=...)
9
10# Leads
11client.leads.list(search=..., source=..., limit=...)
12client.leads.create(first_name=..., phone=..., email=...)
13client.leads.get(lead_id)
14client.leads.update(lead_id, ...)
15client.leads.delete(lead_id)
16
17# Strategies
18client.strategies.list()
19client.strategies.create(name=..., trigger_type=...)
20client.strategies.execute(strategy_id, lead_id=...)
21
22# Pipelines, phone numbers, channels, tools
23client.pipelines.list()
24client.phone_numbers.search(country="US")
25client.channels.connect("WHATSAPP")
26client.tools.list_available_apps()
27
28# Execute
29client.execute(lead_id=..., agent_id=..., channel=..., static_message=...)
30client.get_scheduled_executions()
31client.cancel_scheduled_execution(execution_id)
32client.execute_campaign(campaign_id)

Unmapped keyword arguments pass straight through as request body fields, so new API fields work without an SDK update.

Error handling

1from bookedin import BookedInError
2
3try:
4 client.leads.get("invalid")
5except BookedInError as e:
6 print(e.status_code, e.detail)