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.