Thanx · OpenAPI Overlay 1.0.0

API Evangelist enhancements for Thanx Loyalty Account API

6 actions 6 updates update extends openapi/thanx-account-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-apievangelistx-api-versioningx-required-headersx-rate-limitsx-error-envelopex-apievangelist-note

Targets 2

$.info
$.components.schemas.Error.properties.code

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for Thanx Loyalty Account API
  version: 1.0.0
extends: openapi/thanx-account-api-openapi.yml
x-generated: '2026-08-13'
x-method: generated
x-source: openapi/thanx-account-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: Loyalty
      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 request header (vendor media type)
      value: application/vnd.thanx-v1+json
      required: true
      docs: https://docs.thanx.com/loyalty/headers
- target: $.info
  update:
    x-required-headers:
    - 'Accept: application/vnd.thanx-v1+json'
    - 'Merchant-Key: <merchant key>'
    - 'User-Agent: {partner}/1.0.0'
    - 'Authorization: Bearer <access_token> (unless Reward-Redemption-Token is supplied)'
- 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: $.components.schemas.Error.properties.code
  update:
    x-apievangelist-note: Typed integer in this spec, but the published catalog (https://docs.thanx.com/consumer/usage/errors)
      documents STRING codes such as REWARD_EXPIRED. Match on the documented string codes.