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

# List available database engines

> **API key scope:** `project.read`



## OpenAPI

````yaml /api-reference/core.openapi.yaml get /v1/projects/available-databases
openapi: 3.0.3
info:
  title: Brimble API
  version: 1.0.0
  description: >
    The Brimble API lets you deploy and manage projects, databases, domains,
    sandboxes, object storage and more.


    ## Base URL


    All endpoints are relative to `https://api.brimble.io/core`, for example
    `GET https://api.brimble.io/core/v1/projects`.


    ## Authentication


    Create an API key in the dashboard under **Settings → API keys** and send it
    in the `x-brimble-key` header:


    ```

    x-brimble-key: <your API key>

    ```


    Each API key carries permission scopes such as `project.read` or
    `project.deploy`. Every endpoint lists the scope it needs; a key without
    that scope gets `403`. Dashboard session tokens (`Authorization: Bearer
    <token>`) are also accepted, but integrations should use API keys.


    ## Teams


    Endpoints act on your personal workspace unless you pass a team. Most
    endpoints accept `teamId` (as a query parameter, or in the body for writes).
    API keys created for a team act in that team. Inside a team, your team role
    must also allow the action; each endpoint lists the team permission it
    checks.


    ## Responses


    Successful responses are JSON with this shape:


    ```json

    { "message": "Projects fetched", "data": { } }

    ```


    Errors return a `message`:


    ```json

    { "message": "Project not found", "data": {} }

    ```


    Requests that fail validation return `400` with every invalid field:


    ```json

    { "errors": [{ "type": "field", "msg": "Project name should be provided",
    "path": "name", "location": "body" }] }

    ```


    ## Rate limits


    Requests made with an API key are rate limited. Responses include
    `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` and
    `X-RateLimit-Bucket`. Command execution and file transfer endpoints use
    separate buckets.


    ## Idempotency


    Endpoints that accept an `Idempotency-Key` header return the original result
    when retried with the same key and body, instead of repeating the operation.


    ## Streaming


    Command execution endpoints can stream output as Server-Sent Events
    (`text/event-stream`). Each event is `data: <json>` where the JSON has a
    `type` of `stdout`, `stderr`, `done` or `error`.


    ## Webhooks


    To receive events instead of polling, configure a webhook with `PATCH
    /v1/webhooks`. See the [Webhooks guide](/webhooks/overview) and the [Webhook
    events reference](/webhooks/events) for every payload.
  contact:
    name: Brimble
    url: https://brimble.io
servers:
  - url: https://api.brimble.io/core
    description: Production
security:
  - ApiKeyAuth: []
  - BearerAuth: []
tags:
  - name: Projects
    description: Create, deploy, configure and manage projects.
  - name: Deployments and Logs
    description: Deployment history, build logs and request logs.
  - name: Environments
    description: Project environments (production, staging, previews) and their variables.
  - name: Secrets
    description: >-
      Secrets (environment variables) set on a single project. Not to be
      confused with Environments, which group projects into production, staging
      and preview.
  - name: Webhooks
    description: >-
      Receive events from Brimble at your own endpoint (or a Discord or Slack
      channel). Configure the destination and events with `PATCH /v1/webhooks`;
      use `*` to receive every event.


      See the [Webhooks guide](/webhooks/overview) for setup, and the [Webhook
      events reference](/webhooks/events) for the payload each event delivers.


      | Event | Sent when |

      | --- | --- |

      | `project.created` | A project is created |

      | `project.updated` | A project is updated |

      | `project.deleted` | A project is deleted |

      | `project.domain.updated` | A project domain changes |

      | `deployment.created` | A deployment is queued |

      | `deployment.started` | A deployment starts |

      | `deployment.success` | A deployment succeeds |

      | `deployment.failed` | A deployment fails |

      | `environment.variables.added` | Environment variables are added |

      | `environment.variables.updated` | Environment variables are updated |

      | `environment.variables.deleted` | Environment variables are deleted |

      | `domain.created` | A domain is added |

      | `domain.purchased` | A domain is purchased |

      | `domain.renewed` | A domain is renewed |

      | `domain.expired` | A domain expires |

      | `dns.record.created` | A DNS record is created |

      | `dns.record.updated` | A DNS record is updated |

      | `dns.record.deleted` | A DNS record is deleted |

      | `database.created` | A database is created |

      | `database.backup.completed` | A database backup completes |

      | `autoscaling.group.created` | An autoscaling rule is created |

      | `autoscaling.group.updated` | An autoscaling rule is updated |

      | `autoscaling.group.deleted` | An autoscaling rule is deleted |

      | `payment.successful` | A payment succeeds |

      | `payment.failed` | A payment fails |


      Test deliveries sent with `POST /v1/webhooks/test` include the header
      `X-Brimble-Test: true`.
  - name: Git Providers
    description: Connected git accounts, repositories and linking repositories to projects.
  - name: Domains
    description: Custom domains, DNS records and domain registration.
  - name: Databases
    description: 'Managed databases: provisioning, backups, users and linking to projects.'
  - name: Log Drains
    description: Stream logs to external destinations.
  - name: Sandboxes
    description: Isolated sandboxes for running code, with files and snapshots.
  - name: Object Storage
    description: S3-compatible buckets, objects and credentials.
  - name: Scaling and Networking
    description: Autoscaling rules, networking and CDN cache, and rate limits.
  - name: Teams
    description: Teams, members, invitations and roles.
  - name: Catalog
    description: Regions, frameworks and plans. No authentication required.
