Overview
API Reference
The Voxares API lets you manage patients, send messages, and access content programmatically. Use it to connect your CRM, EHR, booking system, or any other software to Voxares.
Base URL
https://api.voxares.com/api/v1/integration
https://staging-api.voxares.com/api/v1/integration
All endpoints in this documentation are relative to the base URL above.
Quick start
1. Create an API key
Go to Settings > API Keys in the Voxares dashboard and create a new key. Copy the full key immediately - it is only shown once.
2. Make your first request
curl -X GET "https://api.voxares.com/api/v1/integration/patients?page=0&pageSize=5" \
-H "Authorization: Bearer vox-YOUR-API-KEY"
3. Send a message
curl -X POST "https://api.voxares.com/api/v1/integration/messages/send" \
-H "Authorization: Bearer vox-YOUR-API-KEY" \
-H "Content-Type: application/json" \
-d '{
"providerId": "EHR-123",
"firstName": "Ana",
"lastName": "Horvat",
"mobileNumber": "+385991234567",
"content": "Your appointment is tomorrow at 10:00."
}'
Core concepts
Patients
Patients are the people you communicate with. You can create, update, and look up patients by your own external ID (providerId), so you never need to store Voxares IDs in your system.
Messages
Send SMS messages to patients, either with inline text or by referencing a saved practice template. Every message returns a messageId you can use to check delivery status.
Content
Browse your practice templates, forms, and documents programmatically. Useful for building custom UIs or syncing content with external systems.
Form Submissions
Poll for patient form submission results. Filter by timestamp to pick up new and updated submissions without webhooks.
Rich content and practice templates
Beyond plain SMS text, Voxares can send messages with form links, document attachments, and dynamic variables (like {{firstName}}). These rich features are configured through practice templates, which you create and manage in the Voxares dashboard.
The API cannot create or edit templates, forms, or documents. You do that in the dashboard. The API lets you:
- Browse templates with
GET /practice-templatesto find the template ID you need - Send a template with
POST /messages/sendusingpracticeTemplateId. Voxares fills in the variables and attaches the rich content for you.
See the Content API for listing templates, forms, and documents.
Response format
All list endpoints return a paginated response:
{
"data": [ ... ],
"count": 42
}
Single-resource endpoints return the resource object directly.
Errors
Error responses use standard HTTP status codes with a JSON body:
{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}
| Status | Meaning |
|---|---|
400 | Bad request - check your request body |
401 | Unauthorized - invalid or missing API key |
403 | Forbidden - API key lacks required scope |
404 | Resource not found |
409 | Conflict - duplicate resource |
422 | Unprocessable entity - validation error |
500 | Internal server error |
Pagination
List endpoints accept these query parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 0 | Zero-based page index |
pageSize | integer | 20 | Items per page (max 100) |
searchTerm | string | - | Full-text search |

