2s · OpenAPI Overlay 1.0.0

API Evangelist overlay for the 2s OpenAPI

Enhancements API Evangelist derived while profiling 2s on 2026-09-19: tag declarations from the provider's catalog.txt, the error envelope observed live, the 429/503 throttle responses documented in the provider's changelog, discovery-document cross-links, and idempotency/reversibility markers quoted from operation descriptions. The original spec is never mutated; apply this overlay to openapi/2s-io-openapi.json.

27 actions 27 updates documentation extends openapi/2s-io-openapi.json
Derived by API Evangelist Built from the contracts 2s publishes. 2s did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-reversal-ofx-idempotentx-idempotency-basisx-refundx-restoretermsOfServicex-apievangelist-notex-discovery

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

$.info
$
$.servers[0]
$.components.responses
$.components.schemas
$.components.responses.BadRequest
$.paths.*[?(@.operationId)]
$.paths['/api/lock/release'].post
$.paths['/api/watchers/cancel'].post
$.paths['/api/pubsub/create-topic'].post
$.paths['/api/store/kv-delete'].post
$.paths['/api/store/doc-delete'].post
$.paths['/api/store/vector-delete'].post
$.paths['/api/store/blob-delete'].post
$.paths['/api/text/redact'].post
$.paths['/api/schedule/cancel'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist overlay for the 2s OpenAPI
  version: '2026-09-19'
  description: 'Enhancements API Evangelist derived while profiling 2s on 2026-09-19: tag declarations from the
    provider''s catalog.txt, the error envelope observed live, the 429/503 throttle responses documented in the
    provider''s changelog, discovery-document cross-links, and idempotency/reversibility markers quoted from operation
    descriptions. The original spec is never mutated; apply this overlay to openapi/2s-io-openapi.json.'
extends: openapi/2s-io-openapi.json
x-generated: '2026-09-19'
x-method: generated
x-source:
- https://2s.io/openapi.json
- https://2s.io/catalog.txt
- https://2s.io/changelog.json
- https://2s.io/.well-known/2s-attestation.json
- GET https://2s.io/api/validate/iban?trial=1 (observed 400)
actions:
- target: $.info
  update:
    termsOfService: null
    x-apievangelist-note: No terms of service or privacy policy page exists on 2s.io (all conventional paths 404,
      2026-09-19); the status page carries the only published commitments.
- target: $.info
  description: Name the discovery documents the provider publishes but the spec does not reference
  update:
    x-discovery:
      apisJson: https://2s.io/apis.json
      apiCatalog: https://2s.io/.well-known/api-catalog
      llmsTxt: https://2s.io/llms.txt
      mcp: https://2s.io/mcp
      mcpServerCard: https://2s.io/.well-known/mcp/server-card.json
      a2aAgentCard: https://2s.io/.well-known/agent-card.json
      x402Manifest: https://2s.io/.well-known/x402
      status: https://2s.io/status.json
      changelog: https://2s.io/changelog.json
      attestation: https://2s.io/.well-known/2s-attestation.json
- target: $
  description: Declare the 112 tags the operations already use, with the provider's own group descriptions from
    https://2s.io/catalog.txt
  update:
    tags:
    - name: agent
      description: Agent-native knowledge-delta primitive
    - name: agriculture
      description: Drought monitor & USDA stats
    - name: ai
      description: Summarize, translate, extract, screenshot & describe
    - name: airport
      description: Airport lookup & nearest airports
    - name: aviation
      description: METAR, TAF, SIGMET & accident records
    - name: bank
      description: Bank routing lookup
    - name: barcode
      description: Barcode generation
    - name: batch
      description: Run many endpoints in one settled call
    - name: bio
      description: Species, genes & proteins
    - name: bls
      description: BLS time-series data
    - name: book
      description: Book search
    - name: business
      description: Company registries, LEI, KYB & entity screening
    - name: calendar
      description: Business days, holidays, earnings & IPO calendars
    - name: census
      description: ACS demographics & ZIP geographies
    - name: chem
      description: Chemical compound data
    - name: chinese
      description: Chinese data & lookups
    - name: class
      description: Class data & lookups
    - name: climate
      description: Station history & nearest stations
    - name: clinical
      description: ClinicalTrials search & study detail
    - name: code
      description: Repo lookup & code tools
    - name: convert
      description: Currency & unit conversion
    - name: countdown
      description: Countdown GIF generator
    - name: country
      description: Country reference data
    - name: crypto
      description: Prices, gas, fees, DeFi, contracts & on-chain data
    - name: dev
      description: RFC lookup & deploy preflight
    - name: dns
      description: DNS record lookup
    - name: domain
      description: WHOIS, intel, CT logs & email security
    - name: earth
      description: Natural events & planetary now
    - name: econ
      description: FRED series, releases, vintages, yield curve & indicators
    - name: edi
      description: Parse, generate & acknowledge X12 / EDIFACT
    - name: edu
      description: College Scorecard & school lookup
    - name: email
      description: Email address validation
    - name: energy
      description: Prices, generation mix, utility rates & solar resource
    - name: factcheck
      description: Fact-check claim search
    - name: feedback
      description: Send a message to the 2s team
    - name: finance
      description: SEC EDGAR filings, 13F, company facts & FIGI
    - name: flight
      description: Live flight status
    - name: food
      description: UK hygiene ratings & barcode lookup
    - name: fx
      description: Foreign-exchange rates & time series
    - name: geo
      description: Geocoding, elevation, flood zones, IP & dossiers
    - name: geocode
      description: Address ↔ coordinate, forward & reverse
    - name: github
      description: Repos, users, commits, issues, PRs & code search
    - name: gov
      description: 'Federal data: Congress, FEC, FDA, SAM, FEMA & more'
    - name: hash
      description: Hash computation
    - name: health
      description: Hospitals, providers, Medicare, mortality & surveillance
    - name: html
      description: HTML → Markdown conversion
    - name: image
      description: Image compression
    - name: inflation
      description: CPI calculator, rates, expectations & HICP
    - name: ipinfo
      description: Bulk IP geolocation
    - name: iso
      description: ISO currency, language & subdivision codes
    - name: job
      description: Federal job search & occupation codes
    - name: labor
      description: BLS openings, unemployment & wages
    - name: law
      description: OFAC sanctions, case law & dockets
    - name: license
      description: Verify broker, medical, real-estate & trade licenses
    - name: lock
      description: Distributed locks/leases — one agent at a time
    - name: maritime
      description: Vessels, ports & maritime case records
    - name: markets
      description: Exchange open/closed status & market holidays
    - name: medical
      description: ICD-10, NPI, drug labels, approvals & device data
    - name: music
      description: MusicBrainz artists, releases & recordings
    - name: net
      description: ASN / BGP, MAC vendor & RPKI validity
    - name: news
      description: Hacker News items, top stories & web news search
    - name: nonprofit
      description: Nonprofit search & screening
    - name: nutrition
      description: Food & nutrition facts
    - name: occupation
      description: O*NET occupation profiles, search & relations
    - name: paper
      description: DOI metadata lookup
    - name: papers
      description: Academic paper search & citation graphs (arXiv, OpenAlex & more)
    - name: park
      description: US National Park lookup
    - name: patents
      description: USPTO patent search, detail & documents
    - name: person
      description: Cross-registry person lookup
    - name: phone
      description: Phone number normalization
    - name: poi
      description: Points of interest nearby
    - name: predict
      description: Polymarket prediction markets, prices, trades & whales
    - name: product
      description: GTIN / UPC / EAN identity
    - name: property
      description: NYC deeds, parcels, permits & violations
    - name: pubsub
      description: Topics + fan-out signed callbacks for agent coordination
    - name: quakes
      description: Recent earthquakes (USGS)
    - name: queue
      description: 'Durable task queues: enqueue, lease, ack, dead-letter'
    - name: recreation
      description: Recreation.gov facility search
    - name: registry
      description: npm & PyPI package lookups
    - name: research
      description: ORCID authors, ROR orgs & NIH funding
    - name: schedule
      description: Time-driven signed callbacks — cron for agents
    - name: search
      description: Endpoint discovery & web search
    - name: security
      description: CVEs, KEV, EPSS, IOC reputation, headers, exposure
    - name: soil
      description: Soil profiles & USDA hardiness zones
    - name: space
      description: Launches, satellites, exoplanets, sky & space weather
    - name: sports
      description: MLB & NHL schedules, scores & standings
    - name: stocks
      description: Quotes, metrics, analyst, earnings, news, gov/alt data
    - name: store
      description: 'Wallet-keyed persistence: KV, documents, vector search & private files'
    - name: sunrise
      description: Sunrise / sunset times
    - name: tax
      description: VAT validation & EU VAT-rate tables
    - name: tcg
      description: Tcg data & lookups
    - name: telecom
      description: FCC filings & telecom market areas
    - name: text
      description: Text data & lookups
    - name: tides
      description: Current tide predictions
    - name: time
      description: Time data & lookups
    - name: timezone
      description: Timezone by coordinate
    - name: tld
      description: Top-level-domain info
    - name: tls
      description: TLS certificate inspection
    - name: trade
      description: UN Comtrade flows, tariffs & LOCODE
    - name: transcribe
      description: Audio transcription
    - name: travel
      description: Travel advisories & visa requirements
    - name: treasury
      description: US Treasury cash, debt, rates & monthly statements
    - name: url
      description: Render, map, clean & unfurl any URL
    - name: validate
      description: IBAN, BIC, ISIN, CUSIP, GTIN & check-digit checks
    - name: vehicle
      description: VIN decode, recalls, complaints, safety ratings
    - name: watchers
      description: Watchers data & lookups
    - name: water
      description: USGS stream-gauge readings
    - name: weather
      description: Global conditions & forecasts, NWS alerts, marine & air quality
    - name: wikidata
      description: Wikidata entity lookup
    - name: wikipedia
      description: Wikipedia article summaries
    - name: word
      description: Definitions & related words
    - name: worldbank
      description: World Bank development indicators
- target: $
  update:
    externalDocs:
      description: 2s llms.txt — payment flow, discovery surfaces, SDKs and the full endpoint list
      url: https://2s.io/llms.txt
- target: $.servers[0]
  update:
    description: Single production origin; also hosts the MCP server (/mcp) and the A2A JSON-RPC endpoint (/a2a).
      No sandbox host — use ?trial=1 for a free real call.
- target: $.components.responses
  description: Add the two throttle responses the provider documents in changelog 1.80.1 but does not declare
  update:
    RateLimited:
      description: 429 RATE_LIMITED — 2s's own rate limiter (changelog 1.80.1). Back off client-side. No Retry-After
        header is documented.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    UpstreamRateLimit:
      description: 503 UPSTREAM_RATE_LIMIT — an upstream throttle, not the caller's limit; the provider says retry
        without client-side backoff (changelog 1.80.1).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
- target: $.components.schemas
  description: Declare the error envelope observed live on a trial 400 (2026-09-19)
  update:
    ErrorEnvelope:
      type: object
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          - message
          properties:
            code:
              type: string
              description: UPPER_SNAKE code — BAD_REQUEST, RATE_LIMITED, UPSTREAM_RATE_LIMIT, RESULT_TOO_LARGE,
                NOT_FOUND observed or documented
              example: BAD_REQUEST
            message:
              type: string
              example: Invalid parameters.
            details:
              type: object
              description: Optional; on 400 a validation report with issues[] {code, expected, received, path[],
                message}
- target: $.components.responses.BadRequest
  update:
    content:
      application/json:
        schema:
          $ref: '#/components/schemas/ErrorEnvelope'
        example:
          error:
            code: BAD_REQUEST
            message: Invalid parameters.
            details:
              issues:
              - code: invalid_type
                expected: string
                received: undefined
                path:
                - iban
                message: Required
- target: $.paths.*[?(@.operationId)]
  description: Wire the two documented throttle responses onto every operation
  update:
    responses:
      '429':
        $ref: '#/components/responses/RateLimited'
      '503':
        $ref: '#/components/responses/UpstreamRateLimit'
- target: $.paths.*[?(@.operationId)]
  description: Name the headers the provider documents on a paid 200 and on a signed response
  update:
    x-response-headers:
      X-PAYMENT-TX: on-chain settlement transaction of the x402 payment
      X-2s-Endpoint: endpoint id (attestation descriptor)
      X-2s-Attestation-Signature: present when ?sign=1 — EIP-191 signature over the canonical message; see https://2s.io/.well-known/2s-attestation.json
- target: $.paths['/api/lock/release'].post
  update:
    x-idempotent: true
    x-idempotency-basis: stated in the operation description
- target: $.paths['/api/watchers/cancel'].post
  update:
    x-idempotent: true
    x-idempotency-basis: stated in the operation description
- target: $.paths['/api/pubsub/create-topic'].post
  update:
    x-idempotent: true
    x-idempotency-basis: stated in the operation description
- target: $.paths['/api/store/kv-delete'].post
  update:
    x-idempotent: true
    x-idempotency-basis: stated in the operation description
- target: $.paths['/api/store/doc-delete'].post
  update:
    x-idempotent: true
    x-idempotency-basis: stated in the operation description
- target: $.paths['/api/store/vector-delete'].post
  update:
    x-idempotent: true
    x-idempotency-basis: stated in the operation description
- target: $.paths['/api/store/blob-delete'].post
  update:
    x-idempotent: true
    x-idempotency-basis: stated in the operation description
- target: $.paths['/api/text/redact'].post
  update:
    x-idempotent: true
    x-idempotency-basis: stated in the operation description
- target: $.paths['/api/watchers/cancel'].post
  update:
    x-reversal-of: watchers.* arming operations
    x-refund: none — the contract states no refund of the unused window
- target: $.paths['/api/schedule/cancel'].post
  update:
    x-reversal-of: schedule.create
    x-refund: none — the contract states no refund of the unused window
- target: $.paths['/api/lock/release'].post
  update:
    x-reversal-of: lock.acquire
    x-refund: null
- target: $.paths['/api/pubsub/unsubscribe'].post
  update:
    x-reversal-of: pubsub.subscribe
    x-refund: null
- target: $.paths['/api/queue/ack'].post
  update:
    x-reversal-of: queue.lease (makes the removal permanent)
    x-refund: null
- target: $.paths['/api/store/kv-delete'].post
  update:
    x-reversal-of: store.kv-put
    x-restore: none documented; objects also expire 90 days after last touch
- target: $.paths['/api/store/doc-delete'].post
  update:
    x-reversal-of: store.doc-put
    x-restore: none documented; objects also expire 90 days after last touch
- target: $.paths['/api/store/vector-delete'].post
  update:
    x-reversal-of: store.vector-upsert
    x-restore: none documented; objects also expire 90 days after last touch
- target: $.paths['/api/store/blob-delete'].post
  update:
    x-reversal-of: store.blob-put
    x-restore: none documented; objects also expire 90 days after last touch

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/2s-io-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.