{"uid":"cap_ttxxz1Rm2Opmx36Njv60g","slug":"2s-io-polymarket-kalshi-matched-pairs-c75e4fb5","name":"2s.io Polymarket–Kalshi Matched Pairs","description":"Cross-venue equivalent-market pairs for arbitrage / relative-value spotting. We fuzzy-match open Polymarket vs Kalshi markets by title-token overlap and return candidate pairs with both venues' YES prices and the implied-probability spread (Polymarket YES minus Kalshi YES). Tune with minScore (0-1 title-similarity floor) and limit. Heuristic — a high score is a strong candidate, not a guaranteed identical contract. Read-only, keyless. No public source maps these directly; the pairing is derived by 2s.io.","url":"https://2s.io/api/predict/matched-pairs","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","queryParams"],"properties":{"type":{"const":"http"},"method":{"const":"GET"},"queryParams":{"type":"object","properties":{"limit":{"type":"integer","maximum":50,"minimum":1,"description":"Max pairs (default 20)."},"minScore":{"type":"number","maximum":1,"minimum":0,"description":"Minimum title-similarity score 0-1 (default 0.3)."}},"additionalProperties":false}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.012","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.012/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.012","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.012","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_fRip3VuFIrHjWhdkvjuu_","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.012","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Fuzzy-matches open Polymarket and Kalshi prediction markets by title similarity and returns candidate equivalent pairs with YES prices and implied-probability spreads for arbitrage or relative-value analysis.","exampleAgentPrompt":"Can you pull the top 10 matched pairs between Polymarket and Kalshi right now — only show me ones with a title-similarity score above 0.6 so I can spot any meaningful YES-price spreads worth investigating?","exampleUseCases":null,"resultDescription":"A list of candidate cross-venue market pairs, each containing the matched Polymarket and Kalshi market titles, their respective YES prices, the implied-probability spread (Polymarket YES minus Kalshi YES), and a title-similarity score. Tunable by minScore and limit.","failureModes":["No pairs found above requested minScore threshold — returns empty list","limit out of range (must be 1–50) — returns validation error","minScore out of range (must be 0–1) — returns validation error","Markets may have shifted or closed between crawl and response — stale data possible","High similarity score does not guarantee identical contract terms — heuristic only"],"whenToPreferThis":"Use this endpoint when you need a live cross-venue view of prediction market pricing discrepancies between Polymarket and Kalshi without building your own fuzzy-matching pipeline. It is keyless and pay-per-call, making it ideal for ad-hoc arbitrage screening or relative-value research. Prefer it over manual comparison when you need ranked candidates quickly with tunable similarity filtering.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T01:02:07.660Z","isFirstParty":false}