Semrush CLI for AI Agents

Use Composio Universal CLI with Semrush. Show top anchor texts for example.com, compare backlink profiles for three domains, and more using natural language, with authentication handled for you.

Semrush logoSemrush
Api Key

Semrush is a leading SEO tool suite for keyword research, competitor analysis, and campaign tracking. It empowers marketers to improve search rankings and optimize online visibility.

74 Tools

Introduction

CLIs are eating MCPs. The industry is converging on the very same idea. MCPs for all their merit can be token hungry, slow, and unreliable for complex tool chaining. However, coding agents have become incredibly good at working with CLIs, and in fact they are far more comfortable working with CLI tools than MCP.

With Composio's Universal CLI, your coding agents can talk to over 1500+ SaaS applications. With Semrush, agents can research organic and paid keywords, analyze backlinks, compare competitor domains, track local map rankings, and manage business listings, and more — all without worrying about authentication.

This guide walks you through Composio Universal CLI and explains how you can connect it with coding agents like Claude Code, Codex, OpenCode, etc, for end-to-end Semrush automation.

Also integrate Semrush with

What is Universal CLI and why use it?

The idea behind building the universal CLI is to give agents a single command interface to interact with all your external applications. Here's what you'll get with it:

  • Agent-friendly: Coding agents like Claude Code, Codex, and OpenCode can use CLI tools natively — no MCP setup required.
  • Authentication handled: Connect once via OAuth or API Key, and all CLI commands work with your credentials automatically.
  • Tool discovery: Search, inspect, and execute 20,000+ tools across 1500+ apps from one interface.
  • Trigger support: Use triggers to listen for events across your apps, powered by real-time webhooks or polling under the hood.
  • Type generation: Generate typed schemas for autocomplete and type safety in your projects.

Prerequisites

Install the Composio CLI, authenticate, and initialize your project:

bash
# Install the Composio CLI
curl -fsSL https://composio.dev/install | bash

# Authenticate with Composio
composio login

During login you'll be redirected to sign in page, finish the complete flow and you're all set.

Composio CLI authentication flow

Connecting Semrush to Coding Agents via Universal CLI

Once it is installed, it's essentially done. Claude Code, Codex, OpenCode, OpenClaw, or any other agent will be able to access the CLI. A few steps to give agents access to your apps.

  1. Launch your Coding Agent — Claude Code, Codex, OpenCode, anything you prefer.
  2. Prompt it to "Authenticate with Semrush"
  3. Complete the authentication and authorization flow and your Semrush integration is all set.
  4. Start asking anything you want.

Universal CLI Commands for Semrush

You can also manually execute CLI commands to interact with your Semrush.

Connect your Semrush account

Link your Semrush account and verify the connection:

bash
# Connect your Semrush account (opens OAuth flow)
composio connected-accounts link semrush

# Verify the connection
composio connected-accounts list --toolkits semrush

Discover Semrush tools

Search and inspect available Semrush tools:

bash
# List all available Semrush tools
composio tools list --toolkit semrush

# Search for Semrush tools by action
composio tools search "semrush"

# Inspect a tool's input schema
composio tools info SEMRUSH_COMPETITORS_IN_ORGANIC_SEARCH

Common Semrush Actions

Get competitors in organic search — Use to get a domain's organic search competitors from Semrush as a semicolon-separated string; `display_date` requires 'YYYYMM15' format if used

bash
composio tools execute SEMRUSH_COMPETITORS_IN_ORGANIC_SEARCH \
  --domain "semrush.com" \
  --database "us"

Get competitors in paid search — Retrieves a list of a domain's competitors in paid search results from a specified regional database

bash
composio tools execute SEMRUSH_COMPETITORS_IN_PAID_SEARCH \
  --domain "example.com" \
  --database "us"

Get domain organic search keywords — Retrieves organic search keywords for a domain from a specified Semrush regional database; `display_positions` must be set if `display_daily=1` for daily updates

bash
composio tools execute SEMRUSH_DOMAIN_ORGANIC_SEARCH_KEYWORDS \
  --domain "semrush.com" \
  --database "us"

Get domain paid search keywords — Fetches keywords driving paid search traffic to a specified, existing domain using a supported Semrush regional database

bash
composio tools execute SEMRUSH_DOMAIN_PAID_SEARCH_KEYWORDS \
  --domain "semrush.com" \
  --database "us"

Get PLA search keywords for a domain — Retrieves Product Listing Ad (PLA) search keywords for a specified domain from a Semrush regional database

bash
composio tools execute SEMRUSH_DOMAIN_PLA_SEARCH_KEYWORDS \
  --domain "example.com" \
  --database "us"

Create Listing Management location — Create a Semrush Listing Management location

