Apache Airflow Plugin API

The Plugin API from Apache Airflow — 1 operation(s) for plugin.

Operations 3

GET /plugins Apache Airflow Get a List of Loaded Plugins #
GET /api/v2/plugins Get Plugins #
GET /api/v2/plugins/importErrors Import Errors #

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

OpenAPI Specification

apache-airflow-plugin-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Apache Airflow Plugin API
  x-refined-note:
  - x-apisguru-categories differs across the merged source definitions and was not carried
  - x-logo differs across the merged source definitions and was not carried
  - x-origin differs across the merged source definitions and was not carried
  - x-providerName differs across the merged source definitions and was not carried
  - x-serviceName differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged Plugin across 2 of this provider''s published API definitions: apache-airflow-openapi.yaml, apache-airflow-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- description: Apache Airflow Stable API.
  url: /api/v1
- url: https://apache.local
tags:
- name: Plugin
paths:
  /plugins:
    get:
      description: 'Get a list of loaded plugins.


        *New in version 2.1.0*'
      operationId: get_plugins
      parameters:
      - $ref: '#/components/parameters/PageLimit'
      - $ref: '#/components/parameters/PageOffset'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginCollection'
          description: Success
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/PermissionDenied'
        '404':
          $ref: '#/components/responses/NotFound'
      summary: Apache Airflow Get a List of Loaded Plugins
      tags:
      - Plugin
      x-openapi-router-controller: airflow.api_connexion.endpoints.plugin_endpoint
    servers:
    - description: Apache Airflow Stable API.
      url: /api/v1
    - url: https://apache.local
  /api/v2/plugins:
    get:
      tags:
      - Plugin
      summary: Get Plugins
      operationId: getApiV2Plugins
      security:
      - OAuth2PasswordBearer: []
      - HTTPBearer: []
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          default: 50
          title: Limit
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
          title: Offset
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginCollectionResponse'
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
          description: Forbidden
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-operation-id-source: normalized
      x-operation-id-original: get_plugins
  /api/v2/plugins/importErrors:
    get:
      tags:
      - Plugin
      summary: Import Errors
      operationId: import_errors
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginImportErrorCollectionResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
      security:
      - OAuth2PasswordBearer: []
      - HTTPBearer: []
