semrush cli
Commands

Position Tracking

Commands and options for position tracking.

position-campaigns

Discover Position Tracking campaigns grouped by SEO project.

semrush position-campaigns --help

MCP tool: position_campaigns.

position-targets

Read targeting configurations for an SEO project.

semrush position-targets --help

MCP tool: position_targets.

OptionTypeDefaultDescription
--project-idintegerRequired.

position-locations

Search targeting countries, regions and cities.

semrush position-locations --help

MCP tool: position_locations.

OptionTypeDefaultDescription
--querystringRequired.
--enginestringSearch engine used to resolve native location and language options. Values: "google", "bing", "baidu", "search-gpt", "google-ai", "gemini".

position-limits

Read owner keyword, prompt and tracking-target allowances.

semrush position-limits --help

MCP tool: position_limits.

OptionTypeDefaultDescription
--project-idintegerRequired.

position-create

Create one tracking target and start keyword monitoring. Does not purchase add-ons.

semrush position-create --help

MCP tool: position_create.

Use --confirm to send the change or --dry-run to preview it.

OptionTypeDefaultDescription
--project-idintegerRequired.
--domainstringRequired. Website or URL matching url_type. Root-domain tracking expects a bare domain.
--keywordsarrayRequired.
--location-idintegerRequired.
--namestring
--url-typestring"rootdomain"Values: "rootdomain", "subdomain", "subfolder", "url".
--enginestring"google"Values: "google", "bing", "baidu", "search-gpt", "google-ai", "gemini".
--devicestring"desktop"Values: "desktop", "phone", "tablet".
--language-codestring"en"
--volume-typestring"national"Values: "national", "regional", "local".
--timezoneinteger0
--weekly-notificationbooleanfalse
--business-namestring""
--brandsarray[]
--tagsarray[]
--confirmbooleanfalse
--dry-runbooleanfalse

position-keywords-add

Add tracking keywords with optional tags. Consumes keyword or prompt allowance.

semrush position-keywords-add --help

MCP tool: position_keywords_add.

Use --confirm to send the change or --dry-run to preview it.

OptionTypeDefaultDescription
--campaign-idstringRequired. Composite tracking campaign ID from position-create or position-campaigns, not the SEO project ID.
--keywordsarrayRequired.
--tagsarray[]
--confirmbooleanfalse
--dry-runbooleanfalse

position-keywords-delete

Delete selected tracking keywords.

semrush position-keywords-delete --help

MCP tool: position_keywords_delete.

Use --confirm to send the change or --dry-run to preview it.

OptionTypeDefaultDescription
--campaign-idstringRequired. Composite tracking campaign ID from position-create or position-campaigns, not the SEO project ID.
--keywordsarrayRequired.
--confirmbooleanfalse
--dry-runbooleanfalse

position-keyword-tags

Add or remove tags on selected tracking keywords.

semrush position-keyword-tags --help

MCP tool: position_keyword_tags.

Use --confirm to send the change or --dry-run to preview it.

OptionTypeDefaultDescription
--campaign-idstringRequired. Composite tracking campaign ID from position-create or position-campaigns, not the SEO project ID.
--keywordsarrayRequired.
--add-tagsarray[]
--remove-tagsarray[]
--confirmbooleanfalse
--dry-runbooleanfalse

position-competitors-set

Replace the tracking campaign competitor list. An empty array clears it.

semrush position-competitors-set --help

MCP tool: position_competitors_set.

Use --confirm to send the change or --dry-run to preview it.

OptionTypeDefaultDescription
--campaign-idstringRequired. Composite tracking campaign ID from position-create or position-campaigns, not the SEO project ID.
--competitorsarrayRequired.
--confirmbooleanfalse
--dry-runbooleanfalse

position-info

Read tracking settings, competitors and available dates.

semrush position-info --help

MCP tool: position_info.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--todaystringDate as YYYYMMDD within the campaign history.

position-tags

Read the campaign keyword tags.

semrush position-tags --help

MCP tool: position_tags.

OptionTypeDefaultDescription
--campaign-idstringRequired.

position-campaign-limits

Read limits for a tracking target.

semrush position-campaign-limits --help

MCP tool: position_campaign_limits.

OptionTypeDefaultDescription
--campaign-idstringRequired.

position-overview

Read keyword rankings for tracked competitors.

semrush position-overview --help

MCP tool: position_overview.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--date-beginstringRequired. Date as YYYYMMDD within the campaign history.
--date-endstringRequired. Date as YYYYMMDD within the campaign history.
--competitorsarrayRequired. Tracking target patterns, for example .example.com/. Read position-info for campaign targets.
--typestring"organic"Values: "organic", "adwords".
--volume-levelstring"national"Values: "national", "local".
--limitinteger20
--offsetinteger0
--sort-fieldstring"visibility"Values: "visibility", "traffic".
--sort-orderstring"desc"Values: "asc", "desc".
--sort-datestring"end"Values: "begin", "end", "diff".
--sort-competitorinteger0

