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.

Python
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
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.

JavaScript / TypeScript
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).

Response
{
  "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.

Submit → poll
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}/result

Webhooks 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.

Common statuses
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.