Bloom Models API

Find available models and check their inputs.

Operations 2

GET /models List models #
GET /models/{provider}/{model} Get a model #

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/trybloom:trybloom-models-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

trybloom-models-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Rainbrand Models API
  version: 1.0.0
  description: Find available models and check their inputs.
servers:
- url: https://www.rainbrand.com/api/v1
security:
- apiKey: []
- bearer: []
- oauth: []
tags:
- name: Models
  description: Find available models and check their inputs.
paths:
  /models:
    get:
      operationId: models.list
      summary: List models
      description: Find a model for the type of file you want to create, then read its input schema before generating.
      tags:
      - Models
      parameters:
      - name: type
        in: query
        schema:
          enum:
          - image
          - video
          - audio
          - svg
          type: string
          description: Filter by the type of file the model generates.
        allowEmptyValue: true
        allowReserved: true
      - name: query
        in: query
        schema:
          type: string
          maxLength: 200
          description: Search available models.
        allowEmptyValue: true
        allowReserved: true
      - name: limit
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 50
          default: 20
          description: Maximum number of models to return. Accepts 1–50; defaults to 20.
        allowEmptyValue: true
        allowReserved: true
      - name: cursor
        in: query
        schema:
          type: string
          description: Cursor for the next page. Keep type and query unchanged when using a cursor.
        allowEmptyValue: true
        allowReserved: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      models:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: Exact model ID. Use this value when fetching model details or starting a generation.
                            provider:
                              type: string
                              description: Provider that offers the model.
                            name:
                              type: string
                              description: Display name of the model.
                            type:
                              enum:
                              - image
                              - video
                              - audio
                              - svg
                              type: string
                              description: Type of file the model generates.
                            capabilities:
                              type: array
                              minItems: 1
                              items:
                                enum:
                                - text-to-image
                                - image-to-image
                                - text-to-video
                                - image-to-video
                                - audio-to-video
                                - video-to-video
                                - text-to-speech
                                - music-generation
                                - text-to-svg
                                type: string
                              description: Machine-readable tags identifying the model’s supported operations, such as `text-to-image` or `image-to-video`.
                            description:
                              type: string
                              description: Description of the model and its capabilities.
                          required:
                          - id
                          - provider
                          - name
                          - type
                          - capabilities
                          - description
                        description: Models matching the filters on this page.
                      nextCursor:
                        anyOf:
                        - type: string
                        - type: 'null'
                        description: Pass this value as cursor to get the next page. Null when there are no more results.
                      hasMore:
                        type: boolean
                        description: Whether another page of models is available.
                    required:
                    - models
                    - nextCursor
                    - hasMore
                required:
                - data
              example:
                data:
                  models:
                  - id: openai/gpt-image-2.5-sunburst
                    provider: openai
                    name: GPT Image 2.5 Sunburst
                    description: OpenAI's image model for generation and precise editing when overall image quality is the priority.
                    type: image
                    capabilities:
                    - text-to-image
                    - image-to-image
                  nextCursor: null
                  hasMore: false
        '400':
          description: '400'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsList400ErrorResponse'
        '401':
          description: '401'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsList401ErrorResponse'
        '403':
          description: '403'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsList403ErrorResponse'
        '429':
          description: '429'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsList429ErrorResponse'
          headers:
            Retry-After:
              description: Seconds until the applicable request or operation limit resets. Present when the limiter can calculate the delay.
              schema:
                type: integer
                minimum: 0
        '503':
          description: '503'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsList503ErrorResponse'
          headers:
            Retry-After:
              description: Seconds to wait before retrying, when supplied. Temporary billing unavailability includes this header.
              schema:
                type: integer
                minimum: 1
      x-codeSamples:
      - lang: bash
        label: cURL
        source: "curl --request GET \\\n  --url 'https://www.rainbrand.com/api/v1/models' \\\n  --header \"x-api-key: $RAINBRAND_API_KEY\""
  /models/{provider}/{model}:
    get:
      operationId: models.get
      summary: Get a model
      description: Read the input schema for a chosen model.
      tags:
      - Models
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: string
          minLength: 1
          description: First segment of the model ID, before the first slash.
          example: openai
        example: openai
      - name: model
        in: path
        required: true
        schema:
          type: string
          minLength: 1
          description: Remaining model ID after the first slash, URL-encoded as one path segment, including any additional slashes.
          example: gpt-image-2.5-sunburst
        example: gpt-image-2.5-sunburst
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Exact model ID. Use this value when fetching model details or starting a generation.
                      provider:
                        type: string
                        description: Provider that offers the model.
                      name:
                        type: string
                        description: Display name of the model.
                      type:
                        enum:
                        - image
                        - video
                        - audio
                        - svg
                        type: string
                        description: Type of file the model generates.
                      capabilities:
                        type: array
                        minItems: 1
                        items:
                          enum:
                          - text-to-image
                          - image-to-image
                          - text-to-video
                          - image-to-video
                          - audio-to-video
                          - video-to-video
                          - text-to-speech
                          - music-generation
                          - text-to-svg
                          type: string
                        description: Machine-readable tags identifying the model’s supported operations, such as `text-to-image` or `image-to-video`.
                      description:
                        type: string
                        description: Description of the model and its capabilities.
                      inputSchema:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                        description: JSON Schema for the input sent to POST /generations. Where a reference field accepts HTTPS URLs, Rainbrand handles any conversion required by the provider.
                    required:
                    - id
                    - provider
                    - name
                    - type
                    - capabilities
                    - description
                    - inputSchema
                required:
                - data
              example:
                data:
                  id: openai/gpt-image-2.5-sunburst
                  provider: openai
                  name: GPT Image 2.5 Sunburst
                  description: OpenAI's image model for generation and precise editing when overall image quality is the priority.
                  type: image
                  capabilities:
                  - text-to-image
                  - image-to-image
                  inputSchema:
                    $schema: https://json-schema.org/draft/2020-12/schema
                    type: object
                    properties:
                      prompt:
                        description: Text prompt describing the image to generate or edit.
                        type: string
                        minLength: 1
                        maxLength: 32000
                      images:
                        description: Reference images as stable public HTTPS URLs or PNG, JPEG, or WebP data URIs. URL-based references are subject to limits of 16 MiB per image and 64 MiB combined per request.
                        type: array
                        minItems: 1
                        maxItems: 16
                        items:
                          type: string
                      quality:
                        description: Output quality.
                        type: string
                        enum:
                        - medium
                        - high
                        - xhigh
                        - max
                        default: high
                      size:
                        description: Output dimensions.
                        type: string
                        enum:
                        - auto
                        - 1024x1024
                        - 1536x1024
                        - 1024x1536
                        - 2048x2048
                        - 2048x1152
                        default: auto
                      background:
                        description: Background behavior.
                        type: string
                        enum:
                        - transparent
                        - opaque
                        - auto
                        default: auto
                      output_format:
                        description: Generated image format.
                        type: string
                        enum:
                        - png
                        - webp
                        - jpeg
                        default: png
                    required:
                    - prompt
                    allOf:
                    - if:
                        properties:
                          background:
                            const: transparent
                        required:
                        - background
                      then:
                        not:
                          properties:
                            output_format:
                              const: jpeg
                          required:
                          - output_format
                    additionalProperties: false
        '401':
          description: '401'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsGet401ErrorResponse'
        '403':
          description: '403'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsGet403ErrorResponse'
        '404':
          description: '404'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsGet404ErrorResponse'
        '429':
          description: '429'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsGet429ErrorResponse'
          headers:
            Retry-After:
              description: Seconds until the applicable request or operation limit resets. Present when the limiter can calculate the delay.
              schema:
                type: integer
                minimum: 0
        '503':
          description: '503'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsGet503ErrorResponse'
          headers:
            Retry-After:
              description: Seconds to wait before retrying, when supplied. Temporary billing unavailability includes this header.
              schema:
                type: integer
                minimum: 1
      x-codeSamples:
      - lang: bash
        label: cURL
        source: "curl --request GET \\\n  --url 'https://www.rainbrand.com/api/v1/models/openai/gpt-image-2.5-sunburst' \\\n  --header \"x-api-key: $RAINBRAND_API_KEY\""