position-overview-trend

Read visibility, traffic and position trends.

semrush position-overview-trend --help

MCP tool: position_overview_trend.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--date-beginstringRequired. Date as YYYYMMDD within the campaign history.
--date-endstringRequired. Date as YYYYMMDD within the campaign history.
--competitorsarrayRequired. Tracking target patterns, for example .example.com/. Read position-info for campaign targets.
--typestring"organic"Values: "organic", "adwords".
--volume-levelstring"national"Values: "national", "local".
--need-predictionsbooleanfalse

position-distribution-trend

Read ranking distribution history.

semrush position-distribution-trend --help

MCP tool: position_distribution_trend.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--date-beginstringRequired. Date as YYYYMMDD within the campaign history.
--date-endstringRequired. Date as YYYYMMDD within the campaign history.
--competitorsarrayRequired. Tracking target patterns, for example .example.com/. Read position-info for campaign targets.
--typestring"organic"Values: "organic", "adwords".
--volume-levelstring"national"Values: "national", "local".
--sort-fieldstring"visibility"Values: "visibility", "traffic".
--sort-orderstring"desc"Values: "asc", "desc".
--sort-datestring"end"Values: "begin", "end", "diff".
--sort-competitorinteger0

position-pages

Read tracked landing-page performance.

semrush position-pages --help

MCP tool: position_pages.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--date-beginstringRequired. Date as YYYYMMDD within the campaign history.
--date-endstringRequired. Date as YYYYMMDD within the campaign history.
--competitorsarrayRequired. Tracking target patterns, for example .example.com/. Read position-info for campaign targets.
--typestring"organic"Values: "organic", "adwords".
--volume-levelstring"national"Values: "national", "local".
--limitinteger20
--offsetinteger0
--sort-fieldstring"traffic"Values: "visibility", "traffic".
--sort-orderstring"desc"Values: "asc", "desc".
--sort-datestring"end"Values: "begin", "end", "diff".

position-cannibalization-trend

Read keyword cannibalization health history.

semrush position-cannibalization-trend --help

MCP tool: position_cannibalization_trend.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--date-beginstringRequired. Date as YYYYMMDD within the campaign history.
--date-endstringRequired. Date as YYYYMMDD within the campaign history.
--competitorsarrayRequired. Tracking target patterns, for example .example.com/. Read position-info for campaign targets.
--typestring"organic"Values: "organic", "adwords".
--volume-levelstring"national"Values: "national", "local".

position-configure

Change supplied tracking domain, business, brand or volume settings while preserving omitted fields.

semrush position-configure --help

MCP tool: position_configure.

Use --confirm to send the change or --dry-run to preview it.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--domainstringWebsite or URL matching url_type. Root-domain tracking expects a bare domain.
--url-typestringValues: "rootdomain", "subdomain", "subfolder", "url".
--business-namestring
--brandsarrayAt least one brand. The native endpoint ignores an empty array when brands already exist.
--volume-typestringValues: "national", "regional", "local".
--confirmbooleanfalse
--dry-runbooleanfalse

position-alerts

Read a page of tracking alerts without marking them as read.

semrush position-alerts --help

MCP tool: position_alerts.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--pageinteger1
--limitinteger50

position-alert-counts

Read total and unread tracking alert counts.

semrush position-alert-counts --help

MCP tool: position_alert_counts.

OptionTypeDefaultDescription
--campaign-idstringRequired.

position-triggers

Read tracking alert rules.

semrush position-triggers --help

MCP tool: position_triggers.

OptionTypeDefaultDescription
--campaign-idstringRequired.

position-trigger-count

Read the tracking alert rule count.

semrush position-trigger-count --help

MCP tool: position_trigger_count.

OptionTypeDefaultDescription
--campaign-idstringRequired.

position-trigger-create

Create a position alert rule for an explicit tracked target pattern.

semrush position-trigger-create --help

MCP tool: position_trigger_create.

Use --confirm to send the change or --dry-run to preview it.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--domainstringRequired. Exact ASCII tracking_url or competitor URL from position-info, for example example.com.
--conditionstringRequired. Values: "changes_more_than", "enters_top", "leaves_top", "gains_more_than", "loses_more_than".
--thresholdintegerRequired.
--confirmbooleanfalse
--dry-runbooleanfalse

position-trigger-update

Replace a selected position alert rule.

semrush position-trigger-update --help

MCP tool: position_trigger_update.

Use --confirm to send the change or --dry-run to preview it.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--trigger-idstringRequired.
--domainstringRequired. Exact ASCII tracking_url or competitor URL from position-info, for example example.com.
--conditionstringRequired. Values: "changes_more_than", "enters_top", "leaves_top", "gains_more_than", "loses_more_than".
--thresholdintegerRequired.
--confirmbooleanfalse
--dry-runbooleanfalse

position-trigger-delete

Delete one selected position alert rule.

