{"uid":"cap_7ZU9te5vTEJkm6vmLVhc5","slug":"scanna-price-compare-0f4eb963","name":"Scanna Price Compare","description":"Verified cross-venue market pairs, both venues books side by side, market_b transformed into market_as YES claim space. Each leg carries observed_at (when that venue response arrived), age_seconds and stale; each pair carries observation_skew_seconds - how far apart the two prices were really read, null (never 0) when unknown. Stale pairs are LABELLED and sorted last, not dropped. coverage publishes fresh/stale counts and the bound.","url":"https://api.scanna.xyz/price-compare","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","properties":{"limit":{"type":"integer","default":20,"maximum":100,"minimum":1,"description":"Pairs returned. Trims the RESPONSE only; the universe is capped at 500 by SQL either way."}},"additionalProperties":false}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","required":["pairs","total","limit","coverage","updated_at"],"properties":{"limit":{"type":"integer"},"pairs":{"type":"array","items":{"type":"object"}},"total":{"type":"integer","description":"Eligible pairs before the limit."},"coverage":{"type":"object","required":["eligible_pairs","fresh_pairs","stale_pairs","pairs_missing_observation","max_quote_age_seconds"],"properties":{"fresh_pairs":{"type":"integer"},"stale_pairs":{"type":"integer"},"eligible_pairs":{"type":"integer"},"max_quote_age_seconds":{"type":"integer","description":"The freshness bound, published so the stale/fresh decision is reproducible."},"pairs_missing_observation":{"type":"integer","description":"Subset of stale_pairs with no observation at all — OUR fetch failed, not a property of the market."}}},"updated_at":{"type":"string"}}}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.010017","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.010017/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.010017","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.010017","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_Dg5xTNV4V4zx-J2HoHfW1","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.010017","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Returns verified cross-venue prediction market price comparisons with both order books side by side, observation timestamps, staleness labels, and coverage statistics.","exampleAgentPrompt":"Show me the top 20 cross-venue prediction market price comparisons from Scanna, including how far apart the two venues' prices were observed and which pairs are stale.","exampleUseCases":[{"title":"Spotting arbitrage between prediction platforms","prompt":"Pull the top 50 cross-venue market pairs from Scanna and tell me which ones have the biggest price gap between venues — I want to find arbitrage opportunities between Polymarket and Kalshi."},{"title":"Monitoring data freshness for a trading bot","prompt":"Get the latest Scanna price-compare data and show me the coverage summary — how many pairs are fresh vs stale, and what's the max quote age threshold being used?"},{"title":"Researching a specific event's cross-venue pricing","prompt":"Fetch the Scanna cross-venue price comparisons and find me any pairs where the observation skew between the two venues was more than 30 seconds, so I know the prices weren't read at the same time."}],"resultDescription":"A JSON object containing: an array of market pair objects each with both venues' order book prices expressed in market_a's YES claim space, per-leg observed_at timestamps, age_seconds, and stale booleans, plus an observation_skew_seconds value (null when unknown, never 0); a total count of eligible pairs before trimming; the applied limit; a coverage object with fresh_pairs, stale_pairs, eligible_pairs, pairs_missing_observation, and max_quote_age_seconds; and an updated_at timestamp. Stale pairs are labeled and sorted last rather than dropped.","failureModes":["Upstream venue fetch failure results in pairs_missing_observation count increasing rather than an error response","Limit parameter out of range (below 1 or above 100) returns a validation error","All pairs may be stale if upstream venues are slow or unresponsive","Response may reflect prices read seconds apart if observation_skew_seconds is large","Payment not included or insufficient results in HTTP 402 response"],"whenToPreferThis":"Use this endpoint when you need to compare prediction market prices across multiple venues (e.g. Polymarket vs Kalshi) in a normalized YES-claim space, especially when data freshness and observation timing transparency matter. It is the right choice when you want staleness labels preserved rather than silently dropped, and when you need to understand how far apart the two observations were taken. Prefer alternatives if you need historical price data, a single venue's order book, or raw trade data.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T18:42:37.660Z","isFirstParty":false}