Apache Airflow User API

The User API from Apache Airflow — 2 operation(s) for user.

Operations 5

GET /users Apache Airflow List Users #
POST /users Apache Airflow Create a User #
DELETE /users/{username} Apache Airflow Delete a User #
GET /users/{username} Apache Airflow Get a User #
PATCH /users/{username} Apache Airflow Update a User #

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/apache-airflow-user-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

apache-airflow-user-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: dev@airflow.apache.org
    name: Apache Software Foundation
    url: https://airflow.apache.org
    x-twitter: TheASF
  description: '# Overview


    To facilitate management, Apache Airflow supports a range of REST API endpoints across its

    objects.'
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  title: Airflow API (Stable) User API
  version: 2.5.3
  x-apisguru-categories:
  - messaging
  x-logo:
    url: https://twitter.com/TheASF/profile_image?size=original
  x-origin:
  - format: openapi
    url: https://airflow.apache.org/docs/apache-airflow/stable/_specs/v1.yaml
    version: '3.0'
  x-providerName: apache.org
  x-serviceName: airflow
servers:
- description: Apache Airflow Stable API.
  url: /api/v1
- url: https://apache.local
security: []
tags:
- name: User
paths:
  /users:
    get:
      description: 'Get a list of users.


        *New in version 2.1.0*'
      operationId: get_users
      parameters:
      - $ref: '#/components/parameters/PageLimit'
      - $ref: '#/components/parameters/PageOffset'
      - $ref: '#/components/parameters/OrderBy'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserCollection'
          description: Success.
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/PermissionDenied'
      summary: Apache Airflow List Users
      tags:
      - User
      x-openapi-router-controller: airflow.api_connexion.endpoints.user_endpoint
    post:
      description: 'Create a new user with unique username and email.


        *New in version 2.2.0*'
      operationId: post_user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: Success.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/PermissionDenied'
        '409':
          $ref: '#/components/responses/AlreadyExists'
      summary: Apache Airflow Create a User
      tags:
      - User
      x-openapi-router-controller: airflow.api_connexion.endpoints.user_endpoint
  /users/{username}:
    parameters:
    - $ref: '#/components/parameters/Username'
    delete:
      description: 'Delete a user with a specific username.


        *New in version 2.2.0*'
      operationId: delete_user
      responses:
        '204':
          description: Success.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/PermissionDenied'
        '404':
          $ref: '#/components/responses/NotFound'
      summary: Apache Airflow Delete a User
      tags:
      - User
      x-openapi-router-controller: airflow.api_connexion.endpoints.user_endpoint
    get:
      description: 'Get a user with a specific username.


        *New in version 2.1.0*'
      operationId: get_user
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserCollectionItem'
          description: Success.
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/PermissionDenied'
        '404':
          $ref: '#/components/responses/NotFound'
      summary: Apache Airflow Get a User
      tags:
      - User
      x-openapi-router-controller: airflow.api_connexion.endpoints.user_endpoint
    patch:
      description: 'Update fields for a user.


        *New in version 2.2.0*'
      operationId: patch_user
      parameters:
      - $ref: '#/components/parameters/UpdateMask'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserCollectionItem'
          description: Success.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/PermissionDenied'
        '404':
          $ref: '#/components/responses/NotFound'
      summary: Apache Airflow Update a User
      tags:
      - User
      x-openapi-router-controller: airflow.api_connexion.endpoints.user_endpoint
