Apache Airflow Role API

The Role API from Apache Airflow — 2 operation(s) for role.

Operations 5

GET /roles Apache Airflow List Roles #
POST /roles Apache Airflow Create a Role #
DELETE /roles/{role_name} Apache Airflow Delete a Role #
GET /roles/{role_name} Apache Airflow Get a Role #
PATCH /roles/{role_name} Apache Airflow Update a Role #

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-role-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-role-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) Role 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: Role
paths:
  /roles:
    get:
      description: 'Get a list of roles.


        *New in version 2.1.0*'
      operationId: get_roles
      parameters:
      - $ref: '#/components/parameters/PageLimit'
      - $ref: '#/components/parameters/PageOffset'
      - $ref: '#/components/parameters/OrderBy'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleCollection'
          description: Success.
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/PermissionDenied'
      summary: Apache Airflow List Roles
      tags:
      - Role
      x-openapi-router-controller: airflow.api_connexion.endpoints.role_and_permission_endpoint
    post:
      description: 'Create a new role.


        *New in version 2.1.0*'
      operationId: post_role
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Role'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
          description: Success.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/PermissionDenied'
      summary: Apache Airflow Create a Role
      tags:
      - Role
      x-openapi-router-controller: airflow.api_connexion.endpoints.role_and_permission_endpoint
  /roles/{role_name}:
    parameters:
    - $ref: '#/components/parameters/RoleName'
    delete:
      description: 'Delete a role.


        *New in version 2.1.0*'
      operationId: delete_role
      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 Role
      tags:
      - Role
      x-openapi-router-controller: airflow.api_connexion.endpoints.role_and_permission_endpoint
    get:
      description: 'Get a role.


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


        *New in version 2.1.0*'
      operationId: patch_role
      parameters:
      - $ref: '#/components/parameters/UpdateMask'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Role'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
          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 Role
      tags:
      - Role
      x-openapi-router-controller: airflow.api_connexion.endpoints.role_and_permission_endpoint
components:
  schemas:
    RoleCollection:
      allOf:
      - properties:
          roles:
            items:
              $ref: '#/components/schemas/Role'
            type: array
        type: object
      - $ref: '#/components/schemas/CollectionInfo'
      description: 'A collection of roles.


        *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
    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
    ActionResource:
      description: 'The Action-Resource item.


        *New in version 2.1.0*

        '
      properties:
        action:
          $ref: '#/components/schemas/Action'
          description: The permission action
          type: object
        resource:
          $ref: '#/components/schemas/Resource'
          description: The permission resource
          type: object
      type: object
    Role:
      description: 'a role item.


        *New in version 2.1.0*

        '
      properties:
        actions:
          items:
            $ref: '#/components/schemas/ActionResource'
          type: array
        name:
          description: 'The name of the role


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

            '
          minLength: 1
          type: string
      type: object
    Resource:
      description: 'A resource on which permissions are granted.


        *New in version 2.1.0*

        '
      properties:
        name:
          description: The name of the resource
          type: string
      type: object
    Action:
      description: 'An action Item.


        *New in version 2.1.0*

        '
      properties:
        name:
          description: The name of the permission "action"
          type: string
      type: object
  parameters:
    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
    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
    PageLimit:
      description: The numbers of items to return.
      in: query
      name: limit
      required: false
      schema:
        default: 100
        type: integer
    RoleName:
      description: The role name
      in: path
      name: role_name
      required: true
      schema:
        type: string
  responses:
    Unauthenticated:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Request not authenticated due to missing, invalid, authentication info.
    PermissionDenied:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Client does not have sufficient permission.
    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.
  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/