ExchangeRebel Fact Bank API

The Fact Bank API from ExchangeRebel — 6 operation(s) for fact bank.

GitHub OpenAPI

Operations 6

GET /toll/facts/catalog Fact bank catalog (free, counts-only) #
GET /toll/facts/health Fact bank health (free, counts-only) #
POST /toll/facts/status/preflight Free pre-check twin: exact $0.01 RULED price first #
POST /toll/facts/status Fact bank STATUS lookup: $0.01 RULED per call #
POST /toll/facts/tendency/preflight Free pre-check twin: exact $0.02 RULED price first #
POST /toll/facts/tendency Fact bank TENDENCY: $0.02 RULED per call #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/exchangerebel-com:exchangerebel-com-fact-bank-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.

OpenAPI Specification

exchangerebel-com-fact-bank-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ExchangeRebel — pay-per-call APIs for AI agents (x402 on…
  version: 1.0.0
  contact:
    name: 'ExchangeRebel (operator: Rebel Data)'
    url: https://exchangerebel.com
    email: sound.money.investing@gmail.com
  x-guidance: 'All paid operations use x402 on Solana: call without payment to get a 402 challenge (SOL recipient + USDC token account + fresh memo), pay with the memo attached via the Solana Memo program, then retry with header X-Payment-Tx: <signature> and ?toll_memo=<memo>. Challenges are dual-version: the PAYMENT-REQUIRED header carries the x402 v2 PaymentRequired object and the response body carries the same challenge in x402 v1 form for compatibility. Free operations (security: []) include each service''s /health catalog with full response shapes. Prices in x-payment-info are USD per call unless the summary says otherwise (RPC is per 1,000-request block; Telegram provisioning is per bot-month; transcription is per minute of audio).'
  description: '67 data and utility APIs behind x402 tolls, settled in SOL or USDC on Solana. Call a paid endpoint without payment to receive a 402 x402 challenge (recipient + fresh memo), pay with the memo attached via the Solana Memo program, then retry with the X-Payment-Tx header and toll_memo query parameter. Free catalog/health endpoints are marked without x-payment-info. Full catalogs: GET /toll/discovery and each service''s /health.'
servers:
- url: https://exchangerebel.com
tags:
- name: Fact Bank
paths:
  /toll/facts/catalog:
    get:
      tags:
      - Fact Bank
      summary: Fact bank catalog (free, counts-only)
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
      security: []
      operationId: getTollFactsCatalog
      x-operation-id-source: derived
  /toll/facts/health:
    get:
      tags:
      - Fact Bank
      summary: Fact bank health (free, counts-only)
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
      security: []
      operationId: getTollFactsHealth
      x-operation-id-source: derived
  /toll/facts/status/preflight:
    post:
      tags:
      - Fact Bank
      summary: 'Free pre-check twin: exact $0.01 RULED price first'
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                stream:
                  type: string
                  description: string (required) - one of nfl-player-status, epl-player-status, bls-release-status, fed-board-status
                entity_id:
                  type: string
                  description: string - canonical entity id, verbatim as stored
                name:
                  type: string
                  description: string - name-resolution form (alternative to entity_id)
              required:
              - stream
      security: []
      operationId: postTollFactsStatusPreflight
      x-operation-id-source: derived
  /toll/facts/status:
    post:
      tags:
      - Fact Bank
      summary: 'Fact bank STATUS lookup: $0.01 RULED per call'
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
          content:
            application/json:
              example:
                stream: nfl-player-status
                entity:
                  id: nfl:sirvocea-dennis:buccaneers
                  type: player
                  name: SirVocea Dennis
                  team: Buccaneers
                  league: NFL
                  position: LB
                fields:
                - status_field: game_status
                  status_value: Questionable
                  fact_id: fb_a250dff5623c2049d957
                  kind: change
                  previous_value: No designation
                  fact_backed: true
                  as_of:
                    first_seen_at: '2026-10-17T21:24:06Z'
                    source_published_at: null
                  source:
                    attribution: National Football League official injury report (nfl.com) — league-published team reports
                    name: NFL official injury report
                    url: https://www.nfl.com/injuries/
                  grade: official
                  capture_cadence: daily
                  detail:
                    report: Injuries - WEEK 6
                  run_id: 20261017T212406Z-aec54f
                  snapshot: snapshots/2026-10-17/20261017T212406Z-aec54f__nfl-player-status.json
                - status_field: injury
                  status_value: Ankle, Foot
                  fact_id: fb_400b1ef01acedb689a61
                  kind: initial
                  previous_value: null
                  fact_backed: true
                  as_of:
                    first_seen_at: '2026-10-13T22:35:33Z'
                    source_published_at: null
                  source:
                    attribution: National Football League official injury report (nfl.com) — league-published team reports
                    name: NFL official injury report
                    url: https://www.nfl.com/injuries/
                  grade: official
                  capture_cadence: null
                  detail:
                    report: Injuries - WEEK 5
                  run_id: 20261013T223533Z-195f25
                  snapshot: snapshots/2026-10-13/20261013T223533Z-195f25__nfl-player-status.json
                - status_field: practice_status
                  status_value: Full Participation in Practice
                  fact_id: fb_45a2223329068cd023c7
                  kind: change
                  previous_value: Limited Participation in Practice
                  fact_backed: true
                  as_of:
                    first_seen_at: '2026-10-17T21:24:06Z'
                    source_published_at: null
                  source:
                    attribution: National Football League official injury report (nfl.com) — league-published team reports
                    name: NFL official injury report
                    url: https://www.nfl.com/injuries/
                  grade: official
                  capture_cadence: daily
                  detail:
                    report: Injuries - WEEK 6
                  run_id: 20261017T212406Z-aec54f
                  snapshot: snapshots/2026-10-17/20261017T212406Z-aec54f__nfl-player-status.json
                freshness:
                  newest_fact_at: '2026-10-17T21:24:06Z'
                  newest_fact_age_seconds: 172806
                  value_since: '2026-10-17T21:24:06Z'
                  store_last_run_at: '2026-10-19T21:24:12Z'
                  capture_cadence: daily
                  class: settled
                  label: Value first seen 2026-10-17; store last captured 2026-10-19 (daily cadence).
                  store_stale: false
                page:
                  limit: 25
                  returned: 3
                  total: 3
                  next_cursor: null
                store_stamp:
                  facts_sha256: 5ebdfe2bdb4bf9890f319fa687207c037b939e5475b67ce5f8e2cf6e3433ade7
                  facts_lines: 3431
                  last_run_id: 20261019T212412Z-7d6547
                  built_at: '2026-10-19T00:00:00Z'
                price_usd: 0.01
                toll:
                  usdc_units: 10000
                  sol_lamports: 68000
              schema:
                type: object
                properties:
                  stream:
                    type: string
                    enum:
                    - nfl-player-status
                    - epl-player-status
                    - bls-release-status
                    - fed-board-status
                  entity:
                    type: object
                    properties:
                      id:
                        type: string
                      type:
                        type:
                        - string
                        - 'null'
                      name:
                        type:
                        - string
                        - 'null'
                      team:
                        type: string
                      league:
                        type: string
                      position:
                        type: string
                      series_id:
                        type: string
                    required:
                    - id
                    - type
                    - name
                  fields:
                    type: array
                    items:
                      type: object
                      properties:
                        status_field:
                          type: string
                        status_value:
                          description: The stored status value, verbatim (string or number, by stream).
                        fact_id:
                          type:
                          - string
                          - 'null'
                        kind:
                          type: string
                        previous_value:
                          description: The previous stored value, verbatim, or null (always null on baseline rows).
                        fact_backed:
                          type: boolean
                        since_is_baseline_capture:
                          type: boolean
                          description: Present (true) only on baseline rows -- fields with no fact yet, captured at store build.
                        as_of:
                          type: object
                          properties:
                            first_seen_at:
                              type: string
                            source_published_at:
                              type:
                              - string
                              - 'null'
                          required:
                          - first_seen_at
                          - source_published_at
                        source:
                          anyOf:
                          - type: object
                            properties:
                              name:
                                type: string
                              url:
                                type: string
                              attribution:
                                type: string
                            required:
                            - name
                            - url
                            - attribution
                          - type: 'null'
                          description: Null on baseline rows.
                        grade:
                          type:
                          - string
                          - 'null'
                        capture_cadence:
                          type:
                          - string
                          - 'null'
                        detail:
                          type: object
                        run_id:
                          type: string
                        snapshot:
                          type:
                          - string
                          - 'null'
                      required:
                      - status_field
                      - status_value
                      - fact_id
                      - kind
                      - previous_value
                      - fact_backed
                      - as_of
                      - source
                      - grade
                      - capture_cadence
                      - detail
                      - run_id
                      - snapshot
                  freshness:
                    type: object
                    properties:
                      newest_fact_at:
                        type:
                        - string
                        - 'null'
                      newest_fact_age_seconds:
                        type:
                        - integer
                        - 'null'
                      value_since:
                        type:
                        - string
                        - 'null'
                      store_last_run_at:
                        type:
                        - string
                        - 'null'
                      capture_cadence:
                        type: string
                      class:
                        type:
                        - string
                        - 'null'
                        enum:
                        - current
                        - settled
                        - long_unchanged
                        - null
                      label:
                        type:
                        - string
                        - 'null'
                      store_stale:
                        type: boolean
                    required:
                    - newest_fact_at
                    - newest_fact_age_seconds
                    - value_since
                    - store_last_run_at
                    - capture_cadence
                    - class
                    - label
                    - store_stale
                  page:
                    type: object
                    properties:
                      limit:
                        type: integer
                      returned:
                        type: integer
                      total:
                        type: integer
                      next_cursor:
                        type:
                        - string
                        - 'null'
                    required:
                    - limit
                    - returned
                    - total
                    - next_cursor
                  store_stamp:
                    type: object
                    properties:
                      facts_sha256:
                        type:
                        - string
                        - 'null'
                      facts_lines:
                        type: integer
                      last_run_id:
                        type:
                        - string
                        - 'null'
                      built_at:
                        type:
                        - string
                        - 'null'
                    required:
                    - facts_sha256
                    - facts_lines
                    - last_run_id
                    - built_at
                  price_usd:
                    type: number
                  toll:
                    type: object
                    properties:
                      usdc_units:
                        type: integer
                      sol_lamports:
                        type: integer
                    required:
                    - usdc_units
                    - sol_lamports
                required:
                - stream
                - entity
                - fields
                - freshness
                - page
                - store_stamp
                - price_usd
                - toll
        '402':
          description: 'Payment Required (x402). The PAYMENT-REQUIRED response header carries the x402 v2 PaymentRequired object (base64 JSON: scheme, CAIP-2 network, amount, asset, payTo, plus the bazaar discovery extension); the response body carries the same challenge in x402 v1 form for compatibility, naming the SOL recipient and USDC token account on Solana plus a fresh memo. To pay on this service''s rail: pay with the memo attached (Solana Memo program), then retry with header ''X-Payment-Tx: <transaction signature>'' and query parameter ''toll_memo=<memo>''.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                stream:
                  type: string
                  description: string (required) - one of nfl-player-status, epl-player-status, bls-release-status, fed-board-status
                entity_id:
                  type: string
                  description: string - canonical entity id, verbatim as stored
                name:
                  type: string
                  description: string - name-resolution form (alternative to entity_id)
                status_field:
                  type: string
                  description: string - optional; omit for all current fields
              required:
              - stream
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '0.01'
      security:
      - x402Payment: []
      operationId: postTollFactsStatus
      x-operation-id-source: derived
  /toll/facts/tendency/preflight:
    post:
      tags:
      - Fact Bank
      summary: 'Free pre-check twin: exact $0.02 RULED price first'
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                stream:
                  type: string
                  description: string (required) - one of nfl-player-status, epl-player-status, bls-release-status, fed-board-status
                entity_id:
                  type: string
                  description: string - canonical entity id, verbatim as stored
                status_field:
                  type: string
                  description: string (required) - the status field whose history is computed over
              required:
              - stream
              - status_field
      security: []
      operationId: postTollFactsTendencyPreflight
      x-operation-id-source: derived
  /toll/facts/tendency:
    post:
      tags:
      - Fact Bank
      summary: 'Fact bank TENDENCY: $0.02 RULED per call'
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
          content:
            application/json:
              example:
                stream: epl-player-status
                entity:
                  id: epl:player:552
                  type: player
                  name: Brobbey
                  team: Sunderland
                  league: Premier League
                  position: FWD
                status_field: chance_of_playing_next_round
                value_class: numeric
                direction: mixed
                first_value: 0
                last_value: 75
                delta: 75
                min: 0
                max: 100
                fact_count: 3
                transitions: 2
                window:
                  facts_used: 3
                  from: '2026-10-13T22:35:33Z'
                  to: '2026-10-19T21:24:12Z'
                  capped: false
                rank_map: null
                steps:
                - fact_id: fb_b9b673e845c2d8ca2232
                  status_value: 0
                  previous_value: null
                  kind: initial
                  first_seen_at: '2026-10-13T22:35:33Z'
                  source:
                    name: Premier League Fantasy API (official)
                    url: https://fantasy.premierleague.com/api/bootstrap-static/
                    attribution: Premier League official Fantasy API (fantasy.premierleague.com) — league-published availability status
                - fact_id: fb_32cd812499bcb2ce7a97
                  status_value: 100
                  previous_value: 0
                  kind: change
                  first_seen_at: '2026-10-15T21:24:13Z'
                  source:
                    name: Premier League Fantasy API (official)
                    url: https://fantasy.premierleague.com/api/bootstrap-static/
                    attribution: Premier League official Fantasy API (fantasy.premierleague.com) — league-published availability status
                - fact_id: fb_47c7e2802db01fa88a8c
                  status_value: 75
                  previous_value: 100
                  kind: change
                  first_seen_at: '2026-10-19T21:24:12Z'
                  source:
                    name: Premier League Fantasy API (official)
                    url: https://fantasy.premierleague.com/api/bootstrap-static/
                    attribution: Premier League official Fantasy API (fantasy.premierleague.com) — league-published availability status
                freshness:
                  newest_fact_at: '2026-10-19T21:24:12Z'
                  newest_fact_age_seconds: 0
                  value_since: '2026-10-19T21:24:12Z'
                  store_last_run_at: '2026-10-19T21:24:12Z'
                  capture_cadence: daily
                  class: current
                  label: Value first seen 2026-10-19; store last captured 2026-10-19 (daily cadence).
                  store_stale: false
                page:
                  limit: 25
                  returned: 3
                  total: 3
                  next_cursor: null
                store_stamp:
                  facts_sha256: 5ebdfe2bdb4bf9890f319fa687207c037b939e5475b67ce5f8e2cf6e3433ade7
                  facts_lines: 3431
                  last_run_id: 20261019T212412Z-7d6547
                  built_at: '2026-10-19T00:00:00Z'
                computation: direction = sign(last − first) over the window; steps listed verbatim; no values estimated or interpolated
                price_usd: 0.02
                price_status: PROPOSED
                toll:
                  usdc_units: 20000
                  sol_lamports: 136000
              schema:
                type: object
                properties:
                  stream:
                    type: string
                    enum:
                    - nfl-player-status
                    - epl-player-status
                    - bls-release-status
                    - fed-board-status
                  entity:
                    type: object
                    properties:
                      id:
                        type: string
                      type:
                        type:
                        - string
                        - 'null'
                      name:
                        type:
                        - string
                        - 'null'
                      team:
                        type: string
                      league:
                        type: string
                      position:
                        type: string
                      series_id:
                        type: string
                    required:
                    - id
                    - type
                    - name
                  status_field:
                    type: string
                  value_class:
                    type: string
                    enum:
                    - numeric
                    - ordinal
                  direction:
                    type: string
                    enum:
                    - rising
                    - falling
                    - flat
                    - mixed
                    - stable
                    - improving
                    - worsening
                  first_value:
                    description: The first stored value in the window, verbatim.
                  last_value:
                    description: The last stored value in the window, verbatim.
                  delta:
                    type: number
                  min:
                    description: 'Window minimum: a number for numeric streams; the earliest-ranked stored value for ordinal streams.'
                  max:
                    description: 'Window maximum: a number for numeric streams; the latest-ranked stored value for ordinal streams.'
                  fact_count:
                    type: integer
                  transitions:
                    type: integer
                  window:
                    type: object
                    properties:
                      facts_used:
                        type: integer
                      from:
                        type: string
                      to:
                        type: string
                      capped:
                        type: boolean
                    required:
                    - facts_used
                    - from
                    - to
                    - capped
                  rank_map:
                    type:
                    - object
                    - 'null'
                    additionalProperties:
                      type: integer
                    description: 'Ordinal streams only: stored value -> rank. Null for numeric streams.'
                  steps:
                    type: array
                    items:
                      type: object
                      properties:
                        fact_id:
                          type: string
                        status_value:
                          description: The stored value, verbatim.
                        previous_value:
                          description: The previous stored value, verbatim, or null.
                        kind:
                          type: string
                        first_seen_at:
                          type: string
                        source:
                          type: object
                          properties:
                            name:
                              type: string
                            url:
                              type: string
                            attribution:
                              type: string
                          required:
                          - name
                          - url
                          - attribution
                      required:
                      - fact_id
                      - status_value
                      - previous_value
                      - kind
                      - first_seen_at
                      - source
                  freshness:
                    type: object
                    properties:
                      newest_fact_at:
                        type:
                        - string
                        - 'null'
                      newest_fact_age_seconds:
                        type:
                        - integer
                        - 'null'
                      value_since:
                        type:
                        - string
                        - 'null'
                      store_last_run_at:
                        type:
                        - string
                        - 'null'
                      capture_cadence:
                        type: string
                      class:
                        type:
                        - string
                        - 'null'
                        enum:
                        - current
                        - settled
                        - long_unchanged
                        - null
                      label:
                        type:
                        - string
                        - 'null'
                      store_stale:
                        type: boolean
                    required:
                    - newest_fact_at
                    - newest_fact_age_seconds
                    - value_since
                    - store_last_run_at
                    - capture_cadence
                    - class
                    - label
                    - store_stale
                  page:
                    type: object
                    properties:
                      limit:
                        type: integer
                      returned:
                        type: integer
                      total:
                        type: integer
                      next_cursor:
                        type:
                        - string
                        - 'null'
                    required:
                    - limit
                    - returned
                    - total
                    - next_cursor
                  store_stamp:
                    type: object
                    properties:
                      facts_sha256:
                        type:
                        - string
                        - 'null'
                      facts_lines:
                        type: integer
                      last_run_id:
                        type:
                        - string
                        - 'null'
                      built_at:
                        type:
                        - string
                        - 'null'
                    required:
                    - facts_sha256
                    - facts_lines
                    - last_run_id
                    - built_at
                  computation:
                    type: string
                  price_usd:
                    type: number
                  price_status:
                    type: string
                  toll:
                    type: object
                    properties:
                      usdc_units:
                        type: integer
                      sol_lamports:
                        type: integer
                    required:
                    - usdc_units
                    - sol_lamports
                required:
                - stream
                - entity
                - status_field
                - value_class
                - direction
                - first_value
                - last_value
                - delta
                - min
                - max
                - fact_count
                - transitions
                - window
                - rank_map
                - steps
                - freshness
                - page
                - store_stamp
                - computation
                - price_usd
                - price_status
                - toll
        '402':
          description: 'Payment Required (x402). The PAYMENT-REQUIRED response header carries the x402 v2 PaymentRequired object (base64 JSON: scheme, CAIP-2 network, amount, asset, payTo, plus the bazaar discovery extension); the response body carries the same challenge in x402 v1 form for compatibility, naming the SOL recipient and USDC token account on Solana plus a fresh memo. To pay on this service''s rail: pay with the memo attached (Solana Memo program), then retry with header ''X-Payment-Tx: <transaction signature>'' and query parameter ''toll_memo=<memo>''.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                stream:
                  type: string
                  description: string (required) - one of nfl-player-status, epl-player-status, bls-release-status, fed-board-status
                entity_id:
                  type: string
                  description: string - canonical entity id, verbatim as stored
                status_field:
                  type: string
                  description: string (required) - the status field whose history is computed over
              required:
              - stream
              - status_field
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '0.02'
      security:
      - x402Payment: []
      operationId: postTollFactsTendency
      x-operation-id-source: derived
components:
  securitySchemes:
    x402Payment:
      type: apiKey
      in: header
      name: X-Payment-Tx
      description: 'x402 toll payment proof: the Solana transaction signature of a payment carrying the memo from the 402 challenge; send together with ?toll_memo=<memo>. Payment itself is made on-chain in SOL or USDC to the recipient named in the challenge.'