HomeDocsGetting Started

Getting Started

Help developers authenticate and make their first API call in under 5 minutes.

Introduction

InboundFlow provides a REST API and real-time Webhooks to integrate your AI voice assistant data with any system. Use the API to pull call data, contacts, leads, and appointments. Use webhooks to receive real-time notifications when events happen.

Base URL

https://api.inboundflow.app

Authentication

All API requests require an API key in the Authorization header:

Header
Authorization: Bearer sk_live_your_key_here

How to get your API key

  1. Log in to your InboundFlow dashboard at secure.inboundflow.app
  2. Go to Settings → API
  3. Click “Generate API Key”
  4. Copy and securely store your key — it won’t be shown again

Note: API keys are scoped to your organization. All data returned is limited to your organization only.

Rate Limits

  • 60 requests per minute per API key
  • Rate limit headers included in every response:
Response Headers
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58

Pagination

List endpoints support cursor-based pagination:

  • limit — results per page (default: 50, max: 100)
  • cursor — opaque cursor for next page (from next_cursor in response)
  • since — ISO datetime, only return records created after this time

Response Format

All responses follow a consistent format:

JSON
{
  "data": { ... },
  "meta": {
    "request_id": "req_abc123",
    "timestamp": "2026-02-24T00:00:00Z"
  }
}

List endpoints include pagination info:

JSON
{
  "data": [...],
  "has_more": true,
  "next_cursor": "eyJjcmVhdGVkX2F0Ijo...",
  "meta": { ... }
}

Quickstart: Get Your Recent Calls

cURL
curl -X GET   "https://api.inboundflow.app/v1/calls?limit=5"   -H "Authorization: Bearer sk_live_your_key_here"   -H "Content-Type: application/json"

Response

JSON
{
  "data": [
    {
      "id": "uuid",
      "caller_phone": "+1234567890",
      "caller_name": "Dave",
      "status": "completed",
      "duration_seconds": 55,
      "summary": "Called about auto repair appointment...",
      "started_at": "2026-02-24T20:59:00Z",
      "ended_at": "2026-02-24T21:00:00Z",
      "recording_url": "https://..."
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "meta": {
    "request_id": "req_abc123def456",
    "timestamp": "2026-02-24T00:00:00Z"
  }
}

Quickstart: Get Your Contacts

cURL
curl -X GET   "https://api.inboundflow.app/v1/contacts?limit=5"   -H "Authorization: Bearer sk_live_your_key_here"

Error Handling

All errors return a consistent JSON format:

JSON
{
  "error": {
    "code": "unauthorized",
    "message": "Invalid API key",
    "status": 401
  },
  "meta": {
    "request_id": "req_abc123def456",
    "timestamp": "2026-02-24T00:00:00Z"
  }
}

Error Codes

CodeMeaning
401unauthorized
Missing, invalid, revoked, or expired API key
400bad_request
Invalid parameters or missing required fields
404not_found
Resource not found
429rate_limited
Rate limit exceeded (check Retry-After header)
500internal_error
Server error

Next Steps