
1. Authenticate
For server-side automations, open your account settings and generate an API key. Store it asBLOOM_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
Image generations are scoped to a brand. You need abrandSessionId: pick an existing brand or create one from your sources.
- Existing brand
- Create a brand
List your brands and copy any Pick a brand whose
id: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
Passwait=true to wait for the current brand analysis:
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. Start a generation
Start generation using the ready Brand ID:data.ids. Generation continues while you retrieve the result in the next step. If Bloom reports that the brand is not ready, return to step 3 before retrying.
5. Retrieve the image
CallGET /images/{id} to check the status. Pass wait=true to hold the connection open while the generation runs:
data.imageUrl. If data.status is still pending or generating, call the same endpoint again. If it is failed, read the returned failure information before retrying.
Continue with Generate images, Edit a brand, or Retrieve and use a Brand Skill. The API reference defines the complete public contract.