Data

Get a page

GET /api/v1/projects/{id}/pages/{pageId}

HTTP result, SEO tags, headings, indexing signals, PageSpeed and open findings for one page.

API key access
Read only or read and write
Project permission
View pages
Success
200 — OK

Parameters

Path

ParameterTypeNotes
id required string Project id
pageId required string

Example request

Replace tk_live_YOUR_KEY with your API key and the ids with your own.

curl 'https://trackerv2.marketingplanet.global/api/v1/projects/6650a4c2e1b3d5f7a9c1e301/pages/6651b5d3f2c4e6a8b0d2f401' \
  -H 'Authorization: Bearer tk_live_YOUR_KEY'

Example response

200 OK
{
  "data": {
    "id": "6651b5d3f2c4e6a8b0d2f401",
    "url": "https://acmeretail.com/products/trail-runner",
    "trackingStatus": "active",
    "isActive": true,
    "source": {
      "sitemap": true,
      "manual": false,
      "links": false
    },
    "statusCode": 200,
    "title": "Trail Runner 2 — Lightweight Running Shoe | Acme Retail",
    "lastFetchedAt": "2026-10-06T03:04:18.000Z",
    "openFindingCount": 1,
    "createdAt": "2026-05-24T10:20:00.000Z",
    "updatedAt": "2026-10-06T03:04:18.000Z",
    "accessDenied": false,
    "http": {
      "statusCode": 200,
      "requestedUrl": "https://acmeretail.com/products/trail-runner",
      "finalUrl": "https://acmeretail.com/products/trail-runner",
      "redirectChain": [],
      "crossHostRedirect": false,
      "downgradedToHttp": false,
      "errorClass": null
    },
    "seo": {
      "title": "Trail Runner 2 — Lightweight Running Shoe | Acme Retail",
      "description": "Breathable trail shoe with a grippy outsole. Free returns.",
      "canonicalUrl": "https://acmeretail.com/products/trail-runner",
      "metaRobots": "index, follow",
      "xRobotsTag": null,
      "headings": [
        {
          "level": 1,
          "text": "Trail Runner 2"
        },
        {
          "level": 2,
          "text": "Features"
        },
        {
          "level": 2,
          "text": "Reviews"
        }
      ],
      "og": {
        "title": "Trail Runner 2",
        "description": null,
        "image": "https://acmeretail.com/media/trail-runner.jpg"
      }
    },
    "indexing": {
      "robotsDisallowed": null,
      "metaNoindex": false,
      "xRobotsNoindex": false,
      "canonicalRelative": false,
      "canonicalNotSelf": false,
      "soft404Suspect": false,
      "hasQuery": false,
      "moneyScore": null,
      "thinScore": null,
      "thinSuggestNoindex": false,
      "archiveSuspect": false,
      "urlPattern": null,
      "urlPatternLabels": [],
      "urlPatternSuggestNoindex": false,
      "signalsAt": null
    },
    "pagespeed": {
      "lastFetchedAt": "2026-10-05T03:10:00.000Z",
      "lastError": null,
      "current": {
        "capturedAt": "2026-10-05T03:10:00.000Z",
        "strategy": "mobile",
        "scores": {
          "performance": 0.82,
          "accessibility": 0.96,
          "bestPractices": 1,
          "seo": 0.92
        },
        "metrics": {
          "fcp": null,
          "lcp": {
            "id": "largest-contentful-paint",
            "title": "Largest Contentful Paint",
            "displayValue": "2.4 s",
            "numericValue": 2410,
            "score": 0.79
          },
          "cls": {
            "id": "cumulative-layout-shift",
            "title": "Cumulative Layout Shift",
            "displayValue": "0.02",
            "numericValue": 0.02,
            "score": 1
          },
          "tbt": null,
          "si": null,
          "tti": null,
          "inp": null
        }
      }
    },
    "findings": [
      {
        "id": "6652c6e4a3d5f7b9c1e3a501",
        "pageId": "6651b5d3f2c4e6a8b0d2f401",
        "kind": "thin-page-noindex",
        "severity": "medium",
        "status": "open",
        "summary": "Thin page (84 words) — consider noindex or expanding the content",
        "finalUrl": null,
        "firstSeenAt": "2026-09-28T03:04:00.000Z",
        "lastSeenAt": "2026-10-06T03:04:18.000Z",
        "acceptedAt": null,
        "resolvedAt": null
      }
    ]
  }
}

Response fields

FieldTypeNotes
data object
data.id string
data.url string
data.trackingStatus string
data.isActive boolean
data.source object
data.source.sitemap boolean
data.source.manual boolean
data.source.links boolean
data.statusCode integer or null
data.title string or null
data.lastFetchedAt string (date-time) or null
data.openFindingCount integer
data.createdAt string (date-time)
data.updatedAt string (date-time)
data.accessDenied boolean
data.http object
data.seo object
data.seo.title string or null
data.seo.description string or null
data.seo.canonicalUrl string or null
data.seo.metaRobots string or null
data.seo.xRobotsTag string or null
data.seo.headings array of object
data.seo.og object
data.indexing object
data.pagespeed object or null
data.findings array of Finding
data.findings[].id string
data.findings[].pageId string or null
data.findings[].kind string
data.findings[].severity "critical" | "high" | "medium" | "low"
data.findings[].status "open" | "accepted" | "resolved"
data.findings[].summary string
data.findings[].finalUrl string or null
data.findings[].firstSeenAt string (date-time)
data.findings[].lastSeenAt string (date-time)
data.findings[].acceptedAt string (date-time) or null
data.findings[].resolvedAt string (date-time) or null

Errors

Besides the errors any request can return (bad or missing key, plan, scope, rate limit), this endpoint can return:

Statuserror.codeMeaning
404not-foundThe resource does not exist or you cannot open it. Tracker does not reveal which.
403flag-viewPagesYour project membership does not include viewing pages.

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