API Documentation
Integrate BizHelper AI into your applications
Getting Started
The BizHelper AI API is a RESTful API that allows you to programmatically access your call transcriptions, analytics, and search functionality.
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
/api/v1/transcriptions
List all transcriptions
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://biz.callhelper.ca/api/v1/transcriptions?limit=10&offset=0
/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
/api/v1/transcriptions/{id}
Get a specific transcription
Search
/api/v1/search
Search through your calls using natural language
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "pricing discussion from last week"}' \
https://biz.callhelper.ca/api/v1/search
Response
{
"results": [
{
"id": "123",
"date": "2024-01-15",
"caller": "John Smith",
"summary": "Discussion about enterprise pricing...",
"relevance_score": 0.95
}
],
"total": 1
}
Tasks Management API
Complete task and todo management with ChatGPT integration support. All endpoints are user-isolated - you only access your own tasks.
/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 namesearch- Search in title and descriptionlimit- Number of results (default: 50)offset- Skip results for pagination
/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.
/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
/api/v1/tasks/{id}
Delete a task
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
https://biz.callhelper.ca/api/v1/tasks/123
/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"
/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
/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:
- Get your API key from Profile → API Keys
- Import OpenAPI spec:
https://biz.callhelper.ca/openapi.json - 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.
/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 emailto- Filter by recipientsubject- Search in subject lineafter- Emails after date (YYYY-MM-DD or "yesterday", "last week")before- Emails before dateis_unread- Filter unread emails (true/false)has_attachment- Emails with attachments (true/false)label- Filter by Gmail labellimit- Max results (default: 20, max: 100)
/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
/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 subjectbody- Email body (plain text or HTML)isHtml- Whether body is HTML (default: false)threadId- Thread ID if replyingcreateTask- Optionally create a follow-up task
/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
/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
/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
/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
/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:
- Connect Gmail at Settings → Gmail
- Get your API key from Profile → API Keys
- Import Gmail OpenAPI spec:
https://biz.callhelper.ca/openapi-gmail.json - 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.
/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)
/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 paginationsearch- Search by contact name or phone number
/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
/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
/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
/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
/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
/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 readyanalysis.completed- When AI analysis is completecaller.identified- When a caller is identifiedsentiment.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