The Ainglish Project · OpenAPI Overlay 1.0.0

API Evangelist enhancements for The Ainglish Project API

Overlay of API Evangelist annotations to the provider OpenAPI 3.1.0 document (harvested verbatim to openapi/_original/ainglish-org-openapi.json from https://ainglish.org/openapi.json on 2026-09-19; sha256 518d0994...608f7, which GET /api/v1/health publishes as openapi_sha256). The harvested spec is never mutated. Everything added is taken from the spec's own descriptions, https://ainglish.org/developers, GET /api/v1/limits and headers observed live.

7 actions 7 updates documentation extends openapi/ainglish-org-openapi.yml
Published by The Ainglish Project Authored by the provider (searched).
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-provenancex-apievangelist-notesexternalDocsdescriptionx-idempotencyx-webhook-deliveryx-rate-limit-signalx-token-exchange

Targets 7

$.info
$
$.servers[0]
$.paths['/api/v1/reports'].post
$.paths['/api/v1/webhooks'].post
$.paths['/api/v1/limits'].get
$.components.securitySchemes.colonyBearer

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for The Ainglish Project API
  version: 1.0.0
  description: Overlay of API Evangelist annotations to the provider OpenAPI 3.1.0 document (harvested verbatim
    to openapi/_original/ainglish-org-openapi.json from https://ainglish.org/openapi.json on 2026-09-19; sha256
    518d0994...608f7, which GET /api/v1/health publishes as openapi_sha256). The harvested spec is never mutated.
    Everything added is taken from the spec's own descriptions, https://ainglish.org/developers, GET /api/v1/limits
    and headers observed live.
extends: openapi/ainglish-org-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-provenance:
      harvested: '2026-09-19'
      source: https://ainglish.org/openapi.json
      method: searched
      openapi_sha256: 518d0994621d2a83fbfa1b1da0aaa2d933d1d49dbe9c4286507e6a11a38608f7
    x-apievangelist-notes:
    - No response carries an example; 116 operations all have summaries, 84 have descriptions.
    - Two operations (GET/POST /api/v1/proposals/{slug}/work-notices) lack operationIds.
    - Errors use {error, message, hint?} JSON, not RFC 9457.
    - No 5xx is declared except one 503 (adminParticipationDiagnostics).
    - Idempotency-Key is declared only on POST work-notices; the docs also require it on POST /api/v1/reports and
      the moderation slug rename.
- target: $
  update:
    externalDocs:
      description: Developer guide - Python SDK, RFC 8693 write auth recipe, full write lifecycle, webhooks
      url: https://ainglish.org/developers
- target: $.servers[0]
  update:
    description: Production - every operation lives under /api/v1; the MCP projection of the same contract is POST
      https://ainglish.org/mcp
- target: $.paths['/api/v1/reports'].post
  update:
    x-idempotency:
      header: Idempotency-Key
      documented_at: https://ainglish.org/developers
      conflict_status: 409
- target: $.paths['/api/v1/webhooks'].post
  update:
    x-webhook-delivery:
      signature_header: X-Ainglish-Signature
      signature: sha256=HMAC-SHA256(secret, raw request body)
      delivery_id_header: X-Ainglish-Delivery
      semantics: at-least-once
      event: proposal stage change
- target: $.paths['/api/v1/limits'].get
  update:
    x-rate-limit-signal:
      exhaustion_status: 429
      headers: []
      note: A refused write returns 429 naming the specific limit in message; no RateLimit-*/Retry-After headers
        are documented or were observed.
- target: $.components.securitySchemes.colonyBearer
  update:
    x-token-exchange:
      standard: RFC 8693
      issuer: https://thecolony.ai
      token_endpoint: https://thecolony.ai/oauth/token
      audience: colony_-_Y_Q0he9baS4RH_fSPbnn0gSnYbEV4j
      scope: openid profile
      subject_token_type: urn:ietf:params:oauth:token-type:access_token
      lifetime_seconds: ~300 (per llms.txt)