Docs
Build with Inferentium
An OpenAI-compatible speech-to-text API. Keep your client, change onebase_url.
Quickstart
1) Get an API key from the console. 2) Point your SDK at our base URL. 3) Transcribe.
pip install openai
from openai import OpenAI
client = OpenAI(base_url="https://api.inferentium.ai/v1", api_key="tapi_...")
tx = client.audio.transcriptions.create(
model="inferentium-stt",
file=open("call.mp3", "rb"),
)
print(tx.text)Authentication
Pass your API key as a Bearer token (or X-API-Key header). Keys are prefixed with tapi_and scoped to your account's prepaid credits.
curl https://api.inferentium.ai/v1/audio/transcriptions \
-H "Authorization: Bearer tapi_..." \
-F model="inferentium-stt" \
-F file="@call.mp3"OpenAI compatibility
We implement the standard /v1/audio/transcriptions shape. Set the base URL and key; everything else stays the same. Works with the official SDKs, LangChain, LlamaIndex, and anything that lets you override OPENAI_BASE_URL.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.inferentium.ai/v1", apiKey: "tapi_..." });
const tx = await client.audio.transcriptions.create({
model: "inferentium-stt",
file: fs.createReadStream("call.mp3"),
});
console.log(tx.text);Transcribe (synchronous)
Upload audio and get the transcript in the response. Best for clips and files up to a few hours. Parameters: file (required), model, language (auto-detected if omitted), diarize (optional).
{
"requestId": "req_...",
"transcription": { "text": "Olá, boa noite. Sejam bem-vindos…", "language": "pt" },
"metrics": { "audioDurationS": 5832.4, "realTimeFactor": 0.003 },
"creditsChargedMicro": 24496000,
"balanceMicroCredits": 9975504000
}Async jobs & webhooks
For very long files or high volume, submit a job and get notified. Submit returns a jobId; poll the status, or receive a signed webhook when it's ready.
POST https://api.inferentium.ai/api/v1/stt/jobs # → 202 { jobId }
GET https://api.inferentium.ai/api/v1/stt/jobs/{id} # → { status }
GET https://api.inferentium.ai/api/v1/stt/jobs/{id}/resultWebhooks are signed with HMAC-SHA256 in the X-Signature header (sha256=…). Verify it with your webhook secret before trusting the payload.
Errors
Standard HTTP status codes.
200 OK
202 Accepted (async job queued)
400 Bad request (missing file / bad params)
401 Invalid or missing API key
402 Payment required (insufficient credits — checked before any GPU work)
429 Rate limited
5xx Inference error (your reservation is released — you are not charged)Languages
50+ languages with automatic detection. Pass language to hint, or omit to auto-detect.
Pricing & credits
Prepaid credits, billed per second of audio — from ~$0.15 per hour. Each request reserves an estimate, then settles the exact amount from audioDurationS; failed requests are never charged. Buy credits and manage keys in the console.
Need something not covered here (batch pipelines, dedicated fleet, data residency, enterprise SSO)? Talk to us.