Command reference
All 81 research and account operations, with schema-derived options.
Every command also has an MCP tool with underscores in its name. Use --json for scripts.
account-status
Signed-in account and report limits.
semrush-cli account-status --helpkeyword-overview
Volume, difficulty, CPC, intent and trends.
semrush-cli keyword-overview --help| Flag | Type | Default | Required |
|---|---|---|---|
--keyword | string | yes | |
--database | string | "us" |
keyword-ideas
Overview sample of related keywords or questions.
semrush-cli keyword-ideas --help| Flag | Type | Default | Required |
|---|---|---|---|
--keyword | string | yes | |
--database | string | "us" | |
--questions-only | boolean | false | |
--limit | integer | 10 |
keyword-ideas-summary
Total related keyword count and volume.
semrush-cli keyword-ideas-summary --help| Flag | Type | Default | Required |
|---|---|---|---|
--keyword | string | yes | |
--database | string | "us" | |
--questions-only | boolean | false |
keyword-serp
Ranked URLs and SERP features.
semrush-cli keyword-serp --help| Flag | Type | Default | Required |
|---|---|---|---|
--keyword | string | yes | |
--database | string | "us" | |
--limit | integer | 10 |
keyword-ads
Search ad copies for a keyword.
semrush-cli keyword-ads --help| Flag | Type | Default | Required |
|---|---|---|---|
--keyword | string | yes | |
--database | string | "us" | |
--limit | integer | 10 |
keyword-clusters
Keyword topics and search intents.
semrush-cli keyword-clusters --help| Flag | Type | Default | Required |
|---|---|---|---|
--keyword | string | yes | |
--database | string | "us" |
keyword-magic
Paginated Keyword Magic research with filters and sorting.
semrush-cli keyword-magic --help| Flag | Type | Default | Required |
|---|---|---|---|
--keyword | string | yes | |
--database | string | "us" | |
--questions-only | boolean | false | |
--mode | integer | 4 | |
--currency | string | "USD" | |
--sort-field | string | "similarity_score" | |
--descending | boolean | true | |
--filters | object | ||
--groups | array | ||
--page | integer | 1 | |
--page-size | integer | 100 |
keyword-magic-summary
Keyword Magic totals for matching filters.
semrush-cli keyword-magic-summary --help| Flag | Type | Default | Required |
|---|---|---|---|
--keyword | string | yes | |
--database | string | "us" | |
--questions-only | boolean | false | |
--mode | integer | 4 | |
--currency | string | "USD" | |
--sort-field | string | "similarity_score" | |
--descending | boolean | true | |
--filters | object | ||
--groups | array |
keyword-magic-groups
Keyword Magic topic groups.
semrush-cli keyword-magic-groups --help| Flag | Type | Default | Required |
|---|---|---|---|
--keyword | string | yes | |
--database | string | "us" | |
--questions-only | boolean | false | |
--mode | integer | 4 | |
--currency | string | "USD" | |
--sort-field | string | "similarity_score" | |
--descending | boolean | true | |
--filters | object | ||
--groups | array | ||
--page | integer | 1 | |
--page-size | integer | 100 |
domain-overview
Search metrics and backlink summary.
semrush-cli domain-overview --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--database | string | "us" |
domain-keywords
Paginated organic rankings with filters, sorting and totals.
semrush-cli domain-keywords --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--database | string | "us" | |
--date | integer / null | null | |
--search-type | string | "domain" | |
--date-type | string | "daily" | |
--page | integer | 1 | |
--page-size | integer | 100 | |
--sort-field | string | "trafficPercent" | |
--descending | boolean | true | |
--filters | object |
domain-pages
Paginated top organic pages with totals.
semrush-cli domain-pages --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--database | string | "us" | |
--date | integer / null | null | |
--search-type | string | "domain" | |
--date-type | string | "daily" | |
--page | integer | 1 | |
--page-size | integer | 100 | |
--sort-field | string | "traffic" | |
--descending | boolean | true | |
--filters | object |
domain-subdomains
Paginated organic subdomain traffic and keyword totals.
semrush-cli domain-subdomains --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--database | string | "us" | |
--date | integer / null | null | |
--search-type | string | "domain" | |
--date-type | string | "daily" | |
--page | integer | 1 | |
--page-size | integer | 100 | |
--sort-field | string | "traffic" | |
--descending | boolean | true | |
--filters | object |
domain-position-changes
Paginated ranking changes with totals.
semrush-cli domain-position-changes --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--database | string | "us" | |
--date | integer / null | null | |
--search-type | string | "domain" | |
--date-type | string | "daily" | |
--page | integer | 1 | |
--page-size | integer | 100 | |
--sort-field | string | "changeOfTraffic" | |
--descending | boolean | true | |
--filters | object |
domain-competitors
Paginated organic search competitors and totals.
semrush-cli domain-competitors --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--database | string | "us" | |
--date | integer / null | null | |
--search-type | string | "domain" | |
--date-type | string | "daily" | |
--page | integer | 1 | |
--page-size | integer | 100 | |
--sort-field | string | "competitionLvl" | |
--descending | boolean | true |
domain-backlinks
Backlink summary, sample links and anchors.
semrush-cli domain-backlinks --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes |
domain-ai-visibility
AI visibility, mentions and citations.
semrush-cli domain-ai-visibility --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes |
domain-ai-countries
AI visibility and mentions by country.
semrush-cli domain-ai-countries --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes |
domain-ai-sources
Top AI citation sources with offset and limit.
semrush-cli domain-ai-sources --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--database | string | "us" | |
--limit | integer | 20 | |
--offset | integer | 0 |
domain-trends
Daily or monthly organic and paid search trends.
semrush-cli domain-trends --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--database | string | "us" | |
--date-type | string | "monthly" | |
--global-data | boolean | false |
domain-paid-keywords
Paid keyword overview sample; account permissions apply.
semrush-cli domain-paid-keywords --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--database | string | "us" | |
--limit | integer | 5 |
domain-paid-competitors
Paid search competitors; account permissions apply.
semrush-cli domain-paid-competitors --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--database | string | "us" | |
--limit | integer | 5 |
domain-topics
Organic search topics already available for a domain.
semrush-cli domain-topics --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--database | string | "us" |
domain-topics-status
Availability of domain organic topics.
semrush-cli domain-topics-status --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--database | string | "us" |
databases
Search databases and account access.
semrush-cli databases --helpsnapshot-dates
Available historical domain snapshots.
semrush-cli snapshot-dates --help| Flag | Type | Default | Required |
|---|---|---|---|
--database | string | "us" | |
--global-data | boolean | false |
report-permissions
Account history, export and research permissions.
semrush-cli report-permissions --help| Flag | Type | Default | Required |
|---|---|---|---|
--database | string | "us" |
backlink-links
Paginated backlinks with provider caps and totals.
semrush-cli backlink-links --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--target-type | string | "root_domain" | |
--filters | string | "" | |
--page | integer | 0 | |
--sort-field | string | "" | |
--descending | boolean | true |
backlink-referring-domains
Paginated referring domains.
semrush-cli backlink-referring-domains --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--target-type | string | "root_domain" | |
--filters | string | "" | |
--page | integer | 0 | |
--sort-field | string | "" | |
--descending | boolean | true |
backlink-history
Historical backlink and referring-domain trends.
semrush-cli backlink-history --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--target-type | string | "root_domain" |
backlink-competitors
Competitors sharing a backlink profile.
semrush-cli backlink-competitors --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--target-type | string | "root_domain" |
backlink-top-pages
Paginated indexed pages ranked by referring domains.
semrush-cli backlink-top-pages --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--target-type | string | "root_domain" | |
--filters | string | "" | |
--page | integer | 0 | |
--sort-field | string | "" | |
--descending | boolean | true |
backlink-anchors
Paginated anchor texts and backlink counts.
semrush-cli backlink-anchors --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--target-type | string | "root_domain" | |
--filters | string | "" | |
--page | integer | 0 | |
--sort-field | string | "" | |
--descending | boolean | true |
backlink-outgoing-domains
Paginated outbound domains and outgoing link counts.
semrush-cli backlink-outgoing-domains --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--target-type | string | "root_domain" | |
--filters | string | "" | |
--page | integer | 0 | |
--sort-field | string | "" | |
--descending | boolean | true |
backlink-countries
Referring-domain country distribution.
semrush-cli backlink-countries --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--target-type | string | "root_domain" |
backlink-authority
Authority score and supporting metrics.
semrush-cli backlink-authority --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--target-type | string | "root_domain" |
backlink-categories
Referring-domain category profile.
semrush-cli backlink-categories --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes | |
--target-type | string | "root_domain" |
keyword-gap
Paginated organic keyword gap between two to five sites.
semrush-cli keyword-gap --help| Flag | Type | Default | Required |
|---|---|---|---|
--database | string | "us" | |
--domains | array | yes | |
--filters | string | "" | |
--gap-type | integer | 2 | |
--limit | integer | 100 | |
--offset | integer | 0 |
keyword-gap-totals
Counts for keyword overlap and opportunity types.
semrush-cli keyword-gap-totals --help| Flag | Type | Default | Required |
|---|---|---|---|
--database | string | "us" | |
--domains | array | yes | |
--filters | string | "" |
keyword-gap-overlap
Organic keyword profile overlaps.
semrush-cli keyword-gap-overlap --help| Flag | Type | Default | Required |
|---|---|---|---|
--database | string | "us" | |
--domains | array | yes | |
--filters | string | "" |
backlink-gap
Paginated link-building prospects shared by competitors but missing from your site.
semrush-cli backlink-gap --help| Flag | Type | Default | Required |
|---|---|---|---|
--domains | array | yes | |
--page | integer | 0 | |
--limit | integer | 100 | |
--filters | string | "+|backlinksnum_0|Eq|0" | |
--sort-field | string | "matchesnum" | |
--descending | boolean | true | |
--sort-target | integer | 0 |
backlink-comparison
Compare backlink history, country distribution and domain zones.
semrush-cli backlink-comparison --help| Flag | Type | Default | Required |
|---|---|---|---|
--domains | array | yes |
projects
Existing projects and folder access, with pagination.
semrush-cli projects --help| Flag | Type | Default | Required |
|---|---|---|---|
--limit | integer | 15 | |
--offset | integer | 0 | |
--filters | object |
ai-capabilities
Account AI Visibility Toolkit access and limits.
semrush-cli ai-capabilities --helpaudit-campaigns
Existing Site Audit campaigns; does not start a crawl.
semrush-cli audit-campaigns --helpfolders
Accessible project folders.
semrush-cli folders --helpsaved-keyword-lists
Existing saved keyword lists.
semrush-cli saved-keyword-lists --helpproject-create
Create a project, optionally with a website. Does not start tools or share it.
semrush-cli project-create --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--name | string | yes | |
--domain | string | ||
--confirm | boolean | false | |
--dry-run | boolean | false |
project-get
Read one project by its current web folder ID.
semrush-cli project-get --help| Flag | Type | Default | Required |
|---|---|---|---|
--folder-id | string | yes |
project-update
Rename a project or add its first domain. Existing domains cannot be changed.
semrush-cli project-update --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--folder-id | string | yes | |
--name | string | ||
--domain | string | ||
--confirm | boolean | false | |
--dry-run | boolean | false |
project-delete
Permanently delete a project and its attached tool data.
semrush-cli project-delete --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--folder-id | string | yes | |
--confirm | boolean | false | |
--dry-run | boolean | false |
project-leave
Leave a shared project.
semrush-cli project-leave --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--folder-id | string | yes | |
--confirm | boolean | false | |
--dry-run | boolean | false |
project-limits
Read project creation limits.
semrush-cli project-limits --helpproject-tags
Read available project tags.
semrush-cli project-tags --helpproject-set-tags
Replace project tags. An empty array removes all its tags.
semrush-cli project-set-tags --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--folder-id | string | yes | |
--tags | array | yes | |
--confirm | boolean | false | |
--dry-run | boolean | false |
project-check-domain
Check website information before creating a project.
semrush-cli project-check-domain --help| Flag | Type | Default | Required |
|---|---|---|---|
--domain | string | yes |
project-pin
Pin or unpin a project on the dashboard.
semrush-cli project-pin --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--folder-id | string | yes | |
--pinned | boolean | yes | |
--confirm | boolean | false | |
--dry-run | boolean | false |
project-toolkits
Read SEO, AI, local, social, advertising and content toolkit status.
semrush-cli project-toolkits --help| Flag | Type | Default | Required |
|---|---|---|---|
--folder-ids | array | yes | |
--with-promo | boolean | false |
project-tools
Read project dashboard metrics. Tool IDs match the web dashboard.
semrush-cli project-tools --help| Flag | Type | Default | Required |
|---|---|---|---|
--folder-id | string | yes | |
--tools | array | yes |
project-enable-seo
Create the SEO project associated with an existing web project. Uses project allowance.
semrush-cli project-enable-seo --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--folder-id | string | yes | |
--confirm | boolean | false | |
--dry-run | boolean | false |
project-seo-auto-setup
Start automatic SEO setup, including Site Audit and Position Tracking. Uses account allowances.
semrush-cli project-seo-auto-setup --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--folder-id | string | yes | |
--confirm | boolean | false | |
--dry-run | boolean | false |
keyword-list-limits
Read Keyword Strategy Builder list and clustering allowances.
semrush-cli keyword-list-limits --helpkeyword-lists
Read regular and structured keyword lists with pagination and ownership filters.
semrush-cli keyword-lists --help| Flag | Type | Default | Required |
|---|---|---|---|
--page | integer | 1 | |
--page-size | integer | 100 | |
--sort-field | string | "updated_at" | |
--descending | boolean | true | |
--name-filter | string | "" | |
--ownership | integer | 7 |
keyword-list-create
Create an empty regular keyword list. Does not cluster or generate a strategy.
semrush-cli keyword-list-create --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--name | string | yes | |
--confirm | boolean | false | |
--dry-run | boolean | false |
keyword-list-get
Read one keyword list and its permissions.
semrush-cli keyword-list-get --help| Flag | Type | Default | Required |
|---|---|---|---|
--basket-id | integer | yes | |
--owner-id | integer | yes |
keyword-list-rename
Rename a keyword list.
semrush-cli keyword-list-rename --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--basket-id | integer | yes | |
--owner-id | integer | yes | |
--name | string | yes | |
--confirm | boolean | false | |
--dry-run | boolean | false |
keyword-list-delete
Permanently delete one of your keyword lists.
semrush-cli keyword-list-delete --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--basket-id | integer | yes | |
--confirm | boolean | false | |
--dry-run | boolean | false |
keyword-list-keywords
Read filtered, paginated keyword-list metrics.
semrush-cli keyword-list-keywords --help| Flag | Type | Default | Required |
|---|---|---|---|
--basket-id | integer | yes | |
--owner-id | integer | yes | |
--page | integer | 1 | |
--page-size | integer | 100 | |
--sort-field | string | "phrase" | |
--descending | boolean | true | |
--filters | object | {} |
keyword-list-summary
Read keyword totals, volume and difficulty for the selected filters.
semrush-cli keyword-list-summary --help| Flag | Type | Default | Required |
|---|---|---|---|
--basket-id | integer | yes | |
--owner-id | integer | yes | |
--filters | object | {} |
keyword-list-import
Import phrases into a regular keyword list. Account keyword limits apply.
semrush-cli keyword-list-import --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--basket-id | integer | yes | |
--owner-id | integer | yes | |
--keywords | array | yes | |
--database | string | "us" | |
--tags | array | [] | |
--confirm | boolean | false | |
--dry-run | boolean | false |
keyword-list-delete-keywords
Delete selected phrases from a keyword list. Returns an undo ID.
semrush-cli keyword-list-delete-keywords --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--basket-id | integer | yes | |
--owner-id | integer | yes | |
--keywords | array | yes | |
--database | string | "us" | |
--confirm | boolean | false | |
--dry-run | boolean | false |
keyword-list-undo-delete
Restore a keyword deletion using its returned UndoID.
semrush-cli keyword-list-undo-delete --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--undo-id | string | yes | |
--confirm | boolean | false | |
--dry-run | boolean | false |
keyword-list-update-metrics
Request fresh metrics for selected phrases. Consumes the update allowance.
semrush-cli keyword-list-update-metrics --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--basket-id | integer | yes | |
--owner-id | integer | yes | |
--keywords | array | yes | |
--database | string | "us" | |
--confirm | boolean | false | |
--dry-run | boolean | false |
keyword-list-tags
Read keyword tags and their usage in a list.
semrush-cli keyword-list-tags --help| Flag | Type | Default | Required |
|---|---|---|---|
--basket-id | integer | yes | |
--owner-id | integer | yes |
keyword-list-add-tags
Add tags to selected phrases.
semrush-cli keyword-list-add-tags --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--basket-id | integer | yes | |
--owner-id | integer | yes | |
--keywords | array | yes | |
--database | string | "us" | |
--tags | array | [] | yes |
--confirm | boolean | false | |
--dry-run | boolean | false |
keyword-list-remove-tags
Remove tags from selected phrases.
semrush-cli keyword-list-remove-tags --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--basket-id | integer | yes | |
--owner-id | integer | yes | |
--keywords | array | yes | |
--database | string | "us" | |
--tags | array | [] | yes |
--confirm | boolean | false | |
--dry-run | boolean | false |
keyword-list-cluster
Start clustering a keyword list. Consumes the clustering allowance.
semrush-cli keyword-list-cluster --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--basket-id | integer | yes | |
--owner-id | integer | yes | |
--confirm | boolean | false | |
--dry-run | boolean | false |
keyword-list-cluster-forecast
Read the clustering forecast for a keyword list.
semrush-cli keyword-list-cluster-forecast --help| Flag | Type | Default | Required |
|---|---|---|---|
--basket-id | integer | yes | |
--owner-id | integer | yes |
keyword-list-cluster-status
Read the current clustering status for a keyword list.
semrush-cli keyword-list-cluster-status --help| Flag | Type | Default | Required |
|---|---|---|---|
--basket-id | integer | yes | |
--owner-id | integer | yes |
keyword-strategy-create
Generate a structured keyword strategy from a domain or seed phrases. Consumes the clustering allowance.
semrush-cli keyword-strategy-create --helpRequires --confirm. Use --dry-run to inspect the request without sending it.
| Flag | Type | Default | Required |
|---|---|---|---|
--name | string | yes | |
--domain | string | ||
--database | string | "us" | |
--seed-keywords | array | [] | |
--competitors | array | [] | |
--confirm | boolean | false | |
--dry-run | boolean | false |