Quickstart
Send your first transcription and read the result in under two minutes. No SDK — just cURL and a key.
Authenticate
Every request uses a bearer token. Export your key as an environment variable, then hit GET /v1/me to confirm it works. See Authentication for details.
$ export QAI_KEY=qai_live_a3f7...c2e9
$ curl https://api.quillhub.ai/v1/me \
-H "Authorization: Bearer $QAI_KEY"Returns id, available_points, and your subscription object.
Get an API key
Open Developers → API keys and click Create key. The plaintext is shown once — copy it immediately. QuillAI issues two prefixes:
| Prefix | Type | Usage |
|---|---|---|
qai_test_ | Sandbox | Not billed. Safe for CI and local development. |
qai_live_ | Production | Billed in points against your balance. |
Make your first call
Post a YouTube URL and you'll get back a transcription ID immediately. QuillAI processes the file asynchronously — poll or register a webhook for the finished text.
curl -X POST https://api.quillhub.ai/v1/transcriptions \
-H "Authorization: Bearer $QAI_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://youtu.be/dQw4w9WgXcQ",
"structure": true
}'You get back a 202 with the full transcription object:
{
"id": "trs_01HZX7K9E3M2N4P6Q8R0S2T4V6",
"status": "queued",
"source": {
"type": "youtube",
"url": "https://youtu.be/dQw4w9WgXcQ"
},
"options": {
"speaker_recognition": false,
"structure": true
},
"created_at": "2026-04-23T10:12:04Z"
}Handle the response
Poll GET /v1/transcriptions/{id} until status is terminal, or pass a webhook_url when you create the task and we'll POST the finished payload — see Webhooks.
TRS_ID="trs_01HZX7K9E3M2N4P6Q8R0S2T4V6"
while true; do
RESP=$(curl -s https://api.quillhub.ai/v1/transcriptions/$TRS_ID \
-H "Authorization: Bearer $QAI_KEY")
STATUS=$(echo "$RESP" | jq -r .status)
echo "status: $STATUS"
case "$STATUS" in
completed|failed|cancelled) echo "$RESP" | jq .result; break ;;
esac
sleep 3
doneTerminal statuses are completed, failed, and cancelled. On completed the result object is populated with text, segments, structured, and subtitles (VTT + SRT).