ClaudeClaude
CursorCursor
ChatGPTChatGPT

Any MCP client

MCP
RankParse
get_backlinksget_domain_authorityget_tech_stack+ 15 more tools
8 min read·September 15, 2026

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:

  1. 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.)
  2. Apply filters first. The export contains what the filtered table shows, so filters are how you spend row limits on rows you want.
  3. Click the Export button at the top right of the table.
  4. 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.

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

SituationUse
One-off table under your plan's row capUI export (Option 1)
Keyword/competitive data in a pipeline, Advanced plan in placeAPI v3/v4 (Option 2)
Recurring link-data exports, cost mattersPay-per-call (Option 3)
No Semrush subscriptionOption 3, or the free backlink checker for one-offs

FAQ

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