Digitalyser.io for developers

Cross-module audit overview

Aggregated scores for every audit module — local visibility, online reputation, online presence, content, analytics, AI discoverability — plus a comparison radar against the competitor benchmark.

Aggregated scores for every audit module — local visibility, online reputation, online presence, content, analytics, AI discoverability — plus a comparison radar against the competitor benchmark.

Read the confidence fields before the numbers. competitorAvg is null whenever no retained competitor has been measured on that pillar, and competitorAvgReason then says why (cohort-below-minimum or no-competitor-measured-this-pillar). competitorPosture is a verdict on the cohort — its coverage and freshness over a 30-day window — never on an individual axis: a High Confidence cohort can still carry a null average on a pillar nobody measured.

Competitors themselves are not scored here. Read them through GET /competitors, whose assetFreshness measures something else entirely — crawl assets, roughly a day — and not the audit freshness competitorPosture is built on. Two different clocks.

GET/v1/projects/{projectId}/audits/overview

Authorization

agent-token
AuthorizationBearer <token>

An agent project token. Obtained by OAuth consent for an AI client, or derived per project from an organisation service key for a machine. A scoped API key authenticates the transport but opens no capability: a capability takes its project from the credential.

In: header

Path Parameters

projectId*string

The project this call is about. A routing hint, not an authorisation. The project comes from the credential; this segment exists so multi-project code stays uniform. If it names a project outside the token, the call is refused with routing_hint_mismatch — it is never used to widen access.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://app.digitalyser.io/api/v1/projects/550e8400-e29b-41d4-a716-446655440000/audits/overview" \  -H "Authorization: Bearer <token>"
{  "schemaVersion": "2",  "meta": {    "generatedAt": "2026-09-24T06:12:03.000Z",    "period": "2026-08-25/2026-09-24",    "trendWindow": "30d"  },  "project": {    "id": "8f14e45f-ea0e-4b1e-9b7a-2c3d4e5f6071",    "brandName": "Acme Corporation",    "websiteUrl": "https://www.acme.example"  },  "kpis": {    "brandPresenceScore": {      "value": 72,      "unit": "points",      "label": "Brand presence",      "dimensions": [        {          "key": "coverage",          "value": 74        }      ],      "trend": {        "delta": 3.4,        "unit": "points",        "period": "30d"      }    },    "globalScore": {      "value": 68,      "unit": "points",      "trend": {        "delta": 2.1,        "unit": "points",        "period": "30d"      }    },    "compositeActionScore": {      "value": 61,      "unit": "points",      "rationale": "Twelve of the thirty-one tasks are done, including two of the three rated critical."    },    "openTasks": {      "total": 31,      "done": 12,      "open": 19,      "trend": {        "delta": -4,        "unit": "tasks",        "period": "30d"      }    },    "potentialGrowthPct": {      "value": 24,      "unit": "%",      "cappedAt": 40,      "rationale": "Closing the nineteen open tasks would lift coverage on four of the six pillars."    }  },  "scoreEvolution": [    {}  ],  "radar": {    "normalized": true,    "max": 100,    "axes": [      {        "key": "content",        "label": "Content",        "you": 64,        "sectorAvg": 58,        "competitorAvg": 61,        "competitorAvgReason": "no-competitor-measured-this-pillar"      }    ],    "competitorSampleSize": 4,    "competitorCoverage": "complete",    "competitorPosture": "High Confidence"  },  "moduleScores": [    {      "moduleId": "content-audit",      "moduleName": "Content",      "score": 58,      "status": "completed",      "readinessState": "completed",      "freshnessState": "current",      "scoreAvailabilityState": "available",      "entitlement": {        "requiredPlan": "growth"      },      "scoreSuppressionReason": "Only 8 of 40 pages could be measured.",      "completedAt": "2026-09-24T06:04:22.000Z",      "tasks": {        "total": 9,        "done": 4,        "open": 5      }    }  ],  "pillars": [    {}  ],  "entitlement": {    "requiredPlan": "growth"  },  "coherenceFlags": [    {      "type": "score_gap",      "severity": "warning",      "modules": [        "content-audit",        "analytics-audit"      ],      "message": "Content and analytics disagree on the number of indexed pages by more than 20%."    }  ],  "readinessState": "completed",  "freshnessState": "current",  "scoreAvailabilityState": "available",  "staleFallbackExpiresAt": "2026-09-27T06:12:03.000Z",  "scoreSuppressionReason": "Content coverage below the scoring threshold: 8 of 40 pages measured.",  "blockingComponents": [    {      "componentKey": "content-audit.crawl",      "readinessState": "failed",      "freshnessState": "unavailable",      "scoreAvailabilityState": "unavailable",      "blocking": true,      "retryable": true,      "retryCount": 2,      "startedAt": "2026-09-24T05:58:11.000Z",      "completedAt": "2026-09-24T06:01:47.000Z",      "lastErrorCode": "crawl_blocked_by_robots",      "lastErrorMessage": "robots.txt disallows the crawler on 31 of 40 pages."    }  ]}

Generated from the capability registry — API version 1, 18 paths, from 4815355 (2026-10-12).

Was this page helpful?