{"service":"amarok-api","apiVersion":"1.0.0","discoveryVersion":"1.0.0","asOf":"2026-09-08T14:12:54.931Z","publicBaseUrl":"https://amarok-api.compx.io","openapiUrl":"https://amarok-api.compx.io/openapi.json","docsUrl":"https://amarok.compx.io","capabilities":["alpha-research","lane-ranking","market-search","unsigned-execution-quotes","unsigned-match-split","research-bundle","research-session","watchlist","polymarket-research","kalshi-research","x402-paid-data","agent-discovery","openapi","mcp-server","bazaar-discovery"],"x402ProtocolVersion":2,"x402":{"protocolVersion":2,"facilitatorUrl":"https://facilitator.goplausible.xyz","network":"algorand-mainnet","scheme":"exact","assetId":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","mode":"edge","headers":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"]},"mcpServer":{"transport":"streamable-http","url":"https://amarok.compx.io/mcp","package":"@amarok/mcp","tools":["amarok_health","amarok_get_discovery","amarok_get_openapi","amarok_list_markets","amarok_list_rewards","amarok_list_spreads","amarok_list_parity","amarok_list_opportunities","amarok_get_market","amarok_get_quotes","amarok_get_scan","amarok_get_polymarket_scan","amarok_get_kalshi_scan","amarok_list_kalshi_markets","amarok_get_kalshi_market","amarok_list_kalshi_rewards","amarok_list_kalshi_spreads","amarok_list_kalshi_parity","amarok_list_kalshi_opportunities","amarok_list_polymarket_rewards","amarok_list_polymarket_spreads","amarok_list_polymarket_parity","amarok_list_polymarket_opportunities","amarok_list_polymarket_markets","amarok_get_polymarket_market","amarok_list_execution_shapes","amarok_get_execution_quote","amarok_get_portfolio","amarok_get_advisor","amarok_get_research_bundle","amarok_create_research_session","amarok_register_watchlist","amarok_poll_watchlist"]},"endpoints":[{"id":"root","method":"GET","path":"/","access":"free","operationId":"getRoot","summary":"API landing page","description":"Branded HTML landing for the Amarok public gateway.","tags":["system"],"pathParams":[],"queryParams":[],"responseCodes":[200,500],"capability":"meta"},{"id":"health","method":"GET","path":"/health","access":"free","operationId":"getHealth","summary":"Liveness check","description":"Ungated health probe for the Amarok API.","tags":["system"],"pathParams":[],"queryParams":[],"responseCodes":[200,500],"capability":"meta"},{"id":"discovery","method":"GET","path":"/discovery","access":"free","operationId":"getDiscovery","summary":"Route access catalog","description":"Lists free vs paid Amarok routes and x402 payment requirement templates. Call this before paid endpoints.","tags":["discovery","free"],"pathParams":[],"queryParams":[],"responseCodes":[200,500],"capability":"meta"},{"id":"openapi","method":"GET","path":"/openapi.json","access":"free","operationId":"getOpenApi","summary":"OpenAPI document","description":"OpenAPI 3 document with x402 extensions on paid operations.","tags":["discovery","free"],"pathParams":[],"queryParams":[],"responseCodes":[200,500],"capability":"meta"},{"id":"wellKnownX402","method":"GET","path":"/.well-known/x402","access":"free","operationId":"getWellKnownX402","summary":"x402 paid resource fan-out","description":"Lists absolute URLs for paid Amarok resources.","tags":["discovery","free"],"pathParams":[],"queryParams":[],"responseCodes":[200,500],"capability":"meta"},{"id":"wellKnownX402Json","method":"GET","path":"/.well-known/x402.json","access":"free","operationId":"getWellKnownX402Json","summary":"x402 service manifest","description":"Machine-readable x402 service manifest with docs, OpenAPI, discovery, and MCP links.","tags":["discovery","free"],"pathParams":[],"queryParams":[],"responseCodes":[200,500],"capability":"meta"},{"id":"marketsList","method":"GET","path":"/v1/alpha/markets","access":"paid","operationId":"listAlphaMarkets","summary":"Search and filter Alpha Arcade markets","description":"Paid metadata-only market list (no orderbooks). Filter with q, category, horizon (5m|15m|1h|1d), series (up_or_down), hasRewards, limit, offset. Preflight may return 402; retry with PAYMENT-SIGNATURE.","tags":["alpha","paid","research-only"],"pathParams":[],"queryParams":["q","category","horizon","series","hasRewards","limit","offset"],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"rewards","method":"GET","path":"/v1/alpha/rewards","access":"paid","operationId":"getAlphaRewards","summary":"Ranked LP reward opportunities","description":"Paid LP reward ranking (safest emissions-farming lane). Supports research filters. Default top 25. Preflight may return 402; retry with PAYMENT-SIGNATURE.","tags":["alpha","paid","research-only"],"pathParams":[],"queryParams":["q","category","horizon","series","hasRewards","limit","offset"],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"spreads","method":"GET","path":"/v1/alpha/spreads","access":"paid","operationId":"getAlphaSpreads","summary":"Ranked maker/spread opportunities","description":"Paid maker/spread ranking. Supports research filters. Default top 25. Preflight may return 402; retry with PAYMENT-SIGNATURE.","tags":["alpha","paid","research-only"],"pathParams":[],"queryParams":["q","category","horizon","series","hasRewards","limit","offset"],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"parity","method":"GET","path":"/v1/alpha/parity","access":"paid","operationId":"getAlphaParity","summary":"Ranked parity opportunities","description":"Paid YES+NO parity ranking (research-only). Supports research filters. Default top 25. Compile sized YES+NO fills via POST /v1/alpha/execution/quotes (alpha_place_market_order + alpha_merge_shares or alpha_split_shares). Preflight may return 402; retry with PAYMENT-SIGNATURE.","tags":["alpha","paid","research-only"],"pathParams":[],"queryParams":["q","category","horizon","series","hasRewards","limit","offset"],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"opportunities","method":"GET","path":"/v1/alpha/opportunities","access":"paid","operationId":"getAlphaOpportunities","summary":"Mixed ranked Alpha Arcade opportunities","description":"Paid mixed LP reward, maker/spread, and parity opportunities sorted by edge. Quick overview; prefer /rewards, /spreads, or /parity for lane focus. Supports research filters. Default top 25. Preflight may return 402 with PAYMENT-REQUIRED; retry with PAYMENT-SIGNATURE.","tags":["alpha","paid","research-only"],"pathParams":[],"queryParams":["q","category","horizon","series","hasRewards","limit","offset"],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"market","method":"GET","path":"/v1/alpha/markets/{marketAppId}","access":"paid","operationId":"getAlphaMarket","summary":"Alpha Arcade market deep dive","description":"Paid single-market detail with normalized book tops and related opportunity slice. Preflight may return 402; retry with PAYMENT-SIGNATURE.","tags":["alpha","paid","research-only"],"pathParams":["marketAppId"],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"quotes","method":"GET","path":"/v1/alpha/quotes","access":"paid","operationId":"getAlphaQuotes","summary":"Suggested Alpha Arcade quotes","description":"Paid actionable bid/ask suggestions from the quote engine (reward and spread lanes only; no wallet inventory exits). Supports research filters. Preflight may return 402; retry with PAYMENT-SIGNATURE.","tags":["alpha","paid","research-only"],"pathParams":[],"queryParams":["q","category","horizon","series","hasRewards","limit","offset"],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"6000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.006"}}},{"id":"scan","method":"GET","path":"/v1/alpha/scan","access":"paid","operationId":"getAlphaScan","summary":"Full Alpha Arcade scan summary","description":"Paid normalized markets plus orderbook tops (mids/spreads/depth summary). Supports research filters. Capped for MCP client timeouts (~12 markets, 45s orderbook budget); responses may include timedOut/capped and are TTL-cached. Preflight may return 402; retry with PAYMENT-SIGNATURE.","tags":["alpha","paid","research-only"],"pathParams":[],"queryParams":["q","category","horizon","series","hasRewards","limit","offset"],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"25000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.025"}}},{"id":"polymarketScan","method":"GET","path":"/v1/polymarket/scan","access":"paid","operationId":"getPolymarketScan","summary":"Polymarket scan summary (capped markets + book tops)","description":"Paid Gamma open markets plus CLOB book tops (venue DTOs; marketId is the condition id). Own POLY_SCAN_* caps/timeouts/cache — not Alpha scanCache. Capped for MCP client timeouts (~12 markets, 45s orderbook budget); responses may include timedOut/capped/candidateCount. Not covered by AMAROK-SESSION (neither venue /scan is). meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","tags":["polymarket","scan-only","paid","research-only"],"pathParams":[],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"25000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.025"}}},{"id":"executionShapes","method":"GET","path":"/v1/alpha/execution/shapes","access":"free","operationId":"listExecutionShapes","summary":"Execution shape catalog","description":"Free catalog of Amarok execution shapes (unsigned txn builders). Agents use these with POST /v1/alpha/execution/quotes. Research lanes (/parity, /rewards, /spreads, /quotes) are research-only; this catalog plus the paid quotes POST are execution-capable.","tags":["execution","free","execution-capable"],"pathParams":[],"queryParams":[],"responseCodes":[200,500],"capability":"execution-capable"},{"id":"executionQuotes","method":"POST","path":"/v1/alpha/execution/quotes","access":"paid","operationId":"createExecutionQuotes","summary":"Unsigned Alpha Arcade execution groups","description":"Paid: build unsigned Algorand transaction groups for alpha_place_limit_order, alpha_cancel_order, alpha_claim, alpha_place_market_order, alpha_merge_shares, alpha_split_shares, or alpha_opt_in. Match/split/market share this SKU at 0.01 USDC; cancel/claim stay on the same cheaper-than-scan route. GET /v1/alpha/parity is research-only — compile sized YES+NO groups here. Amarok never signs or submits; agent signs unsignedTxnsBase64 and submits via own algod. Preflight may return 402; retry with PAYMENT-SIGNATURE.","tags":["execution","paid","execution-capable"],"pathParams":[],"queryParams":[],"responseCodes":[200,402,500],"capability":"execution-capable","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"10000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.01"}}},{"id":"alphaPortfolio","method":"GET","path":"/v1/alpha/portfolio/{address}","access":"paid","operationId":"getAlphaPortfolio","summary":"Alpha Arcade portfolio by address","description":"Paid read-only Alpha Arcade portfolio for a wallet address (balances, positions with mark-to-market, open orders, bid escrow). Same DTO family as the free Ghillie showcase. Agents read their own state; not a public wallet browser. Ghillie remains the free hardcoded exception at /public/agents/ghillie/portfolio. Preflight may return 402; retry with PAYMENT-SIGNATURE.","tags":["alpha","paid","research-only"],"pathParams":["address"],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"alphaAdvisor","method":"POST","path":"/v1/alpha/advisor","access":"paid","operationId":"createAlphaAdvisor","summary":"Inventory-aware Alpha Arcade advisor","description":"Paid inventory-aware advisor. Agent POSTs an authoritative wallet snapshot (address + positions + open orders + optional avg cost / asset ids). No keys. Response suggests inventory exits, off-zone/underwater cancels, resolvable claims, and size adjustments vs reward zone / spread. Snapshot is authoritative for wallet state; Amarok re-reads Alpha markets/orderbooks for posted marketAppIds only. Empty-wallet generic quotes remain on GET /v1/alpha/quotes. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE.","tags":["alpha","paid","research-only"],"pathParams":[],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"8000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.008"}}},{"id":"researchBundle","method":"GET","path":"/v1/alpha/bundle","access":"paid","operationId":"getAlphaResearchBundle","summary":"Research bundle (opportunities + quotes + N markets)","description":"Paid additive SKU: one x402 payment returns mixed opportunities, suggested quotes, and up to N market details (default 5, max 10). Supports shared research filters plus marketLimit and comma-separated marketAppIds. Per-request 402 remains the bazaar default — this bundle is optional. PAYMENT-RESPONSE is the bundle receipt and is not replayable on other routes. Present AMAROK-SESSION instead if you hold a live research session. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE.","tags":["alpha","paid","research-only"],"pathParams":[],"queryParams":["q","category","horizon","series","hasRewards","limit","offset","marketLimit","marketAppIds"],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"20000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.02"}}},{"id":"researchSession","method":"POST","path":"/v1/alpha/session","access":"paid","operationId":"createAlphaResearchSession","summary":"Short-lived research GET session token","description":"Paid additive SKU: one x402 payment mints a 1h HMAC capability for research GETs (Alpha opportunities, lane rankings, markets list/detail, quotes, bundle, plus light Polymarket/Kalshi GETs). Present the token as AMAROK-SESSION on those routes to skip a new per-request 402. Either venue /scan, execution, portfolio, advisor, and watchlist stay per-request. Do not replay PAYMENT-SIGNATURE (single-use settle). Per-request 402 remains the bazaar default. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE.","tags":["alpha","paid","research-only"],"pathParams":[],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"30000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.03"}}},{"id":"watchlistRegister","method":"POST","path":"/v1/alpha/watchlist","access":"paid","operationId":"createAlphaWatchlist","summary":"Register market ids for a watchlist","description":"Paid: register up to 25 market app ids. Returns a watchlistId and cursor. Later GET /v1/alpha/watchlist polls return deltas only from coarse opportunity history (top 25 per lane, ~5m buckets) — not a full rescan. Not covered by AMAROK-SESSION. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE.","tags":["alpha","paid","research-only"],"pathParams":[],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"8000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.008"}}},{"id":"watchlistPoll","method":"GET","path":"/v1/alpha/watchlist","access":"paid","operationId":"pollAlphaWatchlist","summary":"Poll watchlist deltas","description":"Paid: poll ranked-opportunity deltas for a registered watchlist. Query watchlistId (required) and optional cursor. First poll without cursor (or cursor=origin) seeds entered rows for watched ids in the latest 5m bucket. Later polls return entered/exited/updated only — never a full scan payload. Coarse history is top 25 per lane. Not covered by AMAROK-SESSION. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE.","tags":["alpha","paid","research-only"],"pathParams":[],"queryParams":["watchlistId","cursor"],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"8000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.008"}}},{"id":"kalshiScan","method":"GET","path":"/v1/kalshi/scan","access":"paid","operationId":"getKalshiScan","summary":"Capped Kalshi scan with inferred book tops","description":"Paid Kalshi research scan: capped open markets plus inferred two-sided book tops (YES bid p ↔ NO ask 1-p). Honors KALSHI_SCAN_* timeout/cap/cache independently of Alpha; responses may include timedOut/capped. Not covered by AMAROK-SESSION (neither venue /scan is). No venue keys. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","tags":["kalshi","scan-only","paid","research-only"],"pathParams":[],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"25000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.025"}}},{"id":"kalshiMarketsList","method":"GET","path":"/v1/kalshi/markets","access":"paid","operationId":"listKalshiMarkets","summary":"Search Kalshi markets by ticker","description":"Paid Kalshi market list from the public Trade API (GET /v1/kalshi/markets). marketId is the Kalshi ticker — not an Alpha marketAppId. Metadata only (no orderbooks). Filters: q, eventTicker, limit, offset. Covered by AMAROK-SESSION. No venue keys. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","tags":["kalshi","scan-only","paid","research-only"],"pathParams":[],"queryParams":["q","eventTicker","limit","offset"],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"kalshiMarket","method":"GET","path":"/v1/kalshi/markets/{ticker}","access":"paid","operationId":"getKalshiMarket","summary":"Kalshi market detail by ticker","description":"Paid Kalshi market deep dive (GET /v1/kalshi/markets/{ticker}). Lookup by ticker (marketId), not Alpha marketAppId. Book tops are probabilities in (0, 1) with inferred YES/NO asks (YES bid p ↔ NO ask 1-p) — never cents. Covered by AMAROK-SESSION. No venue keys. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","tags":["kalshi","scan-only","paid","research-only"],"pathParams":["ticker"],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"kalshiRewards","method":"GET","path":"/v1/kalshi/rewards","access":"paid","operationId":"getKalshiRewards","summary":"Ranked Kalshi LP reward opportunities","description":"Paid Kalshi LP_REWARD ranking: public GET /incentive_programs?status=active joined to market metadata. Liquidity programs first; volume programs stay observations. Sorted by estimatedRewardUsdPerDay descending (shared rankReward; period pool USD, not volume, not a daily rate invented from dates). Missing market rows stay observations. Honors KALSHI_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","tags":["kalshi","scan-only","paid","research-only"],"pathParams":[],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"kalshiSpreads","method":"GET","path":"/v1/kalshi/spreads","access":"paid","operationId":"getKalshiSpreads","summary":"Ranked Kalshi maker/spread opportunities","description":"Paid Kalshi MAKER ranking from inferred two-sided book tops (YES bid p ↔ NO ask 1-p). Sorted by bookTopBestSpread descending (shared rankMaker). Missing market rows stay observations. Honors KALSHI_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. No unsigned groups. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","tags":["kalshi","scan-only","paid","research-only"],"pathParams":[],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"kalshiParity","method":"GET","path":"/v1/kalshi/parity","access":"paid","operationId":"getKalshiParity","summary":"Ranked Kalshi YES+NO vs $1 parity","description":"Paid Kalshi PARITY ranking from inferred/reciprocal book tops (YES bid p ↔ NO ask 1-p). Sorted by buy-both edgeBps (1 - yesAsk - noAsk) * 10_000 descending (shared rankParity). Missing market rows stay observations. Honors KALSHI_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. No unsigned groups. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","tags":["kalshi","scan-only","paid","research-only"],"pathParams":[],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"kalshiOpportunities","method":"GET","path":"/v1/kalshi/opportunities","access":"paid","operationId":"getKalshiOpportunities","summary":"Mixed ranked Kalshi opportunities","description":"Paid mixed Kalshi LP_REWARD, MAKER, and PARITY opportunities composed from the sibling lane handlers (no fourth scan), sorted by edgeBps like Alpha /opportunities. Venue kalshi only — no Polymarket or Alpha mix. Quick overview; prefer /rewards, /spreads, or /parity for lane focus. Honors KALSHI_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. No unsigned groups. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","tags":["kalshi","scan-only","paid","research-only"],"pathParams":[],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"polymarketRewards","method":"GET","path":"/v1/polymarket/rewards","access":"paid","operationId":"getPolymarketRewards","summary":"Ranked Polymarket LP reward opportunities","description":"Paid Polymarket LP_REWARD ranking: CLOB GET /rewards/markets/current joined to Gamma metadata. Sorted by estimatedRewardUsdPerDay descending (shared rankReward). Missing Gamma rows stay observations. Honors POLY_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","tags":["polymarket","scan-only","paid","research-only"],"pathParams":[],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"polymarketSpreads","method":"GET","path":"/v1/polymarket/spreads","access":"paid","operationId":"getPolymarketSpreads","summary":"Ranked Polymarket maker/spread opportunities","description":"Paid Polymarket MAKER ranking from CLOB book tops. Sorted by bookTopBestSpread descending (shared rankMaker). Missing Gamma rows stay observations. Honors POLY_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. No unsigned groups. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","tags":["polymarket","scan-only","paid","research-only"],"pathParams":[],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"polymarketParity","method":"GET","path":"/v1/polymarket/parity","access":"paid","operationId":"getPolymarketParity","summary":"Ranked Polymarket YES+NO vs $1 parity","description":"Paid Polymarket PARITY ranking from both token books (yesTokenId/noTokenId). Sorted by buy-both edgeBps (1 - yesAsk - noAsk) * 10_000 descending (shared rankParity). Missing Gamma rows stay observations. Honors POLY_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. No unsigned groups. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","tags":["polymarket","scan-only","paid","research-only"],"pathParams":[],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"polymarketOpportunities","method":"GET","path":"/v1/polymarket/opportunities","access":"paid","operationId":"getPolymarketOpportunities","summary":"Mixed ranked Polymarket opportunities","description":"Paid mixed Polymarket LP_REWARD, MAKER, and PARITY opportunities composed from the sibling lane handlers (no fourth scan), sorted by edgeBps like Alpha /opportunities. Venue polymarket only — no Kalshi or Alpha mix. Quick overview; prefer /rewards, /spreads, or /parity for lane focus. Honors POLY_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. No unsigned groups. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","tags":["polymarket","scan-only","paid","research-only"],"pathParams":[],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"polymarketMarketsList","method":"GET","path":"/v1/polymarket/markets","access":"paid","operationId":"listPolymarketMarkets","summary":"Search and filter Polymarket markets","description":"Paid Gamma metadata-only market list (no orderbooks). Identity is marketId (condition id), not Alpha marketAppId. Thin filters: q, limit, offset. Items include yesTokenId/noTokenId. Honors POLY_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","tags":["polymarket","scan-only","paid","research-only"],"pathParams":[],"queryParams":["q","limit","offset"],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"polymarketMarket","method":"GET","path":"/v1/polymarket/markets/{marketId}","access":"paid","operationId":"getPolymarketMarket","summary":"Polymarket market detail by condition id","description":"Paid single-market Gamma detail keyed by marketId (condition id). Includes yesTokenId/noTokenId. Not Alpha marketAppId. Covered by AMAROK-SESSION. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","tags":["polymarket","scan-only","paid","research-only"],"pathParams":["marketId"],"queryParams":[],"responseCodes":[200,402,500],"capability":"research-only","x402":{"protocolVersion":2,"requiredHeaders":["PAYMENT-REQUIRED","PAYMENT-SIGNATURE","PAYMENT-RESPONSE"],"facilitator":"https://facilitator.goplausible.xyz","requirementTemplate":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}}},{"id":"publicGhilliePortfolio","method":"GET","path":"/public/agents/ghillie/portfolio","access":"free","operationId":"getPublicGhilliePortfolio","summary":"Ghillie Bot public portfolio showcase","description":"Free read-only Alpha Arcade portfolio for the hardcoded Ghillie Bot showcase wallet (balances, positions, open orders). Not a general wallet browser.","tags":["agents","free"],"pathParams":[],"queryParams":[],"responseCodes":[200,500],"capability":"meta"}],"routes":[{"id":"root","method":"GET","path":"/","access":"free","operationId":"getRoot","summary":"API landing page","description":"Branded HTML landing for the Amarok public gateway."},{"id":"health","method":"GET","path":"/health","access":"free","operationId":"getHealth","summary":"Liveness check","description":"Ungated health probe for the Amarok API."},{"id":"discovery","method":"GET","path":"/discovery","access":"free","operationId":"getDiscovery","summary":"Route access catalog","description":"Lists free vs paid Amarok routes and x402 payment requirement templates. Call this before paid endpoints."},{"id":"openapi","method":"GET","path":"/openapi.json","access":"free","operationId":"getOpenApi","summary":"OpenAPI document","description":"OpenAPI 3 document with x402 extensions on paid operations."},{"id":"wellKnownX402","method":"GET","path":"/.well-known/x402","access":"free","operationId":"getWellKnownX402","summary":"x402 paid resource fan-out","description":"Lists absolute URLs for paid Amarok resources."},{"id":"wellKnownX402Json","method":"GET","path":"/.well-known/x402.json","access":"free","operationId":"getWellKnownX402Json","summary":"x402 service manifest","description":"Machine-readable x402 service manifest with docs, OpenAPI, discovery, and MCP links."},{"id":"marketsList","method":"GET","path":"/v1/alpha/markets","access":"paid","operationId":"listAlphaMarkets","summary":"Search and filter Alpha Arcade markets","description":"Paid metadata-only market list (no orderbooks). Filter with q, category, horizon (5m|15m|1h|1d), series (up_or_down), hasRewards, limit, offset. Preflight may return 402; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"rewards","method":"GET","path":"/v1/alpha/rewards","access":"paid","operationId":"getAlphaRewards","summary":"Ranked LP reward opportunities","description":"Paid LP reward ranking (safest emissions-farming lane). Supports research filters. Default top 25. Preflight may return 402; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"spreads","method":"GET","path":"/v1/alpha/spreads","access":"paid","operationId":"getAlphaSpreads","summary":"Ranked maker/spread opportunities","description":"Paid maker/spread ranking. Supports research filters. Default top 25. Preflight may return 402; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"parity","method":"GET","path":"/v1/alpha/parity","access":"paid","operationId":"getAlphaParity","summary":"Ranked parity opportunities","description":"Paid YES+NO parity ranking (research-only). Supports research filters. Default top 25. Compile sized YES+NO fills via POST /v1/alpha/execution/quotes (alpha_place_market_order + alpha_merge_shares or alpha_split_shares). Preflight may return 402; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"opportunities","method":"GET","path":"/v1/alpha/opportunities","access":"paid","operationId":"getAlphaOpportunities","summary":"Mixed ranked Alpha Arcade opportunities","description":"Paid mixed LP reward, maker/spread, and parity opportunities sorted by edge. Quick overview; prefer /rewards, /spreads, or /parity for lane focus. Supports research filters. Default top 25. Preflight may return 402 with PAYMENT-REQUIRED; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"market","method":"GET","path":"/v1/alpha/markets/{marketAppId}","access":"paid","operationId":"getAlphaMarket","summary":"Alpha Arcade market deep dive","description":"Paid single-market detail with normalized book tops and related opportunity slice. Preflight may return 402; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"quotes","method":"GET","path":"/v1/alpha/quotes","access":"paid","operationId":"getAlphaQuotes","summary":"Suggested Alpha Arcade quotes","description":"Paid actionable bid/ask suggestions from the quote engine (reward and spread lanes only; no wallet inventory exits). Supports research filters. Preflight may return 402; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"6000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.006"}},{"id":"scan","method":"GET","path":"/v1/alpha/scan","access":"paid","operationId":"getAlphaScan","summary":"Full Alpha Arcade scan summary","description":"Paid normalized markets plus orderbook tops (mids/spreads/depth summary). Supports research filters. Capped for MCP client timeouts (~12 markets, 45s orderbook budget); responses may include timedOut/capped and are TTL-cached. Preflight may return 402; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"25000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.025"}},{"id":"polymarketScan","method":"GET","path":"/v1/polymarket/scan","access":"paid","operationId":"getPolymarketScan","summary":"Polymarket scan summary (capped markets + book tops)","description":"Paid Gamma open markets plus CLOB book tops (venue DTOs; marketId is the condition id). Own POLY_SCAN_* caps/timeouts/cache — not Alpha scanCache. Capped for MCP client timeouts (~12 markets, 45s orderbook budget); responses may include timedOut/capped/candidateCount. Not covered by AMAROK-SESSION (neither venue /scan is). meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"25000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.025"}},{"id":"executionShapes","method":"GET","path":"/v1/alpha/execution/shapes","access":"free","operationId":"listExecutionShapes","summary":"Execution shape catalog","description":"Free catalog of Amarok execution shapes (unsigned txn builders). Agents use these with POST /v1/alpha/execution/quotes. Research lanes (/parity, /rewards, /spreads, /quotes) are research-only; this catalog plus the paid quotes POST are execution-capable."},{"id":"executionQuotes","method":"POST","path":"/v1/alpha/execution/quotes","access":"paid","operationId":"createExecutionQuotes","summary":"Unsigned Alpha Arcade execution groups","description":"Paid: build unsigned Algorand transaction groups for alpha_place_limit_order, alpha_cancel_order, alpha_claim, alpha_place_market_order, alpha_merge_shares, alpha_split_shares, or alpha_opt_in. Match/split/market share this SKU at 0.01 USDC; cancel/claim stay on the same cheaper-than-scan route. GET /v1/alpha/parity is research-only — compile sized YES+NO groups here. Amarok never signs or submits; agent signs unsignedTxnsBase64 and submits via own algod. Preflight may return 402; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"10000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.01"}},{"id":"alphaPortfolio","method":"GET","path":"/v1/alpha/portfolio/{address}","access":"paid","operationId":"getAlphaPortfolio","summary":"Alpha Arcade portfolio by address","description":"Paid read-only Alpha Arcade portfolio for a wallet address (balances, positions with mark-to-market, open orders, bid escrow). Same DTO family as the free Ghillie showcase. Agents read their own state; not a public wallet browser. Ghillie remains the free hardcoded exception at /public/agents/ghillie/portfolio. Preflight may return 402; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"alphaAdvisor","method":"POST","path":"/v1/alpha/advisor","access":"paid","operationId":"createAlphaAdvisor","summary":"Inventory-aware Alpha Arcade advisor","description":"Paid inventory-aware advisor. Agent POSTs an authoritative wallet snapshot (address + positions + open orders + optional avg cost / asset ids). No keys. Response suggests inventory exits, off-zone/underwater cancels, resolvable claims, and size adjustments vs reward zone / spread. Snapshot is authoritative for wallet state; Amarok re-reads Alpha markets/orderbooks for posted marketAppIds only. Empty-wallet generic quotes remain on GET /v1/alpha/quotes. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"8000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.008"}},{"id":"researchBundle","method":"GET","path":"/v1/alpha/bundle","access":"paid","operationId":"getAlphaResearchBundle","summary":"Research bundle (opportunities + quotes + N markets)","description":"Paid additive SKU: one x402 payment returns mixed opportunities, suggested quotes, and up to N market details (default 5, max 10). Supports shared research filters plus marketLimit and comma-separated marketAppIds. Per-request 402 remains the bazaar default — this bundle is optional. PAYMENT-RESPONSE is the bundle receipt and is not replayable on other routes. Present AMAROK-SESSION instead if you hold a live research session. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"20000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.02"}},{"id":"researchSession","method":"POST","path":"/v1/alpha/session","access":"paid","operationId":"createAlphaResearchSession","summary":"Short-lived research GET session token","description":"Paid additive SKU: one x402 payment mints a 1h HMAC capability for research GETs (Alpha opportunities, lane rankings, markets list/detail, quotes, bundle, plus light Polymarket/Kalshi GETs). Present the token as AMAROK-SESSION on those routes to skip a new per-request 402. Either venue /scan, execution, portfolio, advisor, and watchlist stay per-request. Do not replay PAYMENT-SIGNATURE (single-use settle). Per-request 402 remains the bazaar default. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"30000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.03"}},{"id":"watchlistRegister","method":"POST","path":"/v1/alpha/watchlist","access":"paid","operationId":"createAlphaWatchlist","summary":"Register market ids for a watchlist","description":"Paid: register up to 25 market app ids. Returns a watchlistId and cursor. Later GET /v1/alpha/watchlist polls return deltas only from coarse opportunity history (top 25 per lane, ~5m buckets) — not a full rescan. Not covered by AMAROK-SESSION. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"8000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.008"}},{"id":"watchlistPoll","method":"GET","path":"/v1/alpha/watchlist","access":"paid","operationId":"pollAlphaWatchlist","summary":"Poll watchlist deltas","description":"Paid: poll ranked-opportunity deltas for a registered watchlist. Query watchlistId (required) and optional cursor. First poll without cursor (or cursor=origin) seeds entered rows for watched ids in the latest 5m bucket. Later polls return entered/exited/updated only — never a full scan payload. Coarse history is top 25 per lane. Not covered by AMAROK-SESSION. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE.","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"8000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.008"}},{"id":"kalshiScan","method":"GET","path":"/v1/kalshi/scan","access":"paid","operationId":"getKalshiScan","summary":"Capped Kalshi scan with inferred book tops","description":"Paid Kalshi research scan: capped open markets plus inferred two-sided book tops (YES bid p ↔ NO ask 1-p). Honors KALSHI_SCAN_* timeout/cap/cache independently of Alpha; responses may include timedOut/capped. Not covered by AMAROK-SESSION (neither venue /scan is). No venue keys. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"25000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.025"}},{"id":"kalshiMarketsList","method":"GET","path":"/v1/kalshi/markets","access":"paid","operationId":"listKalshiMarkets","summary":"Search Kalshi markets by ticker","description":"Paid Kalshi market list from the public Trade API (GET /v1/kalshi/markets). marketId is the Kalshi ticker — not an Alpha marketAppId. Metadata only (no orderbooks). Filters: q, eventTicker, limit, offset. Covered by AMAROK-SESSION. No venue keys. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"kalshiMarket","method":"GET","path":"/v1/kalshi/markets/{ticker}","access":"paid","operationId":"getKalshiMarket","summary":"Kalshi market detail by ticker","description":"Paid Kalshi market deep dive (GET /v1/kalshi/markets/{ticker}). Lookup by ticker (marketId), not Alpha marketAppId. Book tops are probabilities in (0, 1) with inferred YES/NO asks (YES bid p ↔ NO ask 1-p) — never cents. Covered by AMAROK-SESSION. No venue keys. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"kalshiRewards","method":"GET","path":"/v1/kalshi/rewards","access":"paid","operationId":"getKalshiRewards","summary":"Ranked Kalshi LP reward opportunities","description":"Paid Kalshi LP_REWARD ranking: public GET /incentive_programs?status=active joined to market metadata. Liquidity programs first; volume programs stay observations. Sorted by estimatedRewardUsdPerDay descending (shared rankReward; period pool USD, not volume, not a daily rate invented from dates). Missing market rows stay observations. Honors KALSHI_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"kalshiSpreads","method":"GET","path":"/v1/kalshi/spreads","access":"paid","operationId":"getKalshiSpreads","summary":"Ranked Kalshi maker/spread opportunities","description":"Paid Kalshi MAKER ranking from inferred two-sided book tops (YES bid p ↔ NO ask 1-p). Sorted by bookTopBestSpread descending (shared rankMaker). Missing market rows stay observations. Honors KALSHI_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. No unsigned groups. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"kalshiParity","method":"GET","path":"/v1/kalshi/parity","access":"paid","operationId":"getKalshiParity","summary":"Ranked Kalshi YES+NO vs $1 parity","description":"Paid Kalshi PARITY ranking from inferred/reciprocal book tops (YES bid p ↔ NO ask 1-p). Sorted by buy-both edgeBps (1 - yesAsk - noAsk) * 10_000 descending (shared rankParity). Missing market rows stay observations. Honors KALSHI_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. No unsigned groups. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"kalshiOpportunities","method":"GET","path":"/v1/kalshi/opportunities","access":"paid","operationId":"getKalshiOpportunities","summary":"Mixed ranked Kalshi opportunities","description":"Paid mixed Kalshi LP_REWARD, MAKER, and PARITY opportunities composed from the sibling lane handlers (no fourth scan), sorted by edgeBps like Alpha /opportunities. Venue kalshi only — no Polymarket or Alpha mix. Quick overview; prefer /rewards, /spreads, or /parity for lane focus. Honors KALSHI_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. No unsigned groups. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"polymarketRewards","method":"GET","path":"/v1/polymarket/rewards","access":"paid","operationId":"getPolymarketRewards","summary":"Ranked Polymarket LP reward opportunities","description":"Paid Polymarket LP_REWARD ranking: CLOB GET /rewards/markets/current joined to Gamma metadata. Sorted by estimatedRewardUsdPerDay descending (shared rankReward). Missing Gamma rows stay observations. Honors POLY_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"polymarketSpreads","method":"GET","path":"/v1/polymarket/spreads","access":"paid","operationId":"getPolymarketSpreads","summary":"Ranked Polymarket maker/spread opportunities","description":"Paid Polymarket MAKER ranking from CLOB book tops. Sorted by bookTopBestSpread descending (shared rankMaker). Missing Gamma rows stay observations. Honors POLY_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. No unsigned groups. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"polymarketParity","method":"GET","path":"/v1/polymarket/parity","access":"paid","operationId":"getPolymarketParity","summary":"Ranked Polymarket YES+NO vs $1 parity","description":"Paid Polymarket PARITY ranking from both token books (yesTokenId/noTokenId). Sorted by buy-both edgeBps (1 - yesAsk - noAsk) * 10_000 descending (shared rankParity). Missing Gamma rows stay observations. Honors POLY_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. No unsigned groups. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"polymarketOpportunities","method":"GET","path":"/v1/polymarket/opportunities","access":"paid","operationId":"getPolymarketOpportunities","summary":"Mixed ranked Polymarket opportunities","description":"Paid mixed Polymarket LP_REWARD, MAKER, and PARITY opportunities composed from the sibling lane handlers (no fourth scan), sorted by edgeBps like Alpha /opportunities. Venue polymarket only — no Kalshi or Alpha mix. Quick overview; prefer /rewards, /spreads, or /parity for lane focus. Honors POLY_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. No venue keys. No unsigned groups. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"polymarketMarketsList","method":"GET","path":"/v1/polymarket/markets","access":"paid","operationId":"listPolymarketMarkets","summary":"Search and filter Polymarket markets","description":"Paid Gamma metadata-only market list (no orderbooks). Identity is marketId (condition id), not Alpha marketAppId. Thin filters: q, limit, offset. Items include yesTokenId/noTokenId. Honors POLY_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"polymarketMarket","method":"GET","path":"/v1/polymarket/markets/{marketId}","access":"paid","operationId":"getPolymarketMarket","summary":"Polymarket market detail by condition id","description":"Paid single-market Gamma detail keyed by marketId (condition id). Includes yesTokenId/noTokenId. Not Alpha marketAppId. Covered by AMAROK-SESSION. meta.executionSubmitted is always false. Preflight may return 402; retry with PAYMENT-SIGNATURE or present AMAROK-SESSION. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).","x402":{"scheme":"exact","network":"algorand-mainnet","asset":"31566704","payTo":"R3CUFK5EMFJSHV5TEXMBJOCASYHORZ2F7QCPPVCRWRWVDL5WNLSDOIEHBU","maxAmountRequired":"5000","maxAmountRequiredUnit":"micro-USDC","priceUsdc":"0.005"}},{"id":"publicGhilliePortfolio","method":"GET","path":"/public/agents/ghillie/portfolio","access":"free","operationId":"getPublicGhilliePortfolio","summary":"Ghillie Bot public portfolio showcase","description":"Free read-only Alpha Arcade portfolio for the hardcoded Ghillie Bot showcase wallet (balances, positions, open orders). Not a general wallet browser."}],"billing":{"defaultSku":"per-request","sessionHeader":"AMAROK-SESSION","sessionRouteClass":"research-get","note":"Per-request 402 is the bazaar default. Bundle (one payment → opportunities + quotes + N markets) and session (1h research GETs via AMAROK-SESSION) are additive. Do not replay PAYMENT-SIGNATURE; present the session token or pay the route SKU.","skus":[{"id":"per-request","receipt":"Omit PAYMENT-SIGNATURE → 402 + PAYMENT-REQUIRED. Retry the same URL with PAYMENT-SIGNATURE. PAYMENT-RESPONSE is the per-request receipt and is not a session."},{"id":"bundle","method":"GET","path":"/v1/alpha/bundle","priceKey":"bundle","priceUsdc":"0.02","receipt":"Same 402 retry as per-request on GET /v1/alpha/bundle. PAYMENT-RESPONSE is the bundle receipt; it does not unlock other routes."},{"id":"session","method":"POST","path":"/v1/alpha/session","priceKey":"session","priceUsdc":"0.03","ttlSeconds":3600,"covers":["/v1/alpha/opportunities","/v1/alpha/rewards","/v1/alpha/spreads","/v1/alpha/parity","/v1/alpha/markets","/v1/alpha/markets/{marketAppId}","/v1/alpha/quotes","/v1/alpha/bundle","/v1/polymarket/rewards","/v1/polymarket/spreads","/v1/polymarket/parity","/v1/polymarket/opportunities","/v1/polymarket/markets","/v1/polymarket/markets/{marketId}","/v1/kalshi/rewards","/v1/kalshi/spreads","/v1/kalshi/parity","/v1/kalshi/opportunities","/v1/kalshi/markets","/v1/kalshi/markets/{ticker}"],"receipt":"Pay POST /v1/alpha/session, then present header AMAROK-SESSION on covered research GETs until expiresAt. Invalid/expired tokens fall through to per-request 402."}]},"errorCatalog":[{"code":"PAYMENT_REQUIRED","httpStatus":402,"description":"Paid route requires x402 payment. Retry with PAYMENT-SIGNATURE, or present AMAROK-SESSION from POST /v1/alpha/session on covered research GETs."},{"code":"INVALID_TTL","httpStatus":400,"description":"POST /v1/alpha/session ttlSeconds must be a positive number (capped at 3600)."},{"code":"INVALID_MARKET_APP_IDS","httpStatus":400,"description":"marketAppIds must be a list of positive integers (bundle query or watchlist body)."},{"code":"MISSING_WATCHLIST_ID","httpStatus":400,"description":"GET /v1/alpha/watchlist requires query watchlistId from POST /v1/alpha/watchlist."},{"code":"INVALID_WATCHLIST_ID","httpStatus":400,"description":"watchlistId must be the opaque id returned by POST /v1/alpha/watchlist."},{"code":"WATCHLIST_NOT_FOUND","httpStatus":404,"description":"Unknown watchlistId (expired in-memory store or never registered)."},{"code":"WATCHLIST_TOO_LARGE","httpStatus":400,"description":"Watchlist marketAppIds exceeds the max of 25."},{"code":"INVALID_CURSOR","httpStatus":400,"description":"Watchlist cursor must be origin or an ISO timestamp of a 5m history bucket."},{"code":"PAYLOAD_TOO_LARGE","httpStatus":413,"description":"POST body exceeds DISCOVERY_MAX_BODY_BYTES."},{"code":"TOO_MANY_REQUESTS","httpStatus":429,"description":"In-process concurrency limit for scan or execution quotes exceeded. Retry later."},{"code":"TOO_MANY_QUOTES","httpStatus":400,"description":"execution quotes[] length exceeds DISCOVERY_MAX_EXECUTION_QUOTES."},{"code":"NOT_FOUND","httpStatus":404,"description":"Unknown path or method."},{"code":"INVALID_MARKET_APP_ID","httpStatus":400,"description":"marketAppId path segment must be a finite number."},{"code":"INVALID_MARKET_ID","httpStatus":400,"description":"Polymarket marketId path segment must be a non-empty condition id (not Alpha marketAppId)."},{"code":"MARKET_NOT_FOUND","httpStatus":404,"description":"Unknown marketAppId (Alpha) or marketId (Polymarket condition id)."},{"code":"INVALID_HORIZON","httpStatus":400,"description":"horizon must be one of 5m, 15m, 1h, 1d, unknown."},{"code":"INVALID_SERIES","httpStatus":400,"description":"series must be one of up_or_down, other."},{"code":"INVALID_HAS_REWARDS","httpStatus":400,"description":"hasRewards must be true or false."},{"code":"INTERNAL_ERROR","httpStatus":500,"description":"Unexpected server error."}]}