Finish a file upload and add it to the folder (step 3 of 3)
post
https://api.expiryedge.com/v1/completeFolderFileUploadeditor or admin, and the same user who started the upload60/minIdempotency-Key
Anfrage
curl -X POST 'https://api.expiryedge.com/v1/completeFolderFileUpload' \
-H "Authorization: Bearer $EXPIRYEDGE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"upload_id": "pUp7x1"
}'Antwort
{
"file": {
"id": "ff_7Qm2xKp",
"name": "Liability Insurance Certificate 2026.pdf",
"size": 184022,
"type": "application/pdf",
"url": "https://firebasestorage.googleapis.com/v0/b/expiryedge.appspot.com/o/organizations%2Forg_northwind%2Ffolder_files%2Ffld_Ins2026%2F1790518300000_Liability_Insurance_Certificate_2026.pdf?alt=media&token=3f0c8a52-6d1e-4b8e-9a51-0c2f7d9e1b44",
"storage_path": "organizations/org_northwind/folder_files/fld_Ins2026/1790518300000_Liability_Insurance_Certificate_2026.pdf",
"folder_id": "fld_Ins2026",
"uploaded_at": "2026-09-27T14:05:00.000Z",
"uploaded_by_name": "Dana Whitfield"
}
}Checks the uploaded file matches what was declared, counts it toward storage, and creates the file
record exactly as the web app does. Each upload_id can be completed once.
Idempotency-KeystringOptional client-generated key (1-255 characters of letters, digits,- _ : .).pattern: ^[A-Za-z0-9_\-:.]{1,255}$
upload_idstringerforderlichTheupload_idfrom getFolderFileUploadUrl.uploaded_by_namestringName shown as "Owner" in the app. Defaults to your profile name.max length: 200
201
File added to the folder.
fileobjecterforderlichA file in the Documents (Folders) file manager. Same record the web app creates.
400 | The request is missing required fields or contains invalid values. |
401 | Missing, expired or invalid bearer token. |
403 | Authenticated, but your role or organization does not allow this action. |
404 | Upload not found (wrong id, another user or organization) or the target folder was deleted. |
405 | The endpoint does not accept this HTTP method. |
409 | This upload was already completed.; or a request with the same Idempotency-Key is still being processed (code IDEMPOTENCY_IN_PROGRESS). |
410 | UPLOAD_EXPIRED - the 15-minute upload link expired; start a new upload. |
422 | UPLOAD_MISSING (nothing was PUT yet) or UPLOAD_MISMATCH (size or type differs from what was declared; the file is discarded). |
429 | Too many requests for this endpoint from your IP. Wait Retry-After seconds. |
500 | Unexpected server error. Retry later; quote requestId to support. |
