Semrush SEO integration with API key authentication. Analyze backlinks, keyword rankings, competitor domains, traffic metrics, and SEO data across organic and paid search channels.

Install

openclaw skills install semrush-seo

Semrush

Access Semrush's SEO and digital marketing analytics platform to analyze backlinks, keyword rankings, competitor domains, traffic metrics, and search performance data across organic and paid search channels.

This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure Semrush API access yourself.

Setup in 3 Steps

Step 1: InstallStep 2: Pair AccountStep 3: Connect Semrush
InstallPairApp-specific connection GIF coming soon
Run the install command in OpenClawSign in and approve the deviceOpen the dashboard and connect Semrush

How It Works

┌─────────────────┐     ┌──────────────┐     ┌──────────────────┐
│   OpenClaw      │────▶│   ClawLink   │────▶│   Semrush API    │
│   (User Chat)   │     │   (Proxy)    │     │  (SEO Analytics) │
│                 │     │              │     │                  │
└─────────────────┘     └──────────────┘     └──────────────────┘
         │                    │                      │
         │  1. Install Plugin │                      │
         │  2. Pair Device    │                      │
         │  3. Connect Semrush │                      │
         │                    │  4. API Key Proxy    │
         │                    │  5. Request Forward   │
         │                    │                      │
         ▼                    ▼                      ▼
   ┌──────────┐        ┌──────────┐         ┌──────────┐
   │   SKILL  │        │ Dashboard│         │  Semrush │
   │   File   │        │   Auth   │         │  Cloud   │
   └──────────┘        └──────────┘         └──────────┘

Install

Install the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.

openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart

Then tell the user: "OpenClaw has been restarted. Send /new as a standalone message to start a fresh chat, then ask for Semrush again."

Quick Start

# Check account API units balance
clawlink_call_tool --tool "semrush_account_units_balance"

# Get keyword overview for a phrase
clawlink_call_tool --tool "semrush_keyword_overview_one_database" --params '{"phrase": "content marketing", "database": "us"}'

# Get backlinks overview for a domain
clawlink_call_tool --tool "semrush_backlinks_overview" --params '{"target": "example.com"}'

Authentication

All Semrush tool calls are authenticated automatically by ClawLink using your Semrush API key stored securely in the dashboard.

No API key is required in chat. ClawLink injects your API key into every Semrush API request on your behalf.

Getting Connected

  1. Install the ClawLink plugin (see Install above).
  2. Pair the plugin with clawlink_begin_pairing if it is not configured yet.
  3. Open https://claw-link.dev/dashboard?add=semrush and connect Semrush with your API key.
  4. Call clawlink_list_integrations to verify the connection is active.

Connection Management

List Connections

clawlink_list_integrations

Response: Returns all connected integrations. Look for semrush in the list.

Verify Connection

clawlink_list_tools --integration semrush

Response: Returns the live tool catalog for Semrush.

Reconnect

If Semrush tools are missing or the connection shows an error:

  1. Direct the user to https://claw-link.dev/dashboard?add=semrush
  2. After they confirm, call clawlink_list_integrations to verify
  3. Then call clawlink_list_tools --integration semrush

Security & Permissions

  • Access is scoped to the Semrush account associated with the connected API key.
  • All operations are read-only — Semrush tools do not modify any data in your Semrush account.
  • API units are consumed per request — monitor semrush_account_units_balance before launching large batches.
  • Responses are CSV-like strings (not JSON) — parse with delimiter-aware splitting before structured use.

Tool Reference

Account & Billing

ToolDescriptionMode
semrush_account_units_balanceFetch remaining Semrush Standard API units for the authenticated accountRead

Keyword Research