components:
  responses:
    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.
    Unauthenticated:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Request not authenticated due to missing, invalid, authentication info.
  parameters:
    PageLimit:
      description: The numbers of items to return.
      in: query
      name: limit
      required: false
      schema:
        default: 100
        type: integer
    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
  schemas:
    PluginCollection:
      allOf:
      - properties:
          plugins:
            items:
              $ref: '#/components/schemas/PluginCollectionItem'
            type: array
        type: object
      - $ref: '#/components/schemas/CollectionInfo'
      description: 'A collection of plugin.


        *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
    PluginCollectionItem:
      description: 'A plugin Item.


        *New in version 2.1.0*

        '
      properties:
        appbuilder_menu_items:
          description: The Flask Appbuilder menu items
          items:
            type:
            - object
            - 'null'
          type: array
        appbuilder_views:
          description: The appuilder views
          items:
            type:
            - object
            - 'null'
          type: array
        executors:
          description: The plugin executors
          items:
            type:
            - string
            - 'null'
          type: array
        flask_blueprints:
          description: The flask blueprints
          items:
            type:
            - object
            - 'null'
          type: array
        global_operator_extra_links:
          description: The global operator extra links
          items:
            type:
            - object
            - 'null'
          type: array
        hooks:
          description: The plugin hooks
          items:
            type:
            - string
            - 'null'
          type: array
        macros:
          description: The plugin macros
          items:
            type:
            - object
            - 'null'
          type: array
        name:
          description: The name of the plugin
          type: string
        operator_extra_links:
          description: Operator extra links
          items:
            type:
            - object
            - 'null'
          type: array
        source:
          description: The plugin source
          type:
          - string
          - 'null'
      type: object
    ReactAppResponse:
      properties:
        name:
          type: string
          title: Name
        icon:
          anyOf:
          - type: string
          - type: 'null'
          title: Icon
        icon_dark_mode:
          anyOf:
          - type: string
          - type: 'null'
          title: Icon Dark Mode
        url_route:
          anyOf:
          - type: string
          - type: 'null'
          title: Url Route
        category:
          anyOf:
          - type: string
          - type: 'null'
          title: Category
        nav_top_level:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Nav Top Level
          default: false
        bundle_url:
          type: string
          title: Bundle Url
        destination:
          type: string
          enum:
          - nav
          - dag
          - dag_run
          - task
          - task_instance
          - base
          - dashboard
          title: Destination
          default: nav
      additionalProperties: true
      type: object
      required:
      - name
      - bundle_url
      title: ReactAppResponse
      description: Serializer for React App Plugin responses.
    ExternalViewResponse:
      properties:
        name:
          type: string
          title: Name
        icon:
          anyOf:
          - type: string
          - type: 'null'
          title: Icon
        icon_dark_mode:
          anyOf:
          - type: string
          - type: 'null'
          title: Icon Dark Mode
        url_route:
          anyOf:
          - type: string
          - type: 'null'
          title: Url Route
        category:
          anyOf:
          - type: string
          - type: 'null'
          title: Category
        nav_top_level:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Nav Top Level
          default: false
        href:
          type: string
          title: Href
        destination:
          type: string
          enum:
          - nav
          - dag
          - dag_run
          - task
          - task_instance
          - base
          title: Destination
          default: nav
      additionalProperties: true
      type: object
      required:
      - name
      - href
      title: ExternalViewResponse
      description: Serializer for External View Plugin responses.
    FastAPIRootMiddlewareResponse:
      properties:
        middleware:
          type: string
          title: Middleware
        name:
          type: string
          title: Name
      additionalProperties: true
      type: object
      required:
      - middleware
      - name
      title: FastAPIRootMiddlewareResponse
      description: Serializer for Plugin FastAPI root middleware responses.
    FastAPIAppResponse:
      properties:
        app:
          type: string
          title: App
        url_prefix:
          type: string
          title: Url Prefix
        name:
          type: string
          title: Name
      additionalProperties: true
      type: object
      required:
      - app
      - url_prefix
      - name
      title: FastAPIAppResponse
      description: Serializer for Plugin FastAPI App responses.
    PluginImportErrorResponse:
      properties:
        source:
          type: string
          title: Source
        error:
          type: string
          title: Error
      type: object
      required:
      - source
      - error
      title: PluginImportErrorResponse
      description: Plugin Import Error serializer for responses.
    AppBuilderMenuItemResponse:
      properties:
        name:
          type: string
          title: Name
        href:
          type: string
          title: Href
        category:
          anyOf:
          - type: string
          - type: 'null'
          title: Category
      additionalProperties: true
      type: object
      required:
      - name
      - href
      title: AppBuilderMenuItemResponse
      description: Serializer for AppBuilder Menu Item responses.
    PluginImportErrorCollectionResponse:
      properties:
        import_errors:
          items:
            $ref: '#/components/schemas/PluginImportErrorResponse'
          type: array
          title: Import Errors
        total_entries:
          type: integer
          title: Total Entries
      type: object
      required:
      - import_errors
      - total_entries
      title: PluginImportErrorCollectionResponse
      description: Plugin Import Error Collection serializer.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    PluginResponse:
      properties:
        name:
          type: string
          title: Name
        macros:
          items:
            type: string
          type: array
          title: Macros
        flask_blueprints:
          items:
            type: string
          type: array
          title: Flask Blueprints
        fastapi_apps:
          items:
            $ref: '#/components/schemas/FastAPIAppResponse'
          type: array
          title: Fastapi Apps
        fastapi_root_middlewares:
          items:
            $ref: '#/components/schemas/FastAPIRootMiddlewareResponse'
          type: array
          title: Fastapi Root Middlewares
        external_views:
          items:
            $ref: '#/components/schemas/ExternalViewResponse'
          type: array
          title: External Views
          description: Aggregate all external views. Both 'external_views' and 'appbuilder_menu_items' are included here.
        react_apps:
          items:
            $ref: '#/components/schemas/ReactAppResponse'
          type: array
          title: React Apps
        appbuilder_views:
          items:
            $ref: '#/components/schemas/AppBuilderViewResponse'
          type: array
          title: Appbuilder Views
        appbuilder_menu_items:
          items:
            $ref: '#/components/schemas/AppBuilderMenuItemResponse'
          type: array
          title: Appbuilder Menu Items
          deprecated: true
        global_operator_extra_links:
          items:
            type: string
          type: array
          title: Global Operator Extra Links
        operator_extra_links:
          items:
            type: string
          type: array
          title: Operator Extra Links
        source:
          type: string
          title: Source
        listeners:
          items:
            type: string
          type: array
          title: Listeners
        timetables:
          items:
            type: string
          type: array
          title: Timetables
      type: object
      required:
      - name
      - macros
      - flask_blueprints
      - fastapi_apps
      - fastapi_root_middlewares
      - external_views
      - react_apps
      - appbuilder_views
      - appbuilder_menu_items
      - global_operator_extra_links
      - operator_extra_links
      - source
      - listeners
      - timetables
      title: PluginResponse
      description: Plugin serializer.
    HTTPExceptionResponse:
      properties:
        detail:
          anyOf:
          - type: string
          - additionalProperties: true
            type: object
          title: Detail
      type: object
      required:
      - detail
      title: HTTPExceptionResponse
      description: HTTPException Model used for error response.
    PluginCollectionResponse:
      properties:
        plugins:
          items:
            $ref: '#/components/schemas/PluginResponse'
          type: array
          title: Plugins
        total_entries:
          type: integer
          title: Total Entries
      type: object
      required:
      - plugins
      - total_entries
      title: PluginCollectionResponse
      description: Plugin Collection serializer.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    AppBuilderViewResponse:
      properties:
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        category:
          anyOf:
          - type: string
          - type: 'null'
          title: Category
        view:
          anyOf:
          - type: string
          - type: 'null'
          title: View
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
      additionalProperties: true
      type: object
      title: AppBuilderViewResponse
      description: Serializer for AppBuilder View responses.
  securitySchemes:
    Basic:
      scheme: basic
      type: http
    GoogleOpenId:
      openIdConnectUrl: https://accounts.google.com/.well-known/openid-configuration
      type: openIdConnect
    Kerberos:
      scheme: negotiate
      type: http
    OAuth2PasswordBearer:
      type: oauth2
      description: To authenticate Airflow API requests, clients must include a JWT (JSON Web Token) in the Authorization header of each request. This token is used to verify the identity of the client and ensure that they have the appropriate permissions to access the requested resources. You can use the endpoint ``POST /auth/token`` in order to generate a JWT token. Upon successful authentication, the server will issue a JWT token that contains the necessary information (such as user identity and scope) to authenticate subsequent requests. To learn more about Airflow public API authentication, please read https://airflow.apache.org/docs/apache-airflow/stable/security/api.html.
      flows:
        password:
          scopes: {}
          tokenUrl: /auth/token
    HTTPBearer:
      type: http
      scheme: bearer
externalDocs:
  url: https://airflow.apache.org/docs/apache-airflow/stable/
x-refined-from:
- apache-airflow-openapi.yaml
- apache-airflow-openapi.yml