bash
composio tools execute SEMRUSH_CREATE_LISTING_MANAGEMENT_LOCATION \
  --zip "<string>" \
  --city "<string>" \
  --region "<string>" \
  --country "<string>"

Delete Listing Management location — Permanently delete an eligible location using a read-write v4 key and Local plan

bash
composio tools execute SEMRUSH_DELETE_LISTING_MANAGEMENT_LOCATION \
  --location_id "<string>"

Disable location listing — Stop distribution for a controllable listing; a parent may affect child listings

bash
composio tools execute SEMRUSH_DISABLE_LOCATION_LISTING \
  --listing_id "<string>"

Generate Type Definitions

Generate typed schemas for Semrush tools to get autocomplete and type safety in your project:

bash
# Auto-detect language
composio generate --toolkits semrush

# TypeScript
composio ts generate --toolkits semrush

# Python
composio py generate --toolkits semrush

Tips & Tricks

  • Always inspect a tool's input schema before executing: composio tools info <TOOL_NAME>
  • Pipe output with jq for better readability: composio tools execute TOOL_NAME -d '{}' | jq
  • Set COMPOSIO_API_KEY as an environment variable for CI/CD pipelines
  • Use composio dev logs tools to inspect execution logs and debug issues

Next Steps

  • Try asking your coding agent to perform various Semrush operations
  • Explore cross-app workflows by connecting more toolkits
  • Set up triggers for real-time automation
  • Use composio generate for typed schemas in your projects
TOOLS

Supported Tools

Every Semrush action and event your agent gets out of the box.

Check Semrush account units balance

Fetch remaining Semrush Standard API units for a legacy v3 connection.

Add Semrush review comment

Publish an owner comment to a review that supports replies.

Get ad copies

Retrieves unique ad copies Semrush has observed for a specified domain from a regional database, detailing ads seen in Google's paid search results.

Get competitors in organic search

Use to get a domain's organic search competitors from Semrush as a semicolon-separated string; `display_date` requires 'YYYYMM15' format if used.

Get competitors in paid search

Retrieves a list of a domain's competitors in paid search results from a specified regional database.

Create Semrush GBP post

Create a draft, scheduled, or ready-to-send GBP post.

Create Listing Management location

Create a Semrush Listing Management location.

Create location image

Add a base64-encoded JPEG or PNG image to a Semrush Listing Management location using a read-write v4 key and Local Pro or Business.

Manage Semrush GBP suggestion

Start accepting or rejecting an open GBP suggestion.

Delete Semrush GBP post

Permanently delete a DRAFT, SCHEDULED, or TO_SEND GBP post.

Delete Listing Management location

Permanently delete an eligible location using a read-write v4 key and Local plan.

Delete location image

Permanently delete an image using a read-write v4 key and Local plan.

Delete Semrush review comment

Permanently remove a public review comment.

Disable location listing

Stop distribution for a controllable listing; a parent may affect child listings.

Get domain ad history

Retrieves a domain's 12-month advertising history from Semrush (keywords bid on, ad positions, ad copy) for PPC strategy and competitor analysis; most effective when the domain has ad history in the selected database.

Get domain organic pages

Fetches a report on a domain's unique organic pages ranking in Google's top 100 search results, with options for specifying database, date, columns, sorting, and filtering.

Get domain organic search keywords

Retrieves organic search keywords for a domain from a specified Semrush regional database; `display_positions` must be set if `display_daily=1` for daily updates.

Get domain organic subdomains

Retrieves a report on subdomains of a given domain that rank in Google's top 100 organic search results for a specified regional database.

Get domain paid search keywords

Fetches keywords driving paid search traffic to a specified, existing domain using a supported Semrush regional database.

Get PLA search keywords for a domain

Retrieves Product Listing Ad (PLA) search keywords for a specified domain from a Semrush regional database.

Compare domains

Analyzes keyword rankings by comparing up to five domains to find common, unique, or gap keywords, using specified organic/paid types and comparison logic in the `domains` string.

Enable location listing

Resume distribution for a controllable disconnected listing.

Get Semrush GBP metrics

Return GBP metrics for up to five locations.

Get Listing Management location

Get one Listing Management location using a v4 key and Local Pro or Business.

Get Semrush review auto-reply config

Return review auto-reply settings for a location.

Get Semrush review overview

Return review counts, rating distribution, and reply statistics.

List Semrush GBP additional-hour types

Return additional business-hour types available for a GBP location.

List Semrush GBP attributes

Return GBP attributes and allowed values for a category and country.

List Semrush GBP categories

Return GBP categories supported in a country.

List Semrush GBP posts

Return filtered GBP posts for one or more Semrush locations.

