SNHP · OpenAPI Overlay 1.0.0

API Evangelist enhancements for Game Theory Layer for AI Agents (SNHP)

Overlay generated 2026-09-19 (method: generated). Adds what the served OpenAPI omits and the provider documents elsewhere: servers, the two documented API-key schemes applied to the 25 key-gated operations, the 7 undeclared tag names, the documented 429 with Retry-After, the observed 402 problem+json body, the one idempotent write, the GDPR operations, the MPP/AP2 domain-standard markers, and the MCP tool / agent-card skill bindings. Applies to openapi/snhp-dev-openapi.yml; never mutates openapi/_original/.

40 actions 40 updates servers extends openapi/snhp-dev-openapi.yml
Derived by API Evangelist Built from the contracts SNHP publishes. SNHP did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

securityx-apievangelist-note429x-data-subject-rightx-domain-standardx-agent-card-skillx-mcp-toolx-apievangelist

Targets 39 · first 16 shown; the file carries all of them

$.info
$
$.components
$.paths[*][?(@.operationId=='checkout_session_v1_billing_checkout_session_post')]
$.paths[*][?(@.operationId=='agentic_topup_v1_billing_agentic_topup_post')]
$.paths[*][?(@.operationId=='webhook_v1_billing_webhook_post')]
$.paths[*][?(@.operationId=='balance_v1_billing_balance_get')]
$.paths[*][?(@.operationId=='open_advice_session_v1_advice_session_post')]
$.paths[*][?(@.operationId=='advice_move_v1_advice_move_post')]
$.paths[*][?(@.operationId=='advice_bundle_move_v1_advice_bundle_post')]
$.paths[*][?(@.operationId=='close_advice_session_v1_advice_close_post')]
$.paths[*][?(@.operationId=='rotate_key_v1_keys_rotate_post')]
$.paths[*][?(@.operationId=='advice_request_v1_advice_request_post')]
$.paths[*][?(@.operationId=='store_catalog_v1_store_catalog_get')]
$.paths[*][?(@.operationId=='store_notary_pubkey_v1_store_notary_pubkey_get')]
$.paths[*][?(@.operationId=='store_fetch_v1_fetch_post')]

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for Game Theory Layer for AI Agents (SNHP)
  version: 1.0.0
  description: 'Overlay generated 2026-09-19 (method: generated). Adds what the served OpenAPI omits and the provider
    documents elsewhere: servers, the two documented API-key schemes applied to the 25 key-gated operations, the
    7 undeclared tag names, the documented 429 with Retry-After, the observed 402 problem+json body, the one idempotent
    write, the GDPR operations, the MPP/AP2 domain-standard markers, and the MCP tool / agent-card skill bindings.
    Applies to openapi/snhp-dev-openapi.yml; never mutates openapi/_original/.'
extends: openapi/snhp-dev-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist:
      profiled: '2026-09-19'
      repo: https://github.com/api-evangelist/snhp-dev
      note: Enhancements proposed by API Evangelist; the served document at https://snhp.dev/openapi.json is unmodified
        in openapi/_original/.
- target: $
  update:
    servers:
    - url: https://snhp.dev
      description: Primary host (identical on api.snhp.dev, www.snhp.dev, snhp.fly.dev) — the served spec declares
        no servers[]; stated in llms.txt and /.well-known/agents.json http_base
- target: $.components
  update:
    securitySchemes:
      BearerKey:
        type: http
        scheme: bearer
        bearerFormat: gt_*
        description: Self-issued key from POST /v1/keys. Sending it as a header moves the caller from the 60/min-per-IP
          floor to the 600/min-per-key lane.
      XApiKey:
        type: apiKey
        in: header
        name: X-API-Key
        description: Equivalent to BearerKey.
- target: $
  update:
    tags:
    - name: billing
      description: Wallet funding (Stripe Checkout, agentic top-up, inbound Stripe webhook) and balance
    - name: helper
      description: Rent-renewal situation helper (free, no key) and its privacy disclosure
    - name: mpp
      description: 'Machine Payments Protocol: manifest + SPT top-up (402 challenge flow)'
    - name: notary
      description: Receipt notary public key and standalone receipt verification
    - name: rent
      description: Rent-renewal market data and offer check
    - name: store
      description: 'The prepaid counter: catalog, notary key, demand box, blind locker park/retrieve, observatory'
    - name: vend
      description: Vending-machine quotes and settlement
  description: Declare the 7 tag names operations already use but the root tags[] omits