ToolDescriptionMode
semrush_batch_keyword_overviewFetch keyword overview reports for up to 100 keywords (volume, CPC, difficulty)Read
semrush_broad_match_keywordFetch broad match keywords for a given phraseRead
semrush_keyword_difficultyDetermine Keyword Difficulty (KD) score for a phrase (0-100)Read
semrush_keyword_overview_all_databasesFetch keyword overview across all Semrush regional databasesRead
semrush_keyword_overview_one_databaseFetch keyword summary for a phrase from a specific regional databaseRead
semrush_keywords_ads_historyFetch 12-month historical ad data for a keyword (domains advertising on it)Read
semrush_organic_resultsRetrieve domains and URLs from Google's top 100 organic results for a keywordRead
semrush_paid_resultsFetch domains ranking in Google's paid search results for a keywordRead
semrush_phrase_questionsFetch question-format keywords semantically related to a query phraseRead
semrush_related_keywordsFind related keywords (synonyms, variations) for a target phraseRead

Backlink Analysis

ToolDescriptionMode
semrush_anchorsGet CSV report of anchor texts for backlinks pointing to a target domain/URLRead
semrush_authority_score_profileGet Authority Score (AS) distribution for a target (referring domains per AS 0-100)Read
semrush_backlinksFetch backlinks for a domain or URL as semicolon-delimited CSVRead
semrush_backlinks_overviewGet CSV summary of backlinks including Authority Score and link type breakdownsRead
semrush_categoriesRetrieve content categories and confidence ratings for a domainRead
semrush_categories_profileGet content categories profile from referring domains (top 10,000)Read
semrush_historical_dataRetrieve monthly historical backlink and referring domain time seriesRead
semrush_indexed_pagesGet list of indexed pages for a target from SemrushRead
semrush_referring_domainsGet semicolon-delimited report of domains linking to a targetRead
semrush_referring_domains_by_countryGet geographic distribution of referring domains by countryRead
semrush_referring_i_psFetch IP addresses that are sources of backlinks for a targetRead
semrush_tld_distributionGet Top-Level Domain (TLD) distribution of referring domainsRead

Domain & Competitor Analysis

ToolDescriptionMode
semrush_ads_copiesGet unique ad copies observed for a domain in Google's paid search resultsRead
semrush_batch_comparisonCompare backlink profiles across multiple targetsRead
semrush_competitorsGet CSV report of organic search competitors (shared backlinks or referring domains)Read
semrush_competitors_in_organic_searchGet domain's organic search competitors from SemrushRead
semrush_competitors_in_paid_searchGet list of a domain's paid search competitors from a regional databaseRead
semrush_domain_ad_historyRetrieve 12-month advertising history for a domain (keywords, ad positions, copies)Read
semrush_domain_organic_pagesGet report on domain's unique organic pages ranking in Google's top 100Read
semrush_domain_organic_search_keywordsGet organic search keywords for a domain from a regional databaseRead
semrush_domain_organic_subdomainsGet subdomains of a domain ranking in Google's top 100 organic resultsRead
semrush_domain_paid_search_keywordsFetch keywords driving paid search traffic to a domainRead
semrush_domain_pla_search_keywordsRetrieve Product Listing Ad (PLA) search keywords for a domainRead
semrush_domain_vs_domainCompare up to 5 domains to find common, unique, or gap keywordsRead
semrush_pla_competitorsGet domains competing in Google's Product Listing Ads for a domainRead
semrush_pla_copiesFetch PLA copies observed for a domain in Google's paid search resultsRead

Code Examples

Check API units before a large batch

clawlink_call_tool --tool "semrush_account_units_balance"

Get keyword difficulty and overview

clawlink_call_tool --tool "semrush_keyword_difficulty" \
  --params '{"phrase": "digital marketing tools", "database": "us"}'

clawlink_call_tool --tool "semrush_keyword_overview_one_database" \
  --params '{"phrase": "content marketing strategy", "database": "us"}'

Analyze backlinks for a competitor

clawlink_call_tool --tool "semrush_backlinks_overview" \
  --params '{"target": "competitor.com"}'

