API Documentation

Integrate BizHelper AI into your applications

REST API Webhooks Rate Limited

Getting Started

The BizHelper AI API is a RESTful API that allows you to programmatically access your call transcriptions, analytics, and search functionality.

Base URL: https://biz.callhelper.ca/api/v1

Authentication

All API requests require authentication using a Bearer token in the Authorization header.

curl -H "Authorization: Bearer YOUR_API_KEY" \
     https://biz.callhelper.ca/api/v1/calls

You can generate API keys from your dashboard under Settings → API Keys.

Rate Limits

API rate limits vary by plan:

  • Starter: Not available
  • Professional: 1,000 requests/month
  • Business: 10,000 requests/month
  • Enterprise: Unlimited

Rate limit information is included in response headers:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200

Transcriptions

GET /api/v1/transcriptions

List all transcriptions

curl -H "Authorization: Bearer YOUR_API_KEY" \
     https://biz.callhelper.ca/api/v1/transcriptions?limit=10&offset=0
POST /api/v1/transcriptions

Create a new transcription

curl -X POST \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: multipart/form-data" \
     -F "[email protected]" \
     https://biz.callhelper.ca/api/v1/transcriptions
GET /api/v1/transcriptions/{id}

Get a specific transcription

Tasks Management API

Complete task and todo management with ChatGPT integration support. All endpoints are user-isolated - you only access your own tasks.

GET /api/v1/tasks

List all your tasks with optional filters

curl -X GET \
     -H "Authorization: Bearer YOUR_API_KEY" \
     "https://biz.callhelper.ca/api/v1/tasks?status=pending&priority=high"
Query Parameters
  • status - Filter by status (pending, in_progress, completed)
  • priority - Filter by priority (low, medium, high, urgent)
  • project - Filter by project name
  • search - Search in title and description
  • limit - Number of results (default: 50)
  • offset - Skip results for pagination
POST /api/v1/tasks

Create a new task with natural language date support

curl -X POST \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "title": "Follow up with client",
       "description": "Discuss project timeline and deliverables",
       "priority": "high",
       "due_date": "tomorrow at 2pm"
     }' \
     https://biz.callhelper.ca/api/v1/tasks
Natural Language Dates

Supported formats: "tomorrow", "next Monday", "in 3 days", "end of week", etc.

PATCH /api/v1/tasks/{id}

Update task status or details

curl -X PATCH \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{"status": "completed"}' \
     https://biz.callhelper.ca/api/v1/tasks/123
DELETE /api/v1/tasks/{id}

Delete a task

curl -X DELETE \
     -H "Authorization: Bearer YOUR_API_KEY" \
     https://biz.callhelper.ca/api/v1/tasks/123
GET /api/v1/tasks/search

Search tasks with keywords

curl -X GET \
     -H "Authorization: Bearer YOUR_API_KEY" \
     "https://biz.callhelper.ca/api/v1/tasks/search?q=client%20meeting"
POST /api/v1/tasks/bulk

Create multiple tasks at once

curl -X POST \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "tasks": [
         {"title": "Task 1", "priority": "high"},
         {"title": "Task 2", "due_date": "next Monday"}
       ]
     }' \
     https://biz.callhelper.ca/api/v1/tasks/bulk
GET /api/v1/tasks/stats

Get task statistics

curl -X GET \
     -H "Authorization: Bearer YOUR_API_KEY" \
     https://biz.callhelper.ca/api/v1/tasks/stats
🤖 ChatGPT Integration

To use with ChatGPT Custom Actions:

  1. Get your API key from Profile → API Keys
  2. Import OpenAPI spec: https://biz.callhelper.ca/openapi.json
  3. Configure Bearer token authentication with your API key

Gmail Integration API

Search, read, and send emails through your connected Gmail account. All endpoints are user-isolated - you only access emails from your own connected Gmail account.

Prerequisites: Gmail must be connected in your account settings at Settings → Gmail
GET /api/v1/gmail/search

Search emails using Gmail's powerful search syntax

curl -X GET \
     -H "Authorization: Bearer YOUR_API_KEY" \
     "https://biz.callhelper.ca/api/v1/gmail/[email protected]&is_unread=true"
Search Parameters
  • q - Natural language or Gmail query (e.g., "invoice OR receipt")
  • from - Filter by sender email
  • to - Filter by recipient
  • subject - Search in subject line
  • after - Emails after date (YYYY-MM-DD or "yesterday", "last week")
  • before - Emails before date
  • is_unread - Filter unread emails (true/false)
  • has_attachment - Emails with attachments (true/false)
  • label - Filter by Gmail label
  • limit - Max results (default: 20, max: 100)
GET /api/v1/gmail/read/{messageId}

Get full email content including body and attachments

curl -X GET \
     -H "Authorization: Bearer YOUR_API_KEY" \
     https://biz.callhelper.ca/api/v1/gmail/read/18abc123def456
POST /api/v1/gmail/send

Send an email or reply to an existing thread

curl -X POST \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "to": "[email protected]",
       "subject": "Project Update",
       "body": "Hi,\\n\\nHere is the latest update on our project...",
       "cc": ["[email protected]"],
       "createTask": {
         "title": "Follow up on project update",
         "due_date": "tomorrow"
       }
     }' \
     https://biz.callhelper.ca/api/v1/gmail/send
Send Options
  • to - Recipient email(s) (string or array)
  • cc - CC recipients (array)
  • bcc - BCC recipients (array)
  • subject - Email subject
  • body - Email body (plain text or HTML)
  • isHtml - Whether body is HTML (default: false)
  • threadId - Thread ID if replying
  • createTask - Optionally create a follow-up task
POST /api/v1/gmail/organize/{messageId}

