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 hit api.semrush.com (CSV responses, semicolon separators); the two .Trends traffic actions hit api.semrush.com/analytics/ta/api/v3/ (JSON responses).
Categories : Marketing & Advertising · Data & Analytics · Analytics · Marketing · Research · Auth : API Key · Actions : 19
Authentication
API Key Authentication
Authenticate using your SEMrush API key
Required Credentials
Field Description Required Format SEMrush API Key Your SEMrush API key for authentication Yes xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Available Actions
domain_overview — Get domain overview data including organic/paid search traffic, keywords, and rankings
Parameters Regional database (Default: us)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"records" : {
"items" : {
"additionalProperties" : {
"type" : "string"
},
"type" : "object"
},
"title" : "Records" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "DomainOverviewOutput" ,
"type" : "object"
}
domain_organic_keywords — Get organic keywords for a domain with position, volume, and traffic data
Parameters Regional database (e.g. ‘us’, ‘uk’, ‘ca’, ‘de’, ‘fr’) (Default: us)
Maximum number of records to return (Default: 10)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"records" : {
"items" : {
"additionalProperties" : {
"type" : "string"
},
"type" : "object"
},
"title" : "Records" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "DomainOrganicKeywordsOutput" ,
"type" : "object"
}
domain_paid_keywords — Get paid keywords for a domain with ad position and CPC data
Parameters Regional database (e.g. ‘us’, ‘uk’, ‘ca’, ‘de’, ‘fr’) (Default: us)
Maximum number of records to return (Default: 10)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"records" : {
"items" : {
"additionalProperties" : {
"type" : "string"
},
"type" : "object"
},
"title" : "Records" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "DomainPaidKeywordsOutput" ,
"type" : "object"
}
competitors — Get organic-search competitors for a domain
Parameters Regional database (e.g. ‘us’, ‘uk’, ‘ca’, ‘de’, ‘fr’) (Default: us)
Maximum number of records to return (Default: 10)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"records" : {
"items" : {
"additionalProperties" : {
"type" : "string"
},
"type" : "object"
},
"title" : "Records" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "CompetitorsOutput" ,
"type" : "object"
}
backlinks — Get backlinks for a domain or URL with source details and authority scores
Parameters Maximum backlinks to return (Default: 10)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"records" : {
"items" : {
"additionalProperties" : {
"type" : "string"
},
"type" : "object"
},
"title" : "Records" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "BacklinksOutput" ,
"type" : "object"
}
backlinks_domains — Get referring domains for a domain or URL
Parameters Maximum referring domains to return (Default: 10)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"records" : {
"items" : {
"additionalProperties" : {
"type" : "string"
},
"type" : "object"
},
"title" : "Records" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "BacklinksDomainsOutput" ,
"type" : "object"
}
keyword_overview — Get overview data for a keyword including volume, CPC, and competition
Parameters Database to use (Default: us)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"records" : {
"items" : {
"additionalProperties" : {
"type" : "string"
},
"type" : "object"
},
"title" : "Records" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "KeywordOverviewOutput" ,
"type" : "object"
}
keyword_overview_single_db — Get detailed keyword overview from a specific database with difficulty score
Parameters Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"records" : {
"items" : {
"additionalProperties" : {
"type" : "string"
},
"type" : "object"
},
"title" : "Records" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "KeywordOverviewSingleDbOutput" ,
"type" : "object"
}
batch_keyword_overview — Analyze up to 100 keywords at once in a specific database
Parameters Array of keywords (max 100)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"records" : {
"items" : {
"additionalProperties" : {
"type" : "string"
},
"type" : "object"
},
"title" : "Records" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "BatchKeywordOverviewOutput" ,
"type" : "object"
}
related_keywords — Get semantically related keywords for a keyword
keyword_organic_results — Get domains ranking in Google's top 100 for a keyword
Parameters Maximum number of results (Default: 10)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"records" : {
"items" : {
"additionalProperties" : {
"type" : "string"
},
"type" : "object"
},
"title" : "Records" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "KeywordOrganicResultsOutput" ,
"type" : "object"
}
keyword_paid_results — Get domains in Google's paid search results for a keyword
Parameters Maximum number of results (Default: 10)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"records" : {
"items" : {
"additionalProperties" : {
"type" : "string"
},
"type" : "object"
},
"title" : "Records" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "KeywordPaidResultsOutput" ,
"type" : "object"
}
keyword_ads_history — Get domains that bid on a keyword in the last 12 months
Parameters Maximum number of results (Default: 10)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"records" : {
"items" : {
"additionalProperties" : {
"type" : "string"
},
"type" : "object"
},
"title" : "Records" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "KeywordAdsHistoryOutput" ,
"type" : "object"
}
broad_match_keywords — Get broad matches and alternate search queries for a keyword
Parameters Maximum number of results (Default: 10)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"records" : {
"items" : {
"additionalProperties" : {
"type" : "string"
},
"type" : "object"
},
"title" : "Records" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "BroadMatchKeywordsOutput" ,
"type" : "object"
}
phrase_questions — Get question-based keywords related to a term
keyword_difficulty — Get difficulty index (0-100) for ranking in Google's top 10
Parameters Array of keywords (max 100)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"records" : {
"items" : {
"additionalProperties" : {
"type" : "string"
},
"type" : "object"
},
"title" : "Records" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "KeywordDifficultyOutput" ,
"type" : "object"
}
traffic_summary — Get traffic summary data for domains (requires .Trends API access)
Parameters Array of domains to analyze
Country code (Default: us)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"data" : {
"default" : null ,
"title" : "Data"
}
},
"required" : [
"success"
],
"title" : "TrafficSummaryOutput" ,
"type" : "object"
}
traffic_sources — Get traffic sources breakdown for a domain (requires .Trends API access)
Parameters Country code (Default: us)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"data" : {
"default" : null ,
"title" : "Data"
}
},
"required" : [
"success"
],
"title" : "TrafficSourcesOutput" ,
"type" : "object"
}
api_units_balance — Check the remaining API units balance in your SEMrush account
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"units" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Units"
}
},
"required" : [
"success"
],
"title" : "ApiUnitsBalanceOutput" ,
"type" : "object"
}
Limits & Quotas
SEMrush’s main https://api.semrush.com/ endpoint returns
semicolon-separated CSV with a header row. The shared _call_csv
helper parses it into records: list[dict[str, str]].
The two .Trends actions (traffic_summary / traffic_sources)
return JSON (or text fallback) — surfaced verbatim on data.
batch_keyword_overview and keyword_difficulty are 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 to success=False.
Each action carries an API-units cost (10-100 per record);
consult SEMrush’s docs.
Links