tracking_key, a UUID) sent in the key body field.
A hit is validated, then queued for processing, so a successful call returns 202 Accepted with an empty body. An unknown key returns 404 Not Found. All ingestion endpoints accept a text/plain body (for navigator.sendBeacon) as well as JSON.
Base URL: https://clickbase.so/api.
Collect a pageview
Status:
202 Accepted (404 on unknown key).
Record a custom event
payment, the subscription_* names) that only Clickbase writes, since no goal may claim those names. See Track revenue for the difference and for sending verified revenue via the Payments API below.
Status:
202 Accepted (404 on unknown key).
Send an engagement ping
Status:
202 Accepted (404 on unknown key).
Identify a visitor
site_users table, so it has a tighter bucket).
Status:
202 Accepted (404 on unknown key).
Payments API
The Payments API records and deletes verified revenue server-to-server. It uses the same Passport personal access token as the rest of the authenticated API — not the tracking key. Create a token on the Developers settings page or viaPOST /api/tokens; optionally limit it to specific sites with site_ids. See Authentication.
SitePolicy::manage) and an active subscription on the token’s workspace. A missing/invalid token returns 401; a member without manage access returns 403; a lapsed subscription returns 402. Rate limit: 60/min (same bucket as the authenticated API group).
{siteKey} is the site’s UUID or domain (a domain segment may contain dots).
Record a payment
transaction_id: a replay returns the existing record with 200 instead of creating a duplicate.
Response:
{ "message": ..., "transaction_id": ... }. Status: 201 Created on a new record, 200 OK on a replay.
Delete a payment
transaction_id. Only deletes payments created through this API — never Stripe-ingested rows.
Response:
200 OK ({ "message": "Payment deleted." }), or 404 Not Found when no matching payment exists.
Stripe webhook
{siteId} must be a site UUID. The request is authenticated by verifying the Stripe-Signature header against the site’s configured webhook secret — a missing integration/secret returns 404, a bad signature returns 400. On success it dispatches to HandleStripeWebhook and returns 200 OK. Rate limit: 600/min. This endpoint is configured in the site’s Stripe integration, not called by hand.
