Hesper Atlas Pay Per Call API

The pay-per-call API from Hesper Atlas — 6 operation(s) for pay-per-call.

GitHub OpenAPI

Operations 6

GET /api/x402/get_signal Current end-of-day signal #
GET /api/x402/list_signals Current end-of-day signal lists #
GET /api/x402/get_market_context Market context #
GET /api/x402/get_model_portfolio Model portfolio #
GET /api/x402/get_forward_record Frozen forward publication rows #
GET /api/x402/get_changes_since Forward changes since a publication #

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/hesperatlas-com:hesperatlas-com-pay-per-call-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

hesperatlas-com-pay-per-call-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Hesper Atlas Pay Per Call API
  version: 1.7.0
  description: Rules-based end-of-day stock signals, bought one call at a time for 0.10 USDC on Base over x402. No account. The same tools are on the MCP endpoint https://hesperatlas.com/mcp, where the evidence tools are free. Educational signal data, not investment advice.
  contact:
    url: https://hesperatlas.com/support
  x-guidance: Each GET route is one paid call. Call it without payment to get the x402 v2 quote in the PAYMENT-REQUIRED header, then retry the same URL with the base64 PaymentPayload in PAYMENT-SIGNATURE. Invalid arguments are refused with 400 before any payment is verified; a tool error is never charged. For free evidence (track record, methodology, provenance) use the MCP endpoint https://hesperatlas.com/mcp.
