Skip to content

Finish an upload ​

POST /api/v1/uploads/{id}/complete uploads:write

Finishes an upload, step 3 of 3 (see POST /uploads). Call it after the PUT to uploadUrl has succeeded. Protoki finds the file itself, so you send no path. It checks that the file is there, not empty and within the limits, stores the recording and starts the transcription and the minutes in the background.

Repeating the call does not store the recording twice.

If you never call it, Protoki waits 3 hours after step 1. A file that arrived by then is finished as if you had called it. Otherwise the meeting is deleted, without an error mail.

A meeting that does not exist or belongs to someone else answers 404, not 403.

Path parameters ​

NameTypeRequiredDescription
iduuidyesThe meeting, by the meetingId from POST /uploads.

Body ​

Example

json
{
  "durationS": 312
}
FieldTypeRequiredDescription
durationSnumber—Length of the recording in seconds, if you know it. It is stored and never used as a limit; leave it out if you do not have it.

Response 200 ​

The file is there and processing has started.

Example response

json
{
  "ok": true,
  "meetingId": "c4d9f0a1-72be-4e35-8f10-6d2a5b8c9e04"
}
FieldTypeRequiredDescription
oktrueyesThe file is there and processing has started.
meetingIduuidyesThe meeting the upload belongs to.

Other answers ​

CodeMeaning
400The file is not there yet (fileNotFound), is empty (fileEmpty) or too large (fileTooLarge), or the meeting is not an upload. grund.code says which.
401No key, or a key that is not valid.
403The key lacks uploads:write, or is an account key (accountKeyNoOwner).
404No such meeting, or it is not yours or not in the workspace of the key (meetingNotFoundOrNoAccess).

Protoki — EU/GDPR-compliant meeting notetaker.