Skip to main content
Local files use one shared upload flow: reserve temporary storage, PUT the file’s bytes, then pass its upload ID to the operation that will use it. That last operation determines whether the file becomes Brand evidence, a Library image, or a font asset. Selecting an image as a logo or assigning a font to Heading or Body requires a further profile update. If your file already has a public URL, pass the URL directly to a supported consuming operation and skip staging.

Stage the file

  1. Call Upload files (POST /uploads) in REST or bloom_create_upload_urls in MCP to reserve temporary storage and receive upload instructions. Use the workspace where the file will be consumed.
  2. PUT the raw file bytes to the returned upload URL using the returned method and required headers. Do not send multipart form data.
  3. After the PUT succeeds, pass uploadId in REST or upload_id in MCP to the destination below before the upload expires. There is no separate confirmation request.
POST /uploads accepts 1–30 files, up to 100 MiB per file and 256 MiB combined. It returns uploadId, uploadUrl, method, required headers, and expiresAt for each file. The destination applies its own validation, so a successful PUT does not mean the file has been accepted there. Temporary uploads are private and belong to one workspace. Authorized operations in that workspace can reuse an upload until it expires. Staging alone creates no Brand source, Library image, font asset, or logo. For an existing Brand, use its workspace when reserving the upload. For a new Brand, use the same workspace for staging and onboarding. In MCP, read an existing Brand’s workspace_id with list_brands or get_brand; omit it only when staging and consumption both use the personal workspace.

Choose a REST destination

The public REST API supports these destinations: The existing-Brand source, logo, and font workflows below depend on account-specific MCP capabilities. They are not part of the public REST reference.

Choose an MCP destination

After staging with bloom_create_upload_urls and completing the PUT, use the matching public tool: Other destinations require Brand editing or profile capabilities available to the connected account: Read the connected account’s live tools/list before constructing requests. Its schemas define which capabilities are available and the exact sequence and fields for each workflow. See Available tools for the public capability map.