servers:
- url: https://hesperatlas.com
tags:
- name: pay-per-call
paths:
  /api/x402/get_signal:
    get:
      operationId: get_signal
      summary: Current end-of-day signal
      description: 'Use when an authorized user asks for the latest Hesper Atlas action on one ticker; do not substitute replay data if access is missing. Returns the latest completed end-of-day state: the bot-safe action and target position, confirmed engine ownership state, conviction score, both the published current leg and longer-history first entry, trend extension, relative strength, fundamental health grade, valuation rating, sell-risk level and the trade-plan trigger prices. `action` and `suggested_position` are authoritative when a trigger has been crossed. Pay per call over x402, or use a subscription. Signal data, not investment advice.'
      tags:
      - pay-per-call
      parameters:
      - name: symbol
        in: query
        required: true
        description: Ticker symbol, e.g. NVDA. Case-insensitive.
        schema:
          type: string
      security: []
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.10'
        protocols:
        - x402:
            network: eip155:8453
            asset: USDC
            payTo: '0xae77d333b47cc562b8f913cdc74a9be67bb91ff1'
      responses:
        '200':
          description: The tool result, with the settlement receipt in the PAYMENT-RESPONSE header.
          content:
            application/json:
              schema:
                type: object
                properties:
                  disclaimer:
                    type: string
                  as_of:
                    type:
                    - string
                    - 'null'
                  last_updated:
                    type:
                    - string
                    - 'null'
                  data_type:
                    type: string
                  is_live:
                    type: boolean
                  methodology_version:
                    type:
                    - string
                    - 'null'
                  calculation_version:
                    type:
                    - string
                    - 'null'
                  source:
                    type: string
                  source_url:
                    type:
                    - string
                    - 'null'
                  citation:
                    type: object
                  provenance:
                    type: object
                  caveats:
                    type: array
                    items:
                      type: string
                required:
                - disclaimer
              example:
                signal:
                  symbol: NVDA
                  label: BUY | HOLD | SELL | ...
                  state: long | flat
                  score: 0.0
                  entry_date: YYYY-MM-DD
                  sell_price: 0.0
                  sell_distance_pct: 0.0
                  action: hold | add | trim | sell
                  why: One-line reason from the rule engine.
                as_of: YYYY-MM-DD
                data_type: current_eod_snapshot
                is_live: false
                methodology_version: ha-methodology-x.y.z
                citation:
                  url: https://hesperatlas.com/...
                  as_of: YYYY-MM-DD
                caveats:
                - Latest completed end-of-day snapshot, not intraday data.
                disclaimer: Educational signal data, not investment advice.
        '400':
          description: Invalid query parameters. Nothing was charged.
        '402':
          description: Payment required. The x402 v2 PaymentRequired is in the PAYMENT-REQUIRED header (base64 JSON) and in the body.
  /api/x402/list_signals:
    get:
      operationId: list_signals
      summary: Current end-of-day signal lists
      description: 'The engine''s current lists. `recent_entries` is the chronological entry history inside the scan window, even if a name is now HOLD or risky. `recent_buys` is actionable now: still BUY/STRONG BUY and not critical sell-risk. Also supports recent sells, positions at risk, ranked opportunities, undervalued names, catch-up candidates, and the on-deck watch roster. Pay per call over x402, or use a subscription. Signal data, not advice.'
      tags:
      - pay-per-call
      parameters:
      - name: kind
        in: query
        required: false
        description: Which list. Default 'recent_buys'.
        schema:
          type: string
          enum:
          - recent_buys
          - recent_entries
          - recent_sells
          - at_risk
          - opportunities
          - undervalued
          - catch_up
          - on_deck
      - name: limit
        in: query
        required: false
        description: Rows to return, default 20, max 60.
        schema:
          type: integer
          minimum: 1
          maximum: 60
      security: []
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.10'
        protocols:
        - x402:
            network: eip155:8453
            asset: USDC
            payTo: '0xae77d333b47cc562b8f913cdc74a9be67bb91ff1'
      responses:
        '200':
          description: The tool result, with the settlement receipt in the PAYMENT-RESPONSE header.
          content:
            application/json:
              schema:
                type: object
                properties:
                  disclaimer:
                    type: string
                  as_of:
                    type:
                    - string
                    - 'null'
                  last_updated:
                    type:
                    - string
                    - 'null'
                  data_type:
                    type: string
                  is_live:
                    type: boolean
                  methodology_version:
                    type:
                    - string
                    - 'null'
                  calculation_version:
                    type:
                    - string
                    - 'null'
                  source:
                    type: string
                  source_url:
                    type:
                    - string
                    - 'null'
                  citation:
                    type: object
                  provenance:
                    type: object
                  caveats:
                    type: array
                    items:
                      type: string
                required:
                - disclaimer
              example:
                kind: recent_buys
                total: 0
                rows:
                - symbol: TICKER
                  label: BUY
                  score: 0.0
                  fresh_buy_date: YYYY-MM-DD
                  sell_risk_level: low
                  why: One-line reason.
                definition: What qualifies a row for this list.
                as_of: YYYY-MM-DD
                data_type: current_eod_snapshot
                is_live: false
                methodology_version: ha-methodology-x.y.z
                citation:
                  url: https://hesperatlas.com/...
                  as_of: YYYY-MM-DD
                caveats:
                - Latest completed end-of-day snapshot, not intraday data.
                disclaimer: Educational signal data, not investment advice.
        '400':
          description: Invalid query parameters. Nothing was charged.
        '402':
          description: Payment required. The x402 v2 PaymentRequired is in the PAYMENT-REQUIRED header (base64 JSON) and in the body.
  /api/x402/get_market_context:
    get:
      operationId: get_market_context
      summary: Market context
      description: 'Whole-tape context the per-name signals sit inside: risk regime, breadth (share of the universe the engine is long), the market heat / froth reading with its suggested position-size multiplier, and the cycle read. Pay per call over x402, or use a subscription.'
      tags:
      - pay-per-call
      parameters: []
      security: []
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.10'
        protocols:
        - x402:
            network: eip155:8453
            asset: USDC
            payTo: '0xae77d333b47cc562b8f913cdc74a9be67bb91ff1'
      responses:
        '200':
          description: The tool result, with the settlement receipt in the PAYMENT-RESPONSE header.
          content:
            application/json:
              schema:
                type: object
                properties:
                  disclaimer:
                    type: string
                  as_of:
                    type:
                    - string
                    - 'null'
                  last_updated:
                    type:
                    - string
                    - 'null'
                  data_type:
                    type: string
                  is_live:
                    type: boolean
                  methodology_version:
                    type:
                    - string
                    - 'null'
                  calculation_version:
                    type:
                    - string
                    - 'null'
                  source:
                    type: string
                  source_url:
                    type:
                    - string
                    - 'null'
                  citation:
                    type: object
                  provenance:
                    type: object
                  caveats:
                    type: array
                    items:
                      type: string
                required:
                - disclaimer
              example:
                market:
                  regime: risk-on | neutral | risk-off
                  breadth: 0
                cycle:
                  heat: {}
                  backdrop: {}
                  verdict: {}
                as_of: YYYY-MM-DD
                data_type: current_eod_snapshot
                is_live: false
                methodology_version: ha-methodology-x.y.z
                citation:
                  url: https://hesperatlas.com/...
                  as_of: YYYY-MM-DD
                caveats:
                - Latest completed end-of-day snapshot, not intraday data.
                disclaimer: Educational signal data, not investment advice.
        '400':
          description: Invalid query parameters. Nothing was charged.
        '402':
          description: Payment required. The x402 v2 PaymentRequired is in the PAYMENT-REQUIRED header (base64 JSON) and in the body.
  /api/x402/get_model_portfolio:
    get:
      operationId: get_model_portfolio
      summary: Model portfolio
      description: 'The Hesper Atlas model book: quality stocks the class engine is long, ranked by 12-month momentum at the last month-end session, inverse-volatility weighted times engine exposure and scaled to a volatility target, with each position''s weight and the names the engine is standing aside on. The same construction as the public walk-forward at /api/model-portfolio-evidence. Pay per call over x402, or use a subscription. Not personalized advice: it is one rules-based construction, blind to your circumstances.'
      tags:
      - pay-per-call
      parameters:
      - name: n
        in: query
        required: false
        description: Position count. Default 10.
        schema:
          type: integer
          enum:
          - 10
          - 20
      security: []
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.10'
        protocols:
        - x402:
            network: eip155:8453
            asset: USDC
            payTo: '0xae77d333b47cc562b8f913cdc74a9be67bb91ff1'
      responses:
        '200':
          description: The tool result, with the settlement receipt in the PAYMENT-RESPONSE header.
          content:
            application/json:
              schema:
                type: object
                properties:
                  disclaimer:
                    type: string
                  as_of:
                    type:
                    - string
                    - 'null'
                  last_updated:
                    type:
                    - string
                    - 'null'
                  data_type:
                    type: string
                  is_live:
                    type: boolean
                  methodology_version:
                    type:
                    - string
                    - 'null'
                  calculation_version:
                    type:
                    - string
                    - 'null'
                  source:
                    type: string
                  source_url:
                    type:
                    - string
                    - 'null'
                  citation:
                    type: object
                  provenance:
                    type: object
                  caveats:
                    type: array
                    items:
                      type: string
                required:
                - disclaimer
              example:
                n: 10
                portfolio:
                  invested_pct: 0.0
                  cash_pct: 0.0
                  sizing_method: '...'
                  holdings:
                  - symbol: TICKER
                    label: BUY
                    weight: 0.0
                  picks:
                  - rank: 1
                    symbol: TICKER
                    why: One-line reason.
                  avoid:
                  - symbol: TICKER
                    reason: One-line reason.
                as_of: YYYY-MM-DD
                data_type: current_eod_snapshot
                is_live: false
                methodology_version: ha-methodology-x.y.z
                citation:
                  url: https://hesperatlas.com/...
                  as_of: YYYY-MM-DD
                caveats:
                - Latest completed end-of-day snapshot, not intraday data.
                disclaimer: Educational signal data, not investment advice.
        '400':
          description: Invalid query parameters. Nothing was charged.
        '402':
          description: Payment required. The x402 v2 PaymentRequired is in the PAYMENT-REQUIRED header (base64 JSON) and in the body.
  /api/x402/get_forward_record:
    get:
      operationId: get_forward_record
      summary: Frozen forward publication rows
      description: Exact immutable agent-facing signal rows for one append-only publication, including stable signal ids, previous-row links and changed-field classifications. Defaults to the latest publication and supports symbol filtering and pagination. Pay per call over x402, or use a subscription. Completed end-of-day data, not real-time or advice.
      tags:
      - pay-per-call
      parameters:
      - name: publication_id
        in: query
        required: false
        description: Stable hsp_pub_... id; omit for latest.
        schema:
          type: string
      - name: symbol
        in: query
        required: false
        description: Ticker symbol, e.g. NVDA. Case-insensitive.
        schema:
          type: string
      - name: offset
        in: query
        required: false
        description: Rows to skip, default 0.
        schema:
          type: integer
          minimum: 0
          maximum: 100000
      - name: limit
        in: query
        required: false
        description: Rows to return, default 50, max 200.
        schema:
          type: integer
          minimum: 1
          maximum: 200
      security: []
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.10'
        protocols:
        - x402:
            network: eip155:8453
            asset: USDC
            payTo: '0xae77d333b47cc562b8f913cdc74a9be67bb91ff1'
      responses:
        '200':
          description: The tool result, with the settlement receipt in the PAYMENT-RESPONSE header.
          content:
            application/json:
              schema:
                type: object
                properties:
                  disclaimer:
                    type: string
                  as_of:
                    type:
                    - string
                    - 'null'
                  last_updated:
                    type:
                    - string
                    - 'null'
                  data_type:
                    type: string
                  is_live:
                    type: boolean
                  methodology_version:
                    type:
                    - string
                    - 'null'
                  calculation_version:
                    type:
                    - string
                    - 'null'
                  source:
                    type: string
                  source_url:
                    type:
                    - string
                    - 'null'
                  citation:
                    type: object
                  provenance:
                    type: object
                  caveats:
                    type: array
                    items:
                      type: string
                required:
                - disclaimer
              example:
                publication:
                  publication_id: hsp_pub_YYYYMMDD_0123456789abcdef
                  as_of: YYYY-MM-DD
                total: 0
                offset: 0
                limit: 50
                returned: 0
                records:
                - symbol: TICKER
                  change_type: baseline | added | material_change | mark_update
                  signal:
                    label: BUY
                as_of: YYYY-MM-DD
                data_type: current_eod_snapshot
                is_live: false
                methodology_version: ha-methodology-x.y.z
                citation:
                  url: https://hesperatlas.com/...
                  as_of: YYYY-MM-DD
                caveats:
                - Latest completed end-of-day snapshot, not intraday data.
                disclaimer: Educational signal data, not investment advice.
        '400':
          description: Invalid query parameters. Nothing was charged.
        '402':
          description: Payment required. The x402 v2 PaymentRequired is in the PAYMENT-REQUIRED header (base64 JSON) and in the body.
  /api/x402/get_changes_since:
    get:
      operationId: get_changes_since
      summary: Forward changes since a publication
      description: Chronological before/after events after a stable forward-publication cursor. By default returns only stance, target-size and actionable risk changes; set material_only=false to include mark and score updates. Supports one-symbol filtering and pagination. Pay per call over x402, or use a subscription. Completed end-of-day data, not real-time or investment advice.
      tags:
      - pay-per-call
      parameters:
      - name: since_publication_id
        in: query
        required: true
        description: Exclusive stable hsp_pub_... cursor.
        schema:
          type: string
      - name: symbol
        in: query
        required: false
        description: Ticker symbol, e.g. NVDA. Case-insensitive.
        schema:
          type: string
      - name: material_only
        in: query
        required: false
        description: Default true; false also returns non-material mark updates.
        schema:
          type: boolean
      - name: offset
        in: query
        required: false
        description: Events to skip, default 0.
        schema:
          type: integer
          minimum: 0
          maximum: 100000
      - name: limit
        in: query
        required: false
        description: Events to return, default 100, max 200.
        schema:
          type: integer
          minimum: 1
          maximum: 200
      security: []
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.10'
        protocols:
        - x402:
            network: eip155:8453
            asset: USDC
            payTo: '0xae77d333b47cc562b8f913cdc74a9be67bb91ff1'
      responses:
        '200':
          description: The tool result, with the settlement receipt in the PAYMENT-RESPONSE header.
          content:
            application/json:
              schema:
                type: object
                properties:
                  disclaimer:
                    type: string
                  as_of:
                    type:
                    - string
                    - 'null'
                  last_updated:
                    type:
                    - string
                    - 'null'
                  data_type:
                    type: string
                  is_live:
                    type: boolean
                  methodology_version:
                    type:
                    - string
                    - 'null'
                  calculation_version:
                    type:
                    - string
                    - 'null'
                  source:
                    type: string
                  source_url:
                    type:
                    - string
                    - 'null'
                  citation:
                    type: object
                  provenance:
                    type: object
                  caveats:
                    type: array
                    items:
                      type: string
                required:
                - disclaimer
              example:
                since_publication:
                  publication_id: hsp_pub_YYYYMMDD_0123456789abcdef
                material_only: true
                total: 0
                returned: 0
                events:
                - symbol: TICKER
                  change_type: baseline | added | material_change | mark_update
                  material_changed_fields:
                  - label
                  before:
                    label: HOLD
                  after:
                    label: BUY
                as_of: YYYY-MM-DD
                data_type: current_eod_snapshot
                is_live: false
                methodology_version: ha-methodology-x.y.z
                citation:
                  url: https://hesperatlas.com/...
                  as_of: YYYY-MM-DD
                caveats:
                - Latest completed end-of-day snapshot, not intraday data.
                disclaimer: Educational signal data, not investment advice.
        '400':
          description: Invalid query parameters. Nothing was charged.
        '402':
          description: Payment required. The x402 v2 PaymentRequired is in the PAYMENT-REQUIRED header (base64 JSON) and in the body.
externalDocs:
  url: https://hesperatlas.com/mcp-docs#pay-per-call
x-agentcash-guidance:
  llmsTxtUrl: https://hesperatlas.com/llms.txt