Position Tracking
Commands and options for position tracking.
position-campaigns
Discover Position Tracking campaigns grouped by SEO project.
semrush position-campaigns --helpMCP tool: position_campaigns.
position-targets
Read targeting configurations for an SEO project.
semrush position-targets --helpMCP tool: position_targets.
| Option | Type | Default | Description |
|---|---|---|---|
--project-id | integer | Required. |
position-locations
Search targeting countries, regions and cities.
semrush position-locations --helpMCP tool: position_locations.
| Option | Type | Default | Description |
|---|---|---|---|
--query | string | Required. | |
--engine | string | Search 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 --helpMCP tool: position_limits.
| Option | Type | Default | Description |
|---|---|---|---|
--project-id | integer | Required. |
position-create
Create one tracking target and start keyword monitoring. Does not purchase add-ons.
semrush position-create --helpMCP tool: position_create.
Use --confirm to send the change or --dry-run to preview it.
| Option | Type | Default | Description |
|---|---|---|---|
--project-id | integer | Required. | |
--domain | string | Required. Website or URL matching url_type. Root-domain tracking expects a bare domain. | |
--keywords | array | Required. | |
--location-id | integer | Required. | |
--name | string | ||
--url-type | string | "rootdomain" | Values: "rootdomain", "subdomain", "subfolder", "url". |
--engine | string | "google" | Values: "google", "bing", "baidu", "search-gpt", "google-ai", "gemini". |
--device | string | "desktop" | Values: "desktop", "phone", "tablet". |
--language-code | string | "en" | |
--volume-type | string | "national" | Values: "national", "regional", "local". |
--timezone | integer | 0 | |
--weekly-notification | boolean | false | |
--business-name | string | "" | |
--brands | array | [] | |
--tags | array | [] | |
--confirm | boolean | false | |
--dry-run | boolean | false |
position-keywords-add
Add tracking keywords with optional tags. Consumes keyword or prompt allowance.
semrush position-keywords-add --helpMCP tool: position_keywords_add.
Use --confirm to send the change or --dry-run to preview it.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. Composite tracking campaign ID from position-create or position-campaigns, not the SEO project ID. | |
--keywords | array | Required. | |
--tags | array | [] | |
--confirm | boolean | false | |
--dry-run | boolean | false |
position-keywords-delete
Delete selected tracking keywords.
semrush position-keywords-delete --helpMCP tool: position_keywords_delete.
Use --confirm to send the change or --dry-run to preview it.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. Composite tracking campaign ID from position-create or position-campaigns, not the SEO project ID. | |
--keywords | array | Required. | |
--confirm | boolean | false | |
--dry-run | boolean | false |
position-keyword-tags
Add or remove tags on selected tracking keywords.
semrush position-keyword-tags --helpMCP tool: position_keyword_tags.
Use --confirm to send the change or --dry-run to preview it.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. Composite tracking campaign ID from position-create or position-campaigns, not the SEO project ID. | |
--keywords | array | Required. | |
--add-tags | array | [] | |
--remove-tags | array | [] | |
--confirm | boolean | false | |
--dry-run | boolean | false |
position-competitors-set
Replace the tracking campaign competitor list. An empty array clears it.
semrush position-competitors-set --helpMCP tool: position_competitors_set.
Use --confirm to send the change or --dry-run to preview it.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. Composite tracking campaign ID from position-create or position-campaigns, not the SEO project ID. | |
--competitors | array | Required. | |
--confirm | boolean | false | |
--dry-run | boolean | false |
position-info
Read tracking settings, competitors and available dates.
semrush position-info --helpMCP tool: position_info.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--today | string | Date as YYYYMMDD within the campaign history. |
position-tags
Read the campaign keyword tags.
semrush position-tags --helpMCP tool: position_tags.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. |
position-campaign-limits
Read limits for a tracking target.
semrush position-campaign-limits --helpMCP tool: position_campaign_limits.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. |
position-overview
Read keyword rankings for tracked competitors.
semrush position-overview --helpMCP tool: position_overview.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--date-begin | string | Required. Date as YYYYMMDD within the campaign history. | |
--date-end | string | Required. Date as YYYYMMDD within the campaign history. | |
--competitors | array | Required. Tracking target patterns, for example .example.com/. Read position-info for campaign targets. | |
--type | string | "organic" | Values: "organic", "adwords". |
--volume-level | string | "national" | Values: "national", "local". |
--limit | integer | 20 | |
--offset | integer | 0 | |
--sort-field | string | "visibility" | Values: "visibility", "traffic". |
--sort-order | string | "desc" | Values: "asc", "desc". |
--sort-date | string | "end" | Values: "begin", "end", "diff". |
--sort-competitor | integer | 0 |
position-overview-trend
Read visibility, traffic and position trends.
semrush position-overview-trend --helpMCP tool: position_overview_trend.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--date-begin | string | Required. Date as YYYYMMDD within the campaign history. | |
--date-end | string | Required. Date as YYYYMMDD within the campaign history. | |
--competitors | array | Required. Tracking target patterns, for example .example.com/. Read position-info for campaign targets. | |
--type | string | "organic" | Values: "organic", "adwords". |
--volume-level | string | "national" | Values: "national", "local". |
--need-predictions | boolean | false |
position-distribution-trend
Read ranking distribution history.
semrush position-distribution-trend --helpMCP tool: position_distribution_trend.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--date-begin | string | Required. Date as YYYYMMDD within the campaign history. | |
--date-end | string | Required. Date as YYYYMMDD within the campaign history. | |
--competitors | array | Required. Tracking target patterns, for example .example.com/. Read position-info for campaign targets. | |
--type | string | "organic" | Values: "organic", "adwords". |
--volume-level | string | "national" | Values: "national", "local". |
--sort-field | string | "visibility" | Values: "visibility", "traffic". |
--sort-order | string | "desc" | Values: "asc", "desc". |
--sort-date | string | "end" | Values: "begin", "end", "diff". |
--sort-competitor | integer | 0 |
position-pages
Read tracked landing-page performance.
semrush position-pages --helpMCP tool: position_pages.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--date-begin | string | Required. Date as YYYYMMDD within the campaign history. | |
--date-end | string | Required. Date as YYYYMMDD within the campaign history. | |
--competitors | array | Required. Tracking target patterns, for example .example.com/. Read position-info for campaign targets. | |
--type | string | "organic" | Values: "organic", "adwords". |
--volume-level | string | "national" | Values: "national", "local". |
--limit | integer | 20 | |
--offset | integer | 0 | |
--sort-field | string | "traffic" | Values: "visibility", "traffic". |
--sort-order | string | "desc" | Values: "asc", "desc". |
--sort-date | string | "end" | Values: "begin", "end", "diff". |
position-cannibalization-trend
Read keyword cannibalization health history.
semrush position-cannibalization-trend --helpMCP tool: position_cannibalization_trend.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--date-begin | string | Required. Date as YYYYMMDD within the campaign history. | |
--date-end | string | Required. Date as YYYYMMDD within the campaign history. | |
--competitors | array | Required. Tracking target patterns, for example .example.com/. Read position-info for campaign targets. | |
--type | string | "organic" | Values: "organic", "adwords". |
--volume-level | string | "national" | Values: "national", "local". |
position-configure
Change supplied tracking domain, business, brand or volume settings while preserving omitted fields.
semrush position-configure --helpMCP tool: position_configure.
Use --confirm to send the change or --dry-run to preview it.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--domain | string | Website or URL matching url_type. Root-domain tracking expects a bare domain. | |
--url-type | string | Values: "rootdomain", "subdomain", "subfolder", "url". | |
--business-name | string | ||
--brands | array | At least one brand. The native endpoint ignores an empty array when brands already exist. | |
--volume-type | string | Values: "national", "regional", "local". | |
--confirm | boolean | false | |
--dry-run | boolean | false |
position-alerts
Read a page of tracking alerts without marking them as read.
semrush position-alerts --helpMCP tool: position_alerts.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--page | integer | 1 | |
--limit | integer | 50 |
position-alert-counts
Read total and unread tracking alert counts.
semrush position-alert-counts --helpMCP tool: position_alert_counts.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. |
position-triggers
Read tracking alert rules.
semrush position-triggers --helpMCP tool: position_triggers.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. |
position-trigger-count
Read the tracking alert rule count.
semrush position-trigger-count --helpMCP tool: position_trigger_count.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. |
position-trigger-create
Create a position alert rule for an explicit tracked target pattern.
semrush position-trigger-create --helpMCP tool: position_trigger_create.
Use --confirm to send the change or --dry-run to preview it.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--domain | string | Required. Exact ASCII tracking_url or competitor URL from position-info, for example example.com. | |
--condition | string | Required. Values: "changes_more_than", "enters_top", "leaves_top", "gains_more_than", "loses_more_than". | |
--threshold | integer | Required. | |
--confirm | boolean | false | |
--dry-run | boolean | false |
position-trigger-update
Replace a selected position alert rule.
semrush position-trigger-update --helpMCP tool: position_trigger_update.
Use --confirm to send the change or --dry-run to preview it.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--trigger-id | string | Required. | |
--domain | string | Required. Exact ASCII tracking_url or competitor URL from position-info, for example example.com. | |
--condition | string | Required. Values: "changes_more_than", "enters_top", "leaves_top", "gains_more_than", "loses_more_than". | |
--threshold | integer | Required. | |
--confirm | boolean | false | |
--dry-run | boolean | false |
position-trigger-delete
Delete one selected position alert rule.
semrush position-trigger-delete --helpMCP tool: position_trigger_delete.
Use --confirm to send the change or --dry-run to preview it.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--trigger-id | string | Required. | |
--confirm | boolean | false | |
--dry-run | boolean | false |
position-distribution
Read selected competitors' ranking distribution and top-position buckets.
semrush position-distribution --helpMCP tool: position_distribution.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--date-begin | string | Required. Date as YYYYMMDD within the campaign history. | |
--date-end | string | Required. Date as YYYYMMDD within the campaign history. | |
--competitors | array | Required. Tracking target patterns, for example .example.com/. Read position-info for campaign targets. | |
--type | string | "organic" | Values: "organic", "adwords". |
--volume-level | string | "national" | Values: "national", "local". |
--sort-field | string | "traffic" | Values: "visibility", "traffic", "top3", "top10", "top20", "top50", "top100". |
--sort-order | string | "desc" | Values: "asc", "desc". |
--sort-date | string | "end" | Values: "begin", "end", "diff". |
--sort-top | string | Values: "all", "new", "lost", "improved", "declined". |
position-targets-compare
Compare tracked keyword rankings across explicitly selected device/location targets.
semrush position-targets-compare --helpMCP tool: position_targets_compare.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--date-begin | string | Required. Date as YYYYMMDD within the campaign history. | |
--date-end | string | Required. Date as YYYYMMDD within the campaign history. | |
--type | string | "organic" | Values: "organic", "adwords". |
--volume-level | string | "national" | Values: "national", "local". |
--limit | integer | 20 | |
--offset | integer | 0 | |
--sort-field | string | "position" | Values: "position", "keyword", "volume". |
--sort-order | string | "asc" | Values: "asc", "desc". |
--sort-date | string | "end" | Values: "begin", "end", "diff". |
--target-ids | array | Required. Complete campaign IDs from position-targets for selected locations/devices. | |
--intersection-type | string | "all" | Values: "all", "shared", "not_in_main", "only_in_main". |
--sort-target | integer | 0 | |
--competitors | array | Required. 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 --helpMCP tool: position_competitors.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--date-begin | string | Required. Date as YYYYMMDD within the campaign history. | |
--date-end | string | Required. Date as YYYYMMDD within the campaign history. | |
--type | string | "organic" | Values: "organic", "adwords". |
--volume-level | string | "national" | Values: "national", "local". |
--limit | integer | 20 | |
--offset | integer | 0 | |
--sort-field | string | "visibility" | Values: "visibility", "traffic", "matches", "average_position". |
--sort-order | string | "desc" | Values: "asc", "desc". |
--sort-date | string | "end" | Values: "begin", "end", "diff". |
--main-competitor | string | Required. Tracked website or URL matching url_type, for example example.com. | |
--url-type | string | "rootdomain" | Values: "rootdomain", "subdomain", "subfolder", "url". |
--sort-competitor | integer | 0 |
position-keywords
Read all tracked keywords and tags, including targets without ranking data.
semrush position-keywords --helpMCP tool: position_keywords.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. |
position-delete
Permanently delete one tracking target and its ranking history. Preserve other targets and the SEO project.
semrush position-delete --helpMCP tool: position_delete.
Use --confirm to send the change or --dry-run to preview it.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--confirm | boolean | false | |
--dry-run | boolean | false |
position-replace
Replace tracking engine, device, location or language and permanently clear ranking history. Preserve current keywords, tags and other settings.
semrush position-replace --helpMCP tool: position_replace.
Use --confirm to send the change or --dry-run to preview it.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--engine | string | Values: "google", "bing", "baidu", "search-gpt", "google-ai", "gemini". | |
--device | string | Values: "desktop", "phone", "tablet". | |
--location-id | integer | ||
--language-code | string | ||
--volume-type | string | Values: "national", "regional", "local". | |
--timezone | integer | 0 | |
--confirm | boolean | false | |
--dry-run | boolean | false |
position-alert-read
Read one selected tracking alert and mark it as read. Requires confirmation.
semrush position-alert-read --helpMCP tool: position_alert_read.
Use --confirm to send the change or --dry-run to preview it.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--confirm | boolean | false | |
--dry-run | boolean | false | |
--alert-id | string | Required. Exact opaque alert_id string from position-alerts. |
position-alert-delete
Permanently delete one selected tracking alert.
semrush position-alert-delete --helpMCP tool: position_alert_delete.
Use --confirm to send the change or --dry-run to preview it.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--confirm | boolean | false | |
--dry-run | boolean | false | |
--alert-id | string | Required. 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 --helpMCP tool: position_alert_mark_all_read.
Use --confirm to send the change or --dry-run to preview it.
| Option | Type | Default | Description |
|---|---|---|---|
--campaign-id | string | Required. | |
--confirm | boolean | false | |
--dry-run | boolean | false |