semrush-research

SEO and competitive intelligence via the SemRush API. Use when asked to research competitors, analyze domains, find keyword opportunities, check backlinks, or estimate traffic. Trigger phrases: "competitor analysis", "domain overview", "keyword research", "backlink check", "traffic estimate", "SEO i

By openclaudia · 446 installs

npx skills add openclaudia/openclaudia-skills --skill semrush-research

Source repository · Upstream listing

SemRush Research Pull live SEO and competitive intelligence data from the SemRush API. Prerequisites Requires SEMRUSH API KEY set in .env , .env.local , or ~/.claude/.env.global . If the key is not set, instruct the user: You need a SemRush API key. Get one at https://www.semrush.com/api/ Then add SEMRUSH API KEY=your key to your .env file. API Base All requests go to https://api.semrush.com/ with the API key passed as &key={SEMRUSH API KEY} . Responses are semicolon delimited CSV. The first line is the header row. Parse accordingly. 1. Domain Overview Get a high level snapshot of any domain's organic and paid search performance. Endpoint Export Columns Column Meaning Dn Domain Rk SemRush Rank Or Organic keywords count Ot Organic traffic estimate Oc Organic traffic cost ($) Ad Paid keywords count At Paid traffic estimate Ac Paid traffic cost ($) Example curl Parsing the Response 2. Keyword Overview Get search volume, CPC, competition, and SERP features for a keyword. Endpoint Export Columns Column Meaning Ph Keyword phrase Nq Search volume (monthly) Cp CPC (USD) Co Competition (0 1) Nr Number of results Td Trend (12 months, comma separated) Example curl Supported Databases Use &database=XX where XX is: us , uk , ca , au , de , fr , es , it , br , in , jp . 3. Related Keywords Find semantically related keywords for content planning and gap analysis. Endpoint Example curl Parsing Multiple Rows 4. Keyword Difficulty Estimate how hard it is to rank for a keyword. Endpoint Column Meaning Ph Keyword Kd Keyword difficulty (0 100) Interpretation: 0 29: Easy achievable with quality content 30 49: Moderate needs solid content + some backlinks 50 69: Hard needs strong domain authority + backlinks 70 84: Very hard requires established authority 85 100: Extremely hard dominated by top tier domains 5. Domain Organic Keywords See which keywords a domain ranks for organically. Endpoint Column Meaning Ph Keyword Po Position Nq Search volume Cp CPC Url Ranking URL Tr Traffic (%) Tc Traffic cost Example curl 6. Backlink Overview Get a summary of a domain's backlink profile. Endpoint Example curl 7. Competitor Discovery Find domains competing for the same organic keywords. Endpoint Column Meaning Dn Competitor domain Cr Competition level Np Common keywords Or Organic keywords Ot Organic traffic Oc Organic traffic cost Ad Paid keywords Example curl 8. Traffic Analytics (Estimates) Estimate a domain's overall traffic sources and engagement. Endpoint Workflow: Full Competitive Analysis When the user asks for a full competitive analysis, run these steps in order: 1. Domain Overview Get the target domain's metrics 2. Competitor Discovery Find top 5 10 competitors 3. Domain Overview for each competitor Compare metrics 4. Top Keywords for each domain Find keyword gaps 5. Backlink Overview for each domain Compare link profiles Output Format Present results as a comparison table: Then highlight: Keyword gaps : Keywords competitors rank for but target does not Quick wins : Keywords where target ranks positions 5 20 (improvement opportunities) Content gaps : Topics competitors cover but target does not Backlink opportunities : Sites linking to competitors but not target Rate Limits and Costs Each API call costs API units (check your plan) Use &display limit= to control result count (default varies by endpoint) Cache results locally when doing multi step analysis to avoid redundant calls Domain overview calls are cheapest; backlink and traffic analytics cost more Error Handling Error Meaning ERROR 50 :: NOTHING FOUND No data for this query ERROR 120 :: WRONG KEY Invalid API key ERROR 130 :: LIMIT EXCEEDED API unit limit reached Empty response Usually means no data available for the query parameters When you get "NOTHING FOUND", try: Different database (e.g., uk instead of us ) Root domain instead of subdomain Broader keyword phrase