Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.pickupbell.com/llms.txt

Use this file to discover all available pages before exploring further.

All 35 tools run through the same service layer as the REST API. Every input is JSON Schema validated; outputs are JSON-scrubbed per the caller’s scope.

Locations

list_locations

List locations this API key can access (usually just one — keys are location-scoped). Scope: locations:read Input: {}

get_location

Fetch a location by UUID or slug. Scope: locations:read Input: { id: string }

update_location

Update mutable location fields. Scope: locations:write Input: { id: string, name?, legal_name?, industry?, timezone?, website_url?, owner_cell?, service_areas?, zip_codes?, travel_radius_miles? }

Members

list_members

List location members. Emails/phones masked when read over API. Scope: members:read Input: { location_id: string }

list_api_keys

List API keys issued for this location (prefix + scopes only — never secrets). Scope: api_keys:read Input: { location_id }

Agent configuration

get_agent_config

Voice, greetings, personality sliders, emergency keywords, compliance guardrails. Scope: agent:read Input: { location_id }

update_agent_config

Update any subset. Scope: agent:write Input: { location_id, voice_id?, voice_name?, greeting_primary?, greeting_after_hours?, greeting_emergency?, greeting_voicemail?, greeting_cant_help?, personality_* (0..1)?, emergency_keywords?, vulnerable_signals?, transfer_number?, transfer_ring_seconds?, ai_self_id?, two_party_consent?, pricebook_lock?, no_pii_collection?, profanity_filter? }

list_business_hours

7-day weekly hours. Scope: agent:read Input: { location_id }

update_business_hours

Replace the whole week in one call. Scope: agent:write Input: { location_id, hours: [{ day_of_week (0..6), is_open, open_time?, close_time? }] }

get_call_forwarding

How calls route to the AI. Scope: agent:read Input: { location_id }

update_call_forwarding

Change routing mode. Scope: agent:write Input: { location_id, mode?: "replace"|"forward_all"|"forward_busy"|"forward_hours", existing_business_line? }

FAQs & pricebook

list_faqs · add_faq · update_faq · delete_faq

CRUD on what the AI quotes. All require location_id. Scopes: faqs:read / faqs:write

list_pricebook · add_pricebook_item

Pricebook items (service names with prices/ranges). Scopes: faqs:read / faqs:write

Calls

list_calls

Recent calls. Phones masked; transcripts/recordings gated by scope. Scope: calls:read · optional transcripts:read · optional recordings:read Input: { location_id, outcome?, emergency?, since?, limit? }

get_call

Single call detail. Same scrubbing. Scope: calls:read (+ transcripts/recordings as above) Input: { location_id, call_id }

Leads

list_leads · create_lead · update_lead

Pipeline operations. Scopes: leads:read / leads:write

Bookings

list_bookings · create_booking

Appointments. Scopes: bookings:read / bookings:write

Insights

get_insights_summary

Rolled-up metrics over the last N days. Scope: insights:read Input: { location_id, days?: 1..90 }

Notifications

get_notification_settings · update_notification_settings · list_notification_log

Scopes: agent:read / agent:write

Billing (read-only)

get_subscription

Subscription state. Upstream billing IDs omitted. Scope: locations:read Input: { location_id }

Integrations

list_integration_catalog

Static catalog of every integration PickupBell knows about. No scope required.

list_integrations

Connected integrations for the location. Scope: locations:read

connect_webhook_integration

Attach a Slack / Zapier / Make / n8n / Cal.com by URL. Scope: locations:write Input: { location_id, provider, webhook_url, label? }

disconnect_integration

Disconnect a provider. Scope: locations:write Input: { location_id, provider }