Skip to main content
Bloom API Make your first generation through Bloom’s REST API. Select a ready brand, request a Brief and then start a generation using its guidance. This example creates an image.

1. Authenticate

For server-side automations, open your account settings and generate an API key. Store it as BLOOM_API_KEY in your environment or secret manager before running the examples below. Treat it as a secret — never commit it or expose it client-side. App integrations can use Bloom OAuth instead and call the API with Authorization: Bearer <access_token>. See API authentication for the OAuth endpoints and PKCE requirements.

2. Get a Brand ID

Pick an existing brand or create one from your sources. Its Brand ID is the brandSessionId used in the requests below.
List your brands and copy any id:
Pick a brand whose status is ready. Its id is the brandSessionId you’ll use next. If the brand is still analyzing, continue to step 3.

3. Wait for the brand

Pass wait=true to wait for the current brand analysis:
Each call waits for a bounded period. If the response still has status: "analyzing", call the same endpoint again with the same Brand ID. Continue only when the brand is ready. If the brand is failed, show failure.message and follow Handle failures for retries.

4. Request a Brief

Describe what you want to make:
Use the returned data.id to retrieve the Brief:
Repeat the read while pending or processing. Once completed, use data.guidance and relevant data.assets to prepare the model input. The Brand ID scopes a generation; it does not add context automatically. See Request a Brief for details and failure handling.

5. Make your first generation

Find an image model, then read its input schema. This example uses openai/gpt-image-1.5:
Build input according to the returned inputSchema. Replace the example prompt below with your task and the Brief’s guidance; include relevant assets where the model supports them. Generations run asynchronously and can return multiple outputs. The initial response contains a generation ID.
Save data.id to retrieve the result:

6. Retrieve the result

Call GET /generations/{id} with wait=true to wait for the result:
When data.status is completed, each entry in data.outputs contains a file’s url and mimeType. If the status is still pending or generating, repeat the same read. If it is failed, read data.failure before retrying. The API reference defines the complete request and response contracts.