{"id":2842,"date":"2026-04-23T10:00:00","date_gmt":"2026-04-23T10:00:00","guid":{"rendered":"https:\/\/oddspapi.io\/blog\/?p=2842"},"modified":"2026-04-11T17:06:39","modified_gmt":"2026-04-11T17:06:39","slug":"limitless-exchange-api-onchain-base","status":"publish","type":"post","link":"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/","title":{"rendered":"Limitless Exchange API: Onchain Prediction Market Data (Python)"},"content":{"rendered":"<h2>Limitless Exchange: The Polymarket Alternative on Base<\/h2>\n<p>You probably found Limitless Exchange because you were looking for &#8220;the next Polymarket.&#8221; Fair \u2014 that&#8217;s basically what it is, except it runs on Base (Coinbase&#8217;s L2) instead of Polygon, the fee structure is different, and the UX is built around binary &#8220;yes\/no&#8221; markets rather than multi-outcome events. If you&#8217;re building prediction-market tooling, ignoring Limitless at this point would be a mistake.<\/p>\n<p>Here&#8217;s the problem: like every onchain prediction market, Limitless&#8217;s &#8220;API&#8221; is really three things duct-taped together \u2014 a Gamma-style metadata service, an onchain smart contract you query via Base RPC, and a CLOB-style order book living at the edge of it all. You glue those together yourself.<\/p>\n<figure class=\"wp-block-table\">\n<table>\n<thead>\n<tr>\n<th>Requirement<\/th>\n<th>Reality<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Network<\/strong><\/td>\n<td>Base L2 (Coinbase rollup on Ethereum)<\/td>\n<\/tr>\n<tr>\n<td><strong>Market Format<\/strong><\/td>\n<td>Binary (yes\/no) outcomes, conditional tokens<\/td>\n<\/tr>\n<tr>\n<td><strong>Market IDs<\/strong><\/td>\n<td>Onchain condition IDs + token IDs per outcome<\/td>\n<\/tr>\n<tr>\n<td><strong>Prices<\/strong><\/td>\n<td>Share price (0\u20131), reads as implied probability \u2014 you convert to decimal odds yourself<\/td>\n<\/tr>\n<tr>\n<td><strong>Metadata<\/strong><\/td>\n<td>Off-chain API, paginated, separate from prices<\/td>\n<\/tr>\n<tr>\n<td><strong>Trading<\/strong><\/td>\n<td>EIP-712 signed orders against a Base-deployed contract<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>For read-only price data \u2014 the part 90% of devs actually want \u2014 this is overkill.<\/p>\n<h2>The &#8220;Third Option&#8221; for Limitless Exchange Odds<\/h2>\n<p>OddsPapi aggregates 350+ venues, including Limitless Exchange, under one API key. You don&#8217;t need a Base RPC, you don&#8217;t need to resolve condition IDs, and you don&#8217;t need to convert share prices to decimal odds. You query <code>?bookmakers=limitless-ex<\/code> on a fixture and get decimal-formatted prices with the same back\/lay\/exchange shape every other exchange uses on OddsPapi.<\/p>\n<figure class=\"wp-block-table\">\n<table>\n<thead>\n<tr>\n<th>Feature<\/th>\n<th>Limitless Direct<\/th>\n<th>OddsPapi<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Auth<\/strong><\/td>\n<td>EIP-712 + Base wallet<\/td>\n<td>Single API key<\/td>\n<\/tr>\n<tr>\n<td><strong>Wallet<\/strong><\/td>\n<td>Required<\/td>\n<td>Not needed for reads<\/td>\n<\/tr>\n<tr>\n<td><strong>Odds Format<\/strong><\/td>\n<td>Share price (0\u20131)<\/td>\n<td>Decimal, ready to use<\/td>\n<\/tr>\n<tr>\n<td><strong>Metadata Lookups<\/strong><\/td>\n<td>Second off-chain API<\/td>\n<td>Same response as prices<\/td>\n<\/tr>\n<tr>\n<td><strong>Compare vs Sportsbooks<\/strong><\/td>\n<td>Separate integration per book<\/td>\n<td>One request, all books<\/td>\n<\/tr>\n<tr>\n<td><strong>Historical Data<\/strong><\/td>\n<td>Query onchain event logs yourself<\/td>\n<td>Free on entry tier<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h2>What Limitless Actually Is<\/h2>\n<p>Limitless Exchange is an onchain prediction market running on Base. Each market is a binary question \u2014 &#8220;Will X happen by date Y?&#8221; \u2014 and resolves to yes or no. Share prices trade between 0 and 1, where the price is the market&#8217;s implied probability of &#8220;yes&#8221;: a share trading at 0.62 means the market collectively thinks there&#8217;s a 62% chance.<\/p>\n<p>That probability is the interesting number. For a developer comparing Limitless to a sportsbook, you want it as <strong>decimal odds<\/strong>, not a raw share price. The conversion is simple \u2014 <code>decimal = 1 \/ share_price<\/code> \u2014 but you have to remember to do it on every single query, and if you forget, your arbitrage model is silently wrong. OddsPapi does the conversion on ingestion so every <code>limitless-ex<\/code> price you see is already in decimal.<\/p>\n<h3>Why Pull Limitless Alongside a Sportsbook<\/h3>\n<p>Sportsbooks bake in vig (typically 4\u20138%). Onchain binary markets like Limitless don&#8217;t \u2014 their &#8220;vig&#8221; is the bid\/ask spread on the shares themselves, which is often tighter than the sportsbook margin on major events. Any time the implied probability on Limitless disagrees meaningfully with the no-vig sharp line from Pinnacle, you&#8217;ve either found an arbitrage or a market that believes something the book doesn&#8217;t.<\/p>\n<h2>The JSON Shape<\/h2>\n<p>Limitless markets route through the same <code>\/v4\/odds<\/code> endpoint as every other bookmaker. The outcome block sits under <code>bookmakerOdds.limitless-ex<\/code>, and the structure mirrors the exchange-type shape used by Polymarket, Kalshi, and SX Bet. Main price lives on the <code>price<\/code> field, the lay (opposite) side is exposed via <code>exchangeMeta<\/code>:<\/p>\n<pre class=\"wp-block-code\"><code># Limitless-style exchange outcome (structure shared with Polymarket\/Kalshi)\n{\n  \"active\": true,\n  \"betslip\": \"https:\/\/limitless.exchange\/markets\/0x...\",\n  \"bookmakerOutcomeId\": \"0x...\",       # Base condition\/token id\n  \"changedAt\": \"2026-04-11T09:38:17+00:00\",\n  \"limit\": null,\n  \"price\": 1.613,                       # decimal odds (already converted)\n  \"exchangeMeta\": {\n    \"lay\": 2.631,                       # lay \/ \"no\" side in decimal\n    \"bookmakerLayOutcomeId\": \"0x...\"\n  }\n}<\/code><\/pre>\n<p>Two things:<\/p>\n<ul>\n<li><strong><code>price<\/code><\/strong> is the &#8220;yes&#8221; side in decimal. If you want implied probability, divide 1 by it: <code>1 \/ 1.613 = 0.62<\/code>, i.e. the market thinks &#8220;yes&#8221; is 62%.<\/li>\n<li><strong><code>exchangeMeta.lay<\/code><\/strong> is the &#8220;no&#8221; side of the same market in decimal odds. Back + lay together give you the full round trip \u2014 this is the data you need for arbitrage.<\/li>\n<\/ul>\n<blockquote>\n<p><strong>Coverage note:<\/strong> Limitless&#8217;s sports coverage through OddsPapi is currently focused on major fixtures where there&#8217;s onchain liquidity \u2014 political markets, crypto-native events, and headline NBA\/MLB\/NFL games. Niche fixtures will return an empty book. This is the same pattern as Polymarket&#8217;s sports coverage: deep on a small set of markets, absent on the long tail.<\/p>\n<\/blockquote>\n<h2>Tutorial: Pull Limitless Exchange Odds in Python<\/h2>\n<h3>Step 1: Grab Your API Key<\/h3>\n<pre class=\"wp-block-code\"><code>import requests\n\nAPI_KEY = \"YOUR_API_KEY\"\nBASE_URL = \"https:\/\/api.oddspapi.io\/v4\"<\/code><\/pre>\n<h3>Step 2: Discover a Fixture<\/h3>\n<p>Limitless leans US-sports and headline events. Start with NBA (<code>sportId=11<\/code>) or NFL (<code>14<\/code>) \u2014 whichever is in season.<\/p>\n<pre class=\"wp-block-code\"><code>from datetime import datetime, timezone, timedelta\n\ntoday = datetime.now(timezone.utc)\nparams = {\n    \"apiKey\": API_KEY,\n    \"sportId\": 11,  # NBA\n    \"from\": today.strftime(\"%Y-%m-%d\"),\n    \"to\": (today + timedelta(days=3)).strftime(\"%Y-%m-%d\"),\n}\nfixtures = requests.get(f\"{BASE_URL}\/fixtures\", params=params).json()\ncandidates = [f for f in fixtures if f.get(\"hasOdds\")]<\/code><\/pre>\n<h3>Step 3: Query Limitless<\/h3>\n<pre class=\"wp-block-code\"><code>fixture_id = candidates[0][\"fixtureId\"]\n\nr = requests.get(\n    f\"{BASE_URL}\/odds\",\n    params={\n        \"apiKey\": API_KEY,\n        \"fixtureId\": fixture_id,\n        \"bookmakers\": \"limitless-ex\",\n    },\n)\ndata = r.json()\n\nlimitless = data.get(\"bookmakerOdds\", {}).get(\"limitless-ex\")\nif not limitless:\n    print(\"No Limitless market on this fixture \u2014 try a headline game.\")\nelse:\n    print(f\"{len(limitless['markets'])} markets from Limitless\")<\/code><\/pre>\n<h3>Step 4: Parse Yes \/ No as Decimal Odds<\/h3>\n<pre class=\"wp-block-code\"><code># Market 101 = Full Time Result \/ Moneyline\nmarket = limitless[\"markets\"][\"101\"]\n\nfor outcome_id, outcome in market[\"outcomes\"].items():\n    p = outcome[\"players\"][\"0\"]\n    if not p[\"active\"]:\n        continue\n\n    yes_decimal = p[\"price\"]\n    yes_prob = 1 \/ yes_decimal\n\n    meta = p.get(\"exchangeMeta\") or {}\n    no_decimal = meta.get(\"lay\") if isinstance(meta, dict) else None\n\n    print(f\"outcome {outcome_id}: yes @ {yes_decimal} ({yes_prob:.1%}) | no @ {no_decimal}\")<\/code><\/pre>\n<h3>Step 5: Implied Probability vs Sportsbook No-Vig<\/h3>\n<p>The actual use case: Limitless says 62%, Pinnacle&#8217;s no-vig fair line says 58%. Which is right? Here&#8217;s how you grab both in one request and start answering that question.<\/p>\n<pre class=\"wp-block-code\"><code>r = requests.get(\n    f\"{BASE_URL}\/odds\",\n    params={\n        \"apiKey\": API_KEY,\n        \"fixtureId\": fixture_id,\n        \"bookmakers\": \"limitless-ex,pinnacle\",\n    },\n)\nbooks = r.json()[\"bookmakerOdds\"]\n\ndef implied(decimal):\n    return 1 \/ decimal if decimal else None\n\nfor slug in (\"limitless-ex\", \"pinnacle\"):\n    book = books.get(slug, {})\n    m = book.get(\"markets\", {}).get(\"101\", {})\n    home = m.get(\"outcomes\", {}).get(\"101\", {}).get(\"players\", {}).get(\"0\", {})\n    price = home.get(\"price\")\n    print(f\"{slug:13} home @ {price} ({implied(price):.1%})\" if price else f\"{slug:13} none\")<\/code><\/pre>\n<p>Run this on a hot fixture during market hours and you&#8217;ll see exactly how far onchain prediction markets drift from sharp sportsbook lines. That drift is the whole game for prediction-market traders.<\/p>\n<h2>Why Devs Pick OddsPapi Over a Direct Base Integration<\/h2>\n<p><strong>No Base RPC<\/strong> \u2014 You don&#8217;t maintain a Web3 provider, you don&#8217;t handle reorg edge cases, you don&#8217;t pay gas to read.<\/p>\n<p><strong>Already decoded<\/strong> \u2014 Share prices are already decimal odds. Condition IDs and token IDs are still available in <code>bookmakerOutcomeId<\/code> if you want them, but the conversion work is done.<\/p>\n<p><strong>One request, every venue<\/strong> \u2014 Limitless + Polymarket + Kalshi + Pinnacle + Betfair Exchange, side by side. That&#8217;s the whole prediction-market stack in a single call.<\/p>\n<p><strong>Free historical data<\/strong> \u2014 <code>\/v4\/historical-odds?fixtureId=\u2026&amp;bookmakers=limitless-ex<\/code> gives you the full price history without writing event-log subgraphs.<\/p>\n<h2>Get Started<\/h2>\n<ol>\n<li>Sign up at <a href=\"https:\/\/oddspapi.io\">oddspapi.io<\/a><\/li>\n<li>Copy your API key<\/li>\n<li>Query Limitless in one curl<\/li>\n<\/ol>\n<pre class=\"wp-block-code\"><code>curl \"https:\/\/api.oddspapi.io\/v4\/odds?apiKey=YOUR_KEY&amp;fixtureId=id1100022762690473&amp;bookmakers=limitless-ex\"<\/code><\/pre>\n<p>No Base RPC. No signed orders. No share-price math. Just decimal odds from an onchain prediction market.<\/p>\n<p><!--\nFocus Keyphrase: Limitless Exchange API\nSEO Title: Limitless Exchange API: Onchain Prediction Market Data (Python)\nMeta Description: Pull Limitless Exchange odds from Base L2 without wallet auth or share-price math. Python tutorial, decimal odds, free tier. The Polymarket alternative.\nSlug: limitless-exchange-api-onchain-base\n--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pull Limitless Exchange odds from Base L2 without wallet auth or share-price math. Python tutorial, decimal odds, free tier. The Polymarket alternative.<\/p>\n","protected":false},"author":2,"featured_media":2843,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[39,9,40,34,11],"class_list":["post-2842","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-how-to-guides","tag-limitless-exchange","tag-odds-api","tag-onchain","tag-prediction-markets","tag-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Limitless Exchange API: Onchain Prediction Market Data (Python) | Odds API Development Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Limitless Exchange API: Onchain Prediction Market Data (Python) | Odds API Development Blog\" \/>\n<meta property=\"og:description\" content=\"Pull Limitless Exchange odds from Base L2 without wallet auth or share-price math. Python tutorial, decimal odds, free tier. The Polymarket alternative.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/\" \/>\n<meta property=\"og:site_name\" content=\"Odds API Development Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-23T10:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/oddspapi.io\/blog\/wp-content\/uploads\/2026\/04\/limitless-exchange-api-onchain-base-scaled.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1429\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Odds API Writer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/oddspapi.io\/logo-v2.webp\" \/>\n<meta name=\"twitter:creator\" content=\"@oddspapiapi\" \/>\n<meta name=\"twitter:site\" content=\"@oddspapiapi\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Odds API Writer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/\"},\"author\":{\"name\":\"Odds API Writer\",\"@id\":\"https:\/\/oddspapi.io\/blog\/#\/schema\/person\/b6f21e649c4f556f0a95c23a0f1efa13\"},\"headline\":\"Limitless Exchange API: Onchain Prediction Market Data (Python)\",\"datePublished\":\"2026-04-23T10:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/\"},\"wordCount\":909,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/oddspapi.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/oddspapi.io\/blog\/wp-content\/uploads\/2026\/04\/limitless-exchange-api-onchain-base-scaled.webp\",\"keywords\":[\"Limitless Exchange\",\"Odds API\",\"Onchain\",\"Prediction Markets\",\"Python\"],\"articleSection\":[\"How To Guides\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/\",\"url\":\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/\",\"name\":\"Limitless Exchange API: Onchain Prediction Market Data (Python) | Odds API Development Blog\",\"isPartOf\":{\"@id\":\"https:\/\/oddspapi.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/oddspapi.io\/blog\/wp-content\/uploads\/2026\/04\/limitless-exchange-api-onchain-base-scaled.webp\",\"datePublished\":\"2026-04-23T10:00:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#primaryimage\",\"url\":\"https:\/\/oddspapi.io\/blog\/wp-content\/uploads\/2026\/04\/limitless-exchange-api-onchain-base-scaled.webp\",\"contentUrl\":\"https:\/\/oddspapi.io\/blog\/wp-content\/uploads\/2026\/04\/limitless-exchange-api-onchain-base-scaled.webp\",\"width\":2560,\"height\":1429,\"caption\":\"Limitless Exchange API - OddsPapi API Blog\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/oddspapi.io\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Limitless Exchange API: Onchain Prediction Market Data (Python)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/oddspapi.io\/blog\/#website\",\"url\":\"https:\/\/oddspapi.io\/blog\/\",\"name\":\"OddsPapi\",\"description\":\"Sports Odds APIs Tutorials &amp; Guides\",\"publisher\":{\"@id\":\"https:\/\/oddspapi.io\/blog\/#organization\"},\"alternateName\":\"Odds Papi\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/oddspapi.io\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/oddspapi.io\/blog\/#organization\",\"name\":\"OddsPapi\",\"url\":\"https:\/\/oddspapi.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/oddspapi.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/oddspapi.io\/blog\/wp-content\/uploads\/2025\/11\/oddspapi.png\",\"contentUrl\":\"https:\/\/oddspapi.io\/blog\/wp-content\/uploads\/2025\/11\/oddspapi.png\",\"width\":135,\"height\":135,\"caption\":\"OddsPapi\"},\"image\":{\"@id\":\"https:\/\/oddspapi.io\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/oddspapiapi\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/oddspapi.io\/blog\/#\/schema\/person\/b6f21e649c4f556f0a95c23a0f1efa13\",\"name\":\"Odds API Writer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/oddspapi.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/33b204f24af3d02e35b25ae730c0536121ca6a783fdb196e7611c9e49fcd13eb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/33b204f24af3d02e35b25ae730c0536121ca6a783fdb196e7611c9e49fcd13eb?s=96&d=mm&r=g\",\"caption\":\"Odds API Writer\"},\"url\":\"https:\/\/oddspapi.io\/blog\/author\/andy-lavelle\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Limitless Exchange API: Onchain Prediction Market Data (Python) | Odds API Development Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/","og_locale":"en_US","og_type":"article","og_title":"Limitless Exchange API: Onchain Prediction Market Data (Python) | Odds API Development Blog","og_description":"Pull Limitless Exchange odds from Base L2 without wallet auth or share-price math. Python tutorial, decimal odds, free tier. The Polymarket alternative.","og_url":"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/","og_site_name":"Odds API Development Blog","article_published_time":"2026-04-23T10:00:00+00:00","og_image":[{"width":2560,"height":1429,"url":"https:\/\/oddspapi.io\/blog\/wp-content\/uploads\/2026\/04\/limitless-exchange-api-onchain-base-scaled.webp","type":"image\/webp"}],"author":"Odds API Writer","twitter_card":"summary_large_image","twitter_image":"https:\/\/oddspapi.io\/logo-v2.webp","twitter_creator":"@oddspapiapi","twitter_site":"@oddspapiapi","twitter_misc":{"Written by":"Odds API Writer","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#article","isPartOf":{"@id":"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/"},"author":{"name":"Odds API Writer","@id":"https:\/\/oddspapi.io\/blog\/#\/schema\/person\/b6f21e649c4f556f0a95c23a0f1efa13"},"headline":"Limitless Exchange API: Onchain Prediction Market Data (Python)","datePublished":"2026-04-23T10:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/"},"wordCount":909,"commentCount":0,"publisher":{"@id":"https:\/\/oddspapi.io\/blog\/#organization"},"image":{"@id":"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#primaryimage"},"thumbnailUrl":"https:\/\/oddspapi.io\/blog\/wp-content\/uploads\/2026\/04\/limitless-exchange-api-onchain-base-scaled.webp","keywords":["Limitless Exchange","Odds API","Onchain","Prediction Markets","Python"],"articleSection":["How To Guides"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/","url":"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/","name":"Limitless Exchange API: Onchain Prediction Market Data (Python) | Odds API Development Blog","isPartOf":{"@id":"https:\/\/oddspapi.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#primaryimage"},"image":{"@id":"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#primaryimage"},"thumbnailUrl":"https:\/\/oddspapi.io\/blog\/wp-content\/uploads\/2026\/04\/limitless-exchange-api-onchain-base-scaled.webp","datePublished":"2026-04-23T10:00:00+00:00","breadcrumb":{"@id":"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#primaryimage","url":"https:\/\/oddspapi.io\/blog\/wp-content\/uploads\/2026\/04\/limitless-exchange-api-onchain-base-scaled.webp","contentUrl":"https:\/\/oddspapi.io\/blog\/wp-content\/uploads\/2026\/04\/limitless-exchange-api-onchain-base-scaled.webp","width":2560,"height":1429,"caption":"Limitless Exchange API - OddsPapi API Blog"},{"@type":"BreadcrumbList","@id":"https:\/\/oddspapi.io\/blog\/limitless-exchange-api-onchain-base\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/oddspapi.io\/blog\/"},{"@type":"ListItem","position":2,"name":"Limitless Exchange API: Onchain Prediction Market Data (Python)"}]},{"@type":"WebSite","@id":"https:\/\/oddspapi.io\/blog\/#website","url":"https:\/\/oddspapi.io\/blog\/","name":"OddsPapi","description":"Sports Odds APIs Tutorials &amp; Guides","publisher":{"@id":"https:\/\/oddspapi.io\/blog\/#organization"},"alternateName":"Odds Papi","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/oddspapi.io\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/oddspapi.io\/blog\/#organization","name":"OddsPapi","url":"https:\/\/oddspapi.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/oddspapi.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/oddspapi.io\/blog\/wp-content\/uploads\/2025\/11\/oddspapi.png","contentUrl":"https:\/\/oddspapi.io\/blog\/wp-content\/uploads\/2025\/11\/oddspapi.png","width":135,"height":135,"caption":"OddsPapi"},"image":{"@id":"https:\/\/oddspapi.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/oddspapiapi"]},{"@type":"Person","@id":"https:\/\/oddspapi.io\/blog\/#\/schema\/person\/b6f21e649c4f556f0a95c23a0f1efa13","name":"Odds API Writer","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/oddspapi.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/33b204f24af3d02e35b25ae730c0536121ca6a783fdb196e7611c9e49fcd13eb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/33b204f24af3d02e35b25ae730c0536121ca6a783fdb196e7611c9e49fcd13eb?s=96&d=mm&r=g","caption":"Odds API Writer"},"url":"https:\/\/oddspapi.io\/blog\/author\/andy-lavelle\/"}]}},"_links":{"self":[{"href":"https:\/\/oddspapi.io\/blog\/wp-json\/wp\/v2\/posts\/2842","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oddspapi.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oddspapi.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oddspapi.io\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/oddspapi.io\/blog\/wp-json\/wp\/v2\/comments?post=2842"}],"version-history":[{"count":1,"href":"https:\/\/oddspapi.io\/blog\/wp-json\/wp\/v2\/posts\/2842\/revisions"}],"predecessor-version":[{"id":2844,"href":"https:\/\/oddspapi.io\/blog\/wp-json\/wp\/v2\/posts\/2842\/revisions\/2844"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oddspapi.io\/blog\/wp-json\/wp\/v2\/media\/2843"}],"wp:attachment":[{"href":"https:\/\/oddspapi.io\/blog\/wp-json\/wp\/v2\/media?parent=2842"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oddspapi.io\/blog\/wp-json\/wp\/v2\/categories?post=2842"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oddspapi.io\/blog\/wp-json\/wp\/v2\/tags?post=2842"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}