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.

1. Create an API key

In the dashboard: Settings → API & MCP → Create key.
  1. Give it a label (e.g. Zapier production).
  2. Pick the minimum scopes your integration needs. For the examples below, locations:read, calls:read, and leads:read are enough.
  3. Click Create key.
The full secret (550e8400-e29b-41d4-a716-446655440000) is shown exactly once. Copy it into your secret manager before dismissing the modal — there is no way to recover it later. The key prefix (first 16 chars) stays visible in the dashboard so you can identify the key after the fact.
Never commit a 550e8400-e29b-41d4-a716-446655440000 secret to source control. Never ship it in client-side code. If an API key leaks, revoke it from the dashboard — any integration using it stops instantly.

2. Make a request

API keys are location-scoped. Every call authenticates with:
Authorization: Bearer 550e8400-e29b-41d4-a716-446655440000
curl https://api.pickupbell.com/api/v1/locations \
  -H "Authorization: Bearer 550e8400-e29b-41d4-a716-446655440000"
You get back one location — the one the key was minted under:
{
  "data": [
    {
      "id": "5e9a7b21-…",
      "slug": "premier-hvac",
      "name": "Premier HVAC & Cooling",
      "timezone": "America/Chicago",
      "industry": "hvac_residential",
      "pickupbell_phone": "+15125559876",
      "service_areas": ["Austin", "Round Rock", "Cedar Park"]
    }
  ]
}

3. List recent calls

curl "https://api.pickupbell.com/api/v1/locations/premier-hvac/calls?limit=5" \
  -H "Authorization: Bearer 550e8400-e29b-41d4-a716-446655440000"
{
  "data": [
    {
      "id": "8a3f9d21-…",
      "caller_phone": "***-***-0142",
      "caller_name": "Sarah Chen",
      "outcome": "transferred",
      "urgency_level": 5,
      "is_emergency": true,
      "duration_sec": 252,
      "service_type": "AC repair",
      "issue_summary": "AC not cooling, 98° out, toddler in home",
      "estimated_value": 2800,
      "started_at": "2026-04-22T14:47:12Z"
    }
  ]
}
Notice the masked phone (***-***-0142). That’s the PII scrubber at work — see PII scrubbing. Add the scopes transcripts:read and recordings:read to your key to fetch full transcripts and recording URLs.

4. Subscribe to webhooks

If you’d rather be pushed to than polled, see Webhooks. The post-call webhook fires within ~2s of every call ending.

5. Or: use the MCP server

If you just want Claude to do the work, skip the REST docs and head to MCP overview. The same key works with either.