Routine Trigger API
Trigger a Voice Monkey Routine Trigger device, which in turn fires the Alexa Routine you wired it into.
Endpoint
Section titled “Endpoint”GET/POST https://api-v3.voicemonkey.io/triggerPOST and GET behave identically — pick whichever your HTTP client makes easiest.
Example request
Section titled “Example request”curl -X POST https://api-v3.voicemonkey.io/trigger \ -H "Content-Type: application/json" \ -d '{ "token": "YOUR_TOKEN", "device": "YOUR_TRIGGER_DEVICE_ID" }'Or as a one-line GET, useful for IFTTT, Tasker, Flic, etc.:
curl "https://api-v3.voicemonkey.io/trigger?token=YOUR_TOKEN&device=YOUR_TRIGGER_DEVICE_ID"Parameters
Section titled “Parameters”| Parameter | Required | Description |
|---|---|---|
token | yes | Your API token. See Authentication. |
device | yes | The ID of the Routine Trigger device. List your devices with GET /devices. |
Response
Section titled “Response”Successful calls return 200:
{ "success": true, "data": "OK"}If any var- sidecar updates ran, the response also includes a variableUpdates array.
Setting variables in the same request
Section titled “Setting variables in the same request”Any parameter prefixed with var- is upserted as a variable before the routine fires, so a downstream Flow that reads the variable sees the new value immediately:
curl -X POST https://api-v3.voicemonkey.io/trigger \ -H "Content-Type: application/json" \ -d '{ "token": "YOUR_TOKEN", "device": "YOUR_TRIGGER_DEVICE_ID", "var-CAMERA_STATUS": "motion" }'See Variables API → Setting variables alongside any other API call for the full rules.
Errors
Section titled “Errors”Errors return a JSON body with an error field and an HTTP status code:
| Status | Response body | Meaning |
|---|---|---|
400 | { "error": "MISSING_DEVICE" } | No device parameter supplied. |
404 | { "error": "DEVICE_NOT_FOUND" } | The device ID isn’t on this account. |
401 | { "error": "UNAUTHORIZED" } | No token supplied. |
401 | { "error": "INVALID_TOKEN" } | Token doesn’t match an active token. |
429 | { "error": "THROTTLED", "lockoutUntil": "<ISO>" } | Per-user safety lockout — back off until the timestamp. |
429 | { "error": "MONTHLY_QUOTA_EXCEEDED", "periodEnd": "<ISO>" } | Plan’s monthly request budget exhausted. Wait for the period end or upgrade. |
500 | { "error": "ALEXA_TRIGGER_FAILED" } | Generic upstream Alexa failure — retry with backoff. |
Use cases
Section titled “Use cases”- Trigger a routine from IFTTT, Zapier, Home Assistant, or any automation tool that can make an HTTP call.
- Wire a hardware button (e.g. Flic, Shelly, ESPHome) to a routine without writing custom Alexa skill code.
- Trigger a routine on a schedule from cron or a serverless function.
See Flic Buttons and Home Assistant for worked examples.