public

POST /v1/public/plugin-clicks

A visitor on one of our sites clicked a plugin-store checkout or a free download.

All public endpoints

All developer docs →

Authentication

This endpoint is public. It takes no credential and no organisation — it is what our own marketing site and AI answer engines read.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X POST https://api.zinndigital.com/v1/public/plugin-clicks \
  -H "Content-Type: application/json" \
  -d '{ "href": <string> }'

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

docs/1002 §4 — the beacon our product sites send (navigator.sendBeacon, so the body may arrive as text/plain; it is read as JSON either way, at most 8 KiB). The engine records the click so the store's sale, which happens on a checkout we cannot tag, can be joined back to the advert and site that produced it. Kept: the store product and plan named by href, the site (from Origin), the Google click ids, UTM source/medium/ campaign, the landing page (host + path, never a query) and GA4's own client/session id. ⛔ The visitor's IP is kept ONLY as a keyed hash, and only when the engine can establish the real client address. Always answers 204 with no body, whether or not anything was recorded. Anonymous; throttled per source address (plugin_click).

Request body

NameTypeRequiredWhat it is
hrefstringYesThe link clicked — a checkout.freemius.com checkout, a wordpress.org plugin page or a GitHub zip.
sitestringNoFallback when the request has no Origin.
touchobjectNoWhat the site kept from the visitor's landing: utm_source, utm_medium, utm_campaign, utm_term, utm_content, gclid, gbraid, wbraid, referrer_host, landing_page…
ga_client_idstringNo—
ga_session_idstringNo—

Errors this endpoint can return

429