Developers
Tracker API
Read monitoring data and run checks on your Tracker projects from your own scripts, dashboards and tools. Everything the API can see or do follows the same project permissions and plan limits as the Tracker dashboard.
What you can do
Read monitoring data
Pull uptime, SSL, DNS, sitemap and crawl results into your own dashboards, reports or alerting.
Manage projects
Add a client site the moment a deal closes, change monitoring settings in bulk, or clean up old projects.
Run checks on demand
Re-check a site after a deploy, crawl a page you just published, or run PageSpeed — then poll the job for the result.
Get notified with webhooks
Have Tracker POST signed events to your server when a site goes down or recovers, or a finding opens or closes.
Quick start
-
Create an API key
Sign in and open Profile → API keys. Name the key, choose Read only or Read and write, pick an expiry and confirm your password. The key is shown once — store it somewhere safe, such as an environment variable.
-
Check the key works
Every request sends the key in the
Authorizationheader. GET /me tells you whose key it is and what your plan allows.curl 'https://trackerv2.marketingplanet.global/api/v1/me' \ -H 'Authorization: Bearer tk_live_YOUR_KEY'const response = await fetch('https://trackerv2.marketingplanet.global/api/v1/me', { headers: { Authorization: 'Bearer tk_live_YOUR_KEY', }, }); const result = await response.json(); if (!response.ok) throw new Error(`${result.error.code}: ${result.error.message}`); console.log(result.data);import requests response = requests.get( "https://trackerv2.marketingplanet.global/api/v1/me", headers={"Authorization": "Bearer tk_live_YOUR_KEY"}, ) result = response.json() if not response.ok: raise RuntimeError(f"{result['error']['code']}: {result['error']['message']}") print(result["data"]) -
List your projects
You get every project you own or are a member of. Note an
idfor the next step.curl 'https://trackerv2.marketingplanet.global/api/v1/projects?page=1&limit=25' \ -H 'Authorization: Bearer tk_live_YOUR_KEY'const response = await fetch('https://trackerv2.marketingplanet.global/api/v1/projects?page=1&limit=25', { headers: { Authorization: 'Bearer tk_live_YOUR_KEY', }, }); const result = await response.json(); if (!response.ok) throw new Error(`${result.error.code}: ${result.error.message}`); console.log(result.data);import requests response = requests.get( "https://trackerv2.marketingplanet.global/api/v1/projects", headers={"Authorization": "Bearer tk_live_YOUR_KEY"}, params={ "page": 1, "limit": 25, }, ) result = response.json() if not response.ok: raise RuntimeError(f"{result['error']['code']}: {result['error']['message']}") print(result["data"]) -
Read a project’s health
One call returns uptime, SSL, DNS, sitemap, crawl stats and open findings. It reads stored results, so it is safe to call as often as your plan allows.
curl 'https://trackerv2.marketingplanet.global/api/v1/projects/6650a4c2e1b3d5f7a9c1e301/health' \ -H 'Authorization: Bearer tk_live_YOUR_KEY'const response = await fetch('https://trackerv2.marketingplanet.global/api/v1/projects/6650a4c2e1b3d5f7a9c1e301/health', { headers: { Authorization: 'Bearer tk_live_YOUR_KEY', }, }); const result = await response.json(); if (!response.ok) throw new Error(`${result.error.code}: ${result.error.message}`); console.log(result.data);import requests response = requests.get( "https://trackerv2.marketingplanet.global/api/v1/projects/6650a4c2e1b3d5f7a9c1e301/health", headers={"Authorization": "Bearer tk_live_YOUR_KEY"}, ) result = response.json() if not response.ok: raise RuntimeError(f"{result['error']['code']}: {result['error']['message']}") print(result["data"])
The basics
| Base URL | https://trackerv2.marketingplanet.global/api/v1 |
|---|---|
| Authentication | Authorization: Bearer tk_live_… on every request — details |
| Format | JSON in and out. Send Content-Type: application/json with a body. |
| Success | { "data": … }, plus meta on lists |
| Errors | { "error": { "code", "message" } } with a stable code — all codes |
| Rate limit | Per account, per minute, set by your plan — plans |
| Long-running work | Returns 202 with a job to poll — queued actions |
| Machine-readable spec | OpenAPI 3.1 JSON — import into Postman, Insomnia or a client generator |