API Overview
The Transformify API is a RESTful API for sending Viber and SMS messages.
Base URL
https://api.transformify.mk/api/v1
Authentication
All requests require an API key in the X-API-Key header:
curl -X GET https://api.transformify.mk/api/v1/templates \
-H "X-API-Key: your-api-key"
See Authentication for details.
HTTP Status Codes
| Code | Meaning |
|---|---|
| 200 | Success - GET requests |
| 201 | Created - POST requests that create resources |
| 202 | Accepted - Async operations (messages queued) |
| 204 | No Content - DELETE requests |
| 400 | Bad Request - Invalid input |
| 401 | Unauthorized - Invalid/missing API key |
| 404 | Not Found - Resource doesn't exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Server Error - Internal error |
Pagination
List endpoints support pagination:
| Parameter | Default | Max | Description |
|---|---|---|---|
| page | 1 | - | Page number |
| pageSize | 20 | 100 | Items per page |
Paginated Response
{
"items": [...],
"totalCount": 100,
"page": 1,
"pageSize": 20,
"totalPages": 5
}
note
The CampaignListResponse does not include totalPages (unlike other list responses). It only returns totalCount, page, and pageSize.
API Endpoints
SMS
| Method | Endpoint | Description |
|---|---|---|
| POST | /sms/campaigns | Create transactional SMS campaign |
| POST | /sms/campaigns/{id}/messages | Add message to transactional campaign |
| POST | /sms/promotional | Send bulk promotional SMS |
| POST | /sms/send | Send SMS without a template |
Viber
| Method | Endpoint | Description |
|---|---|---|
| POST | /viber/send | Send bulk Viber messages |
| POST | /viber/campaigns | Create transactional Viber campaign |
| POST | /viber/campaigns/{id}/messages | Add message to transactional Viber campaign |
| POST | /viber/send-text | Send simple text Viber message without a template |
Messages
| Method | Endpoint | Description |
|---|---|---|
| GET | /messages | Query messages by phone/user |
Campaigns
| Method | Endpoint | Description |
|---|---|---|
| GET | /campaigns | List campaigns |
| GET | /campaigns/{id} | Get campaign details |
Templates
| Method | Endpoint | Description |
|---|---|---|
| POST | /templates/viber | Create Viber template |
| POST | /templates/sms | Create SMS template |
| GET | /templates | List all templates |
| GET | /templates/{id} | Get template by ID |
| PUT | /templates/{id} | Update template |
| DELETE | /templates/{id} | Delete template |
Viber Services
| Method | Endpoint | Description |
|---|---|---|
| GET | /viber-services | List available Viber services |
SMS Senders
| Method | Endpoint | Description |
|---|---|---|
| GET | /sms-senders | List approved SMS senders |
Survey Results
| Method | Endpoint | Description |
|---|---|---|
| GET | /survey-results | Get survey responses |
| GET | /survey-results/{campaignId}/summary | Get survey summary |
Code Examples
- cURL
- JavaScript
- Python
curl -X GET https://api.transformify.mk/api/v1/templates \
-H "X-API-Key: your-api-key"
const response = await fetch('https://api.transformify.mk/api/v1/templates', {
headers: {
'X-API-Key': 'your-api-key'
}
});
const data = await response.json();
import requests
headers = {'X-API-Key': 'your-api-key'}
response = requests.get(
'https://api.transformify.mk/api/v1/templates',
headers=headers
)
data = response.json()