Archive, label, or mark emails as read/unread

curl -X POST \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "archive": true,
       "markAsRead": true,
       "star": true,
       "addLabels": ["Important", "Follow-up"]
     }' \
     https://biz.callhelper.ca/api/v1/gmail/organize/18abc123def456
GET /api/v1/gmail/labels

Get all Gmail labels/folders

curl -X GET \
     -H "Authorization: Bearer YOUR_API_KEY" \
     https://biz.callhelper.ca/api/v1/gmail/labels
GET /api/v1/gmail/threads/{threadId}

Get all emails in a conversation thread

curl -X GET \
     -H "Authorization: Bearer YOUR_API_KEY" \
     https://biz.callhelper.ca/api/v1/gmail/threads/18abc123def456
POST /api/v1/gmail/create-task

Create a BizHelper task from an email for follow-up

curl -X POST \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "messageId": "18abc123def456",
       "taskTitle": "Review contract from client",
       "priority": "high",
       "dueDate": "end of week"
     }' \
     https://biz.callhelper.ca/api/v1/gmail/create-task
POST /api/v1/gmail/draft

Create a draft email to review before sending

curl -X POST \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "to": ["[email protected]"],
       "subject": "Quarterly Report",
       "body": "Draft content here..."
     }' \
     https://biz.callhelper.ca/api/v1/gmail/draft
🤖 ChatGPT Gmail Integration

To add Gmail to your ChatGPT Custom Actions:

  1. Connect Gmail at Settings → Gmail
  2. Get your API key from Profile → API Keys
  3. Import Gmail OpenAPI spec: https://biz.callhelper.ca/openapi-gmail.json
  4. Configure Bearer token authentication with your API key

Note: Gmail API can be added as a separate action alongside Tasks API for modular functionality.

SMS Messaging API

Send and receive SMS messages, manage conversations, and search message history. All endpoints are user-isolated - you only access messages from your own configured phone numbers.

Prerequisites: SMS numbers must be configured in your account settings at Settings → SMS
POST /api/v1/sms/send

Send an SMS message to a phone number

curl -X POST \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "to": "555-123-4567",
       "message": "Your appointment is confirmed for tomorrow at 2pm",
       "from": "555-987-6543"
     }' \
     https://biz.callhelper.ca/api/v1/sms/send
Send Parameters
  • to - Recipient phone number (required)
  • message - Message content up to 160 chars (required)
  • from - Your SMS number/DID (optional, uses primary if not specified)
GET /api/v1/sms/conversations

Get recent SMS conversations with contacts

curl -X GET \
     -H "Authorization: Bearer YOUR_API_KEY" \
     "https://biz.callhelper.ca/api/v1/sms/conversations?limit=20&search=John"
Query Parameters
  • limit - Number of conversations (default: 20)
  • offset - Skip results for pagination
  • search - Search by contact name or phone number
GET /api/v1/sms/messages/{phone}

Get all messages for a specific phone number

curl -X GET \
     -H "Authorization: Bearer YOUR_API_KEY" \
     https://biz.callhelper.ca/api/v1/sms/messages/5551234567
GET /api/v1/sms/search

Search through all SMS messages

curl -X GET \
     -H "Authorization: Bearer YOUR_API_KEY" \
     "https://biz.callhelper.ca/api/v1/sms/search?q=appointment"
Search Parameters
  • q - Search query for message content, contact names, or phone numbers
GET /api/v1/sms/contacts

Get all SMS contacts with names

curl -X GET \
     -H "Authorization: Bearer YOUR_API_KEY" \
     https://biz.callhelper.ca/api/v1/sms/contacts
POST /api/v1/sms/contacts

Add or update an SMS contact

curl -X POST \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "phone_number": "555-123-4567",
       "name": "John Smith",
       "email": "[email protected]",
       "notes": "Important client"
     }' \
     https://biz.callhelper.ca/api/v1/sms/contacts
GET /api/v1/sms/numbers

Get your configured SMS phone numbers (DIDs)

curl -X GET \
     -H "Authorization: Bearer YOUR_API_KEY" \
     https://biz.callhelper.ca/api/v1/sms/numbers
GET /api/v1/sms/stats

Get SMS usage statistics

curl -X GET \
     -H "Authorization: Bearer YOUR_API_KEY" \
     "https://biz.callhelper.ca/api/v1/sms/stats?period=30d"
Statistics Parameters
  • period - Time period: 7d, 30d, 90d (default: 30d)
🎙️ Voice Assistant Integration

The SMS API is fully integrated with the BizHelper Voice Assistant. You can:

  • Send texts using natural language: "Text John that I'll be late"
  • Search messages: "What did Sarah text me about the project?"
  • Check conversations: "Show me my recent texts"

Webhooks

Configure webhooks to receive real-time notifications when events occur.

Available Events
  • transcription.completed - When a transcription is ready
  • analysis.completed - When AI analysis is complete
  • caller.identified - When a caller is identified
  • sentiment.negative - When negative sentiment is detected
Webhook Payload Example
{
  "event": "transcription.completed",
  "timestamp": "2024-01-20T10:30:00Z",
  "data": {
    "transcription_id": "123",
    "duration": "5:23",
    "caller": "+1-555-0123"
  }
}

Error Handling

The API uses standard HTTP status codes to indicate success or failure.

Status Code Description
200 Success
400 Bad Request - Invalid parameters
401 Unauthorized - Invalid API key
429 Too Many Requests - Rate limit exceeded
500 Internal Server Error

SDKs & Libraries

Official SDKs coming soon for:

Python

Node.js

PHP

Ready to Start Building?

Get your API key and start integrating in minutes

Get API Access