Hesper Atlas Pay Per Call API
The pay-per-call API from Hesper Atlas — 6 operation(s) for pay-per-call.
The pay-per-call API from Hesper Atlas — 6 operation(s) for pay-per-call.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/hesperatlas-com:hesperatlas-com-pay-per-call-api"
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.
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: 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