API (/v1/ingest)
You POST `{source_id, recording_url, …}` with `Authorization: Bearer <key>`; we answer `202` with an `event_id` at once, fetch and transcribe in the background, and `GET /v1/ingest/<event_id>` tells you when it is `done` and which meeting it became. Everything on `/v1/transcripts` then applies to that meeting.
Checked 2026-08-29 · every step is done on your Flows page or inside API (/v1/ingest); nothing here needs support.
On API (/v1/ingest)'s side
- Get a partner API key from the partner portal (sign in at getmeetnotes.com/partner). The key identifies your integration; the workspace owner still decides which sources you may write to.
- On the workspace's Flows page, add a source of format "generic" — its
source_idis what your code names in each post. The source's profile (call, meeting, interview…) decides the minutes template. - POST to
/v1/ingestwithsource_id,recording_urland any context you have (external_id,agent,customer,occurred_at,duration_sec,title,tags). Dedupe is onexternal_idwithin a source. - Poll
GET /v1/ingest/<event_id>or, better, add a webhook destination on the workspace and receive the minutes when they are ready.
What to paste from your flow card
- The source id from the source card into your code, and your partner key into the
Authorizationheader. - Nothing from the provider side — this connector is your code.
What we never ask for: The audio bytes themselves. Post the reference; we fetch it. Presigned links are fine, and a login for the download is stored on the source, never in the payload.
How to test
- Post one short recording with
"external_id":"test-1". Expect202 {"event_id":…,"status":"received"}. - GET the event until
statusisdone; open themeeting_idit names. - Post the same body again:
200 {"duplicate": true}proves dedupe. Full reference and response codes are on the API page.
When an event shows failed or skipped
The Flows page prints one short reason per event. Here is what each one on this connector means and what to do.
fetch failed— We could not download the recording from the link the provider sent — the link had expired, it needed a login we do not hold, the file was over 300 MB, it pointed at a private address, or the server did not answer. We retry a few times before giving up. If your recordings need a login, set "If the recording needs a login" on the source.audio files only— The file was not audio — a picture, a document, or (except from a Drive folder) a video. Only a Drive folder source accepts video; every other door wants an audio file.audio unreadable— The file was named like audio but could not be decoded: empty, cut short, or not the format its name claims. Not retried. Send the recording again from the provider.no minutes— Your workspace had no pooled minutes left, so we did not download the recording. Skipped, not retried. Top up the pool and have the provider send the recording again.processing failed— The recording came in but something on our side failed after that. We are alerted automatically; if it keeps happening, write to support@getmeetnotes.com with the reference shown on the Flows page.
The full list, across every connector, is on the setup index.
