openapi: 3.2.0 info: title: 2s — the (most) everything Sports API version: '1' summary: The (most) everything API. description: 'The (most) everything API for AI agents: 575+ pay-per-call endpoints on one origin.' contact: name: 2s url: https://2s.io email: alley@2s.io x-logo: url: https://2s.io/icon-512.png altText: 2s x-guidance: 'Pay-per-call REST API for AI agents — hundreds of endpoints returning ground-truth data (US public records, company & legal identifiers, finance/SEC, crypto/web3, security & CVEs, medical codes, weather & geocoding, agriculture, energy, maritime, music, and more). Every endpoint is paid per call in USDC via x402 (Base or Solana) — no API key, no signup. Call any endpoint with no auth to get a 402 PaymentRequirements envelope, sign it (EIP-3009 on Base, partial SPL transfer on Solana), and retry with the PAYMENT-SIGNATURE header. Add ?trial=1 for one free real call per endpoint per hour to test before paying. To discover the right endpoint: GET https://2s.io/api/directory for the full catalog, or GET https://2s.io/api/search/endpoints?q= for a ranked match. Per-call price is on each operation as x-payment-info (from $0.001). Batch up to 50 calls behind one payment via POST https://2s.io/api/batch/run.' servers: - url: https://2s.io tags: - name: Sports paths: /api/sports/mlb-schedule: get: tags: - Sports summary: MLB games for a date (and optionally one team), via the description: 'MLB games for a date (and optionally one team), via the official MLB Stats API (free/keyless). Each game: gamePk, start time, detailed status (Scheduled/In Progress/Final), away and home team + score, and venue. Defaults to today when no date is given. Live scores + schedule for agents.' operationId: sports_mlb-schedule deprecated: false security: - x402Payment: [] responses: '200': description: 'Normalized: items = games.' content: application/json: schema: type: object required: - data - meta properties: data: type: object properties: ok: type: boolean enum: - true items: type: array items: type: object properties: gamePk: nullable: true gameDate: nullable: true status: nullable: true awayTeam: nullable: true awayScore: type: number nullable: true homeTeam: nullable: true homeScore: type: number nullable: true venue: nullable: true required: - awayScore - homeScore additionalProperties: false total: type: integer nullable: true description: Total matching rows upstream; null when unknown. source: $ref: '#/components/schemas/Source' required: - ok - items - total - source additionalProperties: false meta: $ref: '#/components/schemas/CallMeta' '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/PaymentRequired' '405': $ref: '#/components/responses/MethodNotAllowed' '500': $ref: '#/components/responses/ServerError' '502': $ref: '#/components/responses/UpstreamError' x-2s-id: sports.mlb-schedule x-2s-version: null x-2s-price: usd: 0.0025 x-2s-accepts: - x402 x-2s-response-shape: normalized x-payment-info: price: mode: fixed currency: USD amount: '0.002500' protocols: - x402: {} parameters: - name: date in: query required: false description: YYYY-MM-DD; defaults to today. schema: type: string pattern: ^\d{4}-\d{2}-\d{2}$ - name: teamId in: query required: false description: MLB team id to filter to one club. schema: type: integer - $ref: '#/components/parameters/TrialMode' /api/sports/mlb-standings: get: tags: - Sports summary: MLB regular-season standings for a season (official MLB description: 'MLB regular-season standings for a season (official MLB Stats API, free/keyless). Each team: wins, losses, win %, games back, division + league rank, and current streak. Defaults to the current season.' operationId: sports_mlb-standings deprecated: false security: - x402Payment: [] responses: '200': description: 'Normalized: items = team records.' content: application/json: schema: type: object required: - data - meta properties: data: type: object properties: ok: type: boolean enum: - true items: type: array items: type: object properties: team: nullable: true wins: type: number nullable: true losses: type: number nullable: true winPct: nullable: true gamesBack: nullable: true divisionRank: nullable: true leagueRank: nullable: true streak: nullable: true required: - wins - losses additionalProperties: false total: type: integer nullable: true description: Total matching rows upstream; null when unknown. source: $ref: '#/components/schemas/Source' required: - ok - items - total - source additionalProperties: false meta: $ref: '#/components/schemas/CallMeta' '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/PaymentRequired' '405': $ref: '#/components/responses/MethodNotAllowed' '500': $ref: '#/components/responses/ServerError' '502': $ref: '#/components/responses/UpstreamError' x-2s-id: sports.mlb-standings x-2s-version: null x-2s-price: usd: 0.0025 x-2s-accepts: - x402 x-2s-response-shape: normalized x-payment-info: price: mode: fixed currency: USD amount: '0.002500' protocols: - x402: {} parameters: - name: season in: query required: false description: Season. schema: type: integer minimum: 1900 maximum: 2100 - $ref: '#/components/parameters/TrialMode' /api/sports/nba-games: get: tags: - Sports summary: NBA games from balldontlie - schedule and scores in one feed description: 'NBA games from balldontlie — schedule and scores in one feed. Filter by season (start year), a single date, and/or team id. Each game: date, season, status, postseason flag, home/visitor teams and final (or live) scores. Cursor-paginated (pass meta.cursor as cursor to continue).' operationId: sports_nba-games deprecated: false security: - x402Payment: [] responses: '200': description: 'Normalized: items = NBA games; meta.cursor = next page (null when last).' content: application/json: schema: type: object required: - data - meta properties: data: type: object properties: ok: type: boolean enum: - true items: type: array items: type: object properties: id: type: number nullable: true date: type: string nullable: true datetime: type: string nullable: true season: type: number nullable: true status: type: string nullable: true period: type: number nullable: true postseason: type: boolean home_team: nullable: true visitor_team: nullable: true home_team_score: type: number nullable: true visitor_team_score: type: number nullable: true required: - id - date - datetime - season - status - period - postseason - home_team_score - visitor_team_score additionalProperties: false total: type: integer nullable: true description: Total matching rows upstream; null when unknown. source: $ref: '#/components/schemas/Source' meta: type: object properties: cursor: type: string nullable: true required: - cursor additionalProperties: false required: - ok - items - total - source additionalProperties: false meta: $ref: '#/components/schemas/CallMeta' '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/PaymentRequired' '405': $ref: '#/components/responses/MethodNotAllowed' '500': $ref: '#/components/responses/ServerError' '502': $ref: '#/components/responses/UpstreamError' x-2s-id: sports.nba-games x-2s-version: null x-2s-price: usd: 0.012 x-2s-accepts: - x402 x-2s-response-shape: normalized x-payment-info: price: mode: fixed currency: USD amount: '0.012000' protocols: - x402: {} parameters: - name: season in: query required: false description: Season start year, e.g. 2024 for the 2024-25 season. schema: type: integer minimum: 1946 maximum: 2100 - name: date in: query required: false description: Single date, YYYY-MM-DD. schema: type: string pattern: ^\d{4}-\d{2}-\d{2}$ - name: team_id in: query required: false description: NBA team id (1–30). schema: type: integer exclusiveMinimum: true minimum: 0 - name: cursor in: query required: false description: Pagination cursor from a prior meta.cursor. schema: type: string minLength: 1 - name: per_page in: query required: false description: Page size, 1–100 (default 25). schema: type: integer minimum: 1 maximum: 100 - $ref: '#/components/parameters/TrialMode' /api/sports/nba-players: get: tags: - Sports summary: NBA players from balldontlie - search by name and page description: 'NBA players from balldontlie — search by name and page through results. Each player: id, name, position, height, weight, jersey number, college, country, draft year, and current team. Cursor-paginated (pass meta.cursor as cursor to continue).' operationId: sports_nba-players deprecated: false security: - x402Payment: [] responses: '200': description: 'Normalized: items = NBA players; meta.cursor = next page (null when last).' content: application/json: schema: type: object required: - data - meta properties: data: type: object properties: ok: type: boolean enum: - true items: type: array items: type: object properties: id: type: number nullable: true first_name: type: string nullable: true last_name: type: string nullable: true position: type: string nullable: true height: type: string nullable: true weight: type: string nullable: true jersey_number: type: string nullable: true college: type: string nullable: true country: type: string nullable: true draft_year: type: number nullable: true team: nullable: true required: - id - first_name - last_name - position - height - weight - jersey_number - college - country - draft_year additionalProperties: false total: type: integer nullable: true description: Total matching rows upstream; null when unknown. source: $ref: '#/components/schemas/Source' meta: type: object properties: cursor: type: string nullable: true required: - cursor additionalProperties: false required: - ok - items - total - source additionalProperties: false meta: $ref: '#/components/schemas/CallMeta' '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/PaymentRequired' '405': $ref: '#/components/responses/MethodNotAllowed' '500': $ref: '#/components/responses/ServerError' '502': $ref: '#/components/responses/UpstreamError' x-2s-id: sports.nba-players x-2s-version: null x-2s-price: usd: 0.012 x-2s-accepts: - x402 x-2s-response-shape: normalized x-payment-info: price: mode: fixed currency: USD amount: '0.012000' protocols: - x402: {} parameters: - name: search in: query required: false description: Name search (first or last), e.g. "james". schema: type: string minLength: 1 maxLength: 100 - name: cursor in: query required: false description: Pagination cursor from a prior meta.cursor. schema: type: string minLength: 1 - name: per_page in: query required: false description: Page size, 1–100 (default 25). schema: type: integer minimum: 1 maximum: 100 - $ref: '#/components/parameters/TrialMode' /api/sports/nba-teams: get: tags: - Sports summary: NBA teams from balldontlie - all 30 franchises with id description: NBA teams from balldontlie — all 30 franchises with id, full name, abbreviation, conference, division, and city. Pass an optional team id to fetch a single team. operationId: sports_nba-teams deprecated: false security: - x402Payment: [] responses: '200': description: 'Normalized: items = NBA teams; total = count.' content: application/json: schema: type: object required: - data - meta properties: data: type: object properties: ok: type: boolean enum: - true items: type: array items: type: object properties: id: type: number nullable: true full_name: type: string nullable: true abbreviation: type: string nullable: true conference: type: string nullable: true division: type: string nullable: true city: type: string nullable: true required: - id - full_name - abbreviation - conference - division - city additionalProperties: false total: type: integer nullable: true description: Total matching rows upstream; null when unknown. source: $ref: '#/components/schemas/Source' required: - ok - items - total - source additionalProperties: false meta: $ref: '#/components/schemas/CallMeta' '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/PaymentRequired' '405': $ref: '#/components/responses/MethodNotAllowed' '500': $ref: '#/components/responses/ServerError' '502': $ref: '#/components/responses/UpstreamError' x-2s-id: sports.nba-teams x-2s-version: null x-2s-price: usd: 0.012 x-2s-accepts: - x402 x-2s-response-shape: normalized x-payment-info: price: mode: fixed currency: USD amount: '0.012000' protocols: - x402: {} parameters: - name: id in: query required: false description: NBA team id (1–30). Omit to list all teams. schema: type: integer exclusiveMinimum: true minimum: 0 - $ref: '#/components/parameters/TrialMode' /api/sports/nfl-games: get: tags: - Sports summary: NFL games from balldontlie - schedule and scores in one feed description: 'NFL games from balldontlie — schedule and scores in one feed. Filter by season, week, and/or team id. Each game: date, season, week, status, postseason flag, venue, recap summary, home/visitor teams and final (or live) scores. Cursor-paginated (pass meta.cursor as cursor to continue).' operationId: sports_nfl-games deprecated: false security: - x402Payment: [] responses: '200': description: 'Normalized: items = NFL games; meta.cursor = next page (null when last).' content: application/json: schema: type: object required: - data - meta properties: data: type: object properties: ok: type: boolean enum: - true items: type: array items: type: object properties: id: type: number nullable: true date: type: string nullable: true season: type: number nullable: true week: type: number nullable: true status: type: string nullable: true postseason: type: boolean venue: type: string nullable: true summary: type: string nullable: true home_team: nullable: true visitor_team: nullable: true home_team_score: type: number nullable: true visitor_team_score: type: number nullable: true required: - id - date - season - week - status - postseason - venue - summary - home_team_score - visitor_team_score additionalProperties: false total: type: integer nullable: true description: Total matching rows upstream; null when unknown. source: $ref: '#/components/schemas/Source' meta: type: object properties: cursor: type: string nullable: true required: - cursor additionalProperties: false required: - ok - items - total - source additionalProperties: false meta: $ref: '#/components/schemas/CallMeta' '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/PaymentRequired' '405': $ref: '#/components/responses/MethodNotAllowed' '500': $ref: '#/components/responses/ServerError' '502': $ref: '#/components/responses/UpstreamError' x-2s-id: sports.nfl-games x-2s-version: null x-2s-price: usd: 0.012 x-2s-accepts: - x402 x-2s-response-shape: normalized x-payment-info: price: mode: fixed currency: USD amount: '0.012000' protocols: - x402: {} parameters: - name: season in: query required: false description: Season year, e.g. 2024. schema: type: integer minimum: 1920 maximum: 2100 - name: week in: query required: false description: Week number (regular + postseason). schema: type: integer minimum: 1 maximum: 30 - name: team_id in: query required: false description: NFL team id. schema: type: integer exclusiveMinimum: true minimum: 0 - name: cursor in: query required: false description: Pagination cursor from a prior meta.cursor. schema: type: string minLength: 1 - name: per_page in: query required: false description: Page size, 1–100 (default 25). schema: type: integer minimum: 1 maximum: 100 - $ref: '#/components/parameters/TrialMode' /api/sports/nfl-players: get: tags: - Sports summary: NFL players from balldontlie - search by name and page description: 'NFL players from balldontlie — search by name and page through results. Each player: id, name, position, height, weight, jersey number, college, experience, age, and current team. Cursor-paginated (pass meta.cursor as cursor to continue).' operationId: sports_nfl-players deprecated: false security: - x402Payment: [] responses: '200': description: 'Normalized: items = NFL players; meta.cursor = next page (null when last).' content: application/json: schema: type: object required: - data - meta properties: data: type: object properties: ok: type: boolean enum: - true items: type: array items: type: object properties: id: type: number nullable: true first_name: type: string nullable: true last_name: type: string nullable: true position: type: string nullable: true position_abbreviation: type: string nullable: true height: type: string nullable: true weight: type: string nullable: true jersey_number: type: string nullable: true college: type: string nullable: true experience: type: string nullable: true age: type: number nullable: true team: nullable: true required: - id - first_name - last_name - position - position_abbreviation - height - weight - jersey_number - college - experience - age additionalProperties: false total: type: integer nullable: true description: Total matching rows upstream; null when unknown. source: $ref: '#/components/schemas/Source' meta: type: object properties: cursor: type: string nullable: true required: - cursor additionalProperties: false required: - ok - items - total - source additionalProperties: false meta: $ref: '#/components/schemas/CallMeta' '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/PaymentRequired' '405': $ref: '#/components/responses/MethodNotAllowed' '500': $ref: '#/components/responses/ServerError' '502': $ref: '#/components/responses/UpstreamError' x-2s-id: sports.nfl-players x-2s-version: null x-2s-price: usd: 0.012 x-2s-accepts: - x402 x-2s-response-shape: normalized x-payment-info: price: mode: fixed currency: USD amount: '0.012000' protocols: - x402: {} parameters: - name: search in: query required: false description: Name search (first or last), e.g. "mahomes". schema: type: string minLength: 1 maxLength: 100 - name: cursor in: query required: false description: Pagination cursor from a prior meta.cursor. schema: type: string minLength: 1 - name: per_page in: query required: false description: Page size, 1–100 (default 25). schema: type: integer minimum: 1 maximum: 100 - $ref: '#/components/parameters/TrialMode' /api/sports/nfl-teams: get: tags: - Sports summary: NFL teams from balldontlie - all 32 franchises with id description: NFL teams from balldontlie — all 32 franchises with id, full name, abbreviation, conference (AFC/NFC), division, and city. Pass an optional team id to fetch a single team. operationId: sports_nfl-teams deprecated: false security: - x402Payment: [] responses: '200': description: 'Normalized: items = NFL teams; total = count.' content: application/json: schema: type: object required: - data - meta properties: data: type: object properties: ok: type: boolean enum: - true items: type: array items: type: object properties: id: type: number nullable: true full_name: type: string nullable: true abbreviation: type: string nullable: true conference: type: string nullable: true division: type: string nullable: true city: type: string nullable: true required: - id - full_name - abbreviation - conference - division - city additionalProperties: false total: type: integer nullable: true description: Total matching rows upstream; null when unknown. source: $ref: '#/components/schemas/Source' required: - ok - items - total - source additionalProperties: false meta: $ref: '#/components/schemas/CallMeta' '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/PaymentRequired' '405': $ref: '#/components/responses/MethodNotAllowed' '500': $ref: '#/components/responses/ServerError' '502': $ref: '#/components/responses/UpstreamError' x-2s-id: sports.nfl-teams x-2s-version: null x-2s-price: usd: 0.012 x-2s-accepts: - x402 x-2s-response-shape: normalized x-payment-info: price: mode: fixed currency: USD amount: '0.012000' protocols: - x402: {} parameters: - name: id in: query required: false description: NFL team id. Omit to list all teams. schema: type: integer exclusiveMinimum: true minimum: 0 - $ref: '#/components/parameters/TrialMode' /api/sports/nhl-schedule: get: tags: - Sports summary: Upcoming NHL game schedule for the week anchored on a date description: 'Upcoming NHL game schedule for the week anchored on a date (official NHL api-web, free/keyless). Each game: id, date, start time (UTC), game state (FUT/LIVE/OFF), game type (Preseason/Regular Season/Playoffs), away and home team + abbreviation + score, venue, and TV broadcasts. Optionally filter to one team by 3-letter abbreviation (e.g. TOR). Defaults to the week starting today. Forward-looking matchups for scheduling agents — distinct from nhl-scores (single-day results).' operationId: sports_nhl-schedule deprecated: false security: - x402Payment: [] responses: '200': description: 'Normalized: items = games for the NHL week.' content: application/json: schema: type: object required: - data - meta properties: data: type: object properties: ok: type: boolean enum: - true items: type: array items: type: object properties: id: nullable: true date: type: string nullable: true startTimeUTC: nullable: true gameState: nullable: true gameType: type: string nullable: true awayTeam: type: string nullable: true awayAbbrev: type: string nullable: true awayScore: type: number nullable: true homeTeam: type: string nullable: true homeAbbrev: type: string nullable: true homeScore: type: number nullable: true venue: type: string nullable: true broadcasts: type: array items: type: object properties: country: type: string nullable: true network: type: string nullable: true required: - country - network additionalProperties: false required: - date - gameType - awayTeam - awayAbbrev - awayScore - homeTeam - homeAbbrev - homeScore - venue - broadcasts additionalProperties: false total: type: integer nullable: true description: Total matching rows upstream; null when unknown. source: $ref: '#/components/schemas/Source' required: - ok - items - total - source additionalProperties: false meta: $ref: '#/components/schemas/CallMeta' '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/PaymentRequired' '405': $ref: '#/components/responses/MethodNotAllowed' '500': $ref: '#/components/responses/ServerError' '502': $ref: '#/components/responses/UpstreamError' x-2s-id: sports.nhl-schedule x-2s-version: null x-2s-price: usd: 0.0025 x-2s-accepts: - x402 x-2s-response-shape: normalized x-payment-info: price: mode: fixed currency: USD amount: '0.002500' protocols: - x402: {} parameters: - name: date in: query required: false description: YYYY-MM-DD anchor; returns that day plus the rest of the NHL game week. Defaults to today. schema: type: string pattern: ^\d{4}-\d{2}-\d{2}$ - name: team in: query required: false description: 3-letter NHL team abbreviation to filter to one club (e.g. TOR, BOS, EDM). schema: type: string minLength: 2 maxLength: 3 - $ref: '#/components/parameters/TrialMode' /api/sports/nhl-scores: get: tags: - Sports summary: NHL scores and games for a date (official NHL api-web description: 'NHL scores and games for a date (official NHL api-web, free/keyless). Each game: id, game state (FUT/LIVE/FINAL), start time, away and home team + score. Defaults to today.' operationId: sports_nhl-scores deprecated: false security: - x402Payment: [] responses: '200': description: 'Normalized: items = games.' content: application/json: schema: type: object required: - data - meta properties: data: type: object properties: ok: type: boolean enum: - true items: type: array items: type: object properties: id: nullable: true gameState: nullable: true startTimeUTC: nullable: true awayTeam: type: string nullable: true awayScore: type: number nullable: true homeTeam: type: string nullable: true homeScore: type: number nullable: true required: - awayTeam - awayScore - homeTeam - homeScore additionalProperties: false total: type: integer nullable: true description: Total matching rows upstream; null when unknown. source: $ref: '#/components/schemas/Source' required: - ok - items - total - source additionalProperties: false meta: $ref: '#/components/schemas/CallMeta' '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/PaymentRequired' '405': $ref: '#/components/responses/MethodNotAllowed' '500': $ref: '#/components/responses/ServerError' '502': $ref: '#/components/responses/UpstreamError' x-2s-id: sports.nhl-scores x-2s-version: null x-2s-price: usd: 0.0025 x-2s-accepts: - x402 x-2s-response-shape: normalized x-payment-info: price: mode: fixed currency: USD amount: '0.002500' protocols: - x402: {} parameters: - name: date in: query required: false description: YYYY-MM-DD; defaults to today. schema: type: string pattern: ^\d{4}-\d{2}-\d{2}$ - $ref: '#/components/parameters/TrialMode' /api/sports/nhl-standings: get: tags: - Sports summary: Current NHL standings (official NHL api-web, free/keyless) description: 'Current NHL standings (official NHL api-web, free/keyless). Each team: conference, division, games played, wins, losses, OT losses, points, goal differential, and current streak.' operationId: sports_nhl-standings deprecated: false security: - x402Payment: [] responses: '200': description: 'Normalized: items = team standings.' content: application/json: schema: type: object required: - data - meta properties: data: type: object properties: ok: type: boolean enum: - true items: type: array items: type: object properties: team: type: string nullable: true abbrev: type: string nullable: true conference: nullable: true division: nullable: true gamesPlayed: type: number nullable: true wins: type: number nullable: true losses: type: number nullable: true otLosses: type: number nullable: true points: type: number nullable: true goalDiff: type: number nullable: true streak: type: string nullable: true required: - team - abbrev - gamesPlayed - wins - losses - otLosses - points - goalDiff - streak additionalProperties: false total: type: integer nullable: true description: Total matching rows upstream; null when unknown. source: $ref: '#/components/schemas/Source' required: - ok - items - total - source additionalProperties: false meta: $ref: '#/components/schemas/CallMeta' '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/PaymentRequired' '405': $ref: '#/components/responses/MethodNotAllowed' '500': $ref: '#/components/responses/ServerError' '502': $ref: '#/components/responses/UpstreamError' x-2s-id: sports.nhl-standings x-2s-version: null x-2s-price: usd: 0.0025 x-2s-accepts: - x402 x-2s-response-shape: normalized x-payment-info: price: mode: fixed currency: USD amount: '0.002500' protocols: - x402: {} parameters: - $ref: '#/components/parameters/TrialMode' components: schemas: Source: type: object description: 'Provenance of the data: upstream provider, source URL, and license.' properties: provider: type: string description: Upstream data provider. url: type: string description: Source URL or documentation link. license: type: string description: License / usage terms for the data. CallMeta: type: object description: Per-call meta envelope — endpoint id, cost, caller kind, settlement details. X402PaymentRequiredV2: type: object description: x402 v2 PaymentRequired envelope. Pick any entry from accepts[], sign for that rail, retry with the PAYMENT-SIGNATURE header. required: - x402Version - accepts properties: x402Version: type: integer const: 2 error: type: string description: Human-readable reason payment is required. resource: type: string description: The resource URL being purchased. accepts: type: array description: Payment requirement options, one per supported network (Base USDC, Solana USDC). items: type: object required: - scheme - network - amount - asset - payTo - maxTimeoutSeconds properties: scheme: type: string enum: - exact network: type: string description: CAIP-2 network id, e.g. "eip155:8453" (Base) or "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp". amount: type: string description: Price in atomic asset units (USDC has 6 decimals). asset: type: string description: Asset contract address / mint. payTo: type: string description: Treasury address to pay. maxTimeoutSeconds: type: integer extra: type: object description: 'Rail-specific extras (EVM: EIP-712 domain name/version; Solana: feePayer).' additionalProperties: true extensions: type: object description: Optional discovery metadata (e.g. bazaar input/output schemas). additionalProperties: true responses: PaymentRequired: description: Payment required. Body contains the x402 PaymentRequirements envelope with a multi-network accepts array; the per-call price is in accepts[].amount (and on the operation as x-2s-price). Sign for whichever rail you hold USDC on (EIP-3009 for Base, partial SPL transfer for Solana) and retry with the PAYMENT-SIGNATURE header (X-PAYMENT also accepted for v1 clients). content: application/json: schema: $ref: '#/components/schemas/X402PaymentRequiredV2' UpstreamError: description: Upstream provider error. MethodNotAllowed: description: Method not allowed — see `Allow` header for the supported method. ServerError: description: Internal server error. BadRequest: description: Bad request — invalid parameters. parameters: TrialMode: name: trial in: query required: false description: 'Try before you buy. Set to 1 for one free real call per endpoint per hour — no wallet or payment needed — to verify the endpoint before paying. Equivalent to sending the "X-2s-Trial: 1" request header. Works on every endpoint.' schema: type: integer enum: - 1 securitySchemes: x402Payment: type: apiKey in: header name: PAYMENT-SIGNATURE description: 'x402 protocol v2: base64-encoded PaymentPayload. Call any paid endpoint without auth to receive a 402 with a multi-network PaymentRequirements envelope. Sign for either rail: EIP-3009 transferWithAuthorization (Base USDC) OR a partial SPL token transfer (Solana USDC). Retry with PAYMENT-SIGNATURE header. X-PAYMENT is also accepted for v1 buyer clients. See https://x402.org.'