Most agencies have a SEMrush seat for every strategist and almost no SEMrush data inside the systems where work actually gets assigned. Rankings live in one tab, the Site Audit lives in another, and the sprint board is populated by whatever someone remembered on Monday morning. The gap between "we can see the problem" and "someone is working the problem" is where retainer value quietly leaks out.
This is a guide to closing that gap. Specifically: how to use SEMrush API integration — plus the cheaper, non-API routes — to get ranking, audit and backlink signals into daily workflows without building a data engineering department.
Why SEMrush data dies in dashboards
A dashboard answers "what happened." A workflow answers "who is doing what about it, by when." Almost every agency over-invests in the first and under-invests in the second.
The symptom is familiar. You build a beautiful Looker Studio report with position tracking, visibility index and a Site Audit health score. It updates daily. Nobody opens it between reporting cycles. Three weeks later a client asks why their category page dropped from position 4 to 11, and the answer was sitting in the dashboard the whole time.
The fix isn't a better dashboard. It's routing a small number of high-signal events into the place your team already looks — the task board — and leaving everything else in reporting. That distinction is worth being strict about, because the temptation to pipe everything in is what makes these integrations fail.
What SEMrush data actually belongs in daily work
Sort SEMrush outputs into three tiers before you write a line of code.
Tier 1: Event data that should create a task
- A tracked keyword above your traffic floor drops more than 5 positions and stays down across two consecutive pulls
- Site Audit surfaces new 5xx errors, a new noindex on an indexable template, or broken internal links on money pages
- A referring domain with DR/AS above your threshold is lost
- A page that was ranking top 10 falls out of the index entirely
Tier 2: Cadence data that should populate a recurring review
- Weekly visibility change per project
- Site Audit health score trend and new issue counts by severity
- Competitor movement on your priority keyword set
Tier 3: Reporting data that belongs in the client deck only
- Estimated traffic value, keyword distribution charts, backlink growth curves
Tier 1 goes into tasks. Tier 2 goes into a standing agenda item. Tier 3 stays in the reporting layer. If you skip this triage, you end up with a Slack channel that everyone mutes in week two.
Three ways to get the data out
1. Scheduled exports and the Looker Studio connector
Cheapest and most underrated. Position Tracking and Site Audit both support scheduled PDF/CSV email reports, and SEMrush maintains a Looker Studio connector that pulls Domain Analytics and project data without consuming API units in the same way custom calls do.
This route is fine for Tier 2 and Tier 3. Its hard limit: it's read-only and passive. It can show you a drop; it can't create a task about the drop.
2. The Standard API
At the time of writing, API access ships with Business plans (around $500/month) and is available to Guru users as a paid add-on. Calls are metered in API units purchased on top of your subscription, and the cost varies sharply by endpoint — roughly 10 units per line for organic keyword and domain reports, and around 40 units per line for backlink data.
That pricing shapes design decisions more than anything else. Pulling the top 100 organic keywords for 40 client domains once a week is a few tens of thousands of units — trivial. Pulling full backlink profiles for the same 40 domains daily will vaporise your balance in a fortnight. Pull frequency should match how fast the underlying data actually changes.
3. The Projects API
Separate from Domain Analytics, the Projects API covers Site Audit and Position Tracking data for domains you've set up as projects. This is the highest-value endpoint set for agency workflows, because it's scoped to accounts you own and it returns the exact issue-level detail you want to turn into tickets: URL, issue type, severity, first seen date.
A working pipeline you can build in a day
You don't need Airflow. A version that runs reliably for a 20-client agency looks like this:
- Google Sheet as the config file. One row per client: domain, project ID, keyword traffic floor, position-drop threshold, task owner, priority label. Non-technical account managers can edit it, which matters more than elegance.
- Apps Script or a small Python job on a scheduler. Runs Monday 06:00 and Thursday 06:00. Hits Position Tracking and Site Audit endpoints for each active project.
- A state table. Store last run's results. Diffing is the whole game — you only want changes, not the full dataset. This is also how you enforce the "persists across two pulls" rule that kills most false positives.
- A task-creation step. Post to your PM tool's API with a templated title ("Rankings: /commercial-cleaning-london dropped 4→12, 880 vol"), the evidence in the description, the owner from config, and a due date of +3 business days.
- A digest. Everything below task threshold goes into one weekly summary message per account, not individual pings.
Two implementation notes from experience. First, deduplicate aggressively — Site Audit will re-report the same broken link every crawl, so key your tasks on a hash of issue type plus URL and skip anything already open. Second, close the loop: when a task is marked done, write the completion date back to your state table so you can measure fix latency. Time-to-fix on technical issues is one of the few genuinely useful internal SEO KPIs, and almost nobody tracks it.
Where these integrations break
Alert fatigue. A 3-position wobble on a keyword with 20 monthly searches is not an event. Set a traffic floor — we'd suggest ignoring anything under 100 monthly volume unless it's explicitly a client priority term — and require persistence before firing.
No owner. An auto-created task assigned to "the team" is an auto-created task nobody does. Assign to a human in the config file, per client.
Tool sprawl. If the tasks land in a board that isn't where delivery actually happens, you've just built a fourth place to look. The whole point is consolidation — the same argument applies here as to consolidating PM, time tracking and reporting rather than stitching four subscriptions together.
Data with no context. A ranking drop is only actionable if the person seeing it knows what shipped last week. That's why the audit trail matters: deploy notes, content updates and

Nick Quirk

