Documentation
Freezetale is a lightning-fast speech-to-text API service hosted in Norway, powered by Iceland’s 100% renewable hydro- and geothermal energy grid.
With automatic speaker diarization (speaker labels) supported out of the box for all languages, Freezetale is the perfect solution for all your speech-to-text needs.
https://freezetale.com/api
curl -X GET \
-H "Authorization: Bearer API_TOKEN" \
"https://freezetale.com/api/v1/app/transcriptions?project-id=PROJECT_ID"
Create a transcription
Start a new transcription job. Automatically dedupes identical requests.
See supported languages for codes to use in language
.
curl -X POST \
-H "Authorization: Bearer API_TOKEN" \
--json '{"audioUrl": "https://example.com/audio.mp3", "language": "en"}' \
"https://freezetale.com/api/v1/app/transcriptions?project-id=PROJECT_ID"
{
"success": true,
"transcription": {
"id": "o3V8FEvUHG21BcuQBCwSZXqO7BV3",
"status": "pending",
"audio": {
"url": "https://example.com/audio.mp3",
"language": "en"
},
"creationDate": "2025-06-07T12:00:00.000Z",
"modificationDate": "2025-06-07T12:00:00.000Z"
}
}
Get a transcription
Retrieve a transcription job by its ID.
When the transcription job is finished, its status
changes to completed
. Also, resultUrl
is set to a URL containing the result of the transcription, and other metadata, which can then be downloaded.
The response contains a Last-Modified
header that you can use when pinging the API for updates using If-Modified-Since
.
curl -X GET \
-H "Authorization: Bearer API_TOKEN" \
"https://freezetale.com/api/v1/app/transcriptions?id=TRANSCRIPTION_ID&project-id=PROJECT_ID"
{
"success": true,
"transcription": {
"id": "pkbvMEdhVavGa80K4zBU53N3XiCR",
"status": "completed",
"audio": {
"url": "https://example.com/audio.mp3",
"language": "en",
"length": 1034947.4375
},
"resultUrl": "https://example.com/36c16505-0fb5-4b8c-8e22-0240d95e1eb5-pkbvMEdhVavGa80K4zBU53N3XiCR.json",
"creationDate": "2025-06-07T12:00:00.000Z",
"modificationDate": "2025-06-07T12:00:00.000Z",
"completionDate": "2025-06-07T12:00:00.000Z"
}
}
status
can be one of the following values: pending
, errored
, timeout
, cancelled
, completed
.
{
"id": "b25129c7-6354-4676-923f-c997ba8fb3db",
"reference": "pkbvMEdhVavGa80K4zBU53N3XiCR",
"words": [
{
"start": 1448,
"end": 2108,
"word": "Hello!",
"speaker": 1
}
],
"metadata": {
"speakers": 1,
"confidence": 0.988733,
"language": {
"input": "en",
"detected": "en"
},
"audio": {
"type": "audio/mpeg",
"size": 788013,
"length": 1034947.4375
}
}
}
Note: All time values are in milliseconds.
Get all transcriptions
Get a list of all transcription jobs in a project.
curl -X GET \
-H "Authorization: Bearer API_TOKEN" \
"https://freezetale.com/api/v1/app/transcriptions?project-id=PROJECT_ID"
{
"success": true,
"transcriptions": [
{
"id": "o3V8FEvUHG21BcuQBCwSZXqO7BV3",
"status": "pending",
"audio": {
"url": "https://example.com/audio.mp3",
"language": "en"
},
"creationDate": "2025-06-07T12:00:00.000Z",
"modificationDate": "2025-06-07T12:00:00.000Z",
"estimatedCompletionDate": "2025-06-07T12:00:00.000Z"
},
{
"id": "pkbvMEdhVavGa80K4zBU53N3XiCR",
"status": "completed",
"audio": {
"url": "https://example.com/audio.mp3",
"language": "en",
"length": 1034947.4375
},
"resultUrl": "https://example.com/36c16505-0fb5-4b8c-8e22-0240d95e1eb5-pkbvMEdhVavGa80K4zBU53N3XiCR.json",
"creationDate": "2025-06-07T12:00:00.000Z",
"modificationDate": "2025-06-07T12:00:00.000Z",
"completionDate": "2025-06-07T12:00:00.000Z"
}
]
}
Supported languages
Freezetale supports the following languages. If you’d like to see a language added, please get in touch.
Language | Code | Supports speaker diarization |
---|---|---|
English | en | Yes |
Danish | da | Yes |
German | de | Yes |
Spanish | es | Yes |
Finnish | fi | Yes |
French | fr | Yes |
Icelandic | is | Yes |
Dutch | nl | Yes |
Norwegian (Nynorsk) | nn | Yes |
Norwegian (Bokmål) | no | Yes |
Swedish | sv | Yes |
Limits
Your API requests are limited based on the details of your subscription plan. Otherwise, these are the general limits:
- Maximum file size: 1024 MB
- Maximum audio length: 180 minutes
100% renewable?
While Freezetale’s data center is in Norway, our transcription runtime GPUs are located in, and powered by Iceland’s 100% renewable hydro- and geothermal energy grid. This enables us to deliver transcriptions on a near-zero carbon footprint, and also be fully compliant with the EU’s General Data Protection Regulation (GDPR).