Send a query and a gym ID. Get back spoken audio and text — personalised to the actual layout, machines, and zones of that specific gym. Powered by Grok + ElevenLabs.
No prompt engineering, no audio pipeline to manage. Pass a gym ID and a natural language query — the API handles everything else.
POST your user's query and the gym's unique ID to the /v1/voice endpoint with your Bearer token.
The API fetches the gym's complete floor plan from the xAI collection — every machine, zone, and coordinate. No two gyms return the same response.
Grok receives the query combined with full gym context — equipment availability, zone layout, and machine positions — and generates a precise, floor-aware answer.
The text is rendered to natural speech via ElevenLabs. You receive an MP3 URL and the transcript — ready to play directly in your app or interface.
No sales calls required for Starter and Pro. Sign up, get a key, start building. Scale when you need to.
All requests require a Bearer token in the Authorization header. Your API key is issued when you sign up.
Generate a gym-aware spoken response. The API loads the specified gym's floor plan from the xAI collection, passes it as context to Grok, and renders the response to audio via ElevenLabs. Returns an MP3 URL and transcript within a single response object.
| Parameter | Type | Description | |
|---|---|---|---|
| gymId | string | required | The unique identifier for the gym. Used to fetch the floor plan from the xAI gym collection. |
| query | string | required | The natural language query to answer — e.g. "Where is the cable machine?" or "What should I do for chest today?" |
| userId | string | optional | Your end-user's identifier. Used for personalisation and usage attribution. Not stored by GymVoice. |
| voiceId | string | optional | ElevenLabs voice ID to use for synthesis. Defaults to a clear, neutral coach voice if omitted. |
| Field | Type | Description |
|---|---|---|
| audioUrl | string | Signed URL to the generated MP3 audio file. Valid for 1 hour. |
| text | string | The full text transcript of the spoken response. |
| latencyMs | number | Total end-to-end processing time in milliseconds, from receipt to audio URL ready. |
| Code | Meaning |
|---|---|
| 401 | Invalid or missing API key. |
| 404 | gymId not found in the xAI gym collection. |
| 429 | Rate limit exceeded. Check your plan's interaction limit. |
| 500 | Upstream error from Grok or ElevenLabs. Retryable. |
No sales calls. No waiting rooms. Fill in the form and we'll send your API key within 24 hours.
We'll send your API key within 24 hours. Keep an eye on your inbox — and check your spam folder just in case.