REST API
Tracking configuration
Turn on optional tracking features for a site, and read the public remote config the browser tracker itself fetches. A site is addressed by {siteKey} (UUID or domain) for the enable endpoints below. See Conventions for the base URL, headers, and error conventions shared by every authenticated endpoint.
Each enable endpoint flips one boolean flag on the Site model and invalidates the tracker's remote config cache, then returns the updated site through the same SiteResource used by Sites. All three are additive, idempotent toggles — calling one that is already on is a no-op that still returns 200 OK.
| Feature | Endpoint | Flag |
|---|---|---|
| Web Vitals | POST /api/sites/{siteKey}/performance/enable |
track_web_vitals |
| Error tracking | POST /api/sites/{siteKey}/error-tracking/enable |
track_errors |
| Session replay | POST /api/sites/{siteKey}/replays/enable |
track_session_replay |
Session replay's enable endpoint is documented in full in Session replay — it shares this same pattern and response shape, so it isn't duplicated here.
Enable Web Vitals
POST /api/sites/{siteKey}/performance/enable
Route name: api.sites.performance.enable. Turns on track_web_vitals so the tracker starts sending Core Web Vitals measurements for the site.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
siteKey |
string | Yes | Site UUID or domain. |
Response — the updated site. Status: 200 OK.
curl -X POST "https://clickbase.so/api/sites/example.com/performance/enable" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"
await fetch('https://clickbase.so/api/sites/example.com/performance/enable', { method: 'POST', headers: { Authorization: `Bearer ${token}`, Accept: 'application/json' } })
requests.post('https://clickbase.so/api/sites/example.com/performance/enable', headers={'Authorization': f'Bearer {token}', 'Accept':'application/json'})
Enable error tracking
POST /api/sites/{siteKey}/error-tracking/enable
Route name: api.sites.error-tracking.enable. Turns on track_errors so the tracker starts reporting unhandled JS errors for the site.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
siteKey |
string | Yes | Site UUID or domain. |
Response — the updated site. Status: 200 OK.
curl -X POST "https://clickbase.so/api/sites/example.com/error-tracking/enable" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"
await fetch('https://clickbase.so/api/sites/example.com/error-tracking/enable', { method: 'POST', headers: { Authorization: `Bearer ${token}`, Accept: 'application/json' } })
requests.post('https://clickbase.so/api/sites/example.com/error-tracking/enable', headers={'Authorization': f'Bearer {token}', 'Accept':'application/json'})
Enable endpoint response fields
All three enable endpoints (performance/enable, error-tracking/enable, replays/enable) return the same SiteResource as the site-management endpoints — see the authoritative Response fields table in Sites for the full field set.
Public tracking config
GET /api/tracking-config/{trackingKey}
Route name: api.tracking-config.show. The public, unauthenticated remote config the browser tracker script fetches before its first pageview — this is where the toggles set by the enable endpoints above actually take effect client-side. {trackingKey} is the site's tracking key (the same value as data-site-id on the install snippet), not an OAuth-authenticated {siteKey}. Rate-limited on the shared tracking bucket (kept separate from /api/collect so config polls can't starve ingestion).
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
trackingKey |
string (uuid) | Yes | The site's tracking key (data-site-id). |
Response — a flat object:
| Field | Type | Description |
|---|---|---|
tracking_mode |
string | cookieless or cookie. |
track_initial_pageview |
bool | Whether the tracker auto-fires a pageview on load. |
track_spa_navigation |
bool | Whether SPA route changes are tracked as pageviews. |
track_url_params |
bool | Whether URL query params are recorded. |
track_outbound_links |
bool | Autocapture: outbound link clicks. |
track_file_downloads |
bool | Autocapture: file downloads. |
track_button_clicks |
bool | Autocapture: button clicks. |
track_form_submits |
bool | Autocapture: form submits. |
track_copy |
bool | Autocapture: copy events. |
track_errors |
bool | Whether error tracking is enabled (set via Enable error tracking). |
track_web_vitals |
bool | Whether Web Vitals tracking is enabled (set via Enable Web Vitals). |
track_session_replay |
bool | Whether session replay is enabled and the team can currently ingest events (a lapsed subscription forces this false even if the site flag is on). |
session_replay_sample_rate |
int | Percentage of sessions recorded, 0–100. |
Status: 200 OK. An unknown trackingKey returns 404 Not Found with { "message": "Not found." }.
curl "https://clickbase.so/api/tracking-config/{trackingKey}" \
-H "Accept: application/json"
await fetch(`https://clickbase.so/api/tracking-config/${trackingKey}`, { headers: { Accept: 'application/json' } })
requests.get(f'https://clickbase.so/api/tracking-config/{tracking_key}', headers={'Accept': 'application/json'})