semrush position-trigger-delete --help

MCP tool: position_trigger_delete.

Use --confirm to send the change or --dry-run to preview it.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--trigger-idstringRequired.
--confirmbooleanfalse
--dry-runbooleanfalse

position-distribution

Read selected competitors' ranking distribution and top-position buckets.

semrush position-distribution --help

MCP tool: position_distribution.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--date-beginstringRequired. Date as YYYYMMDD within the campaign history.
--date-endstringRequired. Date as YYYYMMDD within the campaign history.
--competitorsarrayRequired. Tracking target patterns, for example .example.com/. Read position-info for campaign targets.
--typestring"organic"Values: "organic", "adwords".
--volume-levelstring"national"Values: "national", "local".
--sort-fieldstring"traffic"Values: "visibility", "traffic", "top3", "top10", "top20", "top50", "top100".
--sort-orderstring"desc"Values: "asc", "desc".
--sort-datestring"end"Values: "begin", "end", "diff".
--sort-topstringValues: "all", "new", "lost", "improved", "declined".

position-targets-compare

Compare tracked keyword rankings across explicitly selected device/location targets.

semrush position-targets-compare --help

MCP tool: position_targets_compare.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--date-beginstringRequired. Date as YYYYMMDD within the campaign history.
--date-endstringRequired. Date as YYYYMMDD within the campaign history.
--typestring"organic"Values: "organic", "adwords".
--volume-levelstring"national"Values: "national", "local".
--limitinteger20
--offsetinteger0
--sort-fieldstring"position"Values: "position", "keyword", "volume".
--sort-orderstring"asc"Values: "asc", "desc".
--sort-datestring"end"Values: "begin", "end", "diff".
--target-idsarrayRequired. Complete campaign IDs from position-targets for selected locations/devices.
--intersection-typestring"all"Values: "all", "shared", "not_in_main", "only_in_main".
--sort-targetinteger0
--competitorsarrayRequired. Tracking target patterns, for example .example.com/. Read position-info for campaign targets.

position-competitors

Discover competing websites for an explicit tracked website.

semrush position-competitors --help

MCP tool: position_competitors.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--date-beginstringRequired. Date as YYYYMMDD within the campaign history.
--date-endstringRequired. Date as YYYYMMDD within the campaign history.
--typestring"organic"Values: "organic", "adwords".
--volume-levelstring"national"Values: "national", "local".
--limitinteger20
--offsetinteger0
--sort-fieldstring"visibility"Values: "visibility", "traffic", "matches", "average_position".
--sort-orderstring"desc"Values: "asc", "desc".
--sort-datestring"end"Values: "begin", "end", "diff".
--main-competitorstringRequired. Tracked website or URL matching url_type, for example example.com.
--url-typestring"rootdomain"Values: "rootdomain", "subdomain", "subfolder", "url".
--sort-competitorinteger0

position-keywords

Read all tracked keywords and tags, including targets without ranking data.

semrush position-keywords --help

MCP tool: position_keywords.

OptionTypeDefaultDescription
--campaign-idstringRequired.

position-delete

Permanently delete one tracking target and its ranking history. Preserve other targets and the SEO project.

semrush position-delete --help

MCP tool: position_delete.

Use --confirm to send the change or --dry-run to preview it.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--confirmbooleanfalse
--dry-runbooleanfalse

position-replace

Replace tracking engine, device, location or language and permanently clear ranking history. Preserve current keywords, tags and other settings.

semrush position-replace --help

MCP tool: position_replace.

Use --confirm to send the change or --dry-run to preview it.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--enginestringValues: "google", "bing", "baidu", "search-gpt", "google-ai", "gemini".
--devicestringValues: "desktop", "phone", "tablet".
--location-idinteger
--language-codestring
--volume-typestringValues: "national", "regional", "local".
--timezoneinteger0
--confirmbooleanfalse
--dry-runbooleanfalse

position-alert-read

Read one selected tracking alert and mark it as read. Requires confirmation.

semrush position-alert-read --help

MCP tool: position_alert_read.

Use --confirm to send the change or --dry-run to preview it.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--confirmbooleanfalse
--dry-runbooleanfalse
--alert-idstringRequired. Exact opaque alert_id string from position-alerts.

position-alert-delete

Permanently delete one selected tracking alert.

semrush position-alert-delete --help

MCP tool: position_alert_delete.

Use --confirm to send the change or --dry-run to preview it.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--confirmbooleanfalse
--dry-runbooleanfalse
--alert-idstringRequired. Exact opaque alert_id string from position-alerts.

position-alert-mark-all-read

Mark every alert in one selected tracking target as read, across all pages.

semrush position-alert-mark-all-read --help

MCP tool: position_alert_mark_all_read.

Use --confirm to send the change or --dry-run to preview it.

OptionTypeDefaultDescription
--campaign-idstringRequired.
--confirmbooleanfalse
--dry-runbooleanfalse

On this page