Developer Docs
Tracklio Public API
Use these endpoints to manage monitors and read change insights for your own account. Authentication is done with your user API key from Settings.
Authentication
Public integration endpoints require:X-User-API-Key: trk_live_...
Keys are scoped to one user account. Requests never accept a client-provided userId.
Monitors
GET /api/public/monitors
bash
curl "https://tracklio-ai.com/api/public/monitors" \
-H "X-User-API-Key: trk_live_xxx"POST /api/public/monitors
bash
curl -X POST "https://tracklio-ai.com/api/public/monitors" \
-H "Content-Type: application/json" \
-H "X-User-API-Key: trk_live_xxx" \
-d '{
"name": "Pricing Page",
"url": "https://example.com/pricing",
"watchMode": "whole_page",
"checkFrequency": "1h"
}'PATCH /api/public/monitors/:id
bash
curl -X PATCH "https://tracklio-ai.com/api/public/monitors/{monitorId}" \
-H "Content-Type: application/json" \
-H "X-User-API-Key: trk_live_xxx" \
-d '{"active": false}'POST /api/public/monitors/:id/check
bash
curl -X POST "https://tracklio-ai.com/api/public/monitors/{monitorId}/check" \
-H "X-User-API-Key: trk_live_xxx"Changes
GET /api/public/changes?limit=20
bash
curl "https://tracklio-ai.com/api/public/changes?limit=20" \
-H "X-User-API-Key: trk_live_xxx"GET /api/public/monitors/:id/changes?limit=20
bash
curl "https://tracklio-ai.com/api/public/monitors/{monitorId}/changes?limit=20" \
-H "X-User-API-Key: trk_live_xxx"Changes are sorted newest-first and include impact, summary, and monitor linkage.
JavaScript Example
ts
const res = await fetch("https://tracklio-ai.com/api/public/monitors", {
headers: { "X-User-API-Key": process.env.TRACKLIO_API_KEY! }
});
if (!res.ok) throw new Error(await res.text());
const data = await res.json();
console.log(data.monitors);Error Handling
json
401 Unauthorized
{
"error": "Missing or invalid X-User-API-Key"
}
403 Forbidden
{
"error": "Monitor limit reached for your plan"
}
404 Not Found
{
"error": "Monitor not found"
}Rate Limits and Practical Usage
- Use server-side retries with exponential backoff on 429/5xx.
- Prefer polling with `limit` and cursor-based pagination instead of full syncs.
- Store monitor IDs in your system and update by ID, not by URL string matching.
- Rotate API keys from Dashboard Settings if you suspect exposure.