Projects

List projects

GET /api/v1/projects

Projects you own or are an active member of, newest first.

API key access
Read only or read and write
Project permission
None — acts on your own account
Success
200 — OK

Parameters

Query string

ParameterTypeNotes
page integer default 1 · min 1
limit integer default 25 · min 1 · max 100

Example request

Replace tk_live_YOUR_KEY with your API key.

curl 'https://trackerv2.marketingplanet.global/api/v1/projects?page=1&limit=25' \
  -H 'Authorization: Bearer tk_live_YOUR_KEY'

Example response

200 OK
{
  "data": [
    {
      "id": "6650a4c2e1b3d5f7a9c1e301",
      "name": "Acme Retail",
      "domain": "acmeretail.com",
      "role": "owner",
      "trackingStatus": "active",
      "phases": {
        "uptime": true,
        "technical": true,
        "sitemap": true,
        "pages": true,
        "robots": true,
        "llm": false,
        "udp": false,
        "dns": true,
        "domainExpiry": true,
        "ports": true
      },
      "intervals": {
        "uptimeMinutes": 5,
        "pagesMinutes": 1440,
        "technicalMinutes": 1440,
        "dnsMinutes": 60
      },
      "uptime": {
        "scheme": "https",
        "port": null,
        "timeoutSeconds": 30,
        "alertRepeatMinutes": 60,
        "lastStatus": "success",
        "lastCheckedAt": "2026-10-06T09:25:12.000Z"
      },
      "healthCheck": {
        "verifyHeader": false,
        "headerName": "",
        "headerValueIncludes": "",
        "verifyContent": true,
        "contentIncludes": "Add to cart"
      },
      "sitemap": {
        "url": "https://acmeretail.com/sitemap.xml",
        "status": "ok",
        "lastCheckedAt": "2026-10-06T03:00:41.000Z",
        "pagesFound": 128
      },
      "robotsUrl": null,
      "llmUrl": null,
      "domainExpiry": {
        "status": "ok",
        "daysLeft": 212,
        "lastCheckedAt": "2026-10-05T03:00:00.000Z"
      },
      "technicalLastCheckedAt": "2026-10-06T03:00:45.000Z",
      "cms": "wordpress",
      "createdAt": "2026-05-24T10:12:00.000Z",
      "updatedAt": "2026-10-06T09:25:12.000Z"
    },
    {
      "id": "6650a4c2e1b3d5f7a9c1e302",
      "name": "Northwind Legal",
      "domain": "northwindlegal.com",
      "role": "owner",
      "trackingStatus": "active",
      "phases": {
        "uptime": true,
        "technical": true,
        "sitemap": true,
        "pages": true,
        "robots": true,
        "llm": true,
        "udp": false,
        "dns": true,
        "domainExpiry": false,
        "ports": false
      },
      "intervals": {
        "uptimeMinutes": 5,
        "pagesMinutes": 1440,
        "technicalMinutes": 1440,
        "dnsMinutes": null
      },
      "uptime": {
        "scheme": "https",
        "port": null,
        "timeoutSeconds": 30,
        "alertRepeatMinutes": 60,
        "lastStatus": "success",
        "lastCheckedAt": "2026-10-06T09:27:40.000Z"
      },
      "healthCheck": {
        "verifyHeader": false,
        "headerName": "",
        "headerValueIncludes": "",
        "verifyContent": false,
        "contentIncludes": ""
      },
      "sitemap": {
        "url": null,
        "status": "ok",
        "lastCheckedAt": null,
        "pagesFound": 42
      },
      "robotsUrl": null,
      "llmUrl": null,
      "domainExpiry": {
        "status": "pending",
        "daysLeft": null,
        "lastCheckedAt": null
      },
      "technicalLastCheckedAt": null,
      "cms": "unknown",
      "createdAt": "2026-07-02T14:40:00.000Z",
      "updatedAt": "2026-10-06T09:27:40.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 25,
    "total": 2
  }
}

Response fields

FieldTypeNotes
data array of Project
data[].id string
data[].name string
data[].domain string
data[].role "owner" | "member"
data[].trackingStatus "active" | "inactive" | "paused-by-plan"
data[].phases object Which monitors are on.
data[].phases.uptime boolean
data[].phases.technical boolean
data[].phases.sitemap boolean
data[].phases.pages boolean
data[].phases.robots boolean
data[].phases.llm boolean
data[].phases.udp boolean
data[].phases.dns boolean
data[].phases.domainExpiry boolean
data[].phases.ports boolean
data[].intervals object Minutes. Plan minimums apply. null when that monitor has no schedule yet.
data[].intervals.uptimeMinutes integer or null
data[].intervals.pagesMinutes integer or null
data[].intervals.technicalMinutes integer or null
data[].intervals.dnsMinutes integer or null
data[].uptime object
data[].uptime.scheme "https" | "http"
data[].uptime.port integer or null
data[].uptime.timeoutSeconds integer
data[].uptime.alertRepeatMinutes integer
data[].uptime.lastStatus string or null
data[].uptime.lastCheckedAt string (date-time) or null
data[].healthCheck object
data[].healthCheck.verifyHeader boolean
data[].healthCheck.headerName string max 200 chars
data[].healthCheck.headerValueIncludes string max 500 chars
data[].healthCheck.verifyContent boolean
data[].healthCheck.contentIncludes string max 2000 chars
data[].sitemap object
data[].sitemap.url string or null
data[].sitemap.status string or null
data[].sitemap.lastCheckedAt string (date-time) or null
data[].sitemap.pagesFound integer
data[].robotsUrl string or null
data[].llmUrl string or null
data[].domainExpiry object
data[].domainExpiry.status string or null
data[].domainExpiry.daysLeft integer or null
data[].domainExpiry.lastCheckedAt string (date-time) or null
data[].technicalLastCheckedAt string (date-time) or null
data[].cms string or null
data[].createdAt string (date-time)
data[].updatedAt string (date-time)

Errors

Only the errors any request can return: a missing or invalid key, no API access on your plan, or the rate limit.

Errors always look like { "error": { "code": "…", "message": "…" } }. See Errors & limits.