Any MCP client
How to Export Data from Semrush (Reports, API, and the PAYG Route)
Every way to get data out of Semrush in 2026: report exports and their per-plan row limits, the v3 and v4 APIs, and a pay-per-call path for link data.
Semrush is happy to show you data; getting it out is governed by three different meters: per-export row limits in the UI, daily export counts by plan, and — if you go programmatic — an API gated behind the $549/mo Advanced plan plus separately purchased units. Here's how each path works in 2026, and when to sidestep the meters entirely.
A verification note up front: the UI steps below match Semrush's own knowledge base and current walkthroughs, but Semrush ships UI changes constantly and we couldn't re-verify every dialog at time of writing. The flow's shape is stable even where a label isn't.
Option 1: Export from a Semrush report
Nearly every report table in Semrush exports the same way:
- Open the tool — for backlinks, that's Backlink Analytics → enter the domain → the Backlinks tab. (The same pattern applies to Organic Research, Keyword Gap, Domain Overview, and the rest.)
- Apply filters first. The export contains what the filtered table shows, so filters are how you spend row limits on rows you want.
- Click the Export button at the top right of the table.
- Pick a format — CSV or Excel everywhere; some reports also offer PDF or Google Sheets.
The meters:
- Rows per export are plan-capped. Semrush's KB and current guides put typical caps around 10,000 rows on Pro, 30,000 on Guru, and 50,000 on Business per export (free accounts get a token handful). Exact caps vary by tool — Domain Overview and Keyword Gap have their own tiers — so check the KB page for your specific report.
- Daily export counts are also plan-dependent.
- Need more than the cap? The supported answers are: segment with filters and export in chunks, contact Semrush for a custom export, or use the API.
Option 2: The Semrush API (v3 and v4)
Programmatic export requires API access — which means the Advanced plan ($549/mo) plus API units bought separately in 2M–20M packages at contact-sales prices. If you're evaluating that, read the Semrush API review first; the short version is that the plan includes zero units.
Two API generations coexist. The classic v3 report style:
# v3: query-string reports, key as a parameter
curl "https://api.semrush.com/?type=backlinks&key=YOUR_KEY&target=example.com&target_type=root_domain&display_limit=1000"And the newer v4 style, with header auth and field selection:
# v4: REST resources, Authorization header
curl -H "Authorization: Apikey YOUR_KEY" \
"https://api.semrush.com/apis/v4/backlinks/v1/links?url=example.com&scope=ROOT_DOMAIN&fields=anchor,domain_score,page_score&limit=1000"Mind the meter here too: the backlinks report costs 40 units per row, so a 1,000-row pull is 40,000 units (~$2 at third-party unit-price estimates) — on top of the subscription. Keyword and domain reports have their own per-line rates.
This path makes sense when you need Semrush's keyword and competitive data programmatically and you're already inside the plan.
Option 3: Pull link data pay-per-call instead
If the data you keep exporting is backlinks, referring domains, anchors, or authority scores, you can skip both meters. RankParse serves that slice as flat-priced API calls — 2 credits (about $0.02) for up to 1,000 backlink rows, 1 credit for domain authority — with no subscription, no export-row accounting, and 100 free credits with no card:
import csv
import os
from rankparse import RankParseClient
with RankParseClient(api_key=os.environ["RANKPARSE_API_KEY"]) as client:
result = client.backlinks("example.com", limit=1000)
rows = result["data"] # 2 credits, up to 1,000 rows
with open("backlinks.csv", "w", newline="") as f:
writer = csv.DictWriter(f, fieldnames=rows[0].keys())
writer.writeheader()
writer.writerows(rows)Scope honesty: this replaces the link-data exports only. RankParse has no keyword database, position tracking, or traffic analytics — for those, Semrush's own export (or DataForSEO's PAYG API) remains the right tool, and the head-to-head is here: RankParse vs Semrush. Also note the freshness tradeoff: RankParse's index rebuilds quarterly from open web data, so it won't show a link from last week.
Which option when
| Situation | Use |
|---|---|
| One-off table under your plan's row cap | UI export (Option 1) |
| Keyword/competitive data in a pipeline, Advanced plan in place | API v3/v4 (Option 2) |
| Recurring link-data exports, cost matters | Pay-per-call (Option 3) |
| No Semrush subscription | Option 3, or the free backlink checker for one-offs |
FAQ
How do I export a backlinks list from Semrush?
Backlink Analytics → enter the domain → Backlinks tab → apply filters → Export (top right) → CSV or Excel. The file reflects the filtered table, capped by your plan's per-export row limit.
What are Semrush's export limits?
They're per-plan and per-tool: current guides show roughly 10K rows per export on Pro, 30K on Guru, and 50K on Business for most reports, plus plan-dependent daily export counts. Check Semrush's KB for the tool you're using.
Can I export more rows than my plan allows?
Segment the data with filters and export in chunks, contact Semrush about a custom export, or move that workload to an API — Semrush's own (subscription + units) or a pay-per-call source for link data.
Does exporting from Semrush use API units?
No — UI exports and API units are separate meters. UI exports draw on per-export row caps and daily limits; API calls draw on purchased units (e.g. 40 units per backlink row).
How do I do the same thing in Ahrefs?
Covered in the companion guide: how to export backlinks from Ahrefs. For the pricing context behind both, see Semrush API pricing and alternatives.
Skip the export meters for link data: get a free RankParse API key — 100 credits, no card, flat published prices.
Start with 100 free credits
No subscription. No card. $0.009 per call after that, and credits never expire.
Get your free API key