Skip to main content
POST
/
request-upload-url
Submit from local file (1/2)
curl --request POST \
  --url https://api.heify.com/request-upload-url \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '{
  "configuration_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "name": "My First Transcription"
}'
{
  "data": {
    "upload_url": "https://your-bucket.s3.amazonaws.com/upload/client-123/1a2b3c4d-5e6f-7890-1234-567890abcdef?AWSAccessKeyId=...",
    "transcription_id": "1a2b3c4d-e5f6-7890-1234-567890abcdef",
    "configuration_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
    "name": "My First Transcription"
  }
}
For files on your computer, use the two-step upload process:
1

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.
2

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.

Authorizations

x-api-key
string
header
required

Body

application/json
configuration_id
string<uuid>
required

The unique identifier of the configuration to be used for the transcription.

name
string

An optional, user-defined name for the transcription job.

Response

200 - application/json

Pre-signed URL generated successfully. Use the returned values to perform the PUT upload.

data
object