Budibase · OpenAPI Overlay 1.0.0

API Evangelist enhancements for Budibase API

6 actions 6 updates documentation extends budibase-public-api-openapi.yml
Derived by API Evangelist Built from the contracts Budibase publishes. Budibase did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

externalDocsx-apis-io-profilex-providercontactlicensex-rate-limitx-idempotencyx-error-envelope

Targets 4

$
$.info
$.paths.*[?(@.operationId)].responses
$.components.schemas

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for Budibase API
  version: 1.0.0
extends: budibase-public-api-openapi.yml
x-generated: '2026-09-04'
x-method: generated
x-source: API Evangelist enrichment pipeline; every added value traces to a probe or a Budibase document
  cited in the action description.
x-note: Non-destructive. This overlay is never applied to openapi/budibase-public-api-openapi.yml — the
  original stays exactly as Budibase publishes it (the harvested first-party Budibase Public API spec).
actions:
- target: $
  description: Attach the provider documentation Budibase publishes for this API.
  update:
    externalDocs:
      description: Budibase Public API documentation
      url: https://docs.budibase.com/docs/public-api
- target: $.info
  description: Record the API Evangelist profile, the licence and the provider contact on the contract.
  update:
    x-apis-io-profile: https://apis.io/provider/budibase
    x-provider: Budibase
    contact:
      name: Budibase
      url: https://docs.budibase.com/docs/public-api
    license:
      name: GPL-3.0
      url: https://github.com/Budibase/budibase/blob/master/LICENSE
- target: $.info
  description: 'Record the runtime facts Budibase does not document in the contract: the measured rate
    limit, the absence of idempotency, and the error envelope.'
  update:
    x-rate-limit:
      limit: 10
      window: 1 second
      headers:
      - x-ratelimit-limit
      - x-ratelimit-remaining
      - x-ratelimit-reset
      retry_after: false
      method: probed
      observed: '2026-09-04'
      source: rate-limits/budibase-rate-limits.yml
    x-idempotency:
      supported: false
      coverage: none
      source: conventions/budibase-conventions.yml
    x-error-envelope:
      content_type: application/json
      shape: '{ "message": <string>, "status": <int> }'
      rfc9457: false
      documented_in_spec: false
      source: errors/budibase-problem-types.yml
- target: $
  description: Budibase declares no tags at the document root even though every operation is tagged. Declare
    them so tooling can group the surface.
  update:
    tags:
    - name: Applications
      description: Manage Budibase applications.
    - name: Workspaces
      description: Manage Budibase workspaces.
    - name: Tables
      description: Manage data tables inside a workspace.
    - name: Rows
      description: Manage rows inside a table.
    - name: Views
      description: Manage views over tables.
    - name: Users
      description: Manage Budibase users.
    - name: Roles
      description: Assign and unassign user roles.
    - name: Queries
      description: Search and execute saved datasource queries.
    - name: Metrics
      description: Workspace operational metrics.
- target: $.paths.*[?(@.operationId)].responses
  description: Budibase documents ZERO error responses across the whole contract. Add the errors this
    pipeline actually observed against the production host on 2026-09-04, so a generated client has an
    error model.
  update:
    '400':
      description: Invalid API key or invalid app ID. Budibase returns 400 — not 401 — for a missing or
        unrecognised x-budibase-api-key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/budibaseError'
          examples:
            invalidApiKey:
              value:
                message: Invalid API key provided, please check the x-budibase-api-key header.
                status: 400
    '401':
      description: Session not authenticated.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/budibaseError'
    '403':
      description: Workspace ID missing, or the key owner lacks the Admin/Builder role.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/budibaseError'
    '404':
      description: 'Path not found. NOTE: this response body is plain text "Not Found", not the JSON envelope.'
      content:
        text/plain:
          schema:
            type: string
- target: $.components.schemas
  description: Define the observed error envelope so the added error responses resolve.
  update:
    budibaseError:
      type: object
      description: The Budibase error envelope, observed live 2026-09-04. Carries no machine-readable
        code.
      required:
      - message
      - status
      properties:
        message:
          type: string
          description: Human-readable description of the failure. Not contractually stable.
        status:
          type: integer
          description: The HTTP status, repeated in the body.

Work with this as data

Every overlay 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 openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • 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 overlay
curl "https://apis.io/api/v1/overlays/budibase-public-api-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?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.