Inference APIs
Integrations/Voice dictation

Use Inference APIs with TypeWhisper (macOS dictation)

Use Inference APIs for cloud transcription and LLM clean-up in TypeWhisper through its built-in OpenAI Compatible plugin. No extra plugin to install: a server URL, a key and two model ids.

Settings

SettingValue
Base URLhttps://api.inferenceapis.com/v1 (also /openai/v1)
API keyFrom API Keys; send as Authorization: Bearer …
Chat model idsopenai/gpt-oss-120b, deepseek-ai/DeepSeek-V4-Flash, zai-org/GLM-5.3-Flash, meta-llama/Llama-3.3-70B-Instruct-Turboall models
Audio model idsopenai/whisper-large-v3 (transcription), hexgrad/Kokoro-82M (speech)

Which model

Transcription: openai/whisper-large-v3 for 100 languages and vocabulary prompts, nvidia/parakeet-tdt-0.6b-v3 when speed matters most (0.6 seconds for a 7 second clip, 25 European languages), mistralai/Voxtral-Mini-3B-2507 for the lowest price ($0.0013 per minute). Post-processing: zai-org/GLM-5.3-Flash (0.8 s median), deepseek-chat (0.7 s, runs without a thinking phase) or meta-llama/Llama-3.3-70B-Instruct-Turbo (0.7 s). All three returned the cleaned sentence in every run. Prices and measured speed: chat models.

Steps

  1. In TypeWhisper open the settings of the built-in OpenAI Compatible plugin and add a profile with a Profile Name of your choice (the plugin keeps several profiles, so existing ones stay).
  2. Server URL: https://api.inferenceapis.com. A trailing /v1 is fine too; the plugin strips it.
  3. API Key: your Inference APIs key. Press Test Connection; a wrong key fails here, because our model list answers 401 to it.
  4. Transcription Model: openai/whisper-large-v3. Transcription Transport: Auto or Batch. Batch Transcription Endpoint: Standard v1. Leave API Version empty.
  5. LLM API: Chat Completions (Responses works as well). LLM Model: zai-org/GLM-5.3-Flash or deepseek-chat.

Verify

Open TypeWhisper, dictate one sentence with the new profile selected, and check that the text appears and that a post-processing prompt changes it. The model pickers list every id our API serves, speech and chat together, so pick the ids named above rather than the first entry.

How this guide was checked

Configuration only TypeWhisper is a macOS app and we do not have a Mac in the test rig, so we did the next most exact thing: we read the source of its OpenAI Compatible plugin (OpenAICompatiblePlugin.swift, 2026-09-21) and replayed every request it makes, with its field order, its compressed M4A upload and WAV fallback, its strict response decoding, its 10 second model-list timeout and its 30 second LLM timeout. 35 of 37 checks passed; the two failures were Kimi K2.7 Code exceeding the 30 second limit, which is why it is not recommended below. The replay found two gaps on our side, both fixed the same day: Parakeet rejected the vocabulary prompt the plugin sends, and Voxtral could not decode M4A. The script is what we re-run when the plugin changes. If a step does not match what you see, tell us.

Gotchas

  • The "translate to English" option calls <code>/v1/audio/translations</code>, which we do not offer; TypeWhisper shows our error text. Transcribe in the spoken language and put the translation in the post-processing prompt instead; the chat models translate well.
  • Realtime transport (<code>/v1/realtime</code>) is not offered. Auto is safe: the plugin only picks realtime for OpenAI's own realtime model ids.
  • The plugin's reasoning-effort menu has no "off". With Chat Completions and its Thinking switch off it sends no reasoning field, so reasoning models spend about 100 tokens thinking before a one-sentence clean-up; on GLM 5.3 Flash that still came back in under a second. <code>deepseek-chat</code> and Llama 3.3 70B do not think at all.
  • Stay away from Kimi K2.7 Code for post-processing: it took 14 to 30 seconds in our runs and the plugin gives up at 30.
  • Parakeet and Voxtral ignore the vocabulary prompt; only Whisper uses it. For Parakeet we drop the field and say so in the <code>X-Dropped-Params</code> response header instead of failing the request.
  • TypeWhisper uploads compressed M4A. Voxtral's host cannot decode M4A, so we convert it to FLAC on the way (<code>X-Audio-Transcoded</code> header); Whisper and Parakeet take the file as it is.
  • Cost: Whisper is $0.002 per minute, so an hour of dictation a day is about 12 cents. A clean-up call on GLM 5.3 Flash was roughly 60 tokens in and 130 out, about one hundredth of a cent.

If something fails

401 — key missing or wrong · 402 insufficient_balance — add credits on Billing · 404 model_not_found — check the id against the model list (aliases such as gpt-oss-120b work too) · 503 model_unavailable — the model is being enabled. Full details in the API docs.