HomeDocsAPI Reference

API Reference

Complete reference for all REST API endpoints with request/response examples.

Overview

The InboundFlow API uses REST conventions. All responses are JSON. All timestamps are ISO 8601 UTC.

📞Calls

List all calls

GET/v1/calls

Query Parameters

ParameterTypeDefaultDescription
limitinteger50Results per page (default: 50, max: 100)
cursorstringnullPagination cursor from previous response
sincestringnullISO datetime — only return calls after this time
statusstringnullFilter by status: completed, failed, blocked, in-progress, forwarding
phonestringnullFilter by caller phone number (exact match)
cURL
curl -X GET "https://api.inboundflow.app/v1/calls?limit=10&status=completed" \
  -H "Authorization: Bearer sk_live_your_key_here"

Response

JSON
{
  "data": [
    {
      "id": "uuid",
      "caller_phone": "+1234567890",
      "caller_name": "Dave",
      "status": "completed",
      "duration_seconds": 55,
      "summary": "Called about auto repair...",
      "transcript": "Full conversation transcript...",
      "recording_url": "https://...",
      "transfer_status": null,
      "started_at": "2026-02-24T20:59:00Z",
      "ended_at": "2026-02-24T21:00:00Z",
      "assistant_id": "uuid",
      "contact_id": "uuid",
      "created_at": "2026-02-24T20:59:00Z"
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "meta": {
    "request_id": "req_abc123",
    "timestamp": "2026-02-24T21:05:00Z"
  }
}

Get a single call

GET/v1/calls/:call_id
cURL
curl -X GET "https://api.inboundflow.app/v1/calls/07f51470-ef1d-421c-a847-36e98732bb9b" \
  -H "Authorization: Bearer sk_live_your_key_here"

Response: Single call object. Includes the full messages array (conversation history) which is not included in the list endpoint.

👤Contacts

List all contacts

GET/v1/contacts

Query Parameters

ParameterTypeDefaultDescription
limitinteger50Results per page (default: 50, max: 100)
cursorstringnullPagination cursor
sincestringnullISO datetime filter
phonestringnullFilter by exact phone number
cURL
curl -X GET "https://api.inboundflow.app/v1/contacts?limit=10" \
  -H "Authorization: Bearer sk_live_your_key_here"

Response

JSON
{
  "data": [
    {
      "id": "dbf31702-3468-4639-a5a4-e07f9bdae9a7",
      "phone": "+14155551234",
      "name": "Maria Garcia",
      "email": "maria.garcia@gmail.com",
      "company": null,
      "source": "inbound_call",
      "total_calls": 5,
      "last_call_at": "2026-02-23T15:00:00Z",
      "notes": "Regular customer, Toyota Camry 2019",
      "created_at": "2026-02-20T14:00:00Z",
      "updated_at": "2026-02-23T15:00:00Z"
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "meta": {
    "request_id": "req_abc123def456",
    "timestamp": "2026-02-24T00:00:00Z"
  }
}

Get a single contact

GET/v1/contacts/:contact_id

Response: Single contact object (same shape as list item).

Create a contact

POST/v1/contacts
cURL
curl -X POST \
  "https://api.inboundflow.app/v1/contacts" \
  -H "Authorization: Bearer sk_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+14155559999",
    "name": "John Doe",
    "email": "john@example.com",
    "company": "Doe Industries",
    "notes": "Referred by Maria Garcia"
  }'

🎯Leads

List all leads

GET/v1/leads

Query Parameters

ParameterTypeDefaultDescription
limitinteger50Results per page (default: 50, max: 100)
cursorstringnullPagination cursor
sincestringnullISO datetime filter
statusstringnullFilter: new, contacted, qualified, converted, lost
urgencystringnullFilter: low, medium, high
cURL
curl -X GET "https://api.inboundflow.app/v1/leads?status=new" \
  -H "Authorization: Bearer sk_live_your_key_here"

Response

JSON
{
  "data": [
    {
      "id": "uuid",
      "caller_phone": "+1234567890",
      "caller_name": "Dave",
      "caller_email": "dave@example.com",
      "status": "new",
      "urgency": "medium",
      "interest": "auto body work",
      "qualification_reason": "pricing inquiry",
      "call_summary": "Called about getting a quote...",
      "call_log_id": "uuid",
      "contact_id": "uuid",
      "created_at": "2026-02-24T21:00:00Z",
      "updated_at": "2026-02-24T21:00:00Z"
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "meta": {
    "request_id": "req_abc123",
    "timestamp": "2026-02-24T21:05:00Z"
  }
}

📅Appointments

List all appointments

GET/v1/appointments

Query Parameters

ParameterTypeDefaultDescription
limitinteger50Results per page (default: 50, max: 100)
cursorstringnullPagination cursor
sincestringnullISO datetime filter
statusstringnullFilter: booked, confirmed, cancelled, completed, no_show
cURL
curl -X GET "https://api.inboundflow.app/v1/appointments?status=booked" \
  -H "Authorization: Bearer sk_live_your_key_here"

Response

JSON
{
  "data": [
    {
      "id": "uuid",
      "caller_phone": "+1234567890",
      "caller_name": "Sarah",
      "appointment_date": "2026-02-25",
      "appointment_time_start": "2026-02-25T11:00:00Z",
      "appointment_time_end": "2026-02-25T12:00:00Z",
      "service_type": "Auto Repair Appointment",
      "status": "booked",
      "calendar_event_link": "https://calendar.google.com/...",
      "call_log_id": "uuid",
      "contact_id": "uuid",
      "created_at": "2026-02-24T21:00:00Z",
      "updated_at": "2026-02-24T21:00:00Z"
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "meta": {
    "request_id": "req_abc123",
    "timestamp": "2026-02-24T21:05:00Z"
  }
}

🏢Account

Get your organization info

GET/v1/me
cURL
curl -X GET "https://api.inboundflow.app/v1/me" \
  -H "Authorization: Bearer sk_live_your_key_here"

Response

JSON
{
  "data": {
    "organization_id": "becc3c5d-1755-420c-a3af-fe51ab2d04ca",
    "organization_name": "Dave Auto Shop",
    "plan": "Starter Plan",
    "scopes": ["calls:read", "contacts:read", "contacts:write", "appointments:read", "leads:read"]
  },
  "meta": {
    "request_id": "req_034e44e17b76",
    "timestamp": "2026-02-24T00:10:48.025Z"
  }
}