AirOps · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the AirOps API

11 actions 11 updates documentation extends openapi/airops-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for AirOps's API. It is a proposal applied on top of the contract, not a document AirOps publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

operationIdx-apievangelist-addedx-apievangelist-notex-apievangelist-profilex-apievangelist-harvestedx-apievangelist-sourcedescriptioncontact

Targets 11

$.info
$
$.paths['/public_api/airops_apps/executions/{execution_uuid}/cancel'].patch
$.paths['/public_api/airops_apps/executions/{execution_uuid}/retry'].post
$.paths['/public_api/airops_apps/executions/{execution_uuid}/feedback'].patch
$.paths['/public_api/airops_apps'].get
$.paths['/public_api/airops_apps/:airops_app_id/executions'].get
$.paths['/public_api/grids/{grid_id}/sheets/{sheet_id}/generate_csv'].post
$.paths['/public_api/grids/{grid_id}/sheets/{sheet_id}/download_csv/latest'].get
$.paths['/public_api/brand_kits/{brand_kit_id}/analytics'].post
$.components.schemas.PaginationMeta

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the AirOps API
  version: 1.0.0
extends: openapi/airops-api-openapi.yml
x-generated: '2026-08-13'
x-method: generated
x-source: >-
  Derived from openapi/_original/airops-openapi.yaml (harvested verbatim from
  https://api.airops.com/public_api/openapi.yaml) plus the published docs at
  https://docs.airops.com. This overlay carries API Evangelist enhancements ONLY;
  the harvested spec is never mutated.
x-notes:
  - >-
    Seven of the 42 operations in the published spec have no operationId. That is
    the single biggest machine-readability defect in this contract: an agent, an
    SDK generator and a workflow engine all address operations by operationId, so
    these seven are effectively unaddressable. The ids proposed below follow the
    provider's own camelCase convention (getExecution, executeApp, getApp).
  - >-
    One path uses Rails-style path syntax — /public_api/airops_apps/:airops_app_id/executions
    — instead of OpenAPI's {airops_app_id} template. Tooling will treat the colon
    form as a literal path segment. Flagged, not silently rewritten.
  - >-
    The spec declares no 429 response on any operation and publishes no rate-limit
    headers; see rate-limits/airops-rate-limits.yml.
actions:
- target: $.info
  update:
    x-apievangelist-profile: https://apis.io/provider/airops/
    x-apievangelist-harvested: '2026-08-13'
    x-apievangelist-source: https://api.airops.com/public_api/openapi.yaml
    description: >-
      Public REST API for the AirOps platform. Covers Workflow/App execution
      (synchronous, asynchronous and webhook), execution management, Agent chat,
      workspace file upload, Memory Stores (Knowledge Bases), Grid CSV export,
      and the Insights/AEO reporting surface rooted on Brand Kits. Authenticated
      with a workspace API key presented as an Authorization Bearer token.
    contact:
      name: AirOps Support
      url: https://docs.airops.com/
- target: $
  update:
    security:
    - bearer: []
    x-apievangelist-note: >-
      The document declares components.securitySchemes.bearer and applies it
      per-operation, but has no document-level security. Adding the root default
      makes the auth requirement explicit for every operation.
- target: $.paths['/public_api/airops_apps/executions/{execution_uuid}/cancel'].patch
  update:
    operationId: cancelExecution
    x-apievangelist-added: operationId
- target: $.paths['/public_api/airops_apps/executions/{execution_uuid}/retry'].post
  update:
    operationId: retryExecution
    x-apievangelist-added: operationId
- target: $.paths['/public_api/airops_apps/executions/{execution_uuid}/feedback'].patch
  update:
    operationId: submitExecutionFeedback
    x-apievangelist-added: operationId
- target: $.paths['/public_api/airops_apps'].get
  update:
    operationId: listApps
    x-apievangelist-added: operationId
- target: $.paths['/public_api/airops_apps/:airops_app_id/executions'].get
  update:
    operationId: listAppExecutions
    x-apievangelist-added: operationId
    x-apievangelist-defect: >-
      Path uses Rails-style :airops_app_id rather than the OpenAPI template form
      {airops_app_id}. The correct path is
      /public_api/airops_apps/{airops_app_id}/executions with a matching path
      parameter. Reported rather than rewritten — the harvested contract is what
      the provider serves.
- target: $.paths['/public_api/grids/{grid_id}/sheets/{sheet_id}/generate_csv'].post
  update:
    operationId: generateGridSheetCsv
    x-apievangelist-added: operationId
- target: $.paths['/public_api/grids/{grid_id}/sheets/{sheet_id}/download_csv/latest'].get
  update:
    operationId: downloadLatestGridSheetCsv
    x-apievangelist-added: operationId
- target: $.paths['/public_api/brand_kits/{brand_kit_id}/analytics'].post
  update:
    x-apievangelist-constraints:
      max_dimensions: 3
      max_rows: 1000
      grain_windows:
        daily: 120 days
        weekly: 180 days
        monthly: 365 days
      end_date: must be strictly before today; otherwise 422
      source: https://docs.airops.com/developers/api
- target: $.components.schemas.PaginationMeta
  update:
    x-apievangelist-note: >-
      Offset pagination is used by every list endpoint, max per_page 100. Loop
      until page >= total_pages. See conventions/airops-conventions.yml.