Overview
Add SEMrush to any ModuleX agent or workflow. SEO analytics integration: domain overview/keywords/competitors, backlinks, keyword research, traffic analytics, API-units balance. All 17 SEO actions hitapi.semrush.com (CSV responses, semicolon separators); the two .Trends traffic actions hit api.semrush.com/analytics/ta/api/v3/ (JSON responses).
Authentication
API Key Authentication
Authenticate using your SEMrush API keyRequired Credentials
Available Actions
domain_overview — Get domain overview data including organic/paid search traffic, keywords, and rankings
domain_overview — Get domain overview data including organic/paid search traffic, keywords, and rankings
domain_organic_keywords — Get organic keywords for a domain with position, volume, and traffic data
domain_organic_keywords — Get organic keywords for a domain with position, volume, and traffic data
domain_paid_keywords — Get paid keywords for a domain with ad position and CPC data
domain_paid_keywords — Get paid keywords for a domain with ad position and CPC data
competitors — Get organic-search competitors for a domain
competitors — Get organic-search competitors for a domain
backlinks_domains — Get referring domains for a domain or URL
backlinks_domains — Get referring domains for a domain or URL
keyword_overview — Get overview data for a keyword including volume, CPC, and competition
keyword_overview — Get overview data for a keyword including volume, CPC, and competition
keyword_overview_single_db — Get detailed keyword overview from a specific database with difficulty score
keyword_overview_single_db — Get detailed keyword overview from a specific database with difficulty score
batch_keyword_overview — Analyze up to 100 keywords at once in a specific database
batch_keyword_overview — Analyze up to 100 keywords at once in a specific database
keyword_organic_results — Get domains ranking in Google's top 100 for a keyword
keyword_organic_results — Get domains ranking in Google's top 100 for a keyword
keyword_paid_results — Get domains in Google's paid search results for a keyword
keyword_paid_results — Get domains in Google's paid search results for a keyword
keyword_ads_history — Get domains that bid on a keyword in the last 12 months
keyword_ads_history — Get domains that bid on a keyword in the last 12 months
broad_match_keywords — Get broad matches and alternate search queries for a keyword
broad_match_keywords — Get broad matches and alternate search queries for a keyword
keyword_difficulty — Get difficulty index (0-100) for ranking in Google's top 10
keyword_difficulty — Get difficulty index (0-100) for ranking in Google's top 10
traffic_summary — Get traffic summary data for domains (requires .Trends API access)
traffic_summary — Get traffic summary data for domains (requires .Trends API access)
traffic_sources — Get traffic sources breakdown for a domain (requires .Trends API access)
traffic_sources — Get traffic sources breakdown for a domain (requires .Trends API access)
api_units_balance — Check the remaining API units balance in your SEMrush account
api_units_balance — Check the remaining API units balance in your SEMrush account
Response
Limits & Quotas
- SEMrush’s main
https://api.semrush.com/endpoint returns semicolon-separated CSV with a header row. The shared_call_csvhelper parses it intorecords: list[dict[str, str]]. - The two
.Trendsactions (traffic_summary/traffic_sources) return JSON (or text fallback) — surfaced verbatim ondata. batch_keyword_overviewandkeyword_difficultyare capped at 100 keywords per call (SEMrush’s limit).- API errors come back as HTTP 200 with
ERROR ...body text — the helper detects this and converts tosuccess=False. - Each action carries an API-units cost (10-100 per record); consult SEMrush’s docs.