Quickstart

Quickstart

Get your first audio transcription in under 5 minutes.

1. Create an API Key

Create an API key in your Nagovori account, then copy the generated key. You can also authenticate with a JWT, but an API key is the fastest way to get started.

Your key looks like: nag_a1b2c3d4e5f6...

Important: Copy the key immediately — it's only shown once.

2. Upload and Transcribe

Using cURL

# Step 1: Get a presigned upload URL
curl -X POST https://api.nagovori.ru/v1/uploads/presign \
  -H "Authorization: Bearer nag_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "meeting.mp3",
    "content_type": "audio/mpeg",
    "size_bytes": 5242880
  }'

# Response: { "upload_url": "https://...", "object_key": "uploads/..." }

# Step 2: Upload the file to the presigned URL
curl -X PUT "UPLOAD_URL_FROM_STEP_1" \
  -H "Content-Type: audio/mpeg" \
  --data-binary @meeting.mp3

# Step 3: Create the transcription
curl -X POST https://api.nagovori.ru/v1/transcriptions \
  -H "Authorization: Bearer nag_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "object_key": "OBJECT_KEY_FROM_STEP_1",
    "filename": "meeting.mp3",
    "content_type": "audio/mpeg",
    "size_bytes": 5242880,
    "language": "auto"
  }'

# Response: { "id": "uuid", "status": "queued", ... }

Using Python

import requests

API_KEY = "nag_YOUR_API_KEY"
BASE = "https://api.nagovori.ru/v1"
headers = {"Authorization": f"Bearer {API_KEY}"}

# Presign upload
presign = requests.post(f"{BASE}/uploads/presign", headers=headers, json={
    "filename": "meeting.mp3",
    "content_type": "audio/mpeg",
    "size_bytes": 5_242_880,
}).json()

# Upload file
with open("meeting.mp3", "rb") as f:
    requests.put(presign["upload_url"], data=f, headers={"Content-Type": "audio/mpeg"})

# Create transcription
result = requests.post(f"{BASE}/transcriptions", headers=headers, json={
    "object_key": presign["object_key"],
    "filename": "meeting.mp3",
    "content_type": "audio/mpeg",
    "size_bytes": 5_242_880,
    "language": "auto",
}).json()

print(f"Transcription ID: {result['id']}, Status: {result['status']}")

3. Check Status

Poll the transcription status until it's completed:

curl https://api.nagovori.ru/v1/transcriptions/YOUR_TRANSCRIPTION_ID \
  -H "Authorization: Bearer nag_YOUR_API_KEY"

The response includes transcript_text when status is completed.

Next Steps