Skip to content

Quickstart

Get transcribing in 5 minutes.

Prerequisites

Step 1: Upload Your Audio File

Upload the audio file to get an S3 URI:

curl -X POST https://api.icana.ai/upload \
  -H "X-API-Key: your-api-key" \
  -F "file=@meeting.mp3"

Response:

{
  "message": "File uploaded successfully",
  "s3_uri": "s3://your-upload-bucket/unique-id/meeting.mp3",
  "original_filename": "meeting.mp3",
  "job_id_suggestion": "unique-id"
}

Save the s3_uri from the response.

Step 2: Submit Transcription Job

Submit the uploaded file for transcription and diarisation:

curl -X POST https://api.icana.ai/transcribe \
  -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "s3_uri": "s3://your-upload-bucket/unique-id/meeting.mp3",
    "language": "en"
  }'

Response:

{
  "message": "Batch job submitted successfully",
  "aws_batch_job_id": "abc-123-def-456",
  "batch_job_name": "whisper-pyannote-job-unique-id"
}

Save the aws_batch_job_id.

Step 3: Poll for Results

Check the job status until it completes:

curl https://api.icana.ai/status/abc-123-def-456 \
  -H "X-API-Key: your-api-key"

When complete, the response includes the transcription and diarisation:

{
  "aws_batch_job_id": "abc-123-def-456",
  "status": "COMPLETE",
  "message": "Batch job completed successfully.",
  "transcription": "G'day everyone, thanks for joining today's standup...",
  "diarization": "[ 0m0s - 0m5s ] Speaker 1: G'day everyone, thanks for joining today's standup."
}

Tip

While waiting, you can check the overall queue status with GET /queue/status to see how many jobs are in the pipeline.

Step 4: Clean Up (Optional)

Delete the uploaded and output files when you no longer need them:

curl -X DELETE https://api.icana.ai/delete/abc-123-def-456 \
  -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "s3_uri": "s3://your-upload-bucket/unique-id/meeting.mp3"
  }'

Next Steps