# whisper-1 > OpenAI whisper-1 speech-to-text through the LLM gateway with the OpenAI SDK (POST /llm/openai/v1/audio/transcriptions, multipart) - json or verbose_json with segment/word timestamps. Billed per second of audio (0.1858 credits/s). > **Retirement notice**: the upstream provider retires this model on 2027-02-26. Requests keep working until then — migrate before that date. - **Provider**: openai - **Model ID**: whisper-1 - **Category**: speech_to_text - **Pricing Type**: token_based - **Billing**: per second of input audio — see Pricing ## API Endpoint Base URL: https://api.core.today ### Audio Transcription POST /llm/openai/v1/audio/transcriptions ## Authentication Header: `Authorization: Bearer YOUR_API_KEY` Note: Your Core.Today API key (`cdt_xxx`) works as Bearer token. ## Input Parameters - Send `multipart/form-data` (the OpenAI SDK's `client.audio.transcriptions.create`), not JSON - `file` (file, **required**): The audio file — flac, m4a, mp3, mp4, mpeg, mpga, ogg, wav or webm, max 25MB - `model` (string, **required**): Model identifier. Use `whisper-1` - `response_format` (string, optional): `json` or `verbose_json` (Default: `json`). `text`, `srt` and `vtt` are rejected with 400 — build subtitles from verbose_json segments - `timestamp_granularities[]` (array, optional): `segment` and/or `word`; requires `response_format=verbose_json` - `language` (string, optional): ISO-639-1 code of the audio (e.g. `ko`, `en`) - `prompt` (string, optional): Text to guide style or continue a previous segment - `temperature` (number, optional): Sampling temperature (Default: `0`; Range: min: 0, max: 1) ## Example Request Multipart form fields: ```json { "file": "@meeting.mp3", "model": "whisper-1", "response_format": "verbose_json", "timestamp_granularities[]": "segment" } ``` ```bash curl https://api.core.today/llm/openai/v1/audio/transcriptions \ -H "Authorization: Bearer YOUR_API_KEY" \ -F file=@meeting.mp3 \ -F model=whisper-1 \ -F response_format=verbose_json \ -F "timestamp_granularities[]=segment" ``` OpenAI SDK: `OpenAI(base_url="https://api.core.today/llm/openai/v1", api_key="cdt_...")` then `client.audio.transcriptions.create(...)` with the same fields. ## Response Format ```json { "task": "transcribe", "language": "english", "duration": 52.41, "text": "The little tales they tell are false. ...", "segments": [ { "id": 0, "start": 0.0, "end": 5.04, "text": " The little tales they tell are false." } ], "usage": { "type": "duration", "seconds": 53 } } ``` ## Usage Flow 1. POST /llm/openai/v1/audio/transcriptions with a multipart/form-data upload of file and model 2. The transcript is returned synchronously; verbose_json adds language, duration and timestamped segments/words 3. Credits are deducted per second of audio, on the length OpenAI reports (`usage.seconds` / `duration`) Credits in the response (opt-in): send the header `X-Coredot-Include-Cost: true` and the response reports the credits that call is billed — `usage.coredot.credits` in the body (Gemini: `usageMetadata.coredot`; streaming: in the final usage event) and, for non-streaming responses, the `X-Coredot-Credits` header. Guide: https://console.core.today/llms/api.txt (section "Credits in the response"). ## Pricing - Audio: 0.1858 credits per second (≈ 11.148 credits per minute) ## Tags openai, speech_to_text