{"openapi":"3.1.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"}],"externalDocs":{"url":"https://hesperatlas.com/mcp-docs#pay-per-call"},"x-agentcash-guidance":{"llmsTxtUrl":"https://hesperatlas.com/llms.txt"},"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."}}}}}}