paths:
  /v1/projects/available-databases:
    get:
      tags:
        - Databases
      summary: List available database engines
      description: '**API key scope:** `project.read`'
      operationId: listAvailableDatabaseEngines
      responses:
        '200':
          description: Available databases fetched successfully
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - data
                properties:
                  message:
                    type: string
                    example: Available databases fetched successfully
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/IDbImage'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    IDbImage:
      type: object
      properties:
        name:
          type: string
          enum:
            - mysql
            - postgresql
            - mongodb
            - redis
            - wordpress
            - sqlite
            - duckdb
        image_url:
          type: string
        version:
          type: string
        envs:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
              type:
                type: string
            required:
              - value
              - type
        is_available:
          type: boolean
        is_default:
          type: boolean
        backup_supported:
          type: boolean
        restore_supported:
          type: boolean
        pgbouncer_supported:
          type: boolean
        pgvector_supported:
          type: boolean
        manage_user:
          type: boolean
        image:
          type: string
        ha_image:
          type: string
          nullable: true
        free:
          type: boolean
        erd:
          type: boolean
        analytics:
          type: boolean
        has_port:
          type: boolean
        port:
          type: number
        httpPort:
          type: number
          nullable: true
        volumePath:
          type: string
        protocol:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
        tls_enabled:
          type: boolean
        tls_protocol:
          type: string
          nullable: true
        tls_params:
          type: object
          additionalProperties:
            oneOf:
              - type: string
              - type: number
              - type: boolean
          nullable: true
        connection:
          allOf:
            - $ref: '#/components/schemas/IDbImageConnection'
          nullable: true
        ha:
          type: boolean
        workbench:
          type: boolean
        workbench_mode:
          type: string
          enum:
            - sql
            - kv
            - document
        password_mode:
          type: string
          enum:
            - provided
            - generated
        password_change_mode:
          type: string
          enum:
            - live
            - template
        httpTitle:
          type: string
        httpSubtext:
          type: string
        params:
          type: object
          additionalProperties:
            oneOf:
              - type: string
              - type: number
              - type: boolean
        recommendations:
          type: array
          items:
            type: object
            properties:
              cpu:
                type: string
              memory:
                type: string
              storage:
                type: string
            required:
              - cpu
              - memory
              - storage
        _id:
          $ref: '#/components/schemas/ObjectId'
      required:
        - name
        - image_url
        - version
        - envs
        - is_available
        - is_default
        - backup_supported
        - restore_supported
        - pgbouncer_supported
        - pgvector_supported
        - manage_user
        - image
        - free
        - erd
        - analytics
        - has_port
        - port
        - volumePath
        - protocol
        - tls_enabled
        - ha
        - workbench
        - workbench_mode
        - password_mode
        - password_change_mode
        - httpTitle
        - httpSubtext
        - params
        - recommendations
        - _id
    IDbImageConnection:
      type: object
      properties:
        user:
          type: boolean
          nullable: true
        database:
          type: boolean
          nullable: true
        protocol:
          type: string
          nullable: true
        port:
          type: number
          nullable: true
        authEnv:
          type: string
          nullable: true
    ObjectId:
      type: string
      pattern: ^[a-fA-F0-9]{24}$
      example: 6a81bed11470bfcd2a5dbcfa
    ErrorResponse:
      type: object
      required:
        - message
      properties:
        message:
          type: string
          example: Project not found
        data:
          type: object
          example: {}
  responses:
    Unauthorized:
      description: Missing, invalid or expired credentials
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: >-
        The API key lacks the required scope, your team role lacks the
        permission, or the feature is not available on your account
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ServerError:
      description: Unexpected server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-brimble-key
      description: >-
        API key created in the dashboard under Settings → API keys. Each key
        carries permission scopes; every endpoint lists the scope it needs.
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Dashboard session token. Use an API key for integrations.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.