# Bloom > Documentation for Bloom — the brand layer for agents, software and marketers. ## Docs - [Get account](https://www.trybloom.ai/docs/api-reference/account/get-account.md): Return basic profile information for the authenticated API key owner. Useful as a whoami probe to verify which account a key belongs to. - [Get credit balance](https://www.trybloom.ai/docs/api-reference/account/get-credit-balance.md): Check the remaining credit balance for a workspace. Defaults to the caller's personal workspace; pass `workspaceId` to query a team workspace's balance. - [List workspaces](https://www.trybloom.ai/docs/api-reference/account/list-workspaces.md): List the workspaces the caller can access. The personal workspace (is_personal: true) is listed first and is the default for create operations (omit workspace_id to use it). List endpoints span all workspaces unless a workspace_id is given. - [Create a brand](https://www.trybloom.ai/docs/api-reference/brands/create-a-brand.md): Queue brand onboarding for a website or Instagram profile URL. Returns 202 with an analyzing brand after the durable workflow is accepted. Call GET /brands/{id}?wait=true and generate only when status is "ready". `collectImages=false` skips background image-library collection, not crawling or visual… - [Delete a brand](https://www.trybloom.ai/docs/api-reference/brands/delete-a-brand.md): Delete a brand by ID. Returns the deleted brand's id, name, and owning workspace. Deleting the same brand twice returns 404. - [Get a brand](https://www.trybloom.ai/docs/api-reference/brands/get-a-brand.md): Get a brand by ID. When status is "ready", the brand can generate images. If status is "logo_required", provide a logo via PUT /brands/{id}/logo. A failed brand includes public-safe failure details. Use wait=true to hold the connection until ready, logo_required, or failed; a timeout returns the cur… - [List brands](https://www.trybloom.ai/docs/api-reference/brands/list-brands.md): List brand sessions with cursor-based pagination. Use the returned IDs as brandSessionId when generating images. - [Update brand logo (file)](https://www.trybloom.ai/docs/api-reference/brands/update-brand-logo-file.md): Update the logo for a brand by uploading raw bytes (multipart/form-data). Use this when the logo is local — for remote URLs, use PUT /brands/{id}/logo. Validates and processes the file (SVG and AVIF are converted to PNG; transparency gets an optimal background), then starts (or restarts) visual DNA… - [Update brand logo (signed)](https://www.trybloom.ai/docs/api-reference/brands/update-brand-logo-signed.md): Update the logo for a brand by uploading raw bytes (multipart/form-data) using a short-lived, single-use token minted via the bloom_create_logo_upload_url MCP tool. The token in the path is the credential — no Authorization header is expected. Same validation/storage pipeline as PUT /brands/{id}/log… - [Update brand logo (url)](https://www.trybloom.ai/docs/api-reference/brands/update-brand-logo-url.md): Update the logo for a brand session. Downloads and validates the logo, then starts (or restarts) visual DNA extraction and returns status "analyzing". For image-based onboarding the stitched collage is preserved as the visual identity, so no extraction runs and status "ready" is returned. Common whe… - [Delete an image](https://www.trybloom.ai/docs/api-reference/images/delete-an-image.md): Delete a single image by ID (generated, uploaded, or scraped). Returns the deleted image's id, source, and owning workspace. Deleting the same image twice returns 404. - [Delete images](https://www.trybloom.ai/docs/api-reference/images/delete-images.md): Delete up to 50 images by id in one call. - [Edit an image](https://www.trybloom.ai/docs/api-reference/images/edit-an-image.md): Edit a previously generated or uploaded image. The prompt describes what to change. Aspect ratio is locked to the original image's ratio. Optionally include referenceImageIds for additional context. Returns immediately with a new image ID. Poll GET /images/{id} to check status and retrieve the resul… - [Generate an image](https://www.trybloom.ai/docs/api-reference/images/generate-an-image.md): Start an image generation. Returns immediately with the image ID(s). Poll GET /images/{id} to check status and retrieve the result. Optionally include referenceImageIds for style/content guidance. - [Get an image](https://www.trybloom.ai/docs/api-reference/images/get-an-image.md): Get an image by ID. Use this to poll for generation results. When status is "completed", imageUrl contains a short redirect URL (/img/{id}). Use wait=true to hold the connection until a terminal status is reached. When status is "failed" and failureReason is "content_safety", the prompt was blocked… - [List images](https://www.trybloom.ai/docs/api-reference/images/list-images.md): List images scoped to a brand or across all brands, with cursor-based pagination. Supports filtering by status and action type. Returns short redirect URLs (/img/{id}) for completed images by default. When `ids` is provided, pass `wait=true` to hold the connection until every referenced image reache… - [Remove the background from an image](https://www.trybloom.ai/docs/api-reference/images/remove-the-background-from-an-image.md): Strip the background from an image and return a transparent PNG. Works on generated images (must be completed) and uploaded/scraped images. Returns immediately with a new image ID; the cutout typically completes in under 10 seconds. Poll GET /images/{id} to check status and retrieve the result. - [Resize an image](https://www.trybloom.ai/docs/api-reference/images/resize-an-image.md): Resize a completed image to a different aspect ratio. Returns immediately with a new image ID. Poll GET /images/{id} to check status and retrieve the result. - [Semantic Search](https://www.trybloom.ai/docs/api-reference/images/semantic-search.md): Semantic search (powered by vector embeddings) over the brand session's library images, ranked nearest-first. Library images are those whose `source` is `uploaded` (added by the user) or `scraped` (pulled in during onboarding) — generated images are excluded. Pass `cursor` from the previous response… - [Upload an image (file)](https://www.trybloom.ai/docs/api-reference/images/upload-an-image-file.md): Upload raw image bytes (multipart/form-data) for use as a reference or edit subject. Use this when the image is local — for remote URLs, use POST /images/uploads. Returns an image ID and URL usable with the generate or edit endpoints. - [Upload an image (signed)](https://www.trybloom.ai/docs/api-reference/images/upload-an-image-signed.md): Upload raw image bytes (multipart/form-data) using a short-lived, single-use token minted via the bloom_create_image_upload_url MCP tool. The token in the path is the credential — no Authorization header is expected. Same validation/storage pipeline as POST /images/uploads/file. Returns an image ID… - [Upload an image (url)](https://www.trybloom.ai/docs/api-reference/images/upload-an-image-url.md): Upload an image by URL for use as a reference or edit subject. The server downloads, validates, and stores the image. Returns the image ID for use with the generate or edit endpoints via referenceImageIds, or as an edit subject via POST /images/{id}/edit. - [Vectorize an image to SVG](https://www.trybloom.ai/docs/api-reference/images/vectorize-an-image-to-svg.md): Vectorize a raster image to SVG. Works on completed generated images and on uploaded/scraped images. Best for logos, icons, and flat artwork; photos give poor results. Returns immediately with a new image ID. Poll GET /images/{id} to check status and retrieve the result. - [Authentication](https://www.trybloom.ai/docs/api/authentication.md): How to authenticate requests to the Bloom API. - [Automation](https://www.trybloom.ai/docs/api/guides/automation.md): Wire Bloom into Zapier, n8n, Make, Gumloop, or any other workflow tool. - [Getting Started](https://www.trybloom.ai/docs/api/index.md): Make your first call to Bloom in five steps. - [OpenAPI](https://www.trybloom.ai/docs/api/openapi.md): OpenAPI v3.1 spec for the Bloom API. - [Usage Limits](https://www.trybloom.ai/docs/api/usage-limits.md): Credits, rate limits, and plan tiers for the Bloom API. - [Ad library](https://www.trybloom.ai/docs/mcp/ad-library.md): Recreate proven, high-performing ads on your brand instead of starting from a blank prompt. - [Connecting your agent](https://www.trybloom.ai/docs/mcp/connect.md): Connect each agent to Bloom MCP — sign in with Bloom, or use a static API key. - [Editing & adapting](https://www.trybloom.ai/docs/mcp/editing-adapting.md): Edit, resize, remove backgrounds, and vectorize an image you already have. - [Generating Images](https://www.trybloom.ai/docs/mcp/generating-images.md): The core loop — using your brand, attaching references, generating, and dialing in format. - [Getting Started](https://www.trybloom.ai/docs/mcp/getting-started.md): Connect Bloom to your agent and generate your first on-brand image. - [Choosing Models](https://www.trybloom.ai/docs/mcp/models.md): The three image model tiers — fast, standard, and pro — and when to use each. - [An ad set from proven formats](https://www.trybloom.ai/docs/mcp/recipes/ad-set.md): Build a campaign's worth of ads on layouts that already perform, instead of guessing. - [A content calendar in one session](https://www.trybloom.ai/docs/mcp/recipes/content-calendar.md): Go from a brand to a full batch of on-brand content, sized for every channel, in one session. - [Product shots without a studio](https://www.trybloom.ai/docs/mcp/recipes/product-shots.md): Turn one iPhone photo into a clean product shot, lifestyle scenes, and a print-ready sticker. ## OpenAPI Specs - [spec](https://www.trybloom.ai/api/v1/spec.json)