Complete a media-library upload
/v1/asset-upload-sessions/{upload_id}/completeconst upload = await bird.assets.uploads.complete("aus_01krdgeqcxet5s7t44vh8rt9mg");
console.log(upload.state);upload = client.assets.uploads.complete("aus_01krdgeqcxet5s7t44vh8rt9mg")
print(upload.state)upload, err := client.Assets.Uploads.Complete(context.Background(), "aus_01krdgeqcxet5s7t44vh8rt9mg")
if err != nil {
log.Fatal(err)
}
fmt.Println(upload.State)$upload = $bird->assets->uploads->complete('aus_01krdgeqcxet5s7t44vh8rt9mg');
echo $upload->getState();bird assets uploads complete <upload-id>curl -X POST "https://us1.platform.bird.com/v1/asset-upload-sessions/{upload_id}/complete" \
-H "Authorization: Bearer $TOKEN"{
"id": "aus_01krdgeqcxet5s7t44vh8rt9mg",
"state": "pending",
"folder_id": "asf_01krdgeqcxet5s7t44vh8rt9mg",
"file": {
"filename": "invoice.pdf",
"content_type": "application/pdf",
"size_bytes": 1024,
"sha256": "4e2090a479f7ce6b17ad31f991988f12571bcafbd4a441cc4063644fc1400ae0"
},
"result": {
"asset_id": "ast_01krdgeqcxet5s7t44vh8rt9mg"
},
"next": [
{
"kind": "operation"
}
],
"asset": {
"id": "ast_01krdgeqcxet5s7t44vh8rt9mg",
"url": "https://us1.assets.birdusercontent.com/6fcy8y6a483sewgnjk2g35y2qz/01krdgeqcxet5s7t44vh8rt9mg/document.pdf",
"thumbnail_url": null,
"name": "document.pdf",
"content_type": "application/pdf",
"kind": "document",
"size_bytes": 48210,
"width": null,
"height": null,
"alt_text": null,
"folder_id": null,
"deleted_at": null,
"created_at": "2026-05-20T09:14:52Z",
"updated_at": "2026-05-20T09:14:52Z"
}
}
Verifies the uploaded file and publishes a media-library asset at a permanent public URL. Images use normal media-library processing; other supported files retain their bytes. Identical active files reuse the existing asset and metadata. Retries return the saved receipt and never recreate a removed result.
Parâmetros
upload_idstringID of the media-library upload session.
Payload de resposta
idstateUpload progress. Pending accepts a transfer; finalizing is checking and publishing it. Completed has a saved result. Rejected, cancelled and expired allow no new upload instruction or publication. An already issued upload URL can remain usable until its expiry.
Possible values: pending, finalizing, completed, rejected, cancelled, expired
expires_atAbsolute session expiry. Completion must finish before this deadline; starting it or refreshing an upload instruction does not extend it.
nameFrozen display name for a newly published asset.
alt_textFrozen alternative text, or null when omitted.
folder_idFrozen destination folder, or null for the library root.
fileExact properties of the original file. Calculate size and SHA-256 from its bytes before creating a session. Images allow up to 5,242,880 bytes; other supported media allow up to 25,000,000 bytes.
resultSaved publication receipt, or null until completed.
last_errorLast completion error, or null when no failure is recorded.
assetCanonical asset when available, or null before completion or when unavailable.
Mostrar atributos secundários
asset.created_atasset.updated_atasset.idasset.urlThe asset's permanent public URL. Safe to embed or link in sent messages; for a document the usable form is a link.
asset.thumbnail_urlA small preview of the asset, for rendering a picker or a grid. Intended for your own interfaces rather than for embedding in messages. Null for every kind but image: generating a preview of a video, an audio file, or a document would mean rendering its contents, which the library does not do. Show an icon for the kind instead.
asset.nameThe asset's display name. Defaults to the uploaded file's name.
asset.content_typeThe stored file's media type, determined from its contents.
asset.kindThe category a media-library asset's type falls into. Use it to group or filter a mixed library.
image: covers PNG, JPEG, and GIF.video: covers MP4, WebM, and QuickTime.audio: covers MP3, M4A, Ogg, and WAV.document: covers PDF.
Possible values (may grow over time): image, video, audio, document
asset.size_bytesThe stored file's size in bytes. Images are re-encoded on upload, so for those this can differ from the size of the file you sent. Every other kind is stored byte-for-byte.
asset.widthThe stored image's width in pixels. Null for every kind but image.
asset.heightThe stored image's height in pixels. Null for every kind but image.
asset.alt_textDefault alternative text for the asset. Use it as the starting point for an image description when inserting the asset into content. Updating this field does not update descriptions already copied into saved content.
asset.folder_idThe folder the asset is filed in, or null when it sits at the top level of the library. Filing an asset never changes its URL.
asset.deleted_atWhen the asset was removed from the library, or null if it is still listed. A removed asset keeps serving at its original URL.
Recursos relacionados
Continue com a documentação, guias e exemplos sobre este tópico.