API Reference

Monetization

Cloaked links, server-side click tracking, outbound postbacks to your tracker, tracking pixels, comparison tables and SEO search pages.

Link cloaks

Clean /go/:slug URLs on your own domain that 302 to the affiliate destination. Better deliverability than raw affiliate links, and you can swap destinations without touching published content. Plan-gated: link_cloaking.

MethodEndpointDescription
GET/sites/:id/cloaksList cloaks with click counts
POST/sites/:id/cloaksCreate cloak
POST/sites/:id/cloaks/from-offersOne call → a cloak per offer, using each offer's affiliate URL
DELETE/cloaks/:cidDelete cloak
FieldTypeDescription
slug requiredstringPublic path: https://your-site.com/go/:slug.
destination_url requiredstringWhere the redirect lands.
offer_iduuidLink to an offer for per-offer click attribution.

Outbound postbacks

Server-to-server calls to your tracker when events happen. URLs support macros that we expand per click. Plan-gated: postbacks.

MethodEndpointDescription
GET/sites/:id/postbacksList postbacks
POST/sites/:id/postbacksCreate postback
DELETE/postbacks/:pidDelete
FieldTypeDescription
event requiredstringTrigger — currently click (every tracked outbound click).
url requiredstringEndpoint we call. Macros: {clickid}, {offer}, {site}.
methodstringGET (default) | POST.
Forward clicks to a Voluum-style tracker
curl -X POST $API/sites/$SITE_ID/postbacks \
  -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' \
  -d '{"event":"click","url":"https://tracker.example.com/click?clickid={clickid}&offer={offer}"}'

Tracking pixels

Snippet injection into every public page — the DB-backed sibling of settings JavaScript injection. Use whichever fits your workflow; both render.

MethodEndpointDescription
GET/sites/:id/pixelsList pixels
POST/sites/:id/pixelsAdd pixel
DELETE/sites/:id/pixels/:pidRemove pixel
FieldTypeDescription
placement requiredstringheader | body | footer — where the snippet lands.
code requiredstringThe snippet, injected verbatim (that's its job).

Comparison tables

Side-by-side offer comparisons — the highest-converting format in the industry — rendered at /compare/:slug/. Plan-gated: comparison_tables.

MethodEndpointDescription
GET/sites/:id/compareList tables
POST/sites/:id/compareCreate table
PATCH/compare/:cidUpdate
DELETE/compare/:cidDelete
FieldTypeDescription
name requiredstringTable name, e.g. "Best VPNs 2026 — compared".
slugstringEmpty → generated from name.
introstring (HTML)Lead-in paragraph above the table.
offer_idsuuid[]Compared offers, in display order.

Search-query pages

Programmatic SEO: landing pages targeting specific search phrases ("best vpn for netflix"), each with its own intro copy and hand-picked offers, at /q/:slug/.

MethodEndpointDescription
GET/sites/:id/search-queriesList query pages
POST/sites/:id/search-queriesCreate
PATCH/search-queries/:qidUpdate
DELETE/search-queries/:qidDelete
FieldTypeDescription
title requiredstringPage title — the search phrase, natural-language style.
slugstringEmpty → generated from title.
descriptionstring (HTML)Intro copy above the offer list.
offer_idsuuid[]Offers featured on the page.