Start here
Your first request in four steps
Create at least one workflow in Workflow Studio from the dashboard or mobile app.
Call the list endpoint with your account API key and keep the public workflow_uuid.
Use the state or favorite endpoint to update that exact workflow.
Retrieve its execution logs to follow conditions, actions, errors and credit status.
ONE WORKFLOW, EVERY INTERFACE
Control the same automations everywhere.
The API reads and updates the exact workflows used by the dashboard, the SMSMobileAPI mobile app and the asynchronous Workflow Studio worker. A state or favorite change is therefore visible everywhere without copying a definition.
LISTDiscover workflows
Retrieve identifiers, triggers, schedules, conditions, actions and execution counters.
CONTROLActivate or pause
Build safe operational switches while keeping every workflow definition intact.
FAVORITEManage mobile modes
Choose which workflows appear as quick controls on the mobile app home screen.
LOGSFollow each execution
Inspect decisions, action attempts, errors, completion and credit consumption.
Authentication
Keep credentials on your server
Send your account API key in the apikey parameter or as Authorization: Bearer YOUR_API_KEY. Every workflow lookup is scoped to that authenticated account. Keep the key on your server and never publish it in browser code, repositories, screenshots or public URLs.
- State and favorite changes are immediately shared with the dashboard and SMSMobileAPI mobile app.
- Internal MySQL row identifiers are never exposed. Use the public workflow_uuid for every workflow operation.
- Pausing a workflow prevents it from matching future events. It does not cancel actions that were already queued.
- All dates returned by these endpoints use UTC.
GET
List Workflow Studio workflows
https://api.smsmobileapi.com/workflow/list/Returns the workflows owned by the authenticated account, including their state, favorite flag, trigger, schedule, conditions, actions and execution counters.
Use it to build a workflow selector, synchronize another management interface or retrieve identifiers before calling another Workflow Studio endpoint.
Parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
apikey |
string | Required | Your account API key. You may instead use an Authorization: Bearer header. |
page |
integer | Optional | Page number. Default 1. |
per_page |
integer | Optional | Rows per page. Default 25, maximum 100. |
search |
string | Optional | Search the workflow name, description or UUID. |
event_type |
string | Optional | Return only workflows using this exact event, for example sms.received. |
active |
boolean | Optional | Use 1 or 0 to filter active or paused workflows. |
favorite |
boolean | Optional | Use 1 or 0 to filter mobile favorites. |
include_definition |
boolean | Optional | Default 1. Set to 0 to omit conditions, actions and schedule details. |
Request example
curl "https://api.smsmobileapi.com/workflow/list/?apikey=YOUR_API_KEY&active=1&per_page=25"
Example response
{
"success": true,
"data": [
{
"workflow_uuid": "wf_0123456789abcdef0123456789abcdef",
"name": "Reply after a missed call",
"event_type": "call.missed",
"active": true,
"favorite": true,
"conditions": [],
"actions": [{"type":"send_sms","config":{"recipient":"{{data.number}}","message":"We will call you back shortly."}}],
"run_count": 18,
"success_count": 18,
"failed_count": 0
}
],
"pagination": {"page":1,"per_page":25,"total":1,"pages":1,"has_more":false},
"request_id": "wfreq_4d9b7d7b2b8b384b2ad6f237"
}
Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.
Connect key ↑
POST
Activate or pause a workflow
https://api.smsmobileapi.com/workflow/state/Changes whether one account-owned workflow listens for future events.
Use it to expose a controlled on/off switch in your own application or activate operational modes from another system.
Parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
apikey |
string | Required | Your account API key. You may instead use an Authorization: Bearer header. |
workflow_uuid |
string | Required | Public, stable workflow identifier returned by the list endpoint. |
active |
boolean | Required | 1 activates the workflow; 0 pauses it. |
Request example
curl -X POST "https://api.smsmobileapi.com/workflow/state/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"workflow_uuid":"wf_0123456789abcdef0123456789abcdef","active":true}'
Example response
{
"success": true,
"message": "Workflow activated.",
"workflow": {"workflow_uuid":"wf_0123456789abcdef0123456789abcdef","active":true,"favorite":true},
"applies_to": "future_events",
"request_id": "wfreq_250c732826cc1833e28cf1cc"
}
Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.
Connect key ↑- This operation never changes the workflow definition.
- Already queued actions are not cancelled when a workflow is paused.
POST
Add or remove a mobile favorite
https://api.smsmobileapi.com/workflow/favorite/Controls whether a workflow is displayed among the favorites available from the SMSMobileAPI mobile app home screen.
Use it to create quick-access modes such as Driving, Work, Family or On-call.
Parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
apikey |
string | Required | Your account API key. You may instead use an Authorization: Bearer header. |
workflow_uuid |
string | Required | Public, stable workflow identifier returned by the list endpoint. |
favorite |
boolean | Required | 1 adds the workflow to favorites; 0 removes it. |
Request example
curl -X POST "https://api.smsmobileapi.com/workflow/favorite/" \
-d "apikey=YOUR_API_KEY" \
-d "workflow_uuid=wf_0123456789abcdef0123456789abcdef" \
-d "favorite=1"
Example response
{
"success": true,
"message": "Workflow added to mobile favorites.",
"workflow": {"workflow_uuid":"wf_0123456789abcdef0123456789abcdef","active":true,"favorite":true},
"request_id": "wfreq_a9175f9b864aab7b998325b7"
}
Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.
Connect key ↑
GET
List one workflow’s execution logs
https://api.smsmobileapi.com/workflow/logs/Returns paginated runs for one workflow with the event, status, condition trace, action attempts, errors and billing state.
Use it to display recent activity, diagnose a failed action or confirm that a workflow matched the expected event.
Parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
apikey |
string | Required | Your account API key. You may instead use an Authorization: Bearer header. |
workflow_uuid |
string | Required | Public, stable workflow identifier returned by the list endpoint. |
status |
string | Optional | Filter by matched, skipped, queued, running, completed, failed, cancelled, credit_required or test. |
page |
integer | Optional | Page number. Default 1. |
per_page |
integer | Optional | Rows per page. Default 25, maximum 100. |
include_details |
boolean | Optional | Default 1. Set to 0 to omit input and condition trace details. |
Request example
curl "https://api.smsmobileapi.com/workflow/logs/?apikey=YOUR_API_KEY&workflow_uuid=wf_0123456789abcdef0123456789abcdef&status=completed&per_page=25"
Example response
{
"success": true,
"workflow": {"workflow_uuid":"wf_0123456789abcdef0123456789abcdef","name":"Reply after a missed call","event_type":"call.missed","active":true},
"data": [
{
"event_uuid": "evt_01J8EXAMPLE9Q4V",
"event_type": "call.missed",
"status": "completed",
"test_mode": false,
"credit_status": "consumed",
"created_at": "2026-10-06 08:14:21",
"finished_at": "2026-10-06 08:14:22",
"actions": [{"action_index":0,"action_type":"send_sms","status":"completed","attempts":1}]
}
],
"pagination": {"page":1,"per_page":25,"total":1,"pages":1,"has_more":false},
"request_id": "wfreq_0a53eab7bef30e5ba52a0f86"
}
Want to run this request? Connect your API key at the top of the page to unlock the interactive tester.
Connect key ↑- A completed run represents a successfully finalized workflow execution.
- The request_id can be included in a support request without revealing the API key.
Troubleshooting
Errors and safe retries
Read the HTTP status and the JSON error field before retrying. Do not retry validation or authentication failures without correcting the request first.
| HTTP | Code | What to do |
|---|---|---|
| 400 | missing_apikey | No apikey parameter or Bearer token was supplied. |
| 401 | invalid_apikey | The API key is unknown or disabled. |
| 404 | workflow_not_found | The workflow does not exist or does not belong to the authenticated account. |
| 422 | invalid_parameter | A state, favorite, identifier, status or filter value is invalid. |
| 423 | confidential_mode_active | Standard API access is locked while Confidential Mode is active. |
| 503 | service_unavailable | Workflow Studio storage or account validation is temporarily unavailable. |
Need help?
Bring the request context—not your secrets.
Share the endpoint, timestamp, HTTP status and sanitized response. Never include API keys, tokens or private message content.
Official mobile application
The secure bridge between your phone, dashboard and API.
SMS and call operations pass through the official SMSMobileAPI app installed on your connected phone. The app securely pairs the device with your account, synchronizes authorized events and links the mobile network to the dashboard and REST API.
- Signed releases distributed through the official Google Play and Apple App Store listings
- Google and Apple platform review, signing and distribution controls
- Secure device pairing, HTTPS transport and authenticated API access
- Only the permissions required for the mobile features you enable


