Oncrawl KPI Reader

The Oncrawl KPI Reader node reads a fixed set of validated crawl KPIs from one or several completed Oncrawl crawls, ready for analysis or reporting.

What does the Oncrawl KPI Reader node do?

The Oncrawl KPI Reader reads a fixed set of crawl health indicators from one or several completed Oncrawl crawls, and returns them in a shape that drops straight into an LLM prompt, a template or an email.

It asks you for no query. The KPI list is fixed, the aggregations are built for you, and each requested KPI is checked against the crawl’s own schema first. That last point is what makes the output trustworthy: a KPI the crawl cannot produce is reported in unavailable_metrics with a reason, never returned as 0. In a report, a zero and an absence mean very different things, and conflating them is how a crawl problem gets read as a traffic problem.

For anything outside this KPI list — a filtered page list, a custom distribution, an export — use the Oncrawl Data Reader, which accepts an arbitrary OQL query.

Common use cases:

  • Sending a recurring crawl health summary by email.
  • Tracking total, fetched and indexable page counts over time.
  • Comparing the same KPIs across the two most recent crawls in a single run.
  • Getting a status code distribution without writing an aggregation.
  • Triggering an alert when a KPI crosses a threshold.

Quick setup

Connect your Oncrawl account

In the Draft & Goal sidebar, open Integrations and connect your Oncrawl API token. It needs the projects:read scope and a subscription that includes the API option.

Add the node to the canvas

Open the Node Library, go to Integrations > SEO Tools > Oncrawl, then drag the Oncrawl KPI Reader node onto your workspace.

Pick the project and the crawls

Select the project, then either choose specific crawls or switch to Always use the latest crawls and set how many recent crawls to read.

Select the KPIs

Tick the indicators you want. Keep the list short when the output feeds an LLM.

Connect the output

Connect the KPI report output to an LLM, a Merge With Template or an Email Sender.

Available KPIs

KPIWhat it measures
Total pagesPages known in the crawl
Fetched pagesPages the crawler actually retrieved
Indexable pagesPages considered indexable
Average InrankAverage internal popularity score
Average load timeAverage page load time
Status code distributionPage count per HTTP status code

Configuration parameters

Required fields

Oncrawl integration integration required

Integration — The connected Oncrawl account whose token authenticates the call.

Project string

Project — The Oncrawl project the crawls belong to. Required unless an Oncrawl Crawl Resolver is connected to the Crawl ID input: the field is then hidden, and the crawls the resolver sends are read whatever project they belong to.

Crawl selection string required default: specific

Selection mode — Choose specific crawls pins the crawls. Always use the latest crawls resolves the most recent completed crawls at run time, which is what a scheduled workflow wants.

KPIs array required

KPIs — The indicators to compute. Only metadata-validated KPIs are available.

Optional fields

Crawl ID string

Crawl ID (input) — An input anchor, not a field. Connect an Oncrawl Crawl Resolver to it and the node reads the crawl that resolver picked, overriding Crawls and the selection mode. Leave it unconnected to use the parameters below.

Crawls array

Crawls — The crawls to read. Required in Choose specific crawls mode. Only completed crawls are listed.

Number of latest crawls number default: 1

Latest crawl count — How many recent completed crawls to read. Set 2 to compare the newest crawl with the one before it.

Output

kpi_report string

A JSON payload with a crawls list, one entry per crawl read, each carrying its provenance, metrics, distributions and any unavailable KPIs. The shape is the same whether the node reads one crawl or several, so a prompt or a template can always read crawls[0].

{
  "selection": { "mode": "latest", "count": 1 },
  "crawls": [
    {
      "provenance": {
        "project_id": "p1",
        "crawl_id": "abc123",
        "crawl_ended_at": 1720003600000,
        "retrieved_at": "2026-10-20T14:00:00+00:00",
        "source": "Oncrawl API v2"
      },
      "metrics": {
        "total_pages": 12000,
        "fetched_pages": 11800,
        "avg_inrank": 4.5
      },
      "distributions": {
        "status_code": { "200": 11000, "404": 800 }
      },
      "unavailable_metrics": [],
      "raw_metadata": { "fields": [] }
    }
  ]
}

Troubleshooting

A KPI appears in unavailable_metrics instead of in metrics

Cause: The crawl’s schema does not expose the field that KPI needs — usually because the crawl configuration did not collect it.

Solution: The entry states which KPI and why. Either enable the corresponding data collection in the Oncrawl crawl settings, or drop that KPI from the selection.

Oncrawl crawl is not completed

Cause: The selected crawl is still running or failed.

Solution: Wait for it to finish, or switch to Always use the latest crawls, which only ever reads completed crawls.

Oncrawl rejected the token as unauthenticated (401)

Cause: The token is wrong or revoked. A valid token that is not allowed the action answers 403 instead.

Solution: Create a new token under Settings > Tokens in Oncrawl and reconnect the integration.

Oncrawl refused the request (403)

Cause: Oncrawl recognised the token but refused the action. The message names the reason Oncrawl gave:

  • quota_error — the account’s quota does not allow the request.
  • no_active_subscription — the account has no active subscription.
  • feature_not_available — the plan does not include this feature, for example the API option.
  • otherwise — the token lacks the projects:read scope, or access to this project.

Solution: Free up or raise the quota, renew the subscription or the plan, or regenerate the token with the projects:read scope on an account that can see the project.

Oncrawl rate limit exceeded (429)

Cause: Oncrawl answered 429 to three attempts in a row. The node retries a 429 or a 5xx error twice, a few seconds apart, before giving up. Oncrawl does not publish its rate limit.

Solution: Re-run later, and avoid starting several workflows that read Oncrawl at the same moment.

Best practices and pitfalls

Tip

Use Always use the latest crawls in any scheduled workflow. A pinned crawl id keeps reporting the same numbers forever, which looks like a stable site rather than a stale configuration.

Warning

Check unavailable_metrics in the consuming node or prompt. A KPI that silently went missing is the one case where the report reads as normal while being incomplete.

How does it fit into a workflow?

graph LR
    Resolver[Oncrawl Crawl Resolver] --> KPI[Oncrawl KPI Reader]
    KPI --> LLM[LLM<br/>summarise crawl health]
    LLM --> Email[Email Sender]