Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Semrush Research

ASecurity

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 intelligence", "semrush", "competitive research".

7 stars
0 votes
0 copies
0 views
Added 9/20/2026
businessgobashapidatabaseperformance

Works with

api

Security Analysis

A100/100

Scanned 9/20/2026

Install to Claude Code

$npx -y skills add unempyd/revenueos --skill semrush-research --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Semrush Research?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Semrush Research
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/unempyd-semrush-research/badge)](https://www.skillsdirectory.com/skills/unempyd-semrush-research)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: semrush-research
description: >
  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 intelligence", "semrush", "competitive research".
---

# 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`.

```bash
# Verify the key is available
echo "SEMRUSH_API_KEY is ${SEMRUSH_API_KEY:+set}"
```

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

```
https://api.semrush.com/?type=domain_ranks&key={KEY}&export_columns=Dn,Rk,Or,Ot,Oc,Ad,At,Ac&domain={domain}
```

### 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

```bash
curl -s "https://api.semrush.com/?type=domain_ranks&key=${SEMRUSH_API_KEY}&export_columns=Dn,Rk,Or,Ot,Oc,Ad,At,Ac&domain=example.com"
```

### Parsing the Response

```bash
# Response format (semicolon-delimited):
# Dn;Rk;Or;Ot;Oc;Ad;At;Ac
# example.com;12345;8234;145000;234500;120;3400;5600

# Parse with awk
curl -s "..." | awk -F';' 'NR==2 {
  printf "Domain: %s\nSemRush Rank: %s\nOrganic Keywords: %s\nOrganic Traffic: %s\nOrganic Traffic Cost: $%s\nPaid Keywords: %s\nPaid Traffic: %s\nPaid Traffic Cost: $%s\n",
  $1,$2,$3,$4,$5,$6,$7,$8
}'
```

---

## 2. Keyword Overview

Get search volume, CPC, competition, and SERP features for a keyword.

### Endpoint

```
https://api.semrush.com/?type=phrase_all&key={KEY}&phrase={keyword}&database=us&export_columns=Ph,Nq,Cp,Co,Nr,Td
```

### 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

```bash
curl -s "https://api.semrush.com/?type=phrase_all&key=${SEMRUSH_API_KEY}&phrase=content+marketing&database=us&export_columns=Ph,Nq,Cp,Co,Nr,Td"
```

### 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

```
https://api.semrush.com/?type=phrase_related&key={KEY}&phrase={keyword}&database=us&export_columns=Ph,Nq,Cp,Co,Nr,Td&display_limit=20
```

### Example curl

```bash
curl -s "https://api.semrush.com/?type=phrase_related&key=${SEMRUSH_API_KEY}&phrase=project+management&database=us&export_columns=Ph,Nq,Cp,Co,Nr,Td&display_limit=20"
```

### Parsing Multiple Rows

```bash
curl -s "..." | awk -F';' 'NR>1 { printf "%-40s Vol: %-8s CPC: $%-6s Comp: %s\n", $1, $2, $3, $4 }'
```

---

## 4. Keyword Difficulty

Estimate how hard it is to rank for a keyword.

### Endpoint

```
https://api.semrush.com/?type=phrase_kdi&key={KEY}&phrase={keyword}&database=us&export_columns=Ph,Kd
```

| 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

```
https://api.semrush.com/?type=domain_organic&key={KEY}&domain={domain}&database=us&export_columns=Ph,Po,Nq,Cp,Url,Tr,Tc&display_limit=50&display_sort=tr_desc
```

| Column | Meaning |
|--------|---------|
| `Ph` | Keyword |
| `Po` | Position |
| `Nq` | Search volume |
| `Cp` | CPC |
| `Url` | Ranking URL |
| `Tr` | Traffic (%) |
| `Tc` | Traffic cost |

### Example curl

```bash
curl -s "https://api.semrush.com/?type=domain_organic&key=${SEMRUSH_API_KEY}&domain=hubspot.com&database=us&export_columns=Ph,Po,Nq,Cp,Url,Tr,Tc&display_limit=20&display_sort=tr_desc"
```

---

## 6. Backlink Overview

Get a summary of a domain's backlink profile.

### Endpoint

```
https://api.semrush.com/analytics/v1/?key={KEY}&type=backlinks_overview&target={domain}&target_type=root_domain&export_columns=total,domains_num,urls_num,ips_num,follows_num,nofollows_num,texts_num,images_num
```

### Example curl

```bash
curl -s "https://api.semrush.com/analytics/v1/?key=${SEMRUSH_API_KEY}&type=backlinks_overview&target=example.com&target_type=root_domain&export_columns=total,domains_num,urls_num,ips_num,follows_num,nofollows_num,texts_num,images_num"
```

---

## 7. Competitor Discovery

Find domains competing for the same organic keywords.

### Endpoint

```
https://api.semrush.com/?type=domain_organic_organic&key={KEY}&domain={domain}&database=us&export_columns=Dn,Cr,Np,Or,Ot,Oc,Ad&display_limit=10
```

| 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

```bash
curl -s "https://api.semrush.com/?type=domain_organic_organic&key=${SEMRUSH_API_KEY}&domain=notion.so&database=us&export_columns=Dn,Cr,Np,Or,Ot,Oc,Ad&display_limit=10"
```

---

## 8. Traffic Analytics (Estimates)

Estimate a domain's overall traffic sources and engagement.

### Endpoint

```
https://api.semrush.com/analytics/ta/api/v3/summary?key={KEY}&targets={domain}&display_date=2024-01-01&country=us&export_columns=target,visits,users,bounce_rate,pages_per_visit,avg_visit_duration
```

---

## 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:

```
| Metric              | target.com | competitor1.com | competitor2.com |
|---------------------|-----------|-----------------|-----------------|
| SemRush Rank        | ...       | ...             | ...             |
| Organic Keywords    | ...       | ...             | ...             |
| Organic Traffic     | ...       | ...             | ...             |
| Traffic Cost        | ...       | ...             | ...             |
| Backlinks           | ...       | ...             | ...             |
| Referring Domains   | ...       | ...             | ...             |
```

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

Attribution

unempydunempyd
View sourceMore from unempyd →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Solution Architect

Designs system architecture, component specifications, and technical integration strategy. Use when: designing solutions, system architecture, technology stack, or integration approaches.

192 votes

Akorchak:Venture Assessment

Generate a comprehensive VC investment assessment report for a company

72 votes

Just Fucking Cancel

Find and cancel unwanted subscriptions by analyzing bank transactions. Detects recurring charges, calculates annual waste, and helps you cancel with direct URLs and browser automation. Use when: 'cancel subscriptions', 'audit subscriptions', 'find recurring charges', 'what am I paying for', 'save money', 'subscription cleanup', 'stop wasting money'. Supports CSV import (Apple Card, Chase, Amex, Citi, Bank of America, Capital One, Mint, Copilot) OR Plaid API for automatic transaction pull. Out...

6511 votes

Stock Analysis

Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management (create, add, remove assets), crypto analysis (Top 20 by market cap), and periodic performance reports (daily/weekly/monthly/quarterly/yearly). 8 analysis dimensions for stocks, 3 for crypto. Use for stock analysis, portfolio tracking, earnings reactions, or crypto monitoring.

6511 votes

Telegram Compose

Compose rich, readable Telegram messages using HTML formatting via direct Telegram API. Use when: (1) Sending any Telegram message beyond a simple one-line reply, (2) Creating structured messages with sections, lists, or status updates, (3) Need formatting unavailable via Clawdbot's Markdown conversion (underline, spoilers, expandable blockquotes, user mentions by ID), (4) Sending alerts, reports, summaries, or notifications to Telegram, (5) Want professional, scannable message formatting wit...

6511 votes
View all in business →