User Guide API Reference

Speech to Text (STT) Transcription

Upload pre-recorded audio files for accurate text transcription with timestamps asynchronously.

Because large audio files can take several minutes to process, this API uses a robust Submit & Poll architecture. You first submit the file to receive a job_id, and then poll the status endpoint until the transcription completes.

1. Submit Audio Job

POST /api/v1/stt/submit/
Parameter Required Type Description
audio required file The audio file to transcribe. Supports mp3, wav, m4a, etc. Max 50MB.
language optional string Default is ar-JO.
output_format optional string Accepts json or srt. Default is json.

2. Check Job Status

GET /api/v1/stt/status/{job_id}/

Example Production Integration (Python)

import requests
import time

API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

# 1. Submit the audio file
submit_url = "https://moknah.io/api/v1/stt/submit/"
files = {"audio": ("audio.mp3", open("long_audio.mp3", "rb"), "audio/mpeg")}
data = {"language": "ar-JO", "output_format": "json"}

print("Submitting audio...")
response = requests.post(submit_url, headers=HEADERS, files=files, data=data)
job_id = response.json().get("job_id")
print(f"Job queued! ID: {job_id}")

# 2. Poll for the result
status_url = f"https://moknah.io/api/v1/stt/status/{job_id}/"

while True:
    res = requests.get(status_url, headers=HEADERS)
    result = res.json()

    if result.get("status") in ["queued", "processing"]:
        print("Processing... checking again in 5 seconds.")
        time.sleep(5)
    elif result.get("status") == "completed":
        print("\nTranscription Finished!")
        print(result["result"]["subtitles"])
        break
    else:
        print("\nJob Failed:", result)
        break
API Support

For API-related questions or issues, contact us at api@moknah.io.