# GPT transcription API: gpt-transcribe and gpt-4o-mini-transcribe speech-to-text Source: https://ofox.io/docs/develop/models/gpt-transcribe OpenAI's speech transcription models. Upload audio through `POST /v1/audio/transcriptions` and get text back. **Model IDs (copy them exactly)** - GPT Transcribe: `openai/gpt-transcribe` — Billed per second of audio - GPT-4o mini Transcribe: `openai/gpt-4o-mini-transcribe` — Billed per token For the common endpoint parameters, see [Audio Transcriptions API](https://ofox.io/docs/api/openai/audio-transcriptions). For live prices, see the [model page](https://ofox.io/models/openai/gpt-transcribe). If you need word-level timestamps or speaker diarization, use [ElevenLabs Scribe v2](https://ofox.io/docs/develop/models/elevenlabs#scribe). ## Examples **Python** ```python filename="gpt_transcribe.py" import os from openai import OpenAI client = OpenAI(base_url="https://api.ofox.io/v1", api_key=os.environ["OFOX_API_KEY"]) with open("meeting.mp3", "rb") as f: result = client.audio.transcriptions.create( model="openai/gpt-transcribe", file=f, language="zh", prompt="以下是普通话的句子,请使用简体中文。", ) print(result.text) print(result.usage) ``` **cURL** ```bash filename="Terminal" curl https://api.ofox.io/v1/audio/transcriptions \ -H "Authorization: Bearer $OFOX_API_KEY" \ -F model=openai/gpt-transcribe \ -F language=zh \ -F prompt="以下是普通话的句子,请使用简体中文。" \ -F file=@meeting.mp3 ``` ## Parameters and billing **Key point**:When transcribing Mandarin, pass both language and a prompt that asks for Simplified Chinese; otherwise the output may contain Traditional characters. | Item | Description | |---|---| | `language` and `prompt` | In our tests, with only `language: "zh"`, `gpt-transcribe` still output Traditional characters in 1 of 4 runs; after also passing `prompt: "以下是普通话的句子,请使用简体中文。"`, all 4 runs were in Simplified Chinese | | `response_format` | Only `json` (default) is supported. `verbose_json`, `text`, `srt`, and `vtt` all return 400 | | Response content | `text` and `usage`; no word-level timestamps | | Billing | `gpt-transcribe` is billed per second of audio, with `usage` as `{"type": "duration", "seconds": ...}`; `gpt-4o-mini-transcribe` is billed per token, with `input_tokens` and `output_tokens` in `usage` | In our tests, about 9 seconds of Chinese conversation was transcribed in about 2 to 3 seconds. ## Common errors | HTTP | Error message | Cause | Fix | |---|---|---|---| | 400 | `response_format 'verbose_json' is not compatible with model 'gpt-transcribe'.` | GPT transcription models do not support `verbose_json` | Use `json` | | 400 | `Unsupported response_format 'srt'. Only 'json' and 'verbose_json' are supported on this gateway` | `text`, `srt`, or `vtt` was used | Use `json` | | 400 | `Unsupported file format txt` | The uploaded file is not audio | Upload audio such as `mp3` or `wav` | For more errors, see [Audio Transcriptions API](https://ofox.io/docs/api/openai/audio-transcriptions#errors). ## Official docs - [OpenAI · Speech to text](https://platform.openai.com/docs/guides/speech-to-text) ## FAQ **GPT transcription outputs Traditional characters for Chinese?** Pass both language: "zh" and prompt: "以下是普通话的句子,请使用简体中文。". In our tests, passing only language still occasionally produced Traditional characters; adding the prompt consistently produced Simplified Chinese. **Can GPT transcription output srt subtitles?** No, only json is supported. If you need timestamps to generate subtitles, use ElevenLabs Scribe v2, which returns start and end times for each word. **How are gpt-transcribe and gpt-4o-mini-transcribe billed?** gpt-transcribe is billed per second of audio; gpt-4o-mini-transcribe is billed per token, with usage shown in the usage field of the response. See the model page for rates.