Block Lottos · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Block Lottos API

OpenAPI Overlay 1.0.0 capturing API Evangelist's enhancements to openapi/blocklottos-com-openapi.yml (harvested verbatim from https://blocklottos.com/openapi.json, 2026-09-19). The original is never mutated; apply this overlay to obtain the enhanced view. Every addition is grounded in the provider's own docs (https://blocklottos.com/api-docs) or in observed live behaviour.

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

What the actions change

x-noteheadersx-legacy-alias-ofx-apievangelistcontentx-idempotencyx-reversibilityx-authentication

Targets 9

$.info
$.tags
$.servers[0]
$.paths['/api/ads/sizes'].get.responses['429']
$.paths['/api/lottery/agent-capabilities'].get.responses['429']
$.paths['/api/jackpot.php'].get
$.paths['/api/stats.php'].get
$.paths['/api/lottery/agent-purchase'].post
$.paths['/api/lottery/agent-referral'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Block Lottos API
  version: 1.0.0
  description: >-
    OpenAPI Overlay 1.0.0 capturing API Evangelist's enhancements to openapi/blocklottos-com-openapi.yml
    (harvested verbatim from https://blocklottos.com/openapi.json, 2026-09-19). The original is never
    mutated; apply this overlay to obtain the enhanced view. Every addition is grounded in the
    provider's own docs (https://blocklottos.com/api-docs) or in observed live behaviour.
extends: ../openapi/blocklottos-com-openapi.yml
x-generated: '2026-09-19'
x-method: generated
actions:
  - target: $.info
    description: Provenance of the harvested document.
    update:
      x-apievangelist:
        harvested: '2026-09-19'
        source: https://blocklottos.com/openapi.json
        last_modified: '2026-09-10T17:34:59Z'
        md5: d84270d63dcae8577accf4c9e5118662
  - target: $.tags
    description: >-
      Declare the two tags operations already use but the document never declares (Agents on 4
      operations, Affiliate on 1) so tag-driven tooling and the per-tag split see them.
    update:
      - name: Agents
        description: Base-first non-custodial agent flow - capabilities, referral enrollment, one-ticket preparation, on-chain confirmation.
      - name: Affiliate
        description: Shared human/agent multi-chain affiliate profile (5% of referred ticket price, paid from the operations share).
  - target: $.servers[0]
    description: Note that the API base is the apex domain; both clean and legacy .php paths are served.
    update:
      x-note: >-
        Lottery reads are documented at https://blocklottos.com (clean URLs preferred, .php aliases
        still served); the Advertising API is documented at https://blocklottos.com/api/ads/.
  - target: $.paths['/api/ads/sizes'].get.responses['429']
    description: Document the rate-limit signal the docs describe (Retry-After header + retry_after body field).
    update:
      headers:
        Retry-After:
          description: Seconds to wait before retrying (documented at /api-docs#ads-rate-limits).
          schema: { type: integer }
      content:
        application/json:
          schema:
            type: object
            properties:
              error: { type: string }
              retry_after: { type: integer, description: Seconds until the per-IP window resets. }
  - target: $.paths['/api/lottery/agent-capabilities'].get.responses['429']
    description: Same rate-limit signal on the agent capabilities endpoint (10 req/min/IP).
    update:
      headers:
        Retry-After:
          description: Seconds to wait before retrying (documented at /api-docs#lottery-rate-limits).
          schema: { type: integer }
  - target: $.paths['/api/jackpot.php'].get
    description: Mark the .php form as the legacy alias; the docs say the clean URL is what bots and agents should use.
    update:
      x-legacy-alias-of: getLotteryJackpotAlias
      x-note: Both forms work; /api/jackpot (getLotteryJackpotAlias) is preferred per /api-docs#lottery-overview.
  - target: $.paths['/api/stats.php'].get
    description: Mark the .php form as the legacy alias.
    update:
      x-legacy-alias-of: getLotteryStatsAlias
      x-note: Both forms work; /api/stats (getLotteryStatsAlias) is preferred per /api-docs#lottery-overview.
  - target: $.paths['/api/lottery/agent-purchase'].post
    description: Surface the idempotency semantics and the agent identification headers the docs and CORS policy expose.
    update:
      x-idempotency:
        mechanism: idempotency_key request-body field (required, 8-128 chars)
        semantics: correlation between preparation and confirmation only; does NOT prevent duplicate wallet broadcasts
        observed_cors_allow_headers: [Content-Type, X-BlockLottos-Agent, X-BlockLottos-Intent, Idempotency-Key]
      x-reversibility: none - all ticket purchases are final once confirmed on chain (https://blocklottos.com/terms, section 4)
  - target: $.paths['/api/lottery/agent-referral'].post
    description: Point at the documented Bearer management token, which the document expresses only as a header parameter (no securitySchemes).
    update:
      x-authentication:
        scheme: http bearer
        token_prefix: blm_
        applies_to: payout-wallet changes and private balance reads only; enrollment is wallet-signature (EIP-191 personal_sign) challenge/response