Install
openclaw skills install voicemonkeyControl Alexa devices via VoiceMonkey API v2 - make announcements, trigger routines, start flows, and display media.
openclaw skills install voicemonkeyControl Alexa/Echo devices via VoiceMonkey API v2. Make TTS announcements, trigger Alexa routines, start flows, and display images/videos on Echo Show devices.
export VOICEMONKEY_TOKEN="your-secret-token"
Or add to ~/.clawdbot/clawdbot.json:
{
"skills": {
"entries": {
"voicemonkey": {
"env": { "VOICEMONKEY_TOKEN": "your-secret-token" }
}
}
}
}
https://api-v2.voicemonkey.io
Make TTS announcements, play audio/video, or display images on Alexa devices.
Endpoint: https://api-v2.voicemonkey.io/announcement
curl -X GET "https://api-v2.voicemonkey.io/announcement?token=$VOICEMONKEY_TOKEN&device=YOUR_DEVICE_ID&text=Hello%20from%20Echo"
curl -X POST "https://api-v2.voicemonkey.io/announcement" \
-H "Authorization: $VOICEMONKEY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"device": "YOUR_DEVICE_ID",
"text": "Hello from Echo the Fox!"
}'
curl -X POST "https://api-v2.voicemonkey.io/announcement" \
-H "Authorization: $VOICEMONKEY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"device": "YOUR_DEVICE_ID",
"text": "Dinner is ready!",
"voice": "Brian",
"chime": "soundbank://soundlibrary/alarms/beeps_and_bloops/bell_02"
}'
curl -X POST "https://api-v2.voicemonkey.io/announcement" \
-H "Authorization: $VOICEMONKEY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"device": "YOUR_DEVICE_ID",
"text": "Check out this image",
"image": "https://example.com/image.jpg",
"media_width": "100",
"media_height": "100",
"media_scaling": "best-fit"
}'
curl -X POST "https://api-v2.voicemonkey.io/announcement" \
-H "Authorization: $VOICEMONKEY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"device": "YOUR_DEVICE_ID",
"audio": "https://example.com/sound.mp3"
}'
curl -X POST "https://api-v2.voicemonkey.io/announcement" \
-H "Authorization: $VOICEMONKEY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"device": "YOUR_DEVICE_ID",
"video": "https://example.com/video.mp4",
"video_repeat": 1
}'
curl -X POST "https://api-v2.voicemonkey.io/announcement" \
-H "Authorization: $VOICEMONKEY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"device": "YOUR_DEVICE_ID",
"website": "https://example.com",
"no_bg": "true"
}'
| Parameter | Required | Description |
|---|---|---|
token | Yes* | Secret token (*or use Authorization header) |
device | Yes | Device ID from Voice Monkey console |
text | No | TTS text (supports SSML) |
voice | No | Voice for TTS (see API Playground for options) |
language | No | Language code for better pronunciation |
chime | No | Sound URL or Alexa sound library reference |
audio | No | HTTPS URL of audio file to play |
background_audio | No | Audio to play behind TTS |
image | No | HTTPS URL of image for Echo Show |
video | No | HTTPS URL of MP4 video for Echo Show |
video_repeat | No | Number of times to loop video |
website | No | URL to open on Echo Show |
no_bg | No | Set "true" to hide Voice Monkey branding |
media_width | No | Image width |
media_height | No | Image height |
media_scaling | No | Image scaling mode |
media_align | No | Image alignment |
media_radius | No | Corner radius for image clipping |
var-[name] | No | Update Voice Monkey variables |
Trigger Voice Monkey devices to start Alexa Routines.
Endpoint: https://api-v2.voicemonkey.io/trigger
curl -X POST "https://api-v2.voicemonkey.io/trigger" \
-H "Authorization: $VOICEMONKEY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"device": "YOUR_TRIGGER_DEVICE_ID"
}'
| Parameter | Required | Description |
|---|---|---|
token | Yes* | Secret token (*or use Authorization header) |
device | Yes | Trigger Device ID from Voice Monkey console |
Start Voice Monkey Flows.
Endpoint: https://api-v2.voicemonkey.io/flows
curl -X POST "https://api-v2.voicemonkey.io/flows" \
-H "Authorization: $VOICEMONKEY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"device": "YOUR_DEVICE_ID",
"flow": 12345
}'
| Parameter | Required | Description |
|---|---|---|
token | Yes* | Secret token (*or use Authorization header) |
device | Yes | Device ID |
flow | Yes | Numeric Flow ID from Voice Monkey console |
Access-Control-Allow-Origin: *Use SSML in the text parameter for richer announcements:
<speak>
<amazon:emotion name="excited" intensity="high">
This is exciting news!
</amazon:emotion>
</speak>
<speak>
The time is <say-as interpret-as="time">3:30pm</say-as>
</speak>