The Orrery Decision API
Every paid endpoint returns a Decision Card. Same envelope across endpoints — write one parser, dispatch on decision_type, walk suggested_next_calls. Settled in USDC on Base via x402.
Free manifest
curl https://orrery.me/api/v1/manifest
Index of every paid endpoint, prices, schemas, decision types, and revenue-ladder examples. No payment required.
Flagship endpoints
Four sharp endpoints. The full catalog of 18 endpoints (per-wallet, per-category, per-event, etc) is at /api/v1/manifest.
Attention Queue
$0.05/api/x402/v1/decision/attention
Flagship. Ranked Decision Cards across the active-market slice. Top of every agent loop.
Move Explanation
$0.02/api/x402/v1/markets/{id}/why
Deterministic factor breakdown — price_move, volume_pressure, resolution_context, signal_evidence, smart_money_flow.
Resolution Risk
$0.01/api/x402/v1/markets/{id}/resolution-risk
Source extraction + UMA dispute + ambiguities + what-to-verify checklist. Most-cited Decision API endpoint.
Daily Agent Brief
$0.01/api/x402/v1/brief/today
One call → day-level summary: movers, signals, resolution watch, smart-money flow.
The Decision Card envelope
Stable shape — every paid endpoint returns this. Header is identical (action + scores + evidence + risks + sources + next_calls); the `payload` field carries endpoint-specific data.
{
"data": {
"schema_version": "orrery.decision.v1",
"decision_type": "attention_queue",
"generated_at": "2026-05-02T18:30:00Z",
"valid_until": "2026-05-02T18:31:00Z",
"recommended_agent_action": "investigate_now",
"scores": { "attention": 87.4, "confidence": 0.72, "risk": 0.41 },
"one_line_reason": "Top market \"X\" scored 87.4/100 — investigate_now.",
"why_this_matters": [ "..." ],
"evidence": [ { "type": "price_move", "summary": "...", "weight": 0.31, "data": { ... } } ],
"risks": [ { "type": "resolution_ambiguity", "severity": "medium", "summary": "..." } ],
"sources": [ { "source_type": "market", "name": "Polymarket", "url": "..." } ],
"suggested_next_calls": [
{
"endpoint": "/api/x402/v1/markets/{id}/why",
"method": "GET",
"reason": "Get the deterministic factor breakdown.",
"estimated_price_usdc": 0.02,
"priority": "high"
}
],
"payload": { "items": [ ... ] },
"disclaimer": "Decision-support data only. ..."
},
"meta": {
"endpoint": "/api/x402/v1/decision/attention",
"fetched_at": "2026-05-02T18:30:00Z",
"payment_status": "preview",
"usdc_per_call": 0.05,
"sources": ["Polymarket Gamma", "Polymarket Data", "Orrery Decision Engine"],
"not_trade_advice": true
}
}Quickstart
- 1Read the manifest
GET https://orrery.me/api/v1/manifest — the free index of every paid endpoint with prices, schemas, decision types, and example URLs.
curl https://orrery.me/api/v1/manifest - 2Call the Attention Queue
GET /api/x402/v1/decision/attention?limit=5&risk_tolerance=medium — flagship endpoint, $0.05. Returns the ranked list of markets that deserve attention right now, with a Decision Card per market.
curl 'https://orrery.me/api/x402/v1/decision/attention?preview=1&limit=5' - 3Walk suggested_next_calls
Each Decision Card includes `suggested_next_calls[]` — the next paid endpoints the agent should hit for the top results. Walk these as a tree, not a list.
- 4Verify before acting
If `recommended_agent_action` is `check_resolution_risk` or `check_sources`, hit /markets/{id}/resolution-risk before treating the move as actionable. UMA disputes and ambiguous wording are real and frequent.
curl 'https://orrery.me/api/x402/v1/markets/{slug}/resolution-risk?preview=1' - 5Cite the markdown variant
Every market and the daily brief have a Markdown twin (`/markets/{slug}/markdown`, `/brief/markdown`) with timestamps and a Cite-this stanza. Use these when handing analysis back to a human.
recommended_agent_action enum
ignore
Score too low to spend any agent budget on this.
monitor
Worth a periodic re-check; not actionable now.
investigate_now
High urgency, confidence is OK, risk is acceptable.
deep_research
High urgency but enough risk that you need more data first.
check_resolution_risk
Risk score is elevated — call /resolution-risk before acting.
check_liquidity
Strong signal but liquidity is too thin for normal action.
check_sources
Signal is firing but confidence is too low — verify sources first.
alert_human
High attention but low confidence — escalate to a human.
Frequently asked
What is a Decision Card?
A Decision Card is the canonical envelope every Orrery paid endpoint returns. It carries `schema_version`, `decision_type`, `generated_at`, `valid_until`, a `recommended_agent_action` enum, a tri-score header (`attention` 0..100, `confidence` 0..1, `risk` 0..1), `one_line_reason`, `why_this_matters[]`, structured `evidence[]`, `risks[]`, `sources[]`, `suggested_next_calls[]`, the endpoint-specific `payload`, and a `disclaimer`. Stable across endpoints — write one parser.
What's `recommended_agent_action` and why isn't it `buy` or `sell`?
It's the routing verb the agent should take next: `ignore | monitor | investigate_now | deep_research | check_resolution_risk | check_liquidity | check_sources | alert_human`. Orrery never says `buy` or `sell` — that's trade advice, which we explicitly do not provide. Routing verbs let the agent dispatch on a discrete enum without prompt-engineering against prose.
How is the `attention_score` computed?
Deterministic weighted sum of seven feature scores: 0.25·price_move + 0.20·volume_spike + 0.15·liquidity + 0.15·whale_activity + 0.10·time_to_resolution + 0.10·news_catalyst + 0.05·novelty. Each feature is normalised to 0..1 by the formulas in src/lib/decision-engine.ts. The composite is multiplied by 100 and rounded to one decimal. No LLM is involved in scoring — only in packaging the human-readable summaries.
How is `confidence` computed?
0.30·source_quality + 0.25·source_agreement + 0.20·signal_consistency + 0.15·historical_precision + 0.10·freshness. Source quality comes from the resolution-source extractor (high/medium/low). Source agreement combines source presence + UMA non-disputed state. Signal consistency averages the confidence of directional signals. Historical precision is the backtest tier proxy. Freshness decays linearly between 60s (1.0) and 600s (0.0).
How is `risk` computed?
0.30·resolution_ambiguity + 0.25·liquidity_risk + 0.20·source_conflict + 0.15·manipulation_risk + 0.10·jurisdiction_risk. Resolution ambiguity peaks at 0.95 for `ambiguous` source-type extractions. Liquidity risk is 1 below $25K and 0.05 above $250K. Source conflict is 0.9 if UMA is `proposed | disputed | challenged`. Manipulation risk is whale-net-flow as a fraction of orderbook depth. Jurisdiction risk is 0.6 for any non-resolved UMA state.
What's the revenue ladder?
Every Decision Card carries `suggested_next_calls[]` pointing at the next paid endpoints the agent should likely hit, with reasons and price estimates. The cheap discovery call (/decision/attention at $0.05) surfaces the deep call (/markets/{id}/why at $0.02 + /markets/{id}/resolution-risk at $0.01) that's actually relevant for the top result. Agents pay once for routing, then pay again for verification.
How do I authenticate?
You don't — x402 is account-less. Send a request without payment and you get HTTP 402 with a JSON challenge specifying USDC price + Base network + payTo address. Pay on-chain, replay with the X-PAYMENT header, get the data. v1 launches in preview mode where any non-empty X-PAYMENT (or `?preview=1` query param) is accepted free during marketplace review. The response envelope tags `payment_status: "preview"`.
Can I get the same data without paying?
The free endpoints are: GET /api/v1/manifest (this catalog), GET /api/x402/v1/health (uptime + endpoint inventory), and GET /.well-known/x402-services.json (Bazaar discovery). Per-market HTML pages and Markdown variants (/markets/{slug}/markdown, /brief/markdown) are also free for citation. The paid endpoints are the structured Decision Cards.
Is Orrery affiliated with Polymarket?
No. Orrery is a public, read-only intelligence terminal that aggregates and explains live data from the Polymarket public APIs (Gamma + CLOB + Data). We don't facilitate trading, we don't sign transactions for users, and we don't provide investment, legal, tax, or betting advice. Every Decision Card carries this disclaimer.
Want the formulas? /methodology spells out every weight. Want term definitions? /glossary. The OpenAPI spec for every endpoint: /x402-openapi.yaml.