What exactly is the 25 MB limit and where does it apply?
The OpenAI transcription endpoint (`POST /v1/audio/transcriptions`) accepts multipart/form-data and enforces a 25 megabyte limit on the uploaded file. This applies to every model that uses this endpoint: whisper-1, gpt-4o-transcribe, and gpt-4o-mini-transcribe. The limit is on the file payload itself, not on the duration of the audio — so a 10-minute WAV file can easily exceed 25 MB while a 90-minute Opus file might not.
The error you receive when the limit is exceeded is a 413 HTTP status with a JSON body along the lines of `{"error": {"message": "Invalid file size: 40971234 bytes. Maximum allowed size is 26214400 bytes.", "type": "invalid_request_error"}}`. The threshold in bytes is exactly 25 × 1024 × 1024 = 26,214,400 bytes. Note that this is 25 mebibytes (MiB) calculated as powers of 1024, which is slightly different from 25 MB in SI units — practically speaking, files at exactly 25.0 MB displayed by macOS Finder may still pass if they are under 26,214,400 bytes.
The limit has been discussed extensively in OpenAI community forums since the API launched. OpenAI has not raised it since 2023. The architectural reason is straightforward: the API gateway buffers the upload in memory before forwarding to the inference cluster, and a hard cap prevents runaway large uploads from degrading service for other users. There is no plans-based override — even Tier 5 API accounts face the same 25 MB cap.