Account API
A lightweight “who am I” call. Use it to check a token works before wiring it into another system, or — if you’re building an integration — as the connection test that runs right after your users authorise it (this is what the Zapier app uses for its connection label).
Endpoint
Section titled “Endpoint”GET/POST https://api-v3.voicemonkey.io/meExample request
Section titled “Example request”curl https://api-v3.voicemonkey.io/me \ -H "Authorization: Bearer YOUR_TOKEN"Or with the token as a query parameter:
curl "https://api-v3.voicemonkey.io/me?token=YOUR_TOKEN"Parameters
Section titled “Parameters”| Parameter | Required | Description |
|---|---|---|
token |
yes | Your API token. Or send it via the Authorization: Bearer … header. See Authentication. |
Response
Section titled “Response”Successful calls return 200:
{ "success": true, "data": { "name": "Sam", "plan": "hobby", "timezone": "Europe/London", "deviceCount": 3, "speakerCount": 2, "routineCount": 1 }}| Field | Description |
|---|---|
name |
The display name on the account (from Login with Amazon). |
plan |
Plan key: free, hobby, ultimate, legacyFree, legacyPro, legacyPaddlePro or legacyPremium. |
timezone |
The IANA timezone set in the console, used for Schedules and Active Hours. |
deviceCount / speakerCount / routineCount |
How many devices are on the account in total, and split by capability. |
Nothing in the response identifies the Amazon account and no IDs are returned — the response is safe to show in a third-party UI.
Errors
Section titled “Errors”| Status | Response body | Meaning |
|---|---|---|
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. |