clawlink_call_tool --tool "semrush_competitors" \
  --params '{"target": "competitor.com"}'

Get organic keywords for a domain

clawlink_call_tool --tool "semrush_domain_organic_search_keywords" \
  --params '{"target": "example.com", "database": "us"}'

Compare multiple domains

clawlink_call_tool --tool "semrush_domain_vs_domain" \
  --params '{"domains": "site1.com,site2.com,site3.com", "database": "us"}'

Discovery Workflow

  1. Call clawlink_list_integrations to confirm Semrush is connected.
  2. Call clawlink_list_tools --integration semrush to see the live catalog.
  3. Treat the returned list as the source of truth. Do not guess or assume what tools exist.
  4. If the user describes a capability but the exact tool is unclear, call clawlink_search_tools with a short query and integration semrush.
  5. If no Semrush tools appear, direct the user to https://claw-link.dev/dashboard?add=semrush.

Execution Workflow

┌─────────────────────────────────────────────────────────────┐
│  SEMRUSH OPERATIONS (All Read-Only)                         │
│  list → get → describe → call                                │
│                                                             │
│  Example: Check units → Get keyword overview → Parse results │
└─────────────────────────────────────────────────────────────┘
  1. For unfamiliar tools or ambiguous requests, call clawlink_describe_tool first.
  2. Use the returned guidance, schema, whenToUse, askBefore, safeDefaults, examples, and followups to shape the call.
  3. All Semrush tools are read-only — no confirmation is required for data retrieval.
  4. Parse CSV-formatted responses before structured use. Use sep=';' and cast numeric columns before aggregation.
  5. A response of ERROR 50 :: NOTHING FOUND is a valid zero-result — not a system error.
  6. If the tool call fails, report the real error. Do not invent results or restate the failure as a missing capability unless the live catalog supports that conclusion.

Notes

  • All Semrush tools are read-only — no write or destructive operations exist in this skill.
  • Responses are CSV-like text strings (not JSON) — parse by splitting on newlines and delimiters before extracting structured rows.
  • The literal response ERROR 50 :: NOTHING FOUND means zero results for that domain/keyword in the selected database — treat as a valid zero-result, not an error.
  • Traffic metrics (e.g., Tr) are modeled estimates — incompatible with first-party analytics data.
  • API units are consumed per request — preflight with semrush_account_units_balance before launching large batches.
  • display_date for historical data must be in 'YYYYMM15' format (day must be '15').
  • display_limit must surpass display_offset when pagination is used.

Error Handling

Status / ErrorMeaning
Tool not foundThe tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration semrush.
Missing connectionSemrush is not connected. Direct the user to https://claw-link.dev/dashboard?add=semrush.
ERROR 50 :: NOTHING FOUNDZero results for the target in the selected database — treat as a valid empty response.
Insufficient unitsAPI units exhausted — check semrush_account_units_balance and wait for replenishment.
Invalid databaseThe specified regional database is not supported. Check available databases in the tool schema.

Troubleshooting: Tools Not Visible

  1. Check that the ClawLink plugin is installed:
    openclaw plugins list
    
  2. If the plugin is installed but tools are missing, tell the user to send /new as a standalone message to reload the catalog.
  3. If a fresh chat does not help, run:
    openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
    openclaw gateway restart
    
  4. After restart, tell the user to send /new again and retry.

Troubleshooting: Parsing CSV Responses

  1. All Semrush responses are CSV-like strings — use delimiter splitting (semicolon ; for most tools) to parse rows.
  2. Cast numeric columns (backlinks_num, domain_ascore, etc.) before aggregation.
  3. Headers match export_columns codes (e.g., 'Ph', 'Nq', 'Kd') — parse headers into a structured table first.
  4. Use sep=';' when calling tools that support the display_separate parameter.

Resources

Related Skills


Powered by ClawLink — an integration hub for OpenClaw

ClawLink Logo