Thanx · OpenAPI Overlay 1.0.0

API Evangelist enhancements for Thanx Consumer Account Campaigns API

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

What the actions change

x-required-scopex-apievangelistx-api-versioningx-required-headersx-rate-limitsx-error-envelopex-idempotencyx-batch-limit

Targets 5

$.info
$.paths['/partner/campaigns'].post
$.paths['/partner/campaigns'].get
$.paths['/partner/campaigns/{id}'].get
$.paths['/partner/campaigns/issue'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for Thanx Consumer Account Campaigns API
  version: 1.0.0
extends: openapi/thanx-campaigns-api-openapi.yml
x-generated: '2026-08-13'
x-method: generated
x-source: openapi/thanx-campaigns-api-openapi.yml
x-description: Captures API Evangelist enrichment as an OpenAPI Overlay. Nothing here mutates the underlying
  document — apply it to layer the cross-cutting semantics Thanx publishes in prose (headers, versioning,
  scopes, idempotency, rate limits, error envelope) onto the machine-readable contract.
actions:
- target: $.info
  update:
    x-apievangelist:
      catalog: https://apis.io/thanx
      provider: Thanx
      maintainer: Kin Lane <kin@apievangelist.com>
      api_family: Partner
      artifacts:
      - apis.yml
      - conventions/thanx-conventions.yml
      - errors/thanx-problem-types.yml
      - scopes/thanx-scopes.yml
      - authentication/thanx-authentication.yml
      - rate-limits/thanx-rate-limits.yml
      - lifecycle/thanx-lifecycle.yml
      - sandbox/thanx-sandbox.yml
      - data-model/thanx-data-model.yml
      - conformance/thanx-conformance.yml
      - asyncapi/thanx-webhooks.yml
      - mcp/thanx-mcp.yml
      - a2a/thanx-a2a.yml
      - skills/_index.yml
      - packages/thanx-packages.yml
      - well-known/thanx-well-known.yml
- target: $.info
  update:
    x-api-versioning:
      mechanism: Accept-Version request header
      value: v4.0
      required: true
      docs: https://docs.thanx.com/consumer/usage/headers
- target: $.info
  update:
    x-required-headers:
    - 'Content-Type: application/json'
    - 'Accept: application/json'
    - 'Accept-Version: v4.0'
    - 'X-ClientId: <client id>'
    - 'Authorization: Bearer <access_token>'
- target: $.info
  update:
    x-rate-limits:
      requests_per_second: 5
      requests_per_15_minutes: 2000
      hard: true
      status_on_exhaustion: 429
      response_headers: none published
      docs: https://docs.thanx.com/partner/overview#global-rate-limits
      detail: rate-limits/thanx-rate-limits.yml
- target: $.info
  update:
    x-error-envelope:
      shape: '{"error": {"code": "STRING", "message": "STRING"}}'
      rfc9457: false
      code_stable: true
      message_stable: false
      detail: errors/thanx-problem-types.yml
- target: $.paths['/partner/campaigns'].post
  update:
    x-required-scope: rewards.issue
- target: $.paths['/partner/campaigns'].get
  update:
    x-required-scope: rewards.issue
- target: $.paths['/partner/campaigns/{id}'].get
  update:
    x-required-scope: rewards.issue
- target: $.paths['/partner/campaigns/issue'].post
  update:
    x-required-scope: rewards.issue
    x-idempotency:
      header: X-Idempotency-Key
      replay: returns the cached original response
      conflict: 422 Unprocessable Entity when the body differs
      recommended: true
    x-batch-limit:
      identifiers_per_request: 10000