Sign inGet Started

Create a media-library upload session

POST
/v1/asset-upload-sessions
const { readFile } = await import("node:fs/promises");
const { createHash, randomUUID } = await import("node:crypto");
const data = await readFile("invoice.pdf");
const upload = await bird.assets.uploads.create({
  client_reference: randomUUID(),
  file: {
    filename: "invoice.pdf",
    content_type: "application/pdf",
    size_bytes: data.length,
    sha256: createHash("sha256").update(data).digest("hex"),
  },
});
console.log(upload.id);
Reactie200
{
  "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"
    }
  ]
}

Creates or recovers a session. An upload instruction is omitted when the session is no longer pending or another instruction was issued within the last 30 seconds; follow the returned state and next steps. Repeating the same client reference with identical input recovers its original session. A changed request with that reference is refused. Upload instructions can be refreshed after 30 seconds. Creating a session does not publish the file. Completion publishes it at a permanent public URL.

In each region, you can have up to 20 unexpired sessions per workspace, 100 per organization, and 500 MiB of reserved source bytes per organization. A new session reserves file.size_bytes; a request that would exceed a limit returns 429 with E20021. Replaying an existing session does not reserve capacity again.

Sessions count toward the session limits until their one-hour expiry, including completed and cancelled sessions. Completing, cancelling, or expiring a session does not immediately release its reserved bytes: issued upload URLs must expire and cleanup must succeed. Retry new creates after capacity becomes available.

Verzoekpayload

client_reference
string
verplicht

Caller-generated UUID for this upload intent. Retries with identical input recover the same session while its receipt is retained.

file
object
verplicht

Exact 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.

Onderliggende parameters tonen
name
string

Display name. Omitted or blank names default to the sanitized filename.

alt_text
string

Default alternative text for the asset.

folder_id
string

Destination folder in this workspace. Omit it to use the library root.

Response Payload

id
string
verplicht
state
string
verplicht

Upload 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_at
string
verplicht

Absolute session expiry. Completion must finish before this deadline; starting it or refreshing an upload instruction does not extend it.

name
string
verplicht

Frozen display name for a newly published asset.

alt_text
nullable string
verplicht

Frozen alternative text, or null when omitted.

folder_id
nullable string
verplicht

Frozen destination folder, or null for the library root.

file
object
verplicht

Exact 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.

Onderliggende attributen tonen
result
nullable object
verplicht

Saved publication receipt, or null until completed.

Onderliggende attributen tonen
last_error
nullable object
verplicht

Last completion error, or null when no failure is recorded.

Onderliggende attributen tonen
last_error.code
string
verplicht

Bird error code for the failed attempt.

next
array of object
verplicht

Available next steps for this session.

Onderliggende attributen tonen
upload
object

Send the original file bytes to this URL with the exact headers and content length. Send no Bird credentials or cookies. Keep the URL private and call complete after the PUT succeeds.

Onderliggende attributen tonen

Ga verder met de documentatie, handleidingen en voorbeelden voor dit onderwerp.