Skip to main content
Let’s walk through the whole flow with a short file, standup.mp3. You need curl and jq to parse JSON.
1

Get a token

Send the email and password of your AiGenda account. The response contains a pair of tokens, and you need access for requests.
The field is called username, but it holds your email. Learn more: Authentication.
2

Find your space_id

Recordings live in spaces. Take your personal space, it has is_main_space: true.
3

Create a recording

Pass the title, the exact file size in bytes, and the MIME type. The title must end with the file extension.
url contains an array of upload links, one per file part of about 10 MB. In this quickstart you send the whole file to the first link and complete the upload with a single part. For a production integration, upload in parts, see Uploading a file.
4

Upload the file and complete the upload

Send the file to the link with PUT and save the ETag header from the response. Then tell AiGenda that the upload is finished.
ETag comes wrapped in double quotes, and you must pass it as is. The loop at the end waits until AiGenda confirms the file (is_uploaded: true).
5

Start processing

At this point the plan is charged minutes for the recording’s duration.
6

Fetch the protocol

Poll the result every 15 seconds until you get classified: true. If success is false at that point, processing failed.
Done: the meeting protocol is in protocol.md.
This loop cannot tell failed processing from processing in progress, so it will wait forever. In a production integration, handle errors following the rules on the Status and polling page.

What’s next

Uploading large files

Uploading in parts, code in Python and JavaScript.

Result structure

Protocol, utterances, speakers.
Last modified on October 17, 2026