Quickstart Guide
This guide will walk you through making your first transcription request with the Heify API. In just a few minutes, you’ll be able to transcribe audio files and retrieve results.
Prerequisites
Before you begin, you’ll need:
- An audio or video file to transcribe (see supported formats)
- A Heify API key (manage keys here)
- A configuration ID (you can create one in the Sandbox or via the API)
curl -X POST https://api.heify.com/create-configuration \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"tag": "My First Configuration",
"summary": true,
"summary_language": "en"
}'
Response:
{
"data": {
"message": "Configuration created successfully",
"configuration_id": "a1b2c3d4..."
}
}
Save the configuration_id - you’ll need it for the next step!
Step 2: Submit Audio for Transcription
Now submit an audio file using one of two methods:
Option A: From a Public URL
If your audio is already hosted online:
curl -X POST https://api.heify.com/submit \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"configuration_id": "YOUR_CONFIGURATION_ID",
"url": "https://example.com/audio.mp3",
"name": "My First Transcription"
}'
Option B: Upload a Local File
For files on your computer, use the two-step upload process:
Request an upload URL
First, request a secure, pre-signed URL to upload your file.curl -X POST https://api.heify.com/request-upload-url \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"configuration_id": "YOUR_CONFIGURATION_ID",
"name": "My First Transcription"
}'
Response:The API will return the pre-signed upload_url and the metadata needed for the upload headers.{
"data": {
"upload_url": "https://s3.amazonaws.com/...",
"transcription_id": "1a2b3c4d...",
"configuration_id": "a1b2c3d4...",
"name": "My First Transcription"
}
}
Save all the values from the data object for the next step.
Upload your audio file
Now, use the upload_url and metadata from the previous response to upload the file with a PUT request.# Use the 'upload_url', 'configuration_id', and 'name' from the Step 1 response
curl -X PUT --upload-file "path/to/audio.mp3" \
-H "x-amz-meta-configuration_id: YOUR_CONFIGURATION_ID" \
-H "x-amz-meta-name: My First Transcription" \
"https://s3.amazonaws.com/..."
Response (after a successful upload):
A successful PUT request will return an HTTP 200 OK status with an empty body. The transcription process has now started.
Step 3: Check the Status
Monitor your transcription progress:
curl -X POST https://api.heify.com/details \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"transcription_id": "YOUR_TRANSCRIPTION_ID"
}'
Step 4: Retrieve Results
Once the status is COMPLETED, the response includes full transcription details:
{
"data": {
"transcription_id": "1a2b3c4d...",
"status": "COMPLETED",
"configuration_id": "a1b2c3d4...",
"configuration_tag": "My First Configuration",
"name": "My First Transcription",
"group": null,
"duration": 98.89,
"details": {
"language": "en",
"num_speakers": 2,
"created_at": "2025-10-04T22:23:05.611Z",
"completed_at": "2025-10-04T22:23:19.363Z",
"conversation": {
"segments": [
{
"text": "Hello, Lorena. Are you going to Hugo's birthday party? He called me yesterday to invite me, but now I'm having second thoughts.",
"speaker": "SPEAKER_00"
},
{
"text": "Why is that? What doubts can you have about going to a party? You just go, period.",
"speaker": "SPEAKER_01"
}
]
},
"summary": {
"summary": "The conversation is between two friends. One is hesitant to attend a birthday party because they believe the host, Hugo, brings them bad luck, recounting several past unfortunate incidents."
},
"fields": null
}
}
}
🎉 Success!
You’ve successfully transcribed your first audio file with Heify!
Next Steps
Pro tip: Use webhooks to get notified automatically when transcriptions complete, instead of polling the status endpoint.