List Semrush GBP suggestions

Return GBP data-change suggestions for one or more active locations.

List Listing Management locations

List locations using a v4 key and Local Pro or Business; uses no API units.

List location categories

List Semrush Local business categories supported for a country.

List location images

List location images using a v4 key and Local Pro or Business.

List location listings

Get directory listings using a v4 key and Local Pro or Business.

List location payment options

Get payment options using a v4 key and Local Pro or Business.

List Semrush location reviews

Return a filtered, paginated list of reviews for a Semrush location.

Collect Map Rank Tracker campaign data (consumes credits)

Start a data-collection mutation that creates a new campaign report.

Create Map Rank Tracker campaign

Create persistent Map Rank Tracker campaign data.

Delete Map Rank Tracker campaign

Permanently delete a campaign and all its collected data.

Get Map Rank Tracker campaign

Get one Map Rank Tracker campaign without consuming API units.

Get Map Rank Tracker heatmap

Get a campaign heatmap for one keyword and report timestamp.

Get Map Rank Tracker keyword statuses

Get campaign keyword statuses for the latest or a specified report.

Get Map Rank Tracker metrics

Get average-position and share-of-voice history for one keyword.

Get Map Rank Tracker user limits

Get campaign-slot and monthly Map Rank Tracker credit limits.

List Map Rank Tracker campaigns

List and filter Map Rank Tracker campaigns without consuming API units.

List Map Rank Tracker top competitors

Get a paginated competitor ranking for one keyword and report.

Update Map Rank Tracker campaign

Mutate selected settings of an existing Map Rank Tracker campaign.

Get PLA competitors

Retrieves domains competing with a specified domain in Google's Product Listing Ads (PLA) from a given Semrush regional database.

Get PLA copies

Fetches Product Listing Ad (PLA) copies that Semrush observed for a domain in Google's paid search results.

Update Semrush GBP post

Update a DRAFT, SCHEDULED, or TO_SEND GBP post.

Update Listing Management location

Patch selected fields on a Semrush Listing Management location.

Update location image

Replace a location image caption using a read-write v4 key and Local Pro or Business.

Replace Semrush review auto-reply config

Replace all review auto-reply settings for a location.

Update Semrush review comment

Replace the public text of an editable review comment.

List v4 backlink anchors

List v4 backlink anchors for a URL or domain.

Get v4 authority score profile

Get the v4 referring-domain authority-score distribution.

List v4 backlink competitors

List v4 backlink competitors based on referring-domain overlap.

List v4 backlinks

List v4 backlinks with field selection, filtering, sorting, and pagination.

Compare v4 backlink summaries

Compare v4 backlink summaries for up to ten targets.

Get v4 backlinks historical summary

Get monthly v4 backlink history for a URL or domain.

Get v4 backlinks matrix

Compare shared referring domains and backlinks for up to six targets.

Get v4 backlinks overview

Get aggregated v4 backlink metrics for a URL or domain.

Create v4 project

Create a Semrush v4 project for a domain.

Delete v4 project

Permanently delete a Semrush v4 project and all associated data.

Get v4 project

Get the full details of one accessible Semrush v4 project.

List v4 indexed pages

List v4 indexed backlink pages for a URL or domain.

Get v4 keyword metrics

Get Semrush v4 SEO and PPC metrics for one keyword and country.

List v4 projects

List Semrush v4 projects by ownership or sharing scope.

List v4 referring domains

List v4 referring domains for a URL or domain.

List v4 referring IPs

List v4 referring IP addresses for a URL or domain.

Update v4 project

Rename a Semrush v4 project.

Validate Listing Management location creation

Validate a Listing Management location payload without creating it or consuming a Local Pro location limit.

Validate Listing Management location update

Validate selected changes to a Listing Management location without applying them.

FAQ

Frequently asked questions

The Composio Universal CLI is a single command-line interface that lets coding agents and developers interact with 1500+ SaaS applications. It handles authentication, tool discovery, action execution, and trigger setup — all from the terminal, without needing to configure MCP servers.

Any coding agent that can run shell commands works with the Composio CLI — including Claude Code, Codex, OpenCode, OpenClaw, and others. Once the CLI is installed, agents automatically discover and use the composio commands to interact with Semrush and other connected apps.

MCP servers require configuration and can be token-heavy for complex workflows. The CLI gives agents a direct, lightweight interface — no server setup needed. Agents simply call composio commands like any other shell tool. It's faster to set up, more reliable for multi-step tool chaining, and works natively with how coding agents already operate.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Semrush data and credentials are handled as safely as possible. You can also bring your own OAuth credentials for full control.

Start with Semrush.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Semrush tool your agent needs.Free to start.

Start building