Developer API
Everything below serves the same live auction: an advertiser places one bid on liveframe.fun/advertise.html and it reaches every surface here. You need a publisher key from publishers.html (one click, free). Your share is 50% of every click and verified impression you deliver.
The MCP for your trading agent that pays you
Every other data feed charges you. This one pays you. Plug LiveFrame into any MCP-compatible AI terminal or agent and get free live market data: get_prediction_markets (Polymarket by 24h volume), get_perp_markets (Hyperliquid marks, funding, volume), get_sponsored.
The deal is simple. Each result carries one clearly-labeled sponsored line from the LiveFrame auction. Every click on that line is revenue to you. Your agent gets its data, advertisers get a real human reading the output, you get paid for attention you were already giving.
Set up in one click
This button creates your key and writes your configs:
Or let the agent do everything
Add the keyless server and say "start earning with LiveFrame". The server is self-onboarding: the start_earning tool registers you, returns your key, and gives the agent the exact config change to make. my_earnings and set_payout_address complete the loop without ever opening a dashboard.
{
"mcpServers": {
"liveframe": {
"type": "http",
"url": "https://rlceganwyarqvlzrzlzf.supabase.co/functions/v1/mcp"
}
}
}
Ads API
JSON over HTTPS, no SDK. Base: https://rlceganwyarqvlzrzlzf.supabase.co/functions/v1
Get the current top card
POST /discord
{"op": "card", "key": "pub_YOURKEY"}
→ {"ok": true,
"campaign": {"id": "…", "brand": "…", "copy": "…"},
"go": "https://…/go?p=pub_YOURKEY&c=…"}
Render brand + copy with a visible SPONSORED or LIVEFRAME AD label and send clicks to the go URL. The card rotates with the auction, re-fetch every 5 minutes.
Bill a verified impression (optional, for apps with a screen)
POST /discord
{"op": "imp", "key": "pub_YOURKEY", "campaign_id": "…", "dwell_ms": 3400}
Send after the card has been at least 50% visible in a focused window for 3 seconds. Server enforces the dwell floor, deduplicates per viewer per campaign per 10 minutes, and caps 500 impressions per publisher per day.
Clicks
Any click through your go link is billed automatically and carries ?lf_click= so advertisers can attribute conversions. The evergreen form /go?p=pub_YOURKEY (no campaign id) always routes to the top campaign at click time, use it in bios, show notes, and chat commands.
Stats
POST /discord
{"op": "stats", "key": "pub_YOURKEY"}
→ {"earned": 12.50, "clicks_24h": 31, "imps_24h": 280, …}
Trading bot notifications
If your bot (Freqtrade, Hummingbot, custom) sends summaries to Telegram or Discord, append the sponsored card and the operator earns from it:
import requests
LF = "https://rlceganwyarqvlzrzlzf.supabase.co/functions/v1/discord"
KEY = "pub_YOURKEY"
def sponsored_line():
try:
r = requests.post(LF, json={"op": "card", "key": KEY}, timeout=5).json()
c = r.get("campaign")
if not c:
return ""
return f"\n---\nSPONSORED · {c['brand']}: {c['copy']}\n{r['go']}"
except Exception:
return ""
# message = your_daily_pnl_summary() + sponsored_line()
Website embeds
One script tag, pays for verified impressions and clicks:
<script src="https://liveframe.fun/lf.js" data-key="pub_YOURKEY" async></script>
Static contexts (newsletters, GitHub READMEs), clicks only:
<a href="https://…/go?p=pub_YOURKEY"> <img src="https://…/embed?p=pub_YOURKEY" width="560" alt="Sponsored via LiveFrame"> </a>
Rules
Always label the placement as sponsored. Never fake impressions or clicks, the server-side caps and dedupe will zero them out and repeated abuse gets the key banned. One card per surface. That's it.
Questions: jonahblake@sploots.ai