Budibase Users API

Manage Budibase users.

OpenAPI Specification

budibase-users-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Budibase Public Applications Users API
  description: 'The Budibase Public API provides programmatic access to Budibase applications, tables,

    rows, users, and queries. Authentication is via an API key in the `x-budibase-api-key`

    header generated from the Budibase portal user dropdown menu.


    Data endpoints (tables and rows) additionally require the `x-budibase-app-id` header

    identifying the target application.

    '
  version: '1.0'
  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
servers:
- url: https://budibase.app/api/public/v1
  description: Budibase Cloud Public API
- url: https://{selfhosted}/api/public/v1
  description: Self-hosted Budibase
  variables:
    selfhosted:
      default: budibase.example.com
      description: Hostname of the self-hosted Budibase instance
security:
- apiKeyAuth: []
tags:
- name: Users
  description: Manage Budibase users.
paths:
  /users:
    get:
      tags:
      - Users
      summary: Search for users
      operationId: searchUsers
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NameSearch'
      responses:
        '200':
          description: Search results
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
    post:
      tags:
      - Users
      summary: Create a user
      operationId: createUser
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserInput'
      responses:
        '200':
          description: Created user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
  /users/{id}:
    parameters:
    - $ref: '#/components/parameters/IdPath'
    get:
      tags:
      - Users
      summary: Retrieve a user
      operationId: getUser
      responses:
        '200':
          description: User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
    put:
      tags:
      - Users
      summary: Update a user
      operationId: updateUser
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserInput'
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
    delete:
      tags:
      - Users
      summary: Delete a user
      operationId: deleteUser
      responses:
        '200':
          description: Deleted
components:
  schemas:
    UserInput:
      type: object
      required:
      - email
      properties:
        email:
          type: string
        password:
          type: string
        roles:
          type: object
          additionalProperties:
            type: string
        builder:
          type: object
          properties:
            global:
              type: boolean
        admin:
          type: object
          properties:
            global:
              type: boolean
    User:
      allOf:
      - $ref: '#/components/schemas/UserInput'
      - type: object
        properties:
          _id:
            type: string
          createdAt:
            type: string
            format: date-time
          updatedAt:
            type: string
            format: date-time
    NameSearch:
      type: object
      properties:
        name:
          type: string
        paginate:
          type: boolean
        bookmark:
          type: string
        sort:
          type: object
          properties:
            order:
              type: string
              enum:
              - ascending
              - descending
            type:
              type: string
              enum:
              - string
              - number
  parameters:
    IdPath:
      name: id
      in: path
      required: true
      schema:
        type: string
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-budibase-api-key
      description: API key generated from the Budibase portal user dropdown menu.