Getting started
The platform has two services. Which one you use depends on the capability — each capability page tells you the host to use. One GPU API key opens both.
| Service | Base host | Auth |
|---|---|---|
Translation, text tools and models — text translation (POST /v1/translate), spoken numbers to digits (POST /v1/normalize), text embeddings (POST /v1/embeddings), classification (POST /v1/classify), chat, coding and vision (/v1/chat/completions), document OCR, image and audio generation, music (Models) |
https://ai.ollalink.com |
X-NH-GPU-Key: <key> (your GPU API key) |
| Speech GPU — speech-to-text (batch, file, realtime), live captions, text-to-speech | gpu-*.ollalink.com (hosts below) |
X-NH-GPU-Key: <key> |
Voice cloning and the realtime speech-to-speech service (sound-stream) are not available; live captions arrive in the speaker’s
language and are translated with a separate POST /v1/translate call — see
Models & languages. Full key detail and error codes: Authentication.
1. Get a key
Section titled “1. Get a key”| You want | How to get it |
|---|---|
GPU API key (sk_…) — the text tools on ai.ollalink.com and every gpu-* host |
Self-serve: sign up at login.ollalink.com → Platform → GPU API keys → create a key. Your workspace starts as pending and a new key only works once we approve it. |
| Legacy shared Speech GPU key | Works until 3 November 2026; replace it with your GPU API key. |
Keep every key server-side. Never ship one to a browser, mobile app, or public repo.
2. Your first text-tools request
Section titled “2. Your first text-tools request”curl https://ai.ollalink.com/v1/normalize \ -H "X-NH-GPU-Key: $YOUR_GPU_KEY" -H "Content-Type: application/json" \ -d '{"text": "open port four forty three", "language": "en"}'The reply’s normalized field is "open port 443". Details: Text tools.
3. Your first Speech GPU request
Section titled “3. Your first Speech GPU request”Speech GPU hosts
Section titled “Speech GPU hosts”| Host | What it does | Routes |
|---|---|---|
gpu-tts.ollalink.com |
Text-to-speech: 48 voices in English (including Indian English tutor voices), Spanish, French, German, Brazilian Portuguese, Arabic, Japanese and Hindi | POST /v1/audio/speech, POST /tts, GET /voices |
gpu-voice.ollalink.com |
The same voices and routes as gpu-tts (the voice studio routes are paused) |
POST /v1/audio/speech, GET /voices |
gpu-asrhq.ollalink.com |
Batch speech-to-text for Hindi and the languages file transcription does not cover; speech → English | POST /v1/audio/transcriptions |
gpu-transcribe.ollalink.com |
Fast file transcription of recordings and videos (en, es, fr, de, pt, ru, it, nl), text or subtitles; speech detection | POST /v1/audio/transcriptions, POST /v1/audio/segments |
gpu-asr.ollalink.com |
Realtime speech-to-text in the 14 languages | wss://…/v1/audio/transcriptions/realtime |
gpu-live.ollalink.com |
Live captions in the 14 languages (captions in the speaker’s language; translate them with /v1/translate) |
wss://…/v1/translate/stream |
Use the ollalink.com names; older networkershome.com names still resolve for a while but are being retired.
Text-to-speech
Section titled “Text-to-speech”The Speech GPU lanes take the key as a header, not a Bearer token. This one returns a WAV file:
curl -X POST https://gpu-tts.ollalink.com/v1/audio/speech \ -H "X-NH-GPU-Key: sk_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \ -H "Content-Type: application/json" \ -d '{"input":"BGP peers exchange routes over TCP port 179.","voice":"delia","language":"en","response_format":"wav"}' \ --output speech.wav- Send
voiceandlanguageon every request. Languages:en,es,fr,de,pt. Defaults:deliaforen,noafores,noemieforfr,neleforde,manuelaforpt,laylaforar,yuiforja; other languages return400. See Voices by language. - Format:
/v1/audio/speechreturns mp3 unless you ask for anotherresponse_format(wav,pcm,opus,aac,flac). - Text length: up to 4,000 characters per request; longer text gets a
400that states the limit.
from openai import OpenAI
gpu = OpenAI(base_url="https://gpu-tts.ollalink.com/v1", api_key="unused", # the X-NH-GPU-Key header is the credential default_headers={"X-NH-GPU-Key": "sk_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"})
audio = gpu.audio.speech.create(model="ollalink-tts", voice="ryan", input="BGP peers exchange routes over TCP port 179.", response_format="wav", extra_body={"language": "en"})audio.write_to_file("speech.wav")Speech-to-text
Section titled “Speech-to-text”Transcribe the file you just made — gpu-transcribe takes a multipart upload:
curl https://gpu-transcribe.ollalink.com/v1/audio/transcriptions \ -H "X-NH-GPU-Key: sk_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \ -F "file=@speech.wav" \ -F "language=en"language is one of en (default), es, fr, de, pt, ru; the reply carries text, and response_format=verbose_json
adds segments and word times (Speech-to-text). For Hindi and other languages use gpu-asrhq.
When something fails
Section titled “When something fails”| What you see | What it means |
|---|---|
400 |
Bad request — an unsupported language or voice, a missing field, or text over the limit; the message says which |
401 |
Unknown or revoked key |
403 |
Missing X-NH-GPU-Key, a key not yet approved, or a key without GPU access (forbidden) |
404 |
Wrong route for that host — each Speech GPU host has its own (hosts) |
410 |
A route switched off on this host |
429 |
Rate limited (600 requests / 60 s per key) — back off and retry, honouring Retry-After |
503 |
Busy, restarting or paused — retry shortly with back-off (sound-stream is paused) |
Every failure on these hosts is a clean HTTP status; fix auth on the first 401/403 instead of retrying.
Every failure mode, including the silent ones: Errors & troubleshooting.
Health check
Section titled “Health check”To prove a key on a speech host, list the voices — 200 with the voice list means the key and the path are good; 401 or
403 means the key is wrong:
curl https://gpu-tts.ollalink.com/voices -H "X-NH-GPU-Key: sk_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"Where to next
Section titled “Where to next”- Authentication — which key goes where, error codes, rate limits
- Translation and text tools — text translation, spoken numbers to digits, embeddings, classification
- Speech-to-text — batch, file transcription, realtime
- Live captions — captions of a live speaker over a WebSocket, and live translation
- Text-to-speech — 48 voices in 8 languages
- Models — chat, coding, vision, document OCR, image and audio generation, music
- Voices by language — every voice, its languages, and the default per language
- Hindi with English numbers and technical terms — Hindi transcription and numbers
- Models & languages — the full per-lane coverage matrix
- Errors & troubleshooting — status codes, WebSocket failures, and the silent ones
- OpenAPI 3.1 spec — import into Postman or Insomnia, or generate a client
Use the dashboard
Section titled “Use the dashboard”Open Playground after workspace approval. Speech-to-text defaults to the English/Hindi accuracy option; the fast and legacy options remain selectable. Translate calls the text translation API. Live speech can stream a microphone or audio file, display original captions and translate finalized captions. The browser receives only a short-lived, GPU-scoped session token for speech sockets; durable partner keys stay server-side.
