Partners · developers
Tracking & API
Everything your tracker and your own systems need: S2S postbacks with retries and a delivery log, your click and sub ids on every event, first-deposit and reversal events, a read-only stats API and CSV. The numbers are the ledger we pay from.
Tracking links
Your link is https://www.livedreams.ai/p/YOURCODE. Add up to five sub ids — sub1…sub5, up to 100 characters each, letters, digits and . _ ~ - — and they ride every postback and every API row (a value with other characters is dropped). Put your tracker's click id in sub1; campaign, creative or placement in the others.
https://www.livedreams.ai/p/YOURCODE?sub1={your_click_id}&sub2=campaign42&sub3=banner-aA visit is remembered for 30 days; the account that signs up through it is yours for life. Self-referrals and duplicate accounts don't earn — see the terms.
S2S postbacks
Set one HTTPS URL on the dashboard's Tracking tab and pick its events. We call it with GET the moment an event happens, from our server, with your macros filled in.
| Event ({status}) | When |
|---|---|
| signup | Registration |
| ftd | First deposit (FTD) |
| sale | Every deposit |
| reversal | Reversal (refund, chargeback, fraud) |
| payout | Payout sent |
| tier | Tier change (your rate went up or a new month started lower) |
| tier_bonus | Monthly tier bonus |
| {sub1} | …{sub5}: what you put in ?sub1=…&sub5= on your link — your tracker's click id goes in sub1 |
| {click_id} | Our id for the click (the visit through your link) |
| {status} | The event: signup, ftd, sale, reversal, payout, tier, tier_bonus (test for a test) |
| {event} | Same as {status} |
| {event_id} | Our id for this event — unique, use it to drop duplicates |
| {payout} | Your commission for this event, USD (payout: the amount sent; tier_bonus: the bonus) |
| {commission} | Same as {payout} |
| {amount} | The deposit, USD gross (sale, ftd, reversal); tier_bonus: the net it tops up |
| {currency} | Always USD |
| {ftd} | 1 when this deposit is the player's first, else 0 |
| {rate} | The rate of this line as a fraction (0.35); signup, payout, tier: your rate now |
| {tier} | base, pro, elite — or custom for a written deal |
| {transaction_id} | Our reference: payment id (sale, ftd, reversal), player (signup), tx hash (payout), tier:YYYY-MM (tier_bonus) |
| {referee} | The player, opaque (usr_…) — the same one the dashboard shows |
| {timestamp} | When it happened, Unix seconds |
Delivery. An answer below 400 is delivered. Anything else — an error, a timeout (5 s) — is retried after 1 min, 5 min, 30 min, 2 h, 12 h, then marked failed. Every attempt shows on the Tracking tab with the URL we called and the HTTP status. We never follow redirects and never call private or local addresses.
Duplicates. Each event is sent once, and a retry carries the same {event_id} — use it as the transaction id in your tracker. Amounts are USD with up to 4 decimals.
Reversals. A refund, a chargeback or fraud voids an unpaid commission; with reversal on you get it with the same amounts and the sale's {transaction_id}.
Tiers. A sale carries the rate it booked at in {rate} (0.35) and {tier}. On the 1st the month's tier_bonus pays the difference up to the rate the month reached: {payout} is the bonus, {amount} the net it tops up, {transaction_id} is tier:YYYY-MM. It has no click — {click_id} and the sub ids are empty — so count it as a payout adjustment (Keitaro, Binom and RedTrack take a conversion without a click as a manual adjustment). A tier event tells you when your rate changes. Both are off until you tick them.
https://tracker.example/postback?cid={sub1}&status={status}&payout={payout}&rate={rate}&tier={tier}&txid={transaction_id}Test. “Send a test postback” fills your URL with sample values (status=test) and shows what your tracker answered.
Tracker setups
Typical shapes — copy the exact host and path from your tracker's postback settings.
Keitaro
Offer URL in the tracker
https://www.livedreams.ai/p/YOURCODE?sub1={subid}&sub2={campaign_id}Postback URL on our Tracking tab
https://YOUR-KEITARO/POSTBACK-KEY/postback?subid={sub1}&status={status}&payout={payout}&tid={event_id}Map statuses in the tracker: signup → lead, ftd and sale → sale, reversal → rejected.
Binom
Offer URL in the tracker
https://www.livedreams.ai/p/YOURCODE?sub1={clickid}Postback URL on our Tracking tab
https://YOUR-BINOM/click.php?cnv_id={sub1}&payout={payout}&cnv_status={status}&event1={ftd}Count only paying events: send ftd and sale, or filter by cnv_status.
Voluum
Offer URL in the tracker
https://www.livedreams.ai/p/YOURCODE?sub1={clickid}Postback URL on our Tracking tab
https://YOUR-DOMAIN.trackvoluum.com/postback?cid={sub1}&payout={payout}&txid={event_id}&et={status}Create custom conversion types named signup, ftd, sale, reversal.
RedTrack
Offer URL in the tracker
https://www.livedreams.ai/p/YOURCODE?sub1={clickid}Postback URL on our Tracking tab
https://YOUR-REDTRACK/postback?clickid={sub1}&sum={payout}&type={status}&transaction_id={event_id}Add the conversion types signup, ftd, sale; reversal as a negative type if you track chargebacks.
BeMob
Offer URL in the tracker
https://www.livedreams.ai/p/YOURCODE?sub1={cid}Postback URL on our Tracking tab
https://YOUR-BEMOB/postback?cid={sub1}&payout={payout}&status={status}&txid={event_id}Use {event_id} as txid so a retried postback is counted once.
Stats API
Read-only, JSON, USD, UTC. Make a key on the Tracking tab (shown once; a new key revokes the old) and send it as Authorization: Bearer ld_aff_…. 30 requests a minute per key, up to 92 days a request; the same query within a minute is answered from cache. Ranges: from / to as YYYY-MM-DD (both days included) or ISO times; default the last 30 days. The machine-readable spec is at /api/affiliate/v1/openapi.json.
GET /api/affiliate/v1/summary
curl -H "Authorization: Bearer ld_aff_…" "https://www.livedreams.ai/api/affiliate/v1/summary?from=2026-10-01&to=2026-10-28"
{
"from": "2026-10-01T00:00:00.000Z", "to": "2026-10-29T00:00:00.000Z", "currency": "USD",
"clicks": 1840, "signups": 512, "ftds": 21, "deposits": 34, "deposits_usd": 612.66,
"commission_usd": 165.4182, "tier_bonus_usd": 0,
"commission": { "pending_usd": 40.1, "available_usd": 125.3182, "paying_usd": 0, "paid_usd": 0, "void_usd": 2.97 },
"epc_usd": 0.0899, "cr_signup": 0.2783,
"tier": { "period": "2026-10", "tier": "base", "rate": 0.3, "reached": "base", "floor": null, "custom": null,
"volume_usd": 551.39,
"next": { "tier": "pro", "rate": 0.35, "volume_usd": 5000, "volume_left_usd": 4448.61 },
"closes_at": "2026-11-01T00:00:00.000Z" }
}tier is this month whatever range you ask for: rate is what a pack collected now pays, floor the tier carried from last month, next what the next tier still needs.
GET /api/affiliate/v1/stats?group_by=day|sub1|sub2|sub3|sub4|sub5
The summary's numbers per UTC day or per sub id: clicks by click time, signups by sign-up, deposits and commission by when the money landed.
{ "group_by": "sub1", "rows": [ { "key": "kt-8812", "clicks": 120, "signups": 31, "ftds": 2, "deposits": 3, "deposits_usd": 39.97, "commission_usd": 10.79, ... } ] }GET /api/affiliate/v1/conversions?limit=500&cursor=…
Signups, sales, tier bonuses and reversals, oldest first, with your click id and sub ids. Every money row says what it is (kind: sale or tier_bonus), the rate it booked at and the UTC month it counts in (period). Pass next_cursor as cursor for the next page; null means you have everything.
{ "items": [ { "id": "sale:pay_5c1…", "event": "sale", "at": "2026-11-20T16:00:00.000Z", "referee": "usr_430775d1",
"click_id": "8e45…", "subs": { "sub1": "kt-8812", "sub2": null, ... }, "amount_usd": 9.99, "commission_usd": 3.4965,
"state": "pending", "ftd": true, "transaction_id": "pay_5c1…", "kind": "sale", "rate": 0.35, "period": "2026-11" },
{ "id": "tier_bonus:tier:2026-11", "event": "tier_bonus", "at": "2026-12-01T00:30:00.000Z", "referee": null,
"click_id": null, "amount_usd": 4980, "commission_usd": 249, "state": "pending", "transaction_id": "tier:2026-11",
"kind": "tier_bonus", "rate": 0.35, "period": "2026-11" } ], "next_cursor": null }GET /api/affiliate/v1/payouts
Payouts with amount, asset, network, address and the on-chain tx hash.
GET /api/affiliate/v1/tiers
This month so far (current, the same object as the summary's tier) and every closed month: net volume, the tier reached and paid, booked commission, the tier bonus and the floor the next month starts at.
{ "currency": "USD", "current": { ... }, "months": [ { "period": "2026-11", "volume_usd": 7210,
"reached": "pro", "tier": "pro", "rate": 0.35, "floor": "base", "commission_usd": 2274.5,
"tier_bonus_usd": 249, "next_month_floor": "pro", "closed_at": "2026-12-01T00:30:04.000Z" } ] }GET /api/affiliate/v1/program
The ladder as data — rates, thresholds, hold and payout floor. No key needed: /api/affiliate/v1/program.
Errors come as { "error": { "code", "message" } }: 401 unauthorized, 429 rate_limited, 400 invalid_range / invalid_group / invalid_cursor, 503 unavailable (retry in a minute).
Commission states: pending (in the 7-day hold), available (yours to request), paying (in a payout being sent), paid, void (refund, chargeback or fraud). Players are opaque ids — never emails.
Tiers
Your rate is set by the net your locked users bring in each UTC calendar month: 30% from the first dollar, 35% from $5,000 net, 40% from $15,000 net — the money alone, however many users paid it. A pack books at the rate reached when it collects; on the 1st one tier_bonus line tops the month up to the rate it reached, and that tier is your minimum next month. The binding rules are section 2 of the terms.
Reconciling. For a month, the sum of its sale rows plus its tier_bonus row equals that month's net × its rate (lines booked higher keep what they booked). Group by period, not by at: the bonus is booked on the 1st of the next month.
CSV
The Tracking tab downloads your conversions for any range up to 92 days — the same rows as the API, one per line, safe to open in a spreadsheet. Since 1.1 the last three columns are rate, kind and period; the columns before them did not move.
Changelog
2026-11-03 — tiers (API 1.1.0, additions only): tier and tier_bonus_usd on the summary, tier_bonus_usd on stats rows, kind rate period on conversions and the CSV, the tier_bonus conversion, new /tiers and /program; postback macros {rate} {tier} and the events tier and tier_bonus (off by default). Nothing you use today changed.
2026-10-29 — postbacks v2: retries with backoff, delivery log, test postback, ftd and reversal events, {event_id} {amount} {ftd} {timestamp} macros; stats API and CSV. Existing postback URLs keep their events and macros.
Questions: [email protected].