components:
  schemas:
    UserCollectionItem:
      description: 'A user object.


        *New in version 2.1.0*

        '
      properties:
        active:
          description: Whether the user is active
          readOnly: true
          type:
          - boolean
          - 'null'
        changed_on:
          description: The date user was changed
          format: datetime
          readOnly: true
          type:
          - string
          - 'null'
        created_on:
          description: The date user was created
          format: datetime
          readOnly: true
          type:
          - string
          - 'null'
        email:
          description: 'The user''s email.


            *Changed in version 2.2.0*: A minimum character length requirement (''minLength'') is added.

            '
          minLength: 1
          type: string
        failed_login_count:
          description: The number of times the login failed
          readOnly: true
          type:
          - integer
          - 'null'
        first_name:
          description: 'The user''s first name.


            *Changed in version 2.4.0*: The requirement for this to be non-empty was removed.

            '
          type: string
        last_login:
          description: The last user login
          format: datetime
          readOnly: true
          type:
          - string
          - 'null'
        last_name:
          description: 'The user''s last name.


            *Changed in version 2.4.0*: The requirement for this to be non-empty was removed.

            '
          type: string
        login_count:
          description: The login count
          readOnly: true
          type:
          - integer
          - 'null'
        roles:
          description: 'User roles.


            *Changed in version 2.2.0*: Field is no longer read-only.

            '
          items:
            properties:
              name:
                type: string
            type:
            - object
            - 'null'
          type: array
        username:
          description: 'The username.


            *Changed in version 2.2.0*: A minimum character length requirement (''minLength'') is added.

            '
          minLength: 1
          type: string
      type: object
    Error:
      description: '[RFC7807](https://tools.ietf.org/html/rfc7807) compliant response.

        '
      properties:
        detail:
          description: A human-readable explanation specific to this occurrence of the problem.
          type: string
        instance:
          description: 'A URI reference that identifies the specific occurrence of the problem. It may or may

            not yield further information if dereferenced.

            '
          type: string
        status:
          description: The HTTP status code generated by the API server for this occurrence of the problem.
          type: number
        title:
          description: A short, human-readable summary of the problem type.
          type: string
        type:
          description: 'A URI reference [RFC3986] that identifies the problem type. This specification

            encourages that, when dereferenced, it provide human-readable documentation for

            the problem type.

            '
          type: string
      required:
      - type
      - title
      - status
      type: object
    User:
      allOf:
      - $ref: '#/components/schemas/UserCollectionItem'
      - properties:
          password:
            type: string
            writeOnly: true
        type: object
      description: 'A user object with sensitive data.


        *New in version 2.1.0*

        '
      type: object
    UserCollection:
      allOf:
      - properties:
          users:
            items:
              $ref: '#/components/schemas/UserCollectionItem'
            type: array
        type: object
      - $ref: '#/components/schemas/CollectionInfo'
      description: 'Collection of users.


        *New in version 2.1.0*

        '
      type: object
    CollectionInfo:
      description: Metadata about collection.
      properties:
        total_entries:
          description: 'Count of total objects in the current result set before pagination parameters

            (limit, offset) are applied.

            '
          type: integer
      type: object
  parameters:
    Username:
      description: 'The username of the user.


        *New in version 2.1.0*

        '
      in: path
      name: username
      required: true
      schema:
        type: string
    UpdateMask:
      description: 'The fields to update on the resource. If absent or empty, all modifiable fields are updated.

        A comma-separated list of fully qualified names of fields.

        '
      explode: false
      in: query
      name: update_mask
      schema:
        items:
          type: string
        type: array
      style: form
    PageOffset:
      description: The number of items to skip before starting to collect the result set.
      in: query
      name: offset
      required: false
      schema:
        minimum: 0
        type: integer
    OrderBy:
      description: 'The name of the field to order the results by.

        Prefix a field name with `-` to reverse the sort order.


        *New in version 2.1.0*

        '
      in: query
      name: order_by
      required: false
      schema:
        type: string
    PageLimit:
      description: The numbers of items to return.
      in: query
      name: limit
      required: false
      schema:
        default: 100
        type: integer
  responses:
    AlreadyExists:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: An existing resource conflicts with the request.
    Unauthenticated:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Request not authenticated due to missing, invalid, authentication info.
    NotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: A specified resource is not found.
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Client specified an invalid argument.
    PermissionDenied:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Client does not have sufficient permission.
  securitySchemes:
    Basic:
      scheme: basic
      type: http
    GoogleOpenId:
      openIdConnectUrl: https://accounts.google.com/.well-known/openid-configuration
      type: openIdConnect
    Kerberos:
      scheme: negotiate
      type: http
externalDocs:
  url: https://airflow.apache.org/docs/apache-airflow/stable/