1<!DOCTYPE html> 2<html lang="en"> 3<head> 4<meta charset="utf-8" /> 5<meta name="viewport" content="width=device-width, initial-scale=1" /> 6<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 6-7
6 7<script async src="https://www.googletagmanager.com/gtag/js?id=
7G-707XW8MJDF
vendor: 12 bytes, line 7
7"></script>
8<script> 9
vendor: 134 bytes, lines 9-13
9window.dataLayer = window.dataLayer || []; 10 function gtag(){dataLayer.push(arguments);} 11 gtag('js', new Date()); 12 13 gtag('config', '
13G-707XW8MJDF
vendor: 4 bytes, line 13
13');
14</script>
14 15<title>Trading Data API â agent-ready market data</title> 16<meta name="description" content="Agent-ready trading & market-data API: prices, indicators, prediction markets, macro, and an AI momentum score. Pay per call with x402 (USDC) or an API key." /> 17<link rel="icon" type="image/x-icon" href="/favicon.ico" /> 18<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" /> 19<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" /> 20<link rel="apple-touch-icon" href="/apple-touch-icon.png" /> 21<style> 22:root{ 23 --bg:#EEE9DD;--fg:#141411;--mut:#6b6759; 24 --line:rgba(20,20,17,.14);--line-strong:#141411;--acc:#4F46E5;--ok:#0f9d58;--bad:#d0392b; 25} 26*{box-sizing:border-box} 27html{-webkit-font-smoothing:antialiased} 28body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 "Helvetica Neue",Helvetica,Arial,sans-serif} 29a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px} 30a:hover{color:var(--acc);text-decoration-color:var(--acc)} 31.mono{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace} 32.wrap{max-width:1080px;margin:0 auto;padding:0 24px} 33.eyebrow{display:flex;align-items:center;gap:8px;font:600 11.5px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-bottom:18px} 34.eyebrow .dot{width:7px;height:7px;background:var(--acc);flex:none} 35.topbar{border-bottom:1px solid var(--line-strong);padding:16px 0} 36.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap} 37.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:15px;letter-spacing:-.01em} 38.brand img{height:26px;width:auto;display:block} 39.status{font:600 11px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);display:flex;align-items:center;gap:7px} 40.status .pulse{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(15,157,88,.18)} 41header.hero{padding:64px 0 48px;border-bottom:1px solid var(--line-strong)} 42.hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:start} 43@media(max-width:860px){.hero-grid{grid-template-columns:1fr}} 44h1{font-size:clamp(40px,6.4vw,74px);line-height:.98;letter-spacing:-.02em;font-weight:850;margin:0 0 22px} 45.sub{font-size:18px;line-height:1.6;color:var(--mut);max-width:520px;margin:0 0 28px} 46.cta{display:flex;gap:10px;flex-wrap:wrap} 47.cta a{display:inline-flex;align-items:center;gap:6px;padding:13px 20px;font-weight:700;font-size:14.5px;text-decoration:none;border:1px solid var(--line-strong)} 48.cta .primary{background:var(--fg);color:var(--bg)} 49.cta .primary:hover{background:var(--acc);border-color:var(--acc);color:#fff} 50.cta .ghost{background:transparent;color:var(--fg)} 51.cta .ghost:hover{border-color:var(--acc);color:var(--acc)} 52.legal{margin-top:16px;font-size:11.5px;color:var(--mut);max-width:480px} 53 54.term{border:1px solid var(--line-strong);background:var(--fg);color:#EEE9DD} 55.term .term-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid rgba(238,233,221,.18);font:600 10.5px/1 ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;color:#a8a296} 56.term .term-head .live{color:var(--acc)} 57.term-body{padding:16px} 58.term .cmd{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;color:#8fe0b0;word-break:break-all;margin-bottom:14px} 59.term .cmd .p{color:#a8a296} 60.term .code200{display:inline-block;font:700 12px/1 ui-monospace,monospace;color:#8fe0b0;border:1px solid #8fe0b0;padding:3px 8px;margin-bottom:12px} 61.kv{display:grid;grid-template-columns:auto 1fr;gap:7px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px} 62.kv .k{color:#a8a296;text-transform:lowercase} 63.kv .v{color:#EEE9DD;word-break:break-all} 64.kv .v.acc{color:var(--acc)} 65 66section{padding:44px 0;border-bottom:1px solid var(--line-strong)} 67h2{font-size:clamp(26px,3.2vw,38px);line-height:1.05;letter-spacing:-.015em;font-weight:800;margin:0 0 8px} 68.lede{color:var(--mut);font-size:15.5px;max-width:560px;margin:0 0 28px} 69.grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line-strong);border-collapse:collapse} 70.grid.g2{grid-template-columns:repeat(2,1fr)} 71@media(max-width:760px){.grid,.grid.g2{grid-template-columns:1fr}} 72.cell{padding:22px;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)} 73.grid .cell:nth-child(3n){border-right:none} 74.grid.g2 .cell:nth-child(2n){border-right:none} 75.cell:nth-last-child(-n+3){border-bottom:none} 76.cell h3{margin:0 0 8px;font-size:16px;font-weight:800} 77.cell p{margin:0;color:var(--mut);font-size:14px;line-height:1.55} 78 79.steps{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--line-strong)} 80@media(max-width:760px){.steps{grid-template-columns:1fr}} 81.step{padding:26px;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);position:relative} 82.step:nth-child(2n){border-right:none} 83.step:nth-last-child(-n+2){border-bottom:none} 84.step .num{font:800 34px/1 ui-monospace,monospace;color:var(--line-strong);opacity:.18;margin-bottom:6px} 85.step h3{margin:0 0 8px;font-size:17px;font-weight:800} 86.step p{margin:0;color:var(--mut);font-size:14px;line-height:1.55} 87.step code{background:rgba(20,20,17,.06);padding:1px 5px;font-size:13px} 88 89pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--fg);color:#8fe0b0;border:1px solid var(--line-strong);padding:16px;overflow:auto;font-size:13px;margin:0 0 14px} 90code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:rgba(20,20,17,.06);padding:1px 5px;border-radius:3px} 91 92.price{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line-strong)} 93@media(max-width:760px){.price{grid-template-columns:1fr}} 94.price .p{padding:24px;border-right:1px solid var(--line-strong)} 95.price .p:last-child{border-right:none} 96.price .big{font:800 30px/1 ui-monospace,monospace;color:var(--acc);margin-bottom:10px} 97.price .p div:last-child{color:var(--mut);font-size:14px;line-height:1.55} 98.price .p code{font-size:12.5px} 99 100.eplist{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line-strong)} 101@media(max-width:760px){.eplist{grid-template-columns:1fr}} 102.ep{font-size:13.5px;padding:12px 16px;border-bottom:1px solid var(--line)} 103.ep:nth-child(odd){border-right:1px solid var(--line)} 104@media(max-width:760px){.ep:nth-child(odd){border-right:none}} 105.ep .m{display:inline-block;font:700 10.5px/1 ui-monospace,monospace;color:var(--fg);background:rgba(20,20,17,.08);padding:3px 6px;margin-right:8px;vertical-align:middle} 106.ep .pth{font-family:ui-monospace,monospace;color:var(--fg);font-weight:600} 107.ep .free{color:var(--ok);font:700 10px/1 ui-monospace,monospace;text-transform:uppercase;letter-spacing:.04em;margin-left:8px} 108.ep .d{display:block;color:var(--mut);font-size:12.5px;margin-top:4px} 109 110footer{padding:36px 0 70px} 111footer p{margin:0 0 6px;font-size:14px} 112.muted{color:var(--mut)} 113</style> 114</head> 115<body> 116 117<div class="topbar"><div class="wrap">
118 <div class="brand"><img src="/favicon-32x32.png" alt="" /> WICKEDAPI <span class="mono muted" style="font-weight:600;font-size:12px">/ TRADING DATA</span></div> 119 <div class="status"><span class="pulse"></span>PRODUCTION · HTTP 402 · X402 LIVE</div> 120</div></div> 121 122<header class="hero"><div class="wrap"> 123 <div class="hero-grid"> 124 <div> 125 <div class="eyebrow"><span class="dot"></span>AGENT-READY MARKET DATA</div> 126 <h1>Real data.<br/>No signup.<br/>Pay per call.</h1> 127 <p class="sub">Crypto & stock prices, technical indicators, prediction markets, DeFi, macro events, and an AI momentum score â 24 endpoints an autonomous agent can call with no account, paying in USDC as it goes.</p> 128 <div class="cta"> 129 <a class="primary" href="/docs">Interactive docs â</a> 130 <a class="ghost" href="/openapi.json">OpenAPI spec</a> 131 <a class="ghost" href="/v1/status">Live catalog</a> 132 </div> 133 <p class="legal muted">No fabricated data, ever â an upstream failure returns a real error, never a guessed value.</p> 134 </div> 135 <div class="term"> 136 <div class="term-head"><span>agent@buyer:~$</span><span class="live">â LIVE</span></div> 137 <div class="term-body"> 138 <div class="cmd"><span class="p">$</span> curl https://api.wickedapi.com/v1/momentum-score?symbol=BTC</div> 139 <div class="code200">402 · PAYMENT REQUIRED</div> 140 <div class="kv"> 141 <div class="k">scheme</div><div class="v">exact</div> 142 <div class="k">network</div><div class="v acc">base</div> 143 <div class="k">asset</div><div class="v">USDC</div> 144 <div class="k">price</div><div class="v acc">$0.001</div> 145 <div class="k">pay_to</div><div class="v">0x63Ebâ¦C8A4</div> 146 <div class="k">retry</div><div class="v">sign + X-PAYMENT header</div> 147 </div> 148 </div> 149 </div> 150 </div> 151</div></header> 152 153<section><div class="wrap"> 154 <div class="eyebrow"><span class="dot"></span>CATALOG</div> 155 <h2>What you get</h2> 156 <p class="lede">Six categories, one consistent envelope, real upstream data only.</p> 157 <div class="grid"> 158 <div class="cell"><h3>Prices & candles</h3><p>Spot price and OHLCV for crypto and US equities/ETFs, timeframes that match TradingView exactly.</p></div> 159 <div class="cell"><h3>Indicators</h3><p>Wilder ATR + volatility regime, Fair Value Gaps (standard ICT/LuxAlgo), ICT buy/sell-side liquidity levels.</p></div> 160 <div class="cell"><h3>Derivatives & flow</h3><p>Perp funding & open interest, long/short ratios, order-book depth, spot-vs-perp basis, Hyperliquid.</p></div> 161 <div class="cell"><h3>Markets & macro</h3><p>Kalshi prediction markets, DeFi TVL, crypto sentiment, implied volatility, a verified FOMC/CPI/jobs calendar.</p></div> 162 <div class="cell"><h3>AI momentum score</h3><p>A multi-signal verdict â bias, confidence, thesis, entry/invalidation/targets â for 10 liquid assets.</p></div> 163 <div class="cell"><h3>Honest by design</h3><p>Consistent JSON envelope. Failures return a clear <code>502</code>/<code>503</code>, never a fabricated number.</p></div> 164 </div> 165</div></section> 166 167<section><div class="wrap"> 168 <div class="eyebrow"><span class="dot"></span>ACCESS MODEL</div> 169 <h2>Two ways in, zero signup either way</h2> 170 <div class="steps"> 171 <div class="step"><div class="num">01</div><h3>Pay-per-call (x402)</h3><p>Call any endpoint with no key. Get a <code>402</code> with a USDC price; your agent's wallet pays automatically and the data returns. No accounts, no invoices.</p></div> 172 <div class="step"><div class="num">02</div><h3>API key</h3><p>Prefer a key? Send <code>x-api-key</code> for keyed, rate-limited access. Built for partners and dashboards.</p></div> 173 </div> 174 <p class="lede" style="margin:26px 0 10px">Try it free, right now â no key, no wallet, no signup:</p> 175 <pre>curl https://api.wickedapi.com/v1/sentiment</pre> 176 <p class="lede" style="margin:20px 0 10px">Or the paid tier (keyless â real 402 challenge):</p> 177 <pre style="margin-bottom:0">curl -i https://api.wickedapi.com/v1/momentum-score?symbol=BTC&timeframe=1h</pre> 178</div></section> 179 180<section><div class="wrap">
181 <div class="eyebrow"><span class="dot"></span>PRICING</div> 182 <h2>No tier requires a signup</h2> 183 <div class="price"> 184 <div class="p"><div class="big">FREE</div><div>forever, no key needed: <code>/v1/sentiment</code>, <code>/v1/macro-calendar</code>, <code>/v1/market-overview</code>, <code>/v1/gas</code>, <code>/v1/kalshi-probability</code>.</div></div> 185 <div class="p"><div class="big">$0.001</div><div>per request for everything else â paid in USDC via x402 on Base. No signup, agents pay as they go.</div></div> 186 <div class="p"><div class="big">KEYED</div><div>Rate-limited <code>x-api-key</code> access for partners. <a href="mailto:">Request a key</a>.</div></div> 187 </div> 188</div></section> 189 190<section style="border-bottom:none"><div class="wrap"> 191 <div class="eyebrow"><span class="dot"></span>REFERENCE</div> 192 <h2>Endpoints <span class="muted mono" id="epcount" style="font-size:16px"></span></h2> 193 <p class="lede">Live, pulled straight from <code>/v1/status</code> â never out of sync with what's deployed.</p> 194 <div class="eplist" id="eplist"><span class="muted" style="padding:12px 16px;display:block">Loading live catalogâ¦</span></div> 195</div></section> 196 197<footer><div class="wrap"> 198 <p><strong>Trading Data API</strong> â built for the agent economy. Discoverable via the x402 Bazaar.</p> 199 <p class="muted">Data sourced from public & licensed providers. Not investment advice.</p> 200 <p class="muted" style="margin-top:14px"><a href="https://protocol-health-oracle.wickedapi.com">Protocol Health Oracle</a> · <a href="https://broker-sync-api.wickedapi.com">Broker Sync API</a> · <a href="https://token-risk-oracle.wickedapi.com">Token Risk Oracle</a></p> 201</div></footer> 202
203<script> 204fetch("/v1/status").then(r=>r.json()).then(j=>{ 205 const eps=(j.data&&j.data.endpoints)||[]; 206 const el=document.getElementById("eplist"); 207 document.getElementById("epcount").textContent="("+eps.length+")"; 208 el.innerHTML=eps.map(function(e){ 209 return '<div class="ep"><span class="m">'+e.method+'</span><span class="pth">'+e.path+'</span>'+(e.auth?'':' <span class="free">FREE</span>')+'<span class="d">'+(e.description||'')+'</span></div>'; 210 }).join(""); 211}).catch(function(){document.getElementById("eplist").innerHTML='<span class="muted" style="padding:12px 16px;display:block">Catalog unavailable.</span>';}); 212</script>
212 213</body> 214</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.