> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trybloom.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Start a generation

> Generate an image, video, audio, or SVG with a selected model. Returns 202 with a generation ID; use `GET /generations/{id}` to check the status and retrieve the files. Include any brand guidance in the model's input fields. Bloom does not apply the Brand Skill automatically.



## OpenAPI

````yaml https://www.trybloom.ai/api/v1/spec.json post /generations
openapi: 3.1.1
info:
  title: Bloom API
  version: 1.0.0
servers:
  - url: https://www.trybloom.ai/api/v1
security:
  - apiKey: []
  - bearer: []
tags:
  - name: Account
    description: >-
      Inspect the authenticated account — profile, credit balance, and
      accessible workspaces.
  - name: Brands
    description: Manage brands and brand identity.
  - name: Images
    description: Generate, edit, and retrieve images.
  - name: Models
    description: Find available models and check their inputs.
  - name: Generations
    description: Generate images, video, audio, and SVG, then retrieve the results.
  - name: Uploads
    description: >-
      Stage private local files for Brand sources, Library images, and other
      supported operations.
paths:
  /generations:
    post:
      tags:
        - Generations
      summary: Start a generation
      description: >-
        Generate an image, video, audio, or SVG with a selected model. Returns
        202 with a generation ID; use `GET /generations/{id}` to check the
        status and retrieve the files. Include any brand guidance in the model's
        input fields. Bloom does not apply the Brand Skill automatically.
      operationId: generations.create
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                brandSessionId:
                  type: string
                  format: uuid
                  description: >-
                    ID of a brand you can access. Bloom uses it to check access
                    and store the generated files under that brand.
                type:
                  enum:
                    - image
                    - video
                    - audio
                    - svg
                  type: string
                  description: >-
                    Type of file to generate. Must match the selected model's
                    type.
                model:
                  type: string
                  minLength: 1
                  description: Exact model ID from GET /models.
                input:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties: {}
                  description: >-
                    Inputs for the selected model. Must match the inputSchema
                    returned by GET /models/{creator}/{model}.
              required:
                - brandSessionId
                - type
                - model
                - input
      responses:
        '202':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      generationId:
                        type: string
                        format: uuid
                        description: >-
                          Generation ID. Use it with GET /generations/{id} to
                          check the status and retrieve the files.
                      status:
                        const: pending
                        description: >-
                          The request was accepted. Check the generation ID for
                          progress and the final result.
                    required:
                      - generationId
                      - status
                required:
                  - data
        '400':
          description: '400'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerationsCreate400ErrorResponse'
        '401':
          description: '401'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerationsCreate401ErrorResponse'
        '403':
          description: '403'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerationsCreate403ErrorResponse'
        '404':
          description: '404'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerationsCreate404ErrorResponse'
        '429':
          description: '429'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerationsCreate429ErrorResponse'
          headers:
            Retry-After:
              description: >-
                Seconds until the API-key request limit resets. Present only
                when the request-rate limiter can calculate the delay.
              schema:
                type: integer
                minimum: 0
        '503':
          description: '503'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerationsCreate503ErrorResponse'
components:
  schemas:
    GenerationsCreate400ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: MODEL_TYPE_MISMATCH
                    status:
                      const: 400
                    message:
                      type: string
                      default: Model does not generate the requested type
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      const: INVALID_INPUT
                    status:
                      const: 400
                    message:
                      type: string
                      default: Invalid generation input
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    GenerationsCreate401ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: UNAUTHORIZED
                    status:
                      const: 401
                    message:
                      type: string
                      default: Invalid or missing API credentials
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    GenerationsCreate403ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: ACCOUNT_BANNED
                    status:
                      const: 403
                    message:
                      type: string
                      default: This account has been suspended.
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      const: FORBIDDEN
                    status:
                      const: 403
                    message:
                      type: string
                      default: Plan upgrade required
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    GenerationsCreate404ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: MODEL_NOT_FOUND
                    status:
                      const: 404
                    message:
                      type: string
                      default: Generation model not found
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      const: BRAND_NOT_FOUND
                    status:
                      const: 404
                    message:
                      type: string
                      default: Brand not found
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    GenerationsCreate429ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: TOO_MANY_REQUESTS
                    status:
                      const: 429
                    message:
                      type: string
                      default: Rate limit exceeded
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    GenerationsCreate503ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: CATALOG_UNAVAILABLE
                    status:
                      const: 503
                    message:
                      type: string
                      default: Could not load generation models
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    ApiError:
      type: object
      properties:
        code:
          type: string
        status:
          type: integer
        message:
          type: string
        data: {}
      required:
        - code
        - status
        - message
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: 'Bloom API key, for example `x-api-key: bloom_sk_...`.'
    bearer:
      type: http
      scheme: bearer
      description: Bloom API key (`Bearer bloom_sk_...`) or Bloom OAuth access token.

````