Ahrefs Domain History
The Ahrefs Domain History node reads how a domain's Domain Rating, referring domains and organic traffic moved over a date range, with the first-to-last change computed per metric.
What does the Ahrefs Domain History node do?
The Ahrefs Domain History node reads how a domain moved over a date range: its Domain Rating, its referring domains and its estimated organic traffic, one series per metric.
A snapshot says what a domain is worth today; only a series says whether that is good news. Ahrefs exposes three history endpoints — domain-rating-history, refdomains-history and metrics-history — all keyed by the same date range and grouping, and none of them joined. This node runs them together and adds a change block comparing the first point of each series to the last.
That comparison is computed server-side on purpose. It is the thing every report reads first, and getting it wrong is easy: a first point of zero has no meaningful percentage growth, and two series rarely have exactly the same number of points.
Common use cases:
- Measuring the effect of a link campaign over several months.
- Reporting a trend rather than a single figure.
- Detecting when a traffic drop or a backlink loss started.
- Comparing the growth rate of a site against a competitor.
- Feeding a chart with a ready-made series.
Quick setup
Connect your Ahrefs account
In the Draft & Goal sidebar, open Integrations and connect your Ahrefs API token.
Add the node to the canvas
Open the Node Library, go to Integrations > SEO Tools > Ahrefs, then drag the Ahrefs Domain History node onto your workspace.
Set the target and the range
Fill in Target and Start date. Leave End date empty to run up to today — which is what a scheduled workflow wants, since a pinned end date keeps reporting the same window forever.
Choose the grouping
Monthly is the default and the cheapest. Weekly and especially daily multiply the number of billed rows for the same trend.
Pick the series
Switch off any series you do not read. Each is a separately billed call.
Connect the outputs
Connect Change to an LLM or a Conditional Node for the deltas alone, or one of the series anchors to a chart or a sheet.
Configuration parameters
Required fields
Ahrefs integration integration required Integration — The connected Ahrefs account whose API token authenticates the call.
Target string required Target domain or URL — The site to read. The scheme and a trailing slash are removed on save, except a slash on a path under Exact URL or Prefix, where it is part of the request.
Scope enum required default: domain Target scope — domain, subdomains, prefix or exact.
Start date string required First point of the series — A YYYY-MM-DD date. Validated locally, so a malformed date fails the node before any billed call goes out.
Grouping enum required default: monthly Series granularity — One point per daily, weekly or monthly period. This is the main cost lever on the node.
Cache window enum required default: 24h Cache window — off, 1h, 6h, 24h, 7d or 30d.
Optional fields
End date string Last point of the series — A YYYY-MM-DD date. Empty means today.
Protocol enum default: both Protocol — http, https or both.
Country string Country — A lowercase ISO 3166-1 alpha-2 code scoping the traffic series only. Empty means worldwide.
Volume mode enum default: monthly Volume mode — Search volumes for the last month (monthly) or as a twelve-month average (average).
Domain Rating boolean default: true Read the Domain Rating series — One billed call.
Referring domains boolean default: true Read the referring-domains series — One billed call.
Organic traffic boolean default: true Read the traffic series — One billed call.
Traffic columns array Columns of the traffic series — org_traffic, org_cost, paid_traffic, paid_cost. Empty returns all of them. date is always added back: a series without its dates cannot be plotted, and it is the one column that costs nothing to carry.
Force refresh boolean default: false Ignore the cache — Skips the cached answer and calls Ahrefs. The fresh answer is still cached.
Grouping drives the bill. Ahrefs charges per returned row, so a daily series over a year is 365 rows per metric where a monthly one is 12 — roughly thirty times the cost for the same trend. Use daily only when the exact day a metric moved actually matters.
What does the node output?
Five anchors, so a node that wants the deltas does not receive three full series:
| Anchor | Contents |
|---|---|
| Change | First-to-last comparison per metric |
| Domain Rating history | The DR series |
| Referring domains history | The referring-domains series |
| Traffic history | The traffic series |
| History | The whole payload, including the cache report |
history string A JSON payload with one series per requested metric, the change block, the provenance and the cache report.
{
"target": "example.com",
"mode": "domain",
"date_from": "2026-01-01",
"date_to": "2026-10-21",
"history_grouping": "monthly",
"domain_rating_history": [
{ "date": "2026-01-01", "domain_rating": 71.2 },
{ "date": "2026-10-01", "domain_rating": 76.5 }
],
"refdomains_history": [
{ "date": "2026-01-01", "refdomains": 4210 },
{ "date": "2026-10-01", "refdomains": 5120 }
],
"traffic_history": [
{ "date": "2026-01-01", "org_traffic": 240100 },
{ "date": "2026-10-01", "org_traffic": 328400 }
],
"change": {
"domain_rating": {
"from": 71.2, "from_date": "2026-01-01",
"to": 76.5, "to_date": "2026-10-01",
"absolute": 5.3, "percent": 7.44
},
"refdomains": {
"from": 4210, "from_date": "2026-01-01",
"to": 5120, "to_date": "2026-10-01",
"absolute": 910, "percent": 21.62
},
"org_traffic": {
"from": 240100, "from_date": "2026-01-01",
"to": 328400, "to_date": "2026-10-01",
"absolute": 88300, "percent": 36.78
}
},
"retrieved_at": "2026-10-21T16:04:11Z",
"source": "Ahrefs API v3 (Site Explorer)",
"cache": { "hits": [], "misses": ["domain-rating-history"], "units_cost": 86 }
}
A metric whose series has fewer than two usable points is absent from the change block rather than reported as a zero change. No data and no movement are different answers, and a report that conflates them reads a missing series as a stable one. A first point of zero yields "percent": null, never an infinity.
The change block covers every traffic column the series carries, paid included (paid_traffic, paid_cost_cents) — a node that selected only the paid columns gets its deltas like any other.
Usage examples
Example 1: Twelve-month trend report
Workflow:
- Ahrefs Domain History with Start date
2026-01-01, Groupingmonthly, Cache window7d. - The History anchor feeds a Merge With Template node.
- The result is written to a Google Docs document.
Example 2: Campaign measurement
Workflow:
- Ahrefs Domain History over the campaign window, Grouping
weekly, Organic traffic switched off. - The Change anchor — four numbers rather than three full series — feeds an LLM asked to explain what moved.
Example 3: Traffic-drop alert
Workflow:
- Ahrefs Domain History with only Organic traffic on and Traffic columns limited to
org_traffic. One series, one column: the cheapest possible version of this node. - A Conditional Node tests the traffic change against a threshold.
- An Email Sender notifies the team when it is breached.
Example 4: Competitor growth comparison
Workflow:
- A Text node lists the competitors.
- A Loop Node feeds the Target input.
- Ahrefs Domain History returns each series.
- The Change anchor is appended to a Google Sheets tab, one row per competitor.
Common issues
`The Ahrefs start date must be a date in YYYY-MM-DD format`
Cause: The start or end date is empty, or written in another format.
Solution: Use 2026-01-01. Ahrefs would reject the value for free, but its message names the parameter and not the format, so the node checks it locally and names both.
`The Ahrefs start date is after the end date`
Cause: The range runs backwards, usually because an upstream node supplied the dates in the wrong order.
Solution: Swap them, or leave End date empty to run up to today.
A metric is missing from the change block
Cause: Its series has fewer than two usable points — a range too short for the chosen grouping, or a domain Ahrefs has little history on.
Solution: Widen the date range, or switch the grouping to weekly or daily so the range contains more than one point.
`The Ahrefs refdomains-history endpoint returns a fixed set of metrics and ignores a column selection`
Cause: Column selection applies to the traffic series only. The other two endpoints return a fixed shape.
Solution: Leave Traffic columns to the traffic series; there is nothing to narrow on the other two.
Best practices and pitfalls
Leave End date empty in any scheduled workflow. A pinned end date keeps reporting the same window forever, which looks like a flat site rather than a stale configuration.
Three cost levers, in order of effect: the grouping, the series you switch off, and the traffic columns. All three are multiplicative, and all three are in the settings panel next to your remaining unit balance.
How does it fit into a workflow?
graph LR
Date[Date<br/>campaign start] --> History[Ahrefs Domain History]
History -->|Change| LLM[LLM<br/>explain the movement]
History -->|Traffic history| Sheets[Google Sheets<br/>chart data]
LLM --> Docs[Google Docs<br/>report]