Crawl summary

GET /api/v1/crawl/{jobId}/summary

Site-wide metrics for a crawl in a single object — overall score, link health, duplicate counts, non-indexable pages and crawl status. Safe to poll while the crawl is still running.

Path & query

NameTypeDescription
jobId requiredstringThe crawl job id returned by Start a crawl (POST /api/v1/crawl). Path parameter.

Request

Response

200 · application/json
  1. {
  2. "jobId": "crw_7Hk29fQ",
  3. "startUrl": "https://example.com",
  4. "host": "example.com",
  5. "status": "done",
  6. "maxPages": 50,
  7. "createdAt": "2026-06-02T13:24:49.414Z",
  8. "finishedAt": "2026-06-02T13:24:52.055Z",
  9. "pagesCrawled": 42,
  10. "totals": {
  11. "brokenPages": 1,
  12. "missingTitle": 0,
  13. "missingMetaDescription": 3,
  14. "missingH1": 2,
  15. "averageWordCount": 815,
  16. "averageScore": 82
  17. }
  18. }

Response fields

FieldTypeDescription
statusstringCrawl state: queued, running, done or error.
pagesCrawlednumberNumber of pages fetched so far (final count once status is done).
createdAtstringISO 8601 timestamp of when the crawl was started.
finishedAtstringISO 8601 timestamp of when the crawl completed; null until the crawl is done.
totalsobjectAggregate counts across all crawled pages (see below).
totals.brokenPagesnumberPages that returned an HTTP status ≥ 400.
totals.missingTitlenumberPages with no <title>.
totals.missingMetaDescriptionnumberPages with no meta description.
totals.missingH1numberPages with no <h1>.
totals.averageWordCountnumberMean body word count across crawled pages.
totals.averageScorenumberMean on-page SEO score (0–100) across crawled pages.

See Errors for status codes.