Live cap/CR progress for every offer in the workspace
GET
/api/v1/offers/stats
const url = 'https://example.com/api/v1/offers/stats';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/v1/offers/stats \ --header 'Authorization: Bearer <token>'Authorizations
Заголовок раздела «Authorizations»Responses
Заголовок раздела «Responses»Media typeapplication/json
Array<object>
object
offerId
required
string
conversionsToday
required
Conversions counted since 00:00 UTC today.
number
conversionsTotal
required
Lifetime conversions.
number
clicksTotal
required
Lifetime clicks routed to this offer by the landing_offer rotation (a live Redis counter — not flushed to Postgres, so this is always current).
number
cr
required
ConversionsTotal / clicksTotal — the exact ratio the CR auto-disable check uses, as a fraction (0..1), 0 when there are no clicks yet.
number
capDaily
object
capTotal
object
capDailyRemaining
CapDaily - conversionsToday, floored at 0. Null when capDaily is not set.
object
capTotalRemaining
CapTotal - conversionsTotal, floored at 0. Null when capTotal is not set.
object
autoDisableMinClicks
required
Minimum clicks the CR auto-disable check requires before it evaluates an offer.
number
autoDisableMinCr
required
CR floor (fraction, 0..1) below which the offer gets auto-disabled once autoDisableMinClicks is reached.
number
Example generated
[ { "offerId": "example", "conversionsToday": 1, "conversionsTotal": 1, "clicksTotal": 1, "cr": 1, "capDaily": {}, "capTotal": {}, "capDailyRemaining": {}, "capTotalRemaining": {}, "autoDisableMinClicks": 1, "autoDisableMinCr": 1 }]