- target: $.paths[*][?(@.operationId=='checkout_session_v1_billing_checkout_session_post')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='agentic_topup_v1_billing_agentic_topup_post')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='webhook_v1_billing_webhook_post')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='balance_v1_billing_balance_get')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='open_advice_session_v1_advice_session_post')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='advice_move_v1_advice_move_post')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='advice_bundle_move_v1_advice_bundle_post')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='close_advice_session_v1_advice_close_post')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='rotate_key_v1_keys_rotate_post')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='advice_request_v1_advice_request_post')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='store_catalog_v1_store_catalog_get')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='store_notary_pubkey_v1_store_notary_pubkey_get')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='store_fetch_v1_fetch_post')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='store_request_v1_store_request_post')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='store_request_status_v1_store_request__request_id__get')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='store_requests_v1_store_requests_get')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='store_observatory_v1_store_observatory_get')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='store_my_requests_v1_store_my_requests_get')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='store_park_v1_store_park_post')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='store_retrieve_v1_store_parcel__ticket__get')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='memory_save_v1_memory_save_post')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='memory_load_v1_memory_parcel__ticket__get')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='telemetry_report_outcome_v1_telemetry_report_outcome_post')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='telemetry_delete_v1_telemetry_delete_delete')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='telemetry_export_v1_telemetry_export_get')]
  update:
    security:
    - BearerKey: []
    - XApiKey: []
    x-apievangelist-note: Key required per provider docs (missing key answers 422 "Field required" on header X-API-Key
      or body api_key); the served spec declares no security.
- target: $.paths[*][?(@.operationId=='negotiate_turn_endpoint_v1_negotiate_turn_post')].responses
  update:
    '429': &id001
      description: 'Too Many Requests — documented token bucket: 60/min per IP keyless, 600/min per key (header
        only), 10/hour per IP on POST /v1/keys. Always carries Retry-After (whole seconds).'
      headers:
        Retry-After:
          schema:
            type: integer
          description: Whole seconds until a token frees up.
- target: $.paths[*][?(@.operationId=='issue_key_v1_keys_post')].responses
  update:
    '429': *id001
- target: $.paths[*][?(@.operationId=='negotiate_bundle_endpoint_v1_negotiate_bundle_post')].responses
  update:
    '429': *id001
- target: $.paths['/v1/mpp/topup'].post.responses['402']
  update:
    content:
      application/problem+json:
        schema:
          type: object
          properties:
            type:
              type: string
              const: https://paymentauth.org/problems/payment-required
            title:
              type: string
            status:
              type: integer
              const: 402
            detail:
              type: string
            challengeId:
              type: string
            price_cents:
              type: integer
            base_cents:
              type: integer
            fee_cents:
              type: integer
            counter_fee_pct:
              type: integer
    headers:
      WWW-Authenticate:
        schema:
          type: string
        description: Payment id="...", realm="snhp.dev", method="stripe", intent="charge", request="<base64 challenge>",
          description="...", expires="<ISO 8601>" — observed live 2026-09-19
      Accept-Payment:
        schema:
          type: string
          const: stripe
  description: Body and headers observed on the live 402; the served spec declares the status with empty content
- target: $.paths['/v1/keys'].post
  update:
    x-idempotent: true
    x-idempotency-key: agent_id (natural key, 24-hour window)
    x-idempotency-note: The only idempotent write in the API per the operation description.
- target: $.paths['/v1/telemetry/delete'].delete
  update:
    x-data-subject-right: GDPR Article 17 erasure
    x-window: 78 weeks of week-hashes
- target: $.paths['/v1/telemetry/export'].get
  update:
    x-data-subject-right: GDPR Article 15 access
- target: $.paths['/v1/a2a/settle'].post
  update:
    x-domain-standard: AP2 (Agent Payments Protocol) Cart / Intent Mandate as VC-JWT; verification key at GET /v1/keys/settlement_notary
- target: $.paths['/v1/mpp/topup'].post
  update:
    x-domain-standard: MPP (Machine Payments Protocol) — Stripe Shared Payment Token; manifest at GET /v1/mpp/manifest
- target: $.paths['/v1/negotiate/turn'].post
  update:
    x-agent-card-skill: negotiate_turn
    x-mcp-tool:
    - negotiate
    - gt_negotiate_turn
    x-determinism: non-deterministic (free tier); the $2 session (POST /v1/advice/session) is deterministic and
      receipted
- target: $.paths['/v1/negotiate/bundle'].post
  update:
    x-agent-card-skill: negotiate_bundle
    x-mcp-tool:
    - negotiate_bundle
    - gt_negotiate_bundle

Work with this as data

Every overlay 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 openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • 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 overlay
curl "https://apis.io/api/v1/overlays/snhp-dev-openapi-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.