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-event-log-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: 3.2.0
info:
title: Airflow Event Log API
description: 'Airflow API. All endpoints located under ``/api/v2`` can be used safely, are stable and backward compatible. Endpoints located under ``/ui`` are dedicated to the UI and are subject to breaking change depending on the need of the frontend. Users should not rely on those but use the public ones instead.
**Filtering with pattern parameters.** Many list endpoints accept ``*_pattern`` and ``*_prefix_pattern`` query parameters. Unless a parameter''s own description says otherwise, ``*_pattern`` is a case-insensitive substring match (SQL ``ILIKE ''%term%''``) where ``%`` matches any sequence and ``_`` matches any single character (e.g. ``%customer_%``) — convenient, but it cannot use B-tree indexes, so it is slow on large tables. ``*_prefix_pattern`` matches the start of the value, is case-sensitive and index-friendly (prefer it at scale); there ``%`` and ``_`` are literal and trailing non-alphanumeric characters are stripped so the range scan stays index-compatible under locale-aware collations (e.g. ``test_`` matches values starting with ``test``, and ``s3://`` matches ``s3``). In both, ``|`` means OR (e.g. ``dag1|dag2``) and ``~`` matches everything. Regular expressions are not supported by these parameters; regex-capable endpoints expose a separate parameter.'
version: '2'
tags:
- name: Event Log
paths:
/api/v2/eventLogs/{event_log_id}:
get:
tags:
- Event Log
summary: Get Event Log
operationId: get_event_log
security:
- OAuth2PasswordBearer: []
- HTTPBearer: []
parameters:
- name: event_log_id
in: path
required: true
schema:
type: integer
title: Event Log Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/EventLogResponse'
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPExceptionResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPExceptionResponse'
description: Forbidden
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPExceptionResponse'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v2/eventLogs:
get:
tags:
- Event Log
summary: Get Event Logs
description: Get all Event Logs.
operationId: get_event_logs
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
- name: order_by
in: query
required: false
schema:
type: array
items:
type: string
description: 'Attributes to order by, multi criteria sort is supported. Prefix with `-` for descending order. Supported attributes: `id, dttm, dag_id, task_id, run_id, event, logical_date, owner, extra, when, event_log_id`'
default:
- id
title: Order By
description: 'Attributes to order by, multi criteria sort is supported. Prefix with `-` for descending order. Supported attributes: `id, dttm, dag_id, task_id, run_id, event, logical_date, owner, extra, when, event_log_id`'
- name: dag_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Dag Id
- name: task_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Task Id
- name: run_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Run Id
- name: map_index
in: query
required: false
schema:
anyOf:
- type: integer
- type: 'null'
title: Map Index
- name: try_number
in: query
required: false
schema:
anyOf:
- type: integer
- type: 'null'
title: Try Number
- name: owner
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Owner
- name: event
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Event
- name: excluded_events
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
title: Excluded Events
- name: included_events
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
title: Included Events
- name: before
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Before
- name: after
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
title: After
- name: dag_id_pattern
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Case-insensitive substring match (SQL `ILIKE`). Slower than `dag_id_prefix_pattern` on large tables — see "Filtering with pattern parameters".
title: Dag Id Pattern
description: Case-insensitive substring match (SQL `ILIKE`). Slower than `dag_id_prefix_pattern` on large tables — see "Filtering with pattern parameters".
- name: task_id_pattern
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Case-insensitive substring match (SQL `ILIKE`). Slower than `task_id_prefix_pattern` on large tables — see "Filtering with pattern parameters".
title: Task Id Pattern
description: Case-insensitive substring match (SQL `ILIKE`). Slower than `task_id_prefix_pattern` on large tables — see "Filtering with pattern parameters".
- name: run_id_pattern
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Case-insensitive substring match (SQL `ILIKE`). Slower than `run_id_prefix_pattern` on large tables — see "Filtering with pattern parameters".
title: Run Id Pattern
description: Case-insensitive substring match (SQL `ILIKE`). Slower than `run_id_prefix_pattern` on large tables — see "Filtering with pattern parameters".
- name: owner_pattern
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Case-insensitive substring match (SQL `ILIKE`). Slower than `owner_prefix_pattern` on large tables — see "Filtering with pattern parameters".
title: Owner Pattern
description: Case-insensitive substring match (SQL `ILIKE`). Slower than `owner_prefix_pattern` on large tables — see "Filtering with pattern parameters".
- name: event_pattern
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Case-insensitive substring match (SQL `ILIKE`). Slower than `event_prefix_pattern` on large tables — see "Filtering with pattern parameters".
title: Event Pattern
description: Case-insensitive substring match (SQL `ILIKE`). Slower than `event_prefix_pattern` on large tables — see "Filtering with pattern parameters".
- name: dag_id_prefix_pattern
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
title: Dag Id Prefix Pattern
description: Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
- name: task_id_prefix_pattern
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
title: Task Id Prefix Pattern
description: Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
- name: run_id_prefix_pattern
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
title: Run Id Prefix Pattern
description: Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
- name: owner_prefix_pattern
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
title: Owner Prefix Pattern
description: Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
- name: event_prefix_pattern
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
title: Event Prefix Pattern
description: Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/EventLogCollectionResponse'
'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'
/eventLogs:
get:
description: List log entries from event log.
operationId: get_event_logs
parameters:
- $ref: '#/components/parameters/PageLimit'
- $ref: '#/components/parameters/PageOffset'
- $ref: '#/components/parameters/OrderBy'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EventLogCollection'
description: Success.
'401':
$ref: '#/components/responses/Unauthenticated'
'403':
$ref: '#/components/responses/PermissionDenied'
summary: Apache Airflow List Log Entries
tags:
- Event Log
x-openapi-router-controller: airflow.api_connexion.endpoints.event_log_endpoint
/eventLogs/{event_log_id}:
parameters:
- $ref: '#/components/parameters/EventLogID'
get:
operationId: get_event_log
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EventLog'
description: Success.
'401':
$ref: '#/components/responses/Unauthenticated'
'403':
$ref: '#/components/responses/PermissionDenied'
'404':
$ref: '#/components/responses/NotFound'
summary: Apache Airflow Get a Log Entry
tags:
- Event Log
x-openapi-router-controller: airflow.api_connexion.endpoints.event_log_endpoint
components:
schemas:
EventLogResponse:
properties:
event_log_id:
type: integer
title: Event Log Id
when:
type: string
format: date-time
title: When
dag_id:
anyOf:
- type: string
- type: 'null'
title: Dag Id
task_id:
anyOf:
- type: string
- type: 'null'
title: Task Id
run_id:
anyOf:
- type: string
- type: 'null'
title: Run Id
map_index:
anyOf:
- type: integer
- type: 'null'
title: Map Index
try_number:
anyOf:
- type: integer
- type: 'null'
title: Try Number
event:
type: string
title: Event
logical_date:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Logical Date
owner:
anyOf:
- type: string
- type: 'null'
title: Owner
extra:
anyOf:
- type: string
- type: 'null'
title: Extra
dag_display_name:
anyOf:
- type: string
- type: 'null'
title: Dag Display Name
task_display_name:
anyOf:
- type: string
- type: 'null'
title: Task Display Name
type: object
required:
- event_log_id
- when
- dag_id
- task_id
- run_id
- map_index
- try_number
- event
- logical_date
- owner
- extra
title: EventLogResponse
description: Event Log Response.
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
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.
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
EventLogCollectionResponse:
properties:
event_logs:
items:
$ref: '#/components/schemas/EventLogResponse'
type: array
title: Event Logs
total_entries:
type: integer
title: Total Entries
type: object
required:
- event_logs
- total_entries
title: EventLogCollectionResponse
description: Event Log Collection Response.
EventLog:
description: Log of user operations via CLI or Web UI.
properties:
dag_id:
description: The DAG ID
readOnly: true
type:
- string
- 'null'
event:
description: A key describing the type of event.
readOnly: true
type: string
event_log_id:
description: The event log ID
readOnly: true
type: integer
execution_date:
description: 'When the event was dispatched for an object having execution_date, the value of this field.
'
format: date-time
readOnly: true
type:
- string
- 'null'
extra:
description: 'Other information that was not included in the other fields, e.g. the complete CLI command.
'
readOnly: true
type:
- string
- 'null'
owner:
description: Name of the user who triggered these events a.
readOnly: true
type: string
task_id:
description: The DAG ID
readOnly: true
type:
- string
- 'null'
when:
description: The time when these events happened.
format: date-time
readOnly: true
type: string
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
EventLogCollection:
allOf:
- properties:
event_logs:
items:
$ref: '#/components/schemas/EventLog'
type: array
type: object
- $ref: '#/components/schemas/CollectionInfo'
description: 'Collection of event logs.
*Changed in version 2.1.0*: ''total_entries'' field is added.
'
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
securitySchemes:
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
Basic:
scheme: basic
type: http
GoogleOpenId:
openIdConnectUrl: https://accounts.google.com/.well-known/openid-configuration
type: openIdConnect
Kerberos:
scheme: negotiate
type: http
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
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
EventLogID:
description: The event log ID.
in: path
name: event_log_id
required: true
schema:
type: integer