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 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.
Brand already in Bloom
Onboard your brand
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. Onboard a brand from a website or Instagram URL. Bloom extracts the brand identity and starts visual DNA analysis in the background:curl -X POST https://www.trybloom.ai/api/v1/brands \
-H "x-api-key: $BLOOM_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://acme.com" }'
The response returns the new brand’s id immediately. Use it as brandSessionId in the next step — you can start generating right away; visual DNA analysis runs in parallel.
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.
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.
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.