SpeakNotes API quickstart
Create a key, make your first call in the sandbox, then switch to live. Four steps, all in curl.
1. Create a key
Open Settings, API keys and create one. Pick sandbox while you are building: sandbox keys return fixed output, spend no credits, and write to a separate library you can throw away.
2. Summarize something in the sandbox
Every route works with a sandbox key. The response shape is identical to live, so you can build against it with confidence.
curl -X POST https://api.speaknotes.io/v1/summaries \
-H "Authorization: Bearer sn_test_YOUR_SANDBOX_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "We agreed to ship the billing fix on Friday. Sam owns the migration.",
"styleId": "meeting-notes"
}'
# {
# "title": "Sandbox meeting notes",
# "summary": "## Decisions\n- Sandbox mode confirmed working ...",
# "styleId": "meeting-notes",
# "creditsCharged": 0,
# "notice": "Sandbox response: fixed output, no credits charged."
# }3. Switch to a live key
Same request, different key. This one runs the real model and charges credits, and the response tells you how many it used and how many are left.
curl -X POST https://api.speaknotes.io/v1/summaries \
-H "Authorization: Bearer sn_live_YOUR_LIVE_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "...", "styleId": "meeting-notes"}'
# Response headers include:
# X-Credits-Remaining: 1998
# Response body includes:
# "creditsCharged": 24. Upload a file
Longer media runs in the background. Create the upload, PUT the file to the signed URL, mark it complete, then poll the note until its status is Done.
# 1. create the note and get a signed upload URL
curl -X POST https://api.speaknotes.io/v1/uploads \
-H "Authorization: Bearer $SPEAKNOTES_API_KEY" \
-H "Content-Type: application/json" \
-d '{"fileName": "standup.m4a", "contentType": "audio/mp4", "styleId": "meeting-notes"}'
# 2. upload the file straight to the signed URL
curl -X PUT "$UPLOAD_URL" -H "Content-Type: audio/mp4" --data-binary @standup.m4a
# 3. tell SpeakNotes the upload finished (this is where credits are charged)
curl -X POST https://api.speaknotes.io/v1/uploads/$NOTE_ID/complete \
-H "Authorization: Bearer $SPEAKNOTES_API_KEY"
# 4. poll until status is Done, then read the note
curl https://api.speaknotes.io/v1/notes/$NOTE_ID/status \
-H "Authorization: Bearer $SPEAKNOTES_API_KEY"
curl https://api.speaknotes.io/v1/notes/$NOTE_ID \
-H "Authorization: Bearer $SPEAKNOTES_API_KEY"Discovering the API
GET /v1 needs no credential and returns the resources, scopes, rate limits, credit costs, and how to authenticate. It is the fastest way for an agent to orient itself.
curl https://api.speaknotes.io/v1 # Returns the resources, scopes, rate limits, credit costs, # and how to authenticate. No credential required.
Next: authentication and scopes, the error codes, and what each operation costs.