Skip to main content

Documentation Index

Fetch the complete documentation index at: https://www.trybloom.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

Bloom API Bloom is a brand-aware image generation platform. You give it a brand, it gives you images that look like they belong to that brand — on-palette, on-tone, on-aesthetic, without prompt gymnastics. The REST API exposes the same engine for integrations, automations, and platforms. This page walks through the first end-to-end call in four short steps: list your brands, start a generation, pick up the result.

1. Create an API key

Open your account settings and generate a key. Treat it as a secret — never commit it or expose it client-side.
export BLOOM_API_KEY=bloom_sk_...

2. Get a brand ID

Image generations are scoped to a brand. You need a brandSessionId — either pick an existing brand or create a new one from a URL.
List your brands and copy any id:
curl https://www.trybloom.ai/api/v1/brands \
  -H "x-api-key: $BLOOM_API_KEY"
Pick one. Its id is the brandSessionId you’ll use next.

3. Start a generation

Generations are asynchronous. Bloom queues the job and returns 202 immediately with the image ID.
curl -X POST https://www.trybloom.ai/api/v1/images/generations \
  -H "x-api-key: $BLOOM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "brandSessionId": "<id from step 2>",
    "prompt": "Hero image for a spring product launch."
  }'
The response includes the image ID(s) you’ll poll next.

4. Retrieve the image

Hit GET /images/{id} to check status. Pass wait=true to hold the connection open until the generation reaches a terminal state — no polling loop needed:
curl "https://www.trybloom.ai/api/v1/images/<image_id>?wait=true" \
  -H "x-api-key: $BLOOM_API_KEY"
A successful response includes the URL of the finished image. For batch flows, the list endpoint accepts ids=...&wait=true to collect many images in one call.

Response format

Successful responses are wrapped in a data envelope:
{
  "data": {
    "id": "a1b2c3d4-...",
    "status": "completed",
    "imageUrl": "https://storage.trybloom.ai/..."
  }
}
Each endpoint’s exact data shape is documented in the API reference.

Error format

Failed responses use a consistent envelope:
{
  "error": {
    "code": "NOT_FOUND",
    "status": 404,
    "message": "Brand not found"
  }
}
Branch retries on code; treat message as human-readable only.