Open a browser fallback for a media upload
/v1/asset-upload-sessions/{upload_id}/browserconst handoff = await bird.assets.uploads.handoff(
"aus_01krdgeqcxet5s7t44vh8rt9mg",
);
if (handoff.browser_url) console.log(handoff.browser_url);handoff = client.assets.uploads.handoff("aus_01krdgeqcxet5s7t44vh8rt9mg")
if handoff.browser_url:
print(handoff.browser_url)handoff, err := client.Assets.Uploads.Handoff(context.Background(), "aus_01krdgeqcxet5s7t44vh8rt9mg")
if err != nil {
log.Fatal(err)
}
if handoff.BrowserUrl != nil {
fmt.Println(*handoff.BrowserUrl)
}$handoff = $bird->assets->uploads->handoff('aus_01krdgeqcxet5s7t44vh8rt9mg');
if ($handoff->getBrowserUrl() !== null) {
echo $handoff->getBrowserUrl();
}bird assets uploads handoff <upload-id>curl -X POST "https://us1.platform.bird.com/v1/asset-upload-sessions/{upload_id}/browser" \
-H "Authorization: Bearer $TOKEN"{
"session": {
"id": "aus_01krdgeqcxet5s7t44vh8rt9mg",
"state": "pending",
"expires_at": "2026-11-04T23:00:00Z",
"name": "Invoice",
"alt_text": null,
"folder_id": null,
"file": {
"filename": "invoice.pdf",
"content_type": "application/pdf",
"size_bytes": 1024,
"sha256": "4e2090a479f7ce6b17ad31f991988f12571bcafbd4a441cc4063644fc1400ae0"
},
"result": null,
"last_error": null,
"next": [],
"asset": null
},
"browser_url": "https://bird.com/dashboard/w/ws_01krdgeqcxet5s7t44vh8rt9mg/media-library/uploads/aus_01krdgeqcxet5s7t44vh8rt9mg",
"next": [
{
"kind": "external",
"description": "Open browser_url and have a person with asset write access select the original file and publish it. Their browser must reach the storage hostname. Opening the page does not complete the upload."
},
{
"kind": "operation",
"operation": "getAssetUploadSession",
"params": {
"upload_id": "aus_01krdgeqcxet5s7t44vh8rt9mg"
},
"description": "After the person finishes, read the saved result using the original workspace and connection."
}
]
}
Offers an existing upload session to a signed-in person with asset write access in its workspace. Only the same OAuth connection or API key that created the session can request this fallback. The file, metadata, capacity reservation and one-hour deadline stay unchanged. Repeating the request returns the same page for a pending session. A non-pending session returns its current state without a browser URL. Enabling the handoff allows any currently authorized person in that workspace to complete or cancel it, independently of the original connection's continued access. The person must select matching file bytes; opening the page never publishes them.
Parametry
upload_idstringID of the media-library upload session.
Treść odpowiedzi
sessionThe original upload session and any saved publication receipt. In this response, session.next is empty; follow the top-level next steps.
browser_urlBird page for a pending session, or null when it no longer accepts an upload. The link grants no access; the person must sign in and have asset write permission in the workspace.
nextOrdered steps to finish the fallback or read its outcome.
Pokaż atrybuty podrzędne
next.kindWhat you do about this step.
operation: call the operation named inoperation, then read again.external: act somewhere this API does not reach, then read again.wait: nothing is asked of you, so read again later.terminal: nothing you do resolves this, so stop retrying.
Tolerate a value you do not recognize: show the description and
offer no action.
Possible values (may grow over time): operation, external, wait, terminal
next.descriptionA short, human-readable label for the step, suitable for display.
next.operationThe operationId to call. Present only when kind is operation. The operation's own schema says how to call it; this says only which one, and what to address it with.
next.paramsThe parameters that address the operation, by name: {"sender_id": "…"} for an operation on /v1/sms/senders/{sender_id}/requirements. A parameter the operation takes in its query string is given the same way, so an operation addressed as ?subject_id= carries {"subject_id": "…"}. Every parameter the call needs is here, whether its value came from the thing you were acting on or is fixed for this step, so you can make the call from this object alone. Present only when kind is operation and the operation names a subject. A request body, when the operation takes one, is described by the operation's own schema and never appears here.
next.urlA URL to open. Present only when kind is external, and only when the step has one. An external step whose description says to go and do something with no URL to open is normal.
Powiązane zasoby
Przejdź do dokumentacji, przewodników i przykładów dotyczących tego tematu.