components:
  schemas:
    ModelsGet404ErrorResponse:
      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:
                  type: string
                status:
                  type: integer
                message:
                  type: string
                data: {}
              required:
              - code
              - status
              - message
      required:
      - error
    ModelsList503ErrorResponse:
      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
    ModelsList403ErrorResponse:
      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:
                  const: FEATURE_NOT_AVAILABLE
                status:
                  const: 403
                message:
                  type: string
                  default: This operation isn't available for this integration.
                data: {}
              required:
              - code
              - status
              - message
            - type: object
              properties:
                code:
                  type: string
                status:
                  type: integer
                message:
                  type: string
                data: {}
              required:
              - code
              - status
              - message
      required:
      - error
    ModelsList400ErrorResponse:
      type: object
      properties:
        error:
          allOf:
          - $ref: '#/components/schemas/ApiError'
          - anyOf:
            - type: object
              properties:
                code:
                  const: INVALID_CURSOR
                status:
                  const: 400
                message:
                  type: string
                  default: Invalid generation model cursor
                data: {}
              required:
              - code
              - status
              - message
            - type: object
              properties:
                code:
                  type: string
                status:
                  type: integer
                message:
                  type: string
                data: {}
              required:
              - code
              - status
              - message
      required:
      - error
    ModelsGet429ErrorResponse:
      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
    ModelsGet401ErrorResponse:
      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
    ModelsList401ErrorResponse:
      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
    ModelsList429ErrorResponse:
      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
    ModelsGet403ErrorResponse:
      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:
                  const: FEATURE_NOT_AVAILABLE
                status:
                  const: 403
                message:
                  type: string
                  default: This operation isn't available for this integration.
                data: {}
              required:
              - code
              - status
              - message
            - type: object
              properties:
                code:
                  type: string
                status:
                  type: integer
                message:
                  type: string
                data: {}
              required:
              - code
              - status
              - message
      required:
      - error
    ModelsGet503ErrorResponse:
      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
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: 'Rainbrand API key, for example `x-api-key: bloom_sk_...`.'
    bearer:
      type: http
      scheme: bearer
      description: Rainbrand API key (`Bearer bloom_sk_...`) or Rainbrand OAuth access token.
    oauth:
      type: oauth2
      description: Authorization Code with PKCE S256. See [Authentication](https://docs.rainbrand.com/api/authentication).
      flows:
        authorizationCode:
          authorizationUrl: https://www.rainbrand.com/api/auth/oauth2/authorize
          tokenUrl: https://www.rainbrand.com/api/auth/oauth2/token
          scopes:
            openid: Authenticate the user's identity with OpenID Connect.
            offline_access: Request a refresh token for access when the user is offline.