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