Skip to main content
Core.Today
|
Deprecated model โ€” this model still works, but we recommend a newer model for new projects.
Billing note OpenAI shuts whisper-1 down on 2027-02-26 - move to openai/gpt-transcribe (no timestamps) or, for segment timestamps, openai/whisper (Replicate). Billing is per second of audio. 840 credits (the 1-hour maximum) are reserved when the job starts - or the file's actual length when it is a WAV/MP3/MP4/M4A whose header can be read - and the difference is refunded once OpenAI reports the measured duration.
OpenAIDeprecatedFastHigh

Whisper-1 (OpenAI API)

OpenAI's hosted whisper-1 speech recognition with the OpenAI API parameters - json or verbose_json output, segment and word timestamps (timestamp_granularities), language hint and prompt. Billed per second of audio (0.2325 credits/s, about 14 credits per minute), up to 1 hour / 25MB per request.

840 credits
per minute of audio (0.2325/s, settled on measured length)
OpenAI's hosted whisper-1 with the OpenAI API parameter names
verbose_json output with language, duration and timestamped segments
Segment and word timestamps via timestamp_granularities
~100 languages with auto detection, or an ISO-639-1 language hint
Accepts flac, m4a, mp3, mp4, mpeg, mpga, ogg, wav and webm up to 25MB

Run it right now

Test this model instantly in the Console Playground โ€” no code required

Sign in to try

Use with AI Assistant

Copy usage instructions for Claude, ChatGPT, or other AI

Quick Start

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "openai/whisper-1",
  "input": {
    "audio": "https://replicate.delivery/mgxm/e5159b1b-508a-4be4-b892-e1eb47850bdc/OSR_uk_000_0050_8k.wav",
    "response_format": "verbose_json",
    "timestamp_granularities": [
      "segment"
    ],
    "language": "en"
  }
}'

Parameters

ParameterTypeRequiredDefaultDescription
audiostringYes-Audio file URL (flac, m4a, mp3, mp4, mpeg, mpga, ogg, wav, webm). Sent to OpenAI as the `file` part. Max 25MB and 1 hour.
response_formatstringNojsonjson returns {text, usage}; verbose_json adds language, duration and timestamped segments/words. text, srt and vtt are not available through this API.
jsonverbose_json
timestamp_granularitiesarrayNo-Timestamp detail for verbose_json - segment, word or both. Requires response_format verbose_json. Word timestamps add latency; segment timestamps add none.
segmentword
languagestringNo-Language of the input audio as an ISO-639-1 code (e.g. ko, en, ja). Improves accuracy and latency. Omit for automatic detection.
promptstringNo-Optional text to guide style or continue a previous segment. Should match the audio language.
temperaturenumberNo0Sampling temperature between 0 and 1. 0 lets the model raise it automatically until certain thresholds are hit.

How to Provide File Input

There are 3 ways to provide files for the audio parameter:

Recommended

Image URL

Pass a publicly accessible URL directly. With the Storage API (POST /v1/files/upload-url) the file uploads straight to S3 (50MB per file) and you pass the returned file_url.

{
  "model": "openai/whisper-1",
  "input": {
    "prompt": "your prompt here",
    "audio": "https://example.com/image.jpg"
  }
}

Direct Upload (Multipart)

Attach files directly to POST /v1/predictions/upload. No separate upload step, but the bytes pass through the API server so the whole request is capped at 10MB.

curl -X POST "https://api.core.today/v1/predictions/upload" \
  -H "X-API-Key: cdt_your_api_key" \
  -F "model=openai/whisper-1" \
  -F 'input={"prompt":"your prompt here"}' \
  -F "file:audio=@your_file.png"
See the File Upload docs for more upload methods including Presigned URLs.

Common Parameters

Common parameters used when calling POST /v1/predictions.

ParameterTypeRequiredDefaultDescription
modelstringYes-Model identifier
inputobjectYes-Object containing the model-specific parameters from the table above
output_folderstringNo-Folder path for output files (max 256 chars, '..' not allowed)
webhook_urlstringNo-Webhook URL to call on completion
is_publicbooleanNofalseIf true, output files are also available via permanent public URLs

Examples

Segment timestamps (verbose_json)

Returns text, language, duration and segments with start/end seconds.

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "openai/whisper-1",
  "input": {
    "audio": "https://replicate.delivery/mgxm/e5159b1b-508a-4be4-b892-e1eb47850bdc/OSR_uk_000_0050_8k.wav",
    "response_format": "verbose_json",
    "timestamp_granularities": [
      "segment"
    ],
    "language": "en"
  }
}'

Plain transcript (json)

Returns {text, usage} for a Korean recording.

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "openai/whisper-1",
  "input": {
    "audio": "https://example.com/meeting.m4a",
    "response_format": "json",
    "language": "ko"
  }
}'

Tips & Best Practices

1Retiring: OpenAI shuts whisper-1 down on 2027-02-26 (the translations endpoint too). openai/gpt-transcribe is the replacement for plain transcripts and is cheaper; it has no timestamps, so keep timestamp workflows on openai/whisper (Replicate segments)
2The result is OpenAI's response body as-is: json gives text and usage.seconds (the billed length); verbose_json gives text, language, duration and segments/words
3timestamp_granularities works only with verbose_json; when omitted, verbose_json returns segment timestamps
4Split files over 25MB or 1 hour before submitting - longer or larger files are rejected
5For SRT/VTT subtitles, build them from verbose_json segments, or use openai/whisper (Replicate) which outputs srt/vtt directly
6OpenAI SDK: point the client at base_url https://api.core.today/llm/openai/v1 with your cdt_ API key and call client.audio.transcriptions.create(model="whisper-1", file=..., response_format="verbose_json", timestamp_granularities=["segment"]) - the file is uploaded directly (no URL), json/verbose_json only, billed per second at the LLM rate (0.1858 credits/s, about 11.15 per minute) on the length OpenAI reports

Use Cases

Subtitles and captions from segment start/end timestamps
Meeting, lecture and interview transcripts
Migrating an existing OpenAI whisper-1 integration onto Core.Today credits