contacts

Telephone

United States

dropdown button

United States

Canada

United Kingdom

Spain

France

Italy

Germany

Australia

+1 (800) 815 - 9959

10:00 AM - 5:00 PM (EST/EDT)

Monday - Friday

mobile-menu

Position Tracking

Projects divider Last updated: May 10, 2024

Basic doc

About Position Tracking API

The Position Tracking API methods can be divided into three groups: Management, Available regions, and Reports.

Management

Lets you create a Position Tracking campaign and manage the process of sending emails with tracking campaign statistics.

Base URL

https://api.semrush.com/management/v1/projects/{projectID or campaignID}/tracking/

Available regions

Returns a list of available countries with corresponding regions and cities.

Base URL

https://api.semrush.com/management/v1/info/

Reports

Returns a set of reports about your product. All of the report requests use the HTTP GET method.

Base URL

https://api.semrush.com/reports/v1/projects/{campaignID}/tracking/

Project and campaign IDs

Both project and campaign IDs are required to send requests through the Position Tracking API.

To find the IDs for a specific campaign using the Semrush web interface, open your campaign in the Position Tracking tool. Then, look at the name of the HTML page in your browser's address bar. The number before the underscore represents the project ID, while the number following the underscore is the campaign ID.

Project and campaign IDs in the address bar

To find the IDs for multiple campaigns, use the request that returns a list of all campaigns within a project. This request consumes 100 API units and requires you to know the project ID. You can check your project ID either by using the method described earlier or by sending the request that returns a list of all your projects, including their IDs and basic information.

URL parameter mask

Use a proper mask in requests with the url parameter:

URL type Mask example
rootdomain *.ebay.com/*
subdomain www.ebay.com/*
subfolder ebay.com/motors/*
url http://www.ebay.com/motors/

URL encoding

Encode parameter values containing special characters. Encoding reference ›

When using the display_tags_condition parameter in requests, any tag values that include special characters must be double-encoded.
For example, the "name&co" tag must be submitted as "name%2526co". Here, %25 is decoded as the % character, and then %26 is decoded as the & character.

Tags

All tags used in either campaign update or filter parameters are sanitized before use following these rules:

  • Any characters other than letters, digits, spaces, or specific allowed symbols, such as .,&,-,$,+,', and #, are removed.
  • Sequences of two or more spaces are replaced with a single space.
  • Three or more underscores in a row are replaced with two underscores.
  • Underscores at the beginning or end of tags are trimmed.
  • All tags are converted to lowercase and spaces are trimmed.

Sortings

{DATE} is a date in the YYYYMMDD format.
{DOMAIN_N} is a domain number: 0, 1, 2, 3, 4.

Value Description
ad_asc By the difference in average position over the selected period, in ascending order
ad_desc By the difference in average position over the selected period, in descending order
0_av_asc By average position on the start date of the selected period, in ascending order
0_av_desc By average position on the start date of the selected period, in descending order
1_av_asc By average position on the end date of the selected period, in ascending order
1_av_desc By average position on the end date of the selected period, in descending order
av_asc By average position, in ascending order
av_desc By average position, in descending order
{DOMAIN_N}_be_asc By position at the start date of the selected period, in ascending order
{DOMAIN_N}_be_desc By position at the start date of the selected period, in descending order
cd_asc By visibility change, in ascending order
cd_desc By visibility change, in descending order
cl_asc By visibility, in ascending order
cl_desc By visibility, in descending order
cp_asc By CPC, in ascending order
cp_desc By CPC, in descending order
{DATE}_asc By date, in ascending order
{DATE}_desc By date, in descending order
{DOMAIN_N}_diff_asc By position change, in ascending order
{DOMAIN_N}_diff_desc By position change, in descending order
{DOMAIN_N}_fi_asc By position at the end date of the selected period, in ascending order
{DOMAIN_N}_fi_desc By position at the end date of the selected period, in descending order
{DOMAIN_N}_pos_asc By position at the end date of the selected period, in ascending order
{DOMAIN_N}_pos_desc By position at the end date of the selected period, in descending order
0_mc_asc By the number of keywords having a specific URL on SERP for the start date of the selected period, in ascending order
0_mc_desc By the number of keywords having a specific URL on SERP for the start date of the selected period, in descending order
1_mc_asc By the number of keywords having a specific URL on SERP for the end date of the selected period, in ascending order
1_mc_desc By the number of keywords having a specific URL on SERP for the end date of the selected period, in descending order
md_asc By the difference in the number of keywords having a specific URL on SERP over the selected period, in ascending order
md_desc By the difference in the number of keywords having a specific URL on SERP over the selected period, in descending order
0_nq_asc By volume on the start date of the selected period, in ascending order
0_nq_desc By volume on the start date of the selected period, in descending order
1_nq_asc By volume on the end date of the selected period, in ascending order
1_nq_desc By volume on the end date of the selected period, in descending order
nq_asc By volume, in ascending order
nq_desc By volume, in descending order
ph_asc By keyword, in ascending order
ph_desc By keyword, in descending order
rd_asc By the difference in volume over the selected period, in ascending order
rd_desc By the difference in volume over the selected period, in descending order
sov_asc By Share of Voice, in ascending order
sov_desc By Share of Voice, in descending order
sovdiff_asc By the difference in Share of Voice over the selected period, in ascending order
sovdiff_desc By the difference in Share of Voice over the selected period, in descending order
0_tr_asc By estimated traffic on the start date of the selected period, in ascending order
0_tr_desc By estimated traffic on the start date of the selected period, in descending order
1_tr_asc By estimated traffic on the end date of the selected period, in ascending order
1_tr_desc By estimated traffic on the end date of the selected period, in descending order
trdiff_asc By the difference in the estimated traffic over the selected period, in ascending order
trdiff_desc By the difference in the estimated traffic over the selected period, in descending order
ur_asc By URL, in ascending order
ur_desc By URL, in descending order
vi_asc By visibility, in ascending order
vi_desc By visibility, in descending order
0_vd_asc By the difference in visibility over the selected period, in ascending order
0_vd_desc By the difference in visibility over the selected period, in descending order
Show all

Filters

To apply a filter to a report, add the display_filter parameter with a URL-encoded string that contains filter parameters separated by "|". You can apply up to 25 filter parameters in a single request.

A filter consists of <sign>|<field>|<operation>|<value>.

The following filter narrows down the report data to keywords that contain the word "phone", have a volume greater than 10,000, and CPC greater than 2.

Example filter

display_filter=+|Ph|Co|phone|+|Nq|Gt|10000|+|Cp|Gt|2

Example filter encoded for adding it to a request

display_filter=%2B%7CPh%7CCo%7Cphone%7C%2B%7CNq%7CGt%7C10000%7C%2B%7CCp%7CGt%7C2

Parameter Values Description
sign +, - Include or exclude
field Ph, Cp, Nq Ph: Phrase.
Cp: Average price in USD that the advertisers pay for a user’s click on an ad containing the given keyword (Google Ads).
Nq: Average number of times users have searched for a given keyword per month. The value is calculated over the last 12 months.
operation For metrics fields: Eq, Gt, Lt

For text fields: Bw, Ew, Eq, Co
For metrics fields:
Eq: Exactly matching
Gt: Greater than
Lt: Less than

For text fields:
Bw: Begins with
Ew: Ends with
Eq: Exactly matching
Co: Containing
value string Value to filter for.

SERP Features

The table provides a list of supported SERP features with their letter-based codes and descriptions.

Code Name Description
aai Ask AI An AI-generated response.
adb Google Ads bottom A series of ads that appear at the bottom of the first search results page.
adt Google Ads top A series of ads that appear at the top of the first search results page.
aic AI chat An AI-generated chat response.
aim AI summary A brief AI-generated summary.
aio AI overview A summarized AI-generated overview.
ais AI stories AI-generated stories.
amp AMP Pages that are more mobile-friendly. Google doesn't distinguish them from other search results.
app Apps block A block that displays apps among organic
search results.
car Organic carousel A row of horizontally scrollable images displayed at the top of search results.
flg Flights A block that displays flights related to a search query. Flight results include information on flight dates, duration, the number of transfers and prices. Data is taken from Google Flights.
fsn Featured snippet A short answer to a user's search query with a link to the third-party website it is taken from that appears at the top of all organic search results.
geo Local pack A map with three local results that appears at the top of organic search results for a local search query.
hot Hotels A block that displays hotels related to a search query. Hotel results include information on prices and rating, and allows users to check availability for certain dates.
img Images A collection of images is usually displayed at the top of the SERP if Google considers visual results to be more relevant than text results.
ind Indented A list of related pages from the highest organic search result.
job Jobs A number of job listings related to a search query that appear at the top of the search results page. Job listings include the job title, the company offering the job, a site where the listing was posted, etc.
kng Knowledge panel A block with brief information related to a searched topic that appears to the right of organic search results.
knw Instant answer A direct answer to a user's search query that is usually displayed at the top of organic search results in the form of a gray-bordered box.
new Top stories A card-style snippet presenting up to three news-related results relevant to user's search query, which is usually displayed between organic search results.
rel People also ask A series of questions that may relate to a search query that appears in an expandable grid box labeled "People also ask" between search results.
res Related searches A list of related searches displayed among organic search results.
rev Reviews Organic search results marked with star ratings and including the number of reviews the star rating is based on.
shp Shopping ads A row of horizontally scrollable paid shopping results that appear at the top of a search results page for a brand or product search query, and include the website's name, pricing, and product image.
stl Sitelinks A set of links to other pages of a website that is displayed under the main organic search result and for brand-related search queries.
tea Teaser A map with three local business results (mainly hotels and restaurants) that appears at the top of organic search results for a local search query.
twt Twitter A carousel of tweets displayed among organic search results.
vib Featured video A video result to a search query that is displayed at the top of all organic search results.
vid Video Video results with a thumbnail displayed along with other organic search results.
Show all

You can filter the Organic positions and Organic visibility index reports for keywords based on a specific SERP feature on SERP. The serp_feature_filter can include or exclude keywords containing specified SERP features, and optionally, it can be refined to target keywords where a specific competitor appears within that feature.

The serp_feature_filter consists of -<sf>,<competitor>, where:

  • - (optional): Excludes the specified SERP feature if present.
  • sf: SERP feature code, such as geo for Local Pack or fsn for Featured Snippet.
  • competitor (optional): The position of a competitor within the SERP feature. Note that the numbering of competitors starts with 0.

Example request

Retrieve keywords that include a Featured Snippet for the first competitor

https://api.semrush.com/?type=tracking_position_organic&key=YOUR_API_KEY&action=report&url=apple.com&serp_feature_filter=fsn,0

Create a Position Tracking campaign in a project

Price: 100 API units per request

This request creates a Position Tracking campaign in a project. The newly created campaign won't have any keywords. To add keywords, use the Add keywords to an existing tracking campaign request.

When creating a campaign in a project with one or more tracking campaigns, make sure that a combination of its location and device is different from those in the existing campaigns.

You can use the campaign_id value from the response as {campaignID} in other requests to the Position Tracking API.

About the Position Tracking configuration ›

Request parameters
Name Value/Type Description
key* string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

tracking_url_type* rootdomain, subdomain, subfolder, url

Type of the tracked URL.

tracking_url* string

Tracked URL.

location_id* integer

You can obtain location ID using this method

weekly_notification boolean

true (default): Enable weekly emails.

false: Disable weekly emails.

timezone integer

Time zone. The crawling starts at 05:00 in the specified time zone.

device desktop, phone, tablet

Target device.

business_name string

Business name.

* Fields marked by an asterisk (*) are required

Endpoint (POST)

https://api.semrush.com/management/v1/projects/{projectID}/tracking/enable?key=YOUR_API_KEY

Request example

curl "https://api.semrush.com/management/v1/projects/{projectID}/tracking/enable?key=YOUR_API_KEY" --data-binary @- << EOF
{
  "tracking_url": "example.com",
  "tracking_url_type": "rootdomain",
  "country_id": 2840,
  "weekly_notification": true,
  "device": "desktop",
  "business_name": "example.com"
}
EOF

Response example

{
  "status": "SUCCESS",
  "action": "tracking_enable",
  "result": {
    "campaign_id": "103345921_15710"
  }
}

Enable email-sending containing tracking campaign statistics

Price: 100 API units per request

This request lets you enable the delivery of weekly emails with tracking campaign statistics.

About the Position Tracking configuration ›

Request parameters
Name Value/Type Description
key* string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

* Fields marked by an asterisk (*) are required

Endpoint (PUT)

https://api.semrush.com/management/v1/projects/{campaignID}/tracking/notifications?key=YOUR_API_KEY

Disable email-sending containing tracking campaign statistics

Price: 100 API units per request

This request lets you disable the delivery of weekly emails with tracking campaign statistics.

About the Position Tracking configuration ›

Request parameters
Name Value/Type Description
key* string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

* Fields marked by an asterisk (*) are required

Endpoint (DELETE)

https://api.semrush.com/management/v1/projects/{campaignID}/tracking/notifications?key=YOUR_API_KEY

Add keywords to an existing tracking campaign

Price: 100 API units per keyword added

This request lets you add keywords to track to an existing tracking campaign and group them with tags.

About the Position Tracking configuration ›

Request parameters
Name Value/Type Description
key* string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

campaignID* string

Campaign ID.

keywords array

Keywords.

tags array

Tags for a keyword.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
url string

Domain of a tracking campaign.

tools array

List of project tools activated by the user.

project_id string

Project ID.

project_name string

Project name.

campaign_id string

Campaign ID.

competitors array

Competitors.

keywords array

Keywords.

* Fields marked by an asterisk (*) are required

Endpoint (PUT)

https://api.semrush.com/management/v1/projects/{campaignID}/keywords?key=YOUR_API_KEY

Request example

{
  "keywords": [
    {
      "keyword": "seo",
      "tags": [
        "seo"
      ]
    },
    {
      "keyword": "seotool",
      "tags": [
        "seo"
      ]
    }
  ]
}

Response example

{
  "url": "mysite.com",
  "tools": [
    {
      "tool": "tracking"
    }
  ],
  "project_id": 643526670283248,
  "project_name": "my old project",
  "campaign_id": "643526670283248_17238",
  "competitors": [
    "google.com",
    "ebay.com",
    "bing.com"
  ],
  "keywords": [
    {
      "keyword": "search tool",
      "tags": [
        "search"
      ],
      "timestamp": 1391517755
    },
    {
      "keyword": "search engine",
      "tags": [
        "search"
      ],
      "timestamp": 1391517755
    },
    {
      "keyword": "seo",
      "tags": [
        "seo"
      ],
      "timestamp": 1491517755
    },
    {
      "keyword": "seotool",
      "tags": [
        "seo"
      ],
      "timestamp": 1491517755
    }
  ]
}

Remove keywords from an existing tracking campaign

Price: 100 API units per request

This request lets you remove tracked keywords from an existing tracking campaign.

About the Position Tracking configuration ›

Request parameters
Name Value/Type Description
key* string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

campaignID* string

Campaign ID.

keywords array

Keywords.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
url string

Domain of a tracking campaign.

tools array

List of project tools activated by the user.

project_id string

Project ID.

project_name string

Project name.

campaign_id string

Campaign ID.

competitors array

Competitors.

keywords array

Keywords.

* Fields marked by an asterisk (*) are required

Endpoint (DELETE)

https://api.semrush.com/management/v1/projects/{campaignID}/keywords?key=YOUR_API_KEY

Request example

{
  "keywords": [
    {
      "keyword": "seo"
    },
    {
      "keyword": "seotool"
    }
  ]
}

Response example

{
  "url": "mysite.com",
  "tools": [
    {
      "tool": "tracking"
    }
  ],
  "project_id": 643526670283248,
  "project_name": "my old project",
  "campaign_id": "643526670283248_17238",
  "competitors": [
    "google.com",
    "ebay.com",
    "bing.com"
  ],
  "keywords": [
    {
      "keyword": "search tool",
      "tags": [
        "search"
      ],
      "timestamp": 1391517755
    },
    {
      "keyword": "search engine",
      "tags": [
        "search"
      ],
      "timestamp": 1391517755
    }
  ]
}

Add tags to keywords in an existing tracking campaign

Price: 100 API units per request

This request lets you assign up to five tags to each of your tracked keywords.

About the Position Tracking configuration ›

Request parameters
Name Value/Type Description
key* string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

campaignID* string

Campaign ID.

keywords array

Keywords.

tags array

Tags.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
url string

Domain of a tracking campaign.

tools array

List of project tools activated by the user.

project_id string

Project ID.

project_name string

Project name.

campaign_id string

Campaign ID.

competitors array

Competitors.

keywords array

Keywords.

* Fields marked by an asterisk (*) are required

Endpoint (PUT)

https://api.semrush.com/management/v1/projects/{campaignID}/tags?key=YOUR_API_KEY

Request example

[
  {
    "tag": "seo",
    "keywords": [
      "search tool",
      "search engine"
    ]
  },
  {
    "tag": "seo tool",
    "keywords": [
      "search tool",
      "search engine"
    ]
  }
]

Response example

{
   "url": "mysite.com",
   "tools": [
       {
         "tool": "tracking"
       }
   ],
   "project_id": 643526670283248,
   "project_name": "myproject",
   "campaign_id": 643526670283248_17238,
   "competitors": [
       "google.com",
       "ebay.com"
   ],
   "keywords": [
       {
            "keyword": "search tool",
            "tags": [
                "search",
                "seo",
                "seo tool"
             ],
            "timestamp": 1391517755
       },
       {
            "keyword": "search engine",
            "tags": [
                "search",
                "seo",
                "seo tool"
             ],
            "timestamp": 1391517755
       }
   ]
}

Remove tags from keywords in an existing project

Price: 100 API units per request

This request lets you delete up to five tags assigned to each of your tracked keywords.

About the Position Tracking configuration ›

Request parameters
Name Value/Type Description
key* string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

campaignID* string

Campaign ID.

keywords array

Keywords.

tags array

Tags.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
url string

Domain of a tracking campaign.

tools array

List of project tools activated by the user.

project_id string

Project ID.

project_name string

Project name.

campaign_id string

Campaign ID.

competitors array

Competitors.

keywords array

Keywords.

* Fields marked by an asterisk (*) are required

Endpoint (DELETE)

https://api.semrush.com/management/v1/projects/{campaignID}/tags?key=YOUR_API_KEY

Request example

[
  {
    "tag": "seo",
    "keywords": [
      "search tool",
      "search engine"
    ]
  },
  {
    "tag": "seo tool",
    "keywords": [
      "search tool",
      "search engine"
    ]
  }
]

Response example

{
   "url": "mysite.com",
   "tools": [
       {
         "tool": "tracking"
       }
   ],
   "project_id": 643526670283248,
   "project_name": "myproject",
   "campaign_id": 643526670283248_17238,
   "competitors": [
       "google.com",
       "ebay.com"
   ],
   "keywords": [
       {
            "keyword": "search tool",
            "tags": [
                "search"
             ],
            "timestamp": 1391517755
       },
       {
            "keyword": "search engine",
            "tags": [
                "search"
             ],
            "timestamp": 1391517755
       }
   ]
}

Add competitors to an existing tracking campaign

Price: 100 API units per request

This request lets you add competitor domains to an existing tracking campaign.

About adding competitors to a Position Tracking campaign ›

Request parameters
Name Value/Type Description
key* string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

campaignID* string

Campaign ID.

competitors array

List of competitors.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
url string

Domain of a tracking campaign.

tools array

List of project tools activated by the user.

project_id string

Project ID.

project_name string

Project name.

campaign_id string

Campaign ID.

competitors array

Competitors.

keywords array

Keywords.

* Fields marked by an asterisk (*) are required

Endpoint (PUT)

https://api.semrush.com/management/v1/projects/{campaignID}/competitors?key=YOUR_API_KEY

Request example

{
  "competitors": [
    "yahoo.com"
  ]
}

Response example

{
   "url": "mysite.com",
   "tools": [
       {
         "tool": "tracking"
       }
   ],
   "project_id": 643526670283248,
   "project_name": "myproject",
   "campaign_id": 643526670283248_17238,
   "competitors": [
       "google.com",
       "ebay.com",
       "yahoo.com"
   ],
   "keywords": [
       {
            "keyword": "search tool",
            "tags": [
                "search",
                "seo",
                "seo tool"
             ],
            "timestamp": 1391517755
       },
       {
            "keyword": "search engine",
            "tags": [
                "search",
                "seo",
                "seo tool"
             ],
            "timestamp": 1391517755
       }
   ]
}

Remove competitors from an existing tracking campaign

Price: 100 API units per request

This request lets you remove competitors from an existing tracking campaign.

About adding and removing competitors from a Position Tracking campaign ›

Request parameters
Name Value/Type Description
key* string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

campaignID* string

Campaign ID.

competitors array

List of competitors.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
url string

Domain of a tracking campaign.

tools array

List of project tools activated by the user.

project_id string

Project ID.

project_name string

Project name.

campaign_id string

Campaign ID.

competitors array

Competitors.

keywords array

Keywords.

* Fields marked by an asterisk (*) are required

Endpoint (DELETE)

https://api.semrush.com/management/v1/projects/{campaignID}/competitors?key=YOUR_API_KEY

Request example

{
  "competitors": [
    "ebay.com",
    "yahoo.com"
  ]
}

Response example

{
   "url": "mysite.com",
   "tools": [
       {
         "tool": "tracking"
       }
   ],
   "project_id": 643526670283248,
   "project_name": "myproject",
   "campaign_id": 643526670283248_17238,
   "competitors": [
       "google.com"
   ],
   "keywords": [
       {
            "keyword": "search tool",
            "tags": [
                "search",
                "seo",
                "seo tool"
             ],
            "timestamp": 1391517755
       },
       {
            "keyword": "search engine",
            "tags": [
                "search",
                "seo",
                "seo tool"
             ],
            "timestamp": 1391517755
       }
   ]
}

Get a list of campaigns

Price: 100 API units per request

This request returns a list of campaigns in the specified project and basic information about each of them.

To get a list of all your tracking campaigns in the Semrush web interface, refer to the Position Tracking main page.

Request parameters
Name Value/Type Description
key*

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
targets integer

Number of targets available under the user's subscription.

project_id string

Project ID.

device string

Type of SERPs the campaign is set up to track: desktop, phone, or tablet.

engine string

Search engine.

id string

Campaign ID.

isGathering boolean

Whether the campaign is being harvested.

keywords_count integer

Number of keywords in the campaign.

language string

Language.

location->code string

Location code.

location->hl string

Language code.

location->location_id integer

Location ID.

location->name string

Location name.

location->type string

Location type.

url string

Tracked URL.

type string

Tracked URL type.

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/management/v1/projects/{projectID}/tracking/campaigns?key=YOUR_API_KEY

Response example

{
    "project_id": "103580023",
    "targets": [
        {
            "id": "103580023_16852",
            "url": "apple.com",
            "type": "rootdomain",
            "engine": "google",
            "location": {
                "name": "San Francisco, California, United States",
                "location_id": 1014221,
                "type": "city",
                "code": "us",
                "hl": "en"
            },
            "isGathering": false,
            "language": "English",
            "device": "desktop",
            "keywords_count": 81
        },
        ...
    ],
    "limits": {
        "targets": 5000
    }
}
Price: 100 API units per request

This request lets you search for locations by ID, type (region, city, country, ZIP code, and more), or name.

If used without parameters, the request returns top locations ordered by location weight.

Request parameters
Name Value/Type Description
key* string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

location_id integer

Location ID

name string

Location name

country_code AD, AE, AF, AG, AI, AL, AM, AN, AO, AQ,…
AD, AE, AF, AG, AI, AL, AM, AN, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, XK, YE, YT, ZA, ZM, ZW

Country code, as defined by ISO 3166-1 code reference (column Alpha-2 code).

type autonomous community, barrio, borough…
autonomous community, barrio, borough, canton, city, city region, country, county, department, district, governorate, municipality, municipality district, neighborhood, okrug, postal code, prefecture, province, quarter, region, state, sub-district, sub-ward, territory, union territory

Location type

filter_engine google, bing, baidu

Search engine

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
chevron locations array

Array of locations

available_volume_types local, regional, national

Volume types available for the location

chevron location object

Location object

id integer

Location ID

name string

Location name

reversed_name string

Location name in reversed format

formatted_name string

Readable location name

canonical_name string

Canonical location name

parent_id integer

Parent ID

country_code string

Country code

type autonomous community, barrio, boroug…
autonomous community, barrio, borough, canton, city, city region, country, county, department, district, governorate, municipality, municipality district, neighborhood, okrug, postal code, prefecture, province, quarter, region, state, sub-district, sub-ward, territory, union territory,

Location type

chevron languages array of objects

Available languages

id integer

Language ID

hl string

Language code, such as en, es, or cn

name string

Language name, such as English or Chinese

is_default boolean

Whether the language is default for the location

weight integer

Location weight determined by the number of companies established in the location

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/position-tracking/management/v1/info/locations?key=YOUR_API_KEY

Request example

https://api.semrush.com/position-tracking/management/v1/info/locations?key=API_KEY&type=postal%20code&country_code=us

Response example

{
  "locations": [
    {
      "available_volume_types": [
        "national"
      ],
      "location": {
        "id": 2840,
        "name": "United States",
        "formatted_name": "United States",
        "reversed_name": "United States",
        "canonical_name": "United States",
        "parent_id": 0,
        "country_code": "us",
        "type": "country",
        "languages": [
          {
            "id": 0,
            "hl": "en",
            "name": "English",
            "is_default": true
          },
          {
            "id": 0,
            "hl": "es",
            "name": "Spanish",
            "is_default": false
          }
        ],
        "weight": 2774
      }
    }
  ]
}

Get a list of countries

Price: 100 API units per request

This request returns a list of country IDs a project can be set up for.

About the Position Tracking configuration ›

Request parameters
Name Value/Type Description
key string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
id integer

Country ID.

name string

Country name.

code string

Country code.

canonical_name string

Country canonical name.

language->id integer

Language ID.

language->hl string

Language code.

language->name string

Language name.

language->is_default boolean

Whether the language is default for this location.

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/management/v1/info/countries?key=YOUR_API_KEY

Response example

{
  "0": {
    "id": 2826,
    "name": "United Kingdom",
    "code": "GB",
    "canonical_name": "United Kingdom",
    "languages": {
      "0": {
        "id": 4082745666,
        "hl": "en",
        "name": "English",
        "is_default": true
      }
    }
  },
  "1": {
    "id": 2840,
    "name": "United States",
    "code": "US",
    "canonical_name": "United States",
    "languages": {
      "0": {
        "id": 4082745666,
        "hl": "en",
        "name": "English",
        "is_default": true
      },
      "1": {
        "id": 2422189467,
        "hl": "es",
        "name": "Spanish",
        "is_default": false
      }
    }
  },
  "...": "..."
}

Get a list of regions

Price: 100 API units per request

This request returns a list of regions within the specified country for which a project can be set up for.

About the Position Tracking configuration ›

Request parameters
Name Value/Type Description
key string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

country_id integer

Country ID.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
id integer

Region ID.

name string

Region name.

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/management/v1/info/countries/{country_id}/regions?key=YOUR_API_KEY

Response example

{
  "0": {
      "id": 21137,
      "name": "California",
      "code": "US",
      "canonical_name": "California, United States",
      "languages": {
          "0": {
              "id": 4082745666,
              "hl": "en",
              "name": "English",
              "is_default": true
          },
          "1": {
              "id": 2422189467,
              "hl": "es",
              "name": "Spanish",
              "is_default": false
          }
      }
  },
  "1": {
      "id": 21142,
      "name": "Florida",
      "code": "US",
      "canonical_name": "Florida, United States",
      "languages": {
          "0": {
              "id": 4082745666,
              "hl": "en",
              "name": "English",
              "is_default": true
          },
          "1": {
              "id": 2422189467,
              "hl": "es",
              "name": "Spanish",
              "is_default": false
          }
    }
  },
  "...": "..."
}

Get a list of cities

Price: 100 API units per request

This request returns a list of cities within the specified country and region for which a project can be set up for.

About the Position Tracking configuration ›

Request parameters
Name Value/Type Description
key string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

country_id integer

Country ID.

region_id integer

Region ID.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
id integer

City ID.

name string

City name.

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/management/v1/info/countries/{country_id}/regions/{region_id}/cities?key=YOUR_API_KEY

Response example

{
  "0": {
      "id": 1012873,
      "name": "Anchorage",
      "code": "US",
      "canonical_name": "Anchorage, Alaska, United States",
      "languages": {
          "0": {
              "id": 4082745666,
              "hl": "en",
              "name": "English",
              "is_default": true
          },
          "1": {
              "id": 2422189467,
              "hl": "es",
              "name": "Spanish",
              "is_default": false
          }
      }
  },
  "1": {
      "id": 1012874,
      "name": "Anderson",
      "code": "US",
      "canonical_name": "Anderson, Alaska, United States",
      "languages": {
          "0": {
              "id": 4082745666,
              "hl": "en",
              "name": "English",
              "is_default": true
          },
          "1": {
              "id": 2422189467,
              "hl": "es",
              "name": "Spanish",
              "is_default": false
          }
      }
  },
  "...": "..."
}

Campaign dates

Price: 100 API units per request

This request returns a list of dates when campaign data was harvested.

Request parameters
Name Value/Type Description
key* string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

action* report
type* tracking_campaign_dates

Request type.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
total integer

Number of results.

last_crawl integer

Hours elapsed since the last crawl.

Dt Date in YYYYMMDD format

Date.

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/reports/v1/projects/{campaignID}/tracking/

Request example

GET /?key=YOUR_API_KEY&action=report&type=tracking_campaign_dates

Response example

{
    "total": "9",
    "last_crawl": "2",
    "data": {
        "0": {
            "Dt": "20140401",
        },
        "1": {
            "Dt": "20140402",
        },
        "2": {
            "Dt": "20140403",
        },
        "3": {
            "Dt": "20140404",
        },
        ...
    }
}

Organic overview

Price: 100 API units per request

This request returns the number of keywords that land the specified domain on each of the top 100 positions on SERP, the number of new and lost keywords, the number of keywords with improved or decreased rankings, and the number of keywords that have changed their rankings over the selected period.

About the Position Tracking Pages report ›

Request parameters
Name Value/Type Description
key string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

action report
type tracking_overview_organic

Request type.

url string

Tracked URL or competitor URL (with a mask).

display_tags string

Tags separated by the | symbol. To exclude a tag, use the - symbol. If only the included tags are present in the expression, then the OR logic is used to group them. If both included and excluded tags are present, then each category is grouped using the OR logic, but then the AND logic is used to join the categories.

display_tags_condition string

A newer variation of the display_tags filter.

Tags separated by the | symbol (the OR logic) or the & symbol (the AND logic). To exclude a tag, use the ! symbol.

date_begin Date in YYYYMMDD format

Start date of the selected period.

date_end Date in YYYYMMDD format

End date of the selected period.

linktype_filter 0 - Include local pack and hotels ranki…
0 - Include local pack and hotels rankings. This is the default value 1 - Include only local pack and hotels rankings (organic rankings are excluded) 2 - Exclude local pack rankings 524288 - Exclude hotels rankings 524290 - Exclude local pack and hotels rankings

Specifies whether the local pack and hotel rankings should be included in the report output or excluded from it.

business_name string

Business name associated with the domain. It must match the name in Google Business Profile.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
total integer

Number of results.

visibility percentage

Visibility index.

differenceVisibility percentage

Visibility index difference.

all integer

Number of keywords ranking in the top 100.

all_difference integer

Difference in the number of keywords ranking in the top 100.

all_improved integer

Number of improved keywords in the top 100.

all_declined integer

Number of declined keywords in the top 100.

all_left integer

Number of keywords that no longer rank in the top 100.

all_entered integer

Number of keywords that have entered the top 100.

top3 integer

Number of keywords ranking in the top 3.

top3_improved integer

Number of improved keywords in the top 3.

top3_declined integer

Number of declined keywords in the top 3.

top3_difference integer

Difference in the number of keywords ranking in the top 3.

top3_left integer

Number of keywords that no longer rank in the top 3.

top3_entered integer

Number of keywords that have entered the top 3.

top10 integer

Number of keywords ranking on the first page of search results.

top10_improved integer

Number of improved keywords ranking on the first page of search results.

top10_declined integer

Number of declined keywords ranking on the first page of search results.

top10_difference integer

Difference in the number of keywords ranking on the first page of search results.

top10_left integer

Number of keywords that no longer rank on the first page of search results.

top10_entered integer

Number of keywords that have entered the first page of search results.

top20 integer

Number of keywords ranking on the first two pages of search results.

top20_improved integer

Number of improved keywords ranking on the first two pages of search results.

top20_declined integer

Number of declined keywords ranking on the first two pages of search results.

top20_difference integer

Difference in the number of keywords ranking on the first two pages of search results.

top20_left integer

Number of keywords that no longer rank on the first two pages of search results.

top20_entered integer

Number of keywords that have entered the first two pages of search results

data array

Array of SERP positions (where 0 stands for the first position on a SERP and 99 stands for the 100th position) and a number of keywords on each position for the end date of the selected period.

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/reports/v1/projects/{campaignID}/tracking/

Request example

GET /?key=YOUR_API_KEY&action=report&type=tracking_overview_organic&url=*.apple.com%2F*&date_begin=20140405&date_end=20140411&linktype_filter=0

Response example

{
    "total": 199,
    "visibility": 15.9602,
    "differenceVisibility": 1.7159,
    "all": 146,
    "all_improved": 67,
    "all_declined": 32,
    "all_difference": 3,
    "all_left": 3,
    "all_entered": 6,
    "top3": 36,
    "top3_improved": 8,
    "top3_declined": 2,
    "top3_difference": 2,
    "top3_left": 1,
    "top3_entered": 3,
    "top10": 67,
    "top10_improved": 19,
    "top10_declined": 13,
    "top10_difference": 6,
    "top10_left": 1,
    "top10_entered": 7,
    "top20": 97,
    "top20_improved": 36,
    "top20_declined": 19,
    "top20_difference": 10,
    "top20_left": 1,
    "top20_entered": 11,
    "data": {
			0: 47,
			1: 17,
			2: 2,
			...
			99: 0
	}
}

Organic positions report

Price: 100 API units per keyword added

This request lists all keywords from a tracking campaign, Google’s top 100 rankings of the specified URLs for these keywords, and position changes over the selected timeframe.

About the Position Tracking Overview report ›

Request parameters
Name Value/Type Description
key* string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

action* report
type* tracking_position_organic

Request type.

url* string

Tracked URL or competitor URL (with a mask).

top_filter top_3 top_3_income top_3_leave top_3…
top_3 top_3_income top_3_leave top_3_down top_3_up top_1page top_1page_income top_1page_leave top_1page_down top_1page_up top_2page top_2page_income top_2page_leave top_2page_down top_2page_up top_100 top_100_income top_100_leave top_100_down top_100_up

Positions filter.

date_begin Date in YYYYMMDD format

Start date of the selected period.

date_end Date in YYYYMMDD format

End date of the selected period.

display_tags string

Tags separated by the | symbol. To exclude a tag, use the - symbol. If only the included tags are present in the expression, then the OR logic is used to group them. If both included and excluded tags are present, then each category is grouped using the OR logic, but then the AND logic is used to join the categories.

display_tags_condition string

A newer variation of the display_tags filter.

Tags separated by the | symbol (the OR logic) or the & symbol (the AND logic). To exclude a tag, use the ! symbol.

display_filter string

Filter for the following columns: Ph, Nq, and Cp.

display_limit integer

Number of returned results. The default value is 10.

display_offset integer

Number of lines to skip in the report output.

display_sort cp_asc cp_desc {DOMAIN_N}_be_asc {DO…
cp_asc cp_desc {DOMAIN_N}_be_asc {DOMAIN_N}_be_desc {DOMAIN_N}_diff_asc {DOMAIN_N}_diff_desc {DOMAIN_N}_pos_asc {DOMAIN_N}_pos_desc nq_asc nq_desc ph_asc ph_desc sov_asc sov_desc sovdiff_asc sovdiff_desc {DOMAIN_N}_vd_asc {DOMAIN_N}_vd_desc vi_asc vi_desc

Report sorting.

linktype_filter 0 - Include local pack and hotels ranki…
0 - Include local pack and hotels rankings. This is the default value 1 - Include only local pack and hotels rankings (organic rankings are excluded) 2 - Exclude local pack rankings 524288 - Exclude hotels rankings 524290 - Exclude local pack and hotels rankings

Specifies whether the local pack and hotel rankings should be included in the report output or excluded from it.

use_volume national regional local

Specifies the level of CPC and volume to be used in the report. If omitted, the bottom-most available level is used.

business_name string

Business name associated with the domain. It must match the name in Google Business Profile.

serp_feature_filter string

Filters the report output for keywords that have a specific SERP feature on a SERP.

For a full list of available SERP features, refer to Basic doc > SERP features.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
limit integer

Number of returned results.

offset integer

Number of lines to skip in the report output.

data array

Array of landing URLs and their metrics.

Pi string

Keyword ID.

Ph string

Keyword the URL ranks for.

Kb string

The date the keyword was added to the tracking campaign.

Tg array

Keyword tags.

Cp float

Average price in the U.S. dollars advertisers pay for a user’s click on an ad containing the given keyword (Google AdWords).

Nq integer

Average number of times users have searched for a given keyword per month. We calculate this value over the last 12 months.

Gs integer

Volume crawling status:

0: Crawled.

1: Not crawled.

Dt array

Array of dates and positions. Dates are in the YYYYMMDD format.

Be array

Ranking at the beginning of the specified period.

Fi array

Ranking at the end of the specified period.

Diff array

Difference in rankings over the specified period.

Diff1 array

Difference in rankings compared to the previous day.

Diff7 array

Difference in rankings over a one week period.

Diff30 array

Difference in rankings over a one month period.

Vi array

Domain's visibility on the specified date.

Sov array

Domain's Share of Voice on the specified date.

Sf array

SERP features present on a SERP for the specified date.

For a full list of available SERP features, refer to Basic doc > SERP features.

Tr array

Estimated traffic on the specified date.

Tc array

Estimated traffic cost on the specified date.

Lu

Landing URLs.

Lt array

Ranking type.

For a full list of ranking types, refer to Basic doc > SERP features.

In array

Array of intents for the keyword:
i: Informational.
n: Navigational.
t: Transactional.
c: Commercial.

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/reports/v1/projects/{campaignID}/tracking/

Request example

GET /?key=YOUR_API_KEY&action=report&type=tracking_position_organic&url=*.apple.com%2F*:*.amazon.com%2F*&date_begin=20210521&date_end=20210527&linktype_filter=0&display_tags=tag1%26!tag2&display_sort=0_pos_asc

Response example

{
  "total": 2,
  "state": "0",
  "limit": 10,
  "offset": 0,
  "data": {
    "0": {
      "Pi": "801444466689038445",
      "Ph": "facebook",
      "Kb": 20170908,
      "Tg": {
        "0": "tag1"
      },
      "In": {
        "0": "i",
        "1": "c"
      },
      "Cp": "1.44",
      "Nq": "185000000",
      "Gs": "0",
      "Dt": {
        "20210521": {
          "*.apple.com/*": 4,
          "*.amazon.com/*": 32
        },
        "...": "...",
        "20210527": {
          "*.apple.com/*": 3,
          "*.amazon.com/*": 38
        }
      },
      "Be": {
        "*.apple.com/*": 4,
        "*.amazon.com/*": 32
      },
      "Fi": {
        "*.apple.com/*": 3,
        "*.amazon.com/*": 38
      },
      "Diff": {
        "*.apple.com/*": 1,
        "*.amazon.com/*": -6
      },
      "Diff1": {
        "*.apple.com/*": 0,
        "*.amazon.com/*": -10
      },
      "Diff7": {
        "*.apple.com/*": 97,
        "*.amazon.com/*": 62
      },
      "Diff30": {
        "*.apple.com/*": 97,
        "*.amazon.com/*": 62
      },
      "Vi": {
        "20210521": {
          "*.apple.com/*": 10.8516,
          "*.amazon.com/*": 1.0714
        },
        "...": "...",
        "20210527": {
          "*.apple.com/*": 13.0494,
          "*.amazon.com/*": 0.9065
        },
        "Diff": {
          "*.apple.com/*": 2.1978,
          "*.amazon.com/*": -0.1649
        }
      },
      "Sov": {
        "20210521": {
          "*.apple.com/*": 0.02,
          "*.amazon.com/*": 0.07
        },
        "...": "...",
        "20210527": {
          "*.apple.com/*": 0.03,
          "*.amazon.com/*": 0.05
        },
        "Diff": {
          "*.apple.com/*": 0.01,
          "*.amazon.com/*": -0.02
        }
      },
      "Sf": {
        "20210521": [
          "new",
          "twt",
          "rev",
          "stl",
          "kng"
        ],
        "...": "...",
        "20210527": [
          "new",
          "twt",
          "rev",
          "stl",
          "kng"
        ]
      },
      "Tr": {
        "20210521": {
          "*.apple.com/*": 487166.66,
          "*.amazon.com/*": 48100
        },
        "...": "...",
        "20210527": {
          "*.apple.com/*": 585833.33,
          "*.amazon.com/*": 40700
        }
      },
      "Tc": {
        "20210521": {
          "*.apple.com/*": 701520,
          "*.amazon.com/*": 69264
        },
        "...": "...",
        "20210527": {
          "*.apple.com/*": 843600,
          "*.amazon.com/*": 58608
        }
      },
      "Lu": {
        "20210521": {
          "*.apple.com/*": "https://apps.apple.com/us/app/facebook/id284882215",
          "*.amazon.com/*": "https://www.amazon.com/Facebook/dp/B0094BB4TW"
        },
        "...": "...",
        "20210527": {
          "*.apple.com/*": "https://apps.apple.com/us/app/facebook/id284882215",
          "*.amazon.com/*": "https://www.amazon.com/Facebook/dp/B0094BB4TW"
        }
      },
      "Lt": {
        "20210521": {
          "*.apple.com/*": [
            "rev"
          ],
          "*.amazon.com/*": [
            "rev"
          ]
        },
        "...": "...",
        "20210527": {
          "*.apple.com/*": [
            "rev"
          ],
          "*.amazon.com/*": [
            "rev"
          ]
        }
      }
    },
    "...": "..."
  }
}

Adwords positions report

Price: 100 API units per keyword added

This request lists all keywords from a tracking campaign, the Google’s paid search rankings of the specified URLs for these keywords, and position changes over the selected time period.

Request parameters
Name Value/Type Description
key* string

Identification key assigned to each user after subscribing to Semrush. You'll find it in Subscription info > API units.

action* report
type* tracking_position_adwords

Request type.

url* string

Tracked URL or competitor URL (with a mask).

date_begin Date in YYYYMMDD format

Start date of the selected period.

date_end Date in YYYYMMDD format

End date of the selected period.

display_tags string

Tags separated by the | symbol. The - sign can be used to exclude a tag. If only the included tags are present in the expression, then the OR logic is used to group them. If both the included and excluded tags are present, then each category is grouped using the OR logic, but then the AND logic is used to join the categories.

display_tags_condition string

This is a newer variation of the display_tags filter.

Tags separated by the | symbol (the OR logic) or the & symbol (the AND logic). The ! symbol can be used to exclude a tag.

display_filter string

Filter for the following columns: Ph, Nq, Cp.

display_limit integer

The number of returned results. The default value is 10.

display_offset integer

The number of lines to skip in the report output.

display_sort cp_asc cp_desc {DOMAIN_N}_be_asc {DO…
cp_asc cp_desc {DOMAIN_N}_be_asc {DOMAIN_N}_be_desc {DOMAIN_N}_di_asc {DOMAIN_N}_di_desc {DOMAIN_N}_pos_asc {DOMAIN_N}_pos_desc nq_asc nq_desc ph_asc ph_desc

Report sorting.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
total integer

The number of results.

limit integer

The number of returned results.

offset integer

The number of lines to skip in the report output.

data array

An array of landing URLs and their metrics.

Pi string

Keyword ID.

Ph string

A keyword the URL ranks for.

Kb string

The date the keyword was added to the tracking campaign.

Tg array

Keyword tags.

Cp float

The average price in US dollars that advertisers pay for a user’s click on an ad containing the given keyword (Google AdWords).

Nq integer

The average number of times users search for a given keyword per month. We calculate this value over the last twelve months.

Gs integer

Volume crawling status:
0: Crawled.
1: Not crawled.

Dt array

An array of dates and positions. The dates are in the YYYYMMDD format.

Be array

Ranking at the beginning of the specified period.

Fi array

Ranking at the end of the specified period.

Diff array

The difference in rankings over the specified period.

Diff1 array

The difference in rankings compared to the previous day.

Diff7 array

The difference in rankings over a one-week period.

Diff30 array

The difference in rankings over a one-month period.

Vi array

Domain's visibility on the specified date.

Sf array

SERP features that are present on the SERP on the specified date.

For a full list of available SERP features, refer to Basic doc > SERP features.

Tr array

Estimated traffic on the specified date.

Tc array

Estimated traffic cost on the specified date.

Lu

Landing URLs.

Lt array

Ranking type:

org: Organic.
adt: AdWords top.
adb: AdWords bottom.

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/reports/v1/projects/{campaignID}/tracking/

Request example

GET /?key=YOUR_API_KEY&action=report&type=tracking_position_adwords&url=*.apple.com%2F*:*.walmart.com%2F*&date_begin=20210522&date_end=20210528&display_sort=0_pos_asc&display_tags_condition=tag1%26!tag2

Response example

{
  "total": 4,
  "state": "0",
  "limit": 10,
  "offset": 0,
  "data": {
    "0": {
      "Pi": "5331787400075558242",
      "Ph": "appl",
      "Kb": 20170908,
      "Tg": {
        "0": "tag2"
      },
      "Cp": "1.00",
      "Nq": "165000",
      "Gs": "0",
      "Dt": {
        "20210522": {
          "*.apple.com/*": "-",
          "*.walmart.com/*": "-"
        },
        "...": "...",
        "20210528": {
          "*.apple.com/*": 1,
          "*.walmart.com/*": "-"
        }
      },
      "Be": {
        "*.apple.com/*": "-",
        "*.walmart.com/*": "-"
      },
      "Fi": {
        "*.apple.com/*": 1,
        "*.walmart.com/*": "-"
      },
      "Diff": {
        "*.apple.com/*": 11,
        "*.walmart.com/*": "-"
      },
      "Diff1": {
        "*.apple.com/*": 0,
        "*.walmart.com/*": "-"
      },
      "Diff7": {
        "*.apple.com/*": 11,
        "*.walmart.com/*": "-"
      },
      "Diff30": {
        "*.apple.com/*": 11,
        "*.walmart.com/*": "-"
      },
      "Vi": {
        "20210522": {
          "*.apple.com/*": 0,
          "*.walmart.com/*": 0
        },
        "...": "...",
        "20210528": {
          "*.apple.com/*": 25,
          "*.walmart.com/*": 0
        },
        "Diff": {
          "*.apple.com/*": 25,
          "*.walmart.com/*": 0
        }
      },
      "Sf": {
        "20210522": [
          "new",
          "knw",
          "stl",
          "kng"
        ],
        "...": "...",
        "20210528": [
          "new",
          "rel",
          "adt",
          "knw",
          "rev",
          "stl",
          "kng"
        ]
      },
      "Tr": {
        "20210522": {
          "*.apple.com/*": 0,
          "*.walmart.com/*": 0
        },
        "...": "...",
        "20210528": {
          "*.apple.com/*": 5500,
          "*.walmart.com/*": 0
        }
      },
      "Tc": {
        "20210522": {
          "*.apple.com/*": 0,
          "*.walmart.com/*": 0
        },
        "...": "...",
        "20210528": {
          "*.apple.com/*": 5500,
          "*.walmart.com/*": 0
        }
      },
      "Lu": {
        "20210522": {
          "*.apple.com/*": "",
          "*.walmart.com/*": ""
        },
        "...": "...",
        "20210528": {
          "*.apple.com/*": "https://www.apple.com/",
          "*.walmart.com/*": ""
        }
      },
      "Lt": {
        "20210522": {
          "*.apple.com/*": [
            "org"
          ],
          "*.walmart.com/*": [
            "org"
          ]
        },
        "...": "...",
        "20210528": {
          "*.apple.com/*": [
            "adt"
          ],
          "*.walmart.com/*": [
            "org"
          ]
        }
      }
    }
  }
}

Organic competitors discovery report

Price: 1000 API units per competitor

This request lists the domains that appear in Google's top 100 organic search results for the keywords from a tracking campaign for the chosen location, the average position, and visibility for these domains.

About the Competitors Discovery report ›

Request parameters
Name Value/Type Description
key* string

An identification key assigned to a user after subscribing to Semrush that is available via the Profile page

action* report
type* tracking_competitors_organic

Request type

url_type rootdomain subdomain subfolder url

Type of competitor URLs. If omitted, the value from the campaign's settings is used.

main_domain string

The domain URL (without a mask) that will have its data displayed in a special block at the top of the competitors list in the response.

black_list string

Exclude domains from the report output (separated by the '|' symbol).

top_start integer

The top of the position range to search for competitors on SERP.

top_end integer

The bottom of the position range to search for competitors on SERP.

date_begin Date in YYYYMMDD format

Start date of the selected period.

date_end Date in YYYYMMDD format

End date of the selected period.

display_limit integer

The number of returned results, the default value is 10.

display_offset integer

The number of lines to skip in the report output.

display_sort av_asc av_desc cd_asc cd_desc cl_as…
av_asc av_desc cd_asc cd_desc cl_asc cl_asc {DATE}_asc {DATE}_desc ur_asc ur_desc

Report sorting.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
total integer

The number of results.

limit integer

The number of returned results.

offset integer

The number of lines to skip in the report output.

keywords_count integer

The number of keywords used to build this report.

data array

An array of competitor domains and their metrics.

Dt array

Dates and positions (Date in YYYYMMDD format).

Mc integer

The number of keywords.

Av float

Average position.

Sq integer

Position deviation.

Cl float

Visibility.

Sov float

Share of Voice.

Tr float

Estimated traffic on the specified date.

Tc float

Estimated traffic cost on the specified date.

Cd float

Visibility change over the specified period.

Ur string

Competitor URL.

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/reports/v1/projects/{campaignID}/tracking/

Request example

GET /?key=YOUR_API_KEY&action=report&type=tracking_competitors_organic&date_begin=20210518&date_end=20210524&top_start=1&top_end=10&url_type=rootdomain&linktype_filter=0&display_sort=20210524_desc&main_domain=apple.com

Response example

{
  "Md": {
    "Dt": {
        "20210518": {
            "Mc": 58,
            "Av": 30.666667,
            "Sq": 43,
            "Cl": 33.889567,
            "Sov": 31.962638999999999,
            "Tr": 53941.550000000003,
            "Tc": 44413.093072999996
        },
        "20210524": {
            "Mc": 57,
            "Av": 31.950617000000001,
            "Sq": 44,
            "Cl": 33.245150000000002,
            "Sov": 6.3006149999999996,
            "Tr": 9495.7073330000003,
            "Tc": 11272.560507
        },
        "Diff": {
           "Mc": -1,
           "Av": 1.2839500000000008,
           "Sq": 1,
           "Cl": -0.64441699999999713,
           "Sov": -25.662023999999999,
           "Tr": -44445.842667000004,
           "Tc": -33140.532565999994
        }
    },
    "Cd": -0.64441699999999713,
    "Ur": "apple.com",
    "Ps": 73
   },
   "total":560,
   "state":"0",
   "limit":100,
   "offset":0,
   "keywords_count":200,
   "data":{
      "0":{
         "Dt":{
            "20210518":{
               "Mc":0,
               "Av":100,
               "Sq":0,
               "Cl":0,
               "Sov":0,
               "Tr":"n/a",
               "Tc":"n/a"
            },
            "20210524":{
               "Mc":1,
               "Av":99.545,
               "Sq":6,
               "Cl":0.04120879120879121,
               "Sov":0.000013038870213554158,
               "Tr":8.1,
               "Tc":9.072
            },
            "Diff":{
               "Mc":1,
               "Av":-0.455,
               "Sq":6,
               "Cl":0.04120879120879121,
               "Sov":0.000013038870213554158,
               "Tr":8.1,
               "Tc":9.072
            }
         },
         "Cd":0.04120879120879121,
         "Ur":"android.com"
      },
      ...
   }
}

Adwords competitors discovery report

Price: 1000 API units per competitor

This request lists the domains that appear in Google's paid search results for the keywords from a tracking campaign for the chosen location, the average position, and visibility for these domains.

About the Competitors Discovery report ›

Request parameters
Name Value/Type Description
key* string

An identification key assigned to a user after subscribing to Semrush that is available via the Profile page.

action* report
type* tracking_competitors_adwords

Request type.

url_type rootdomain subdomain subfolder url

Type of competitor URLs. If omitted, the value from the campaign's settings is used.

main_domain string

The domain URL (without a mask) that will have its data displayed in a special block at the top of the competitors list in the response.

black_list string

Exclude domains from the report output (separated by the '|' symbol).

top_start integer

The top of the position range to search for competitors on SERP.

top_end integer

The bottom of the position range to search for competitors on SERP.

date_begin Date in YYYYMMDD format

Start date of the selected period.

date_end Date in YYYYMMDD format

End date of the selected period.

display_limit integer

The number of returned results, the default value is 10.

display_offset integer

The number of lines to skip in the report output.

display_sort av_asc av_desc cd_asc cd_desc cl_as…
av_asc av_desc cd_asc cd_desc cl_asc cl_asc {DATE}_asc {DATE}_desc ur_asc ur_desc

Report sorting.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
total integer

The number of results.

limit integer

The number of returned results.

offset integer

The number of lines to skip in the report output.

keywords_count integer

The number of keywords used to build this report.

data array

An array of competitor domains and their metrics.

Dt array

Dates and positions (Date in YYYYMMDD format).

Mc integer

The number of keywords.

Av float

Average position.

Sq integer

Position deviation.

Cl float

Visibility.

Sov float

Share of Voice.

Tr float

Estimated traffic on the specified date.

Tc float

Estimated traffic cost on the specified date.

Cd float

Visibility change over the specified period.

Ur string

Competitor URL.

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/reports/v1/projects/{campaignID}/tracking/

Request example

GET /?key=YOUR_API_KEY&action=report&type=tracking_competitors_adwords&date_begin=20210518&date_end=20210524&top_start=1&top_end=10&url_type=rootdomain&display_sort=20210524_desc&main_domain=apple.com

Response example

{
  "Md": {
    "Dt": {
        "20210518": {
            "Mc": 4,
            "Av": 11.45679,
            "Sq": 2,
            "Cl": 4.9382720000000004,
            "Sov": 1.3998269999999999,
            "Tr": 2416.666667,
            "Tc": 4625.1666670000004
        },
        "20210524": {
            "Mc": 2,
            "Av": 11.728395000000001,
            "Sq": 1,
            "Cl": 2.4691360000000002,
            "Sov": 0.92485099999999998,
            "Tr": 1596.666667,
            "Tc": 3659.166667
        },
        "Diff": {
            "Mc": -2,
            "Av": 0.27160500000000098,
            "Sq": -1,
            "Cl": -2.4691360000000002,
            "Sov": -0.47497599999999995,
            "Tr": -820,
            "Tc": -966.00000000000045
        }
    },
    "Cd": -2.4691360000000002,
    "Ur": "apple.com",
    "Ps": 5
  },
  "total":45,
  "state":"0",
  "limit":10,
  "offset":0,
  "keywords_count":200,
  "data":{
    "0":{
      "Dt":{
        "20210518":{
          "Mc":22,
          "Av":10.8,
          "Sq":3,
          "Cl":11,
          "Sov":1.0137587446283074,
          "Tr":629766.6666666666,
          "Tc":687222.3333333335
        },
        "20210524":{
          "Mc":16,
          "Av":11.13,
          "Sq":2,
          "Cl":8,
          "Sov":0.8335755093315385,
          "Tr":517833.3333333334,
          "Tc":515993.66666666657
        },
        "Diff":{
          "Mc":-6,
          "Av":0.33,
          "Sq":0,
          "Cl":-3,
          "Sov":-0.1801832352967689,
          "Tr":-111933.33333333326,
          "Tc":-171228.66666666692
        }
      },
      "Cd":-3,
      "Ur":"apple.com"
    },
    ...
  }
}

Organic visibility index report

Price: 100 API units per request

This request returns a domain's visibility and visibility changes over the selected period.

About the Position Tracking Landscape report ›

Request parameters
Name Value/Type Description
key* string

An identification key assigned to a user after subscribing to Semrush that is available via the Profile page

action* report
type* tracking_visibility_organic

Request type

url* string

Tracked URL or competitor URL (with mask)

date_begin Date in YYYYMMDD format

Start date of the selected period

date_end Date in YYYYMMDD format

End date of the selected period

display_tags string

Tags, separated by the '|' symbol. The '-' symbol can be used to exclude a tag. If only the included tags are present in the expression, then the OR logic is used to group them. If both included and excluded tags are present, then each category is grouped using the OR logic, but then the AND logic is used to join the categories.

display_tags_condition string

This is a newer variation of the display_tags filter.

Tags, separated by the '|' symbol (the OR logic) or the '&' symbol (the AND logic). The '!' symbol can be used to exclude a tag.

display_filter string

Filter for the Ph, Nq, Cp columns.

linktype_filter 0 - Include local pack and hotels ranki…
0 - Include local pack and hotels rankings. This is the default value 1 - Include only local pack and hotels rankings (organic rankings are excluded) 2 - Exclude local pack rankings 524288 - Exclude hotels rankings 524290 - Exclude local pack and hotels rankings

Specifies whether the local pack and hotel rankings should be included in the report output or excluded from it

use_volume national regional local

Specifies the level of CPC and volume to be used in the report. If omitted, the bottom-most available level is used

business_name string

The business name associated with the domain. It should match the name from the Google My Business profile

serp_feature_filter string

Filters the report output for keywords that have a specific SERP feature on the SERP.

For a full list of available features, refer to Basic doc > SERP features.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
total integer

The number of results

data array

An array of dates and a domain's metrics on them

Dt Date in YYYYMMDD format

Date

Vi float

Absolute visibility value

Vr float

Relative visibility value

Av float

Average position

Sov float

Share of Voice

Tr float

Estimated traffic on the specified date

Tc float

Estimated traffic cost on the specified date

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/reports/v1/projects/{campaignID}/tracking/

Request example

GET /?key=YOUR_API_KEY&action=report&type=tracking_visibility_organic&date_begin=20210518&date_end=20210524&url=*.apple.com%2F*&linktype_filter=0

Response example

{
  "total": "7",
  "state": "0",
  "data": {
    "0": {
      "Dt": "20210518",
      "Vi": 33397900,
      "Vr": 45.8762,
      "Av": 8.075,
      "Sov": 5.89,
      "Tr": 3258225.0324,
      "Tc": 9745148.8893
    },
    "...": "...",
    "6": {
      "Dt": "20210524",
      "Vi": 32230100,
      "Vr": 44.2721,
      "Av": 8.165,
      "Sov": 5.55,
      "Tr": 3230495.1761,
      "Tc": 9866793.9995
    }
  }
}

Adwords visibility index report

Price: 100 API units per request

This report returns a domain's visibility and visibility changes over the selected period.

About the Position Tracking Landscape report ›

Request parameters
Name Value/Type Description
key* string

An identification key assigned to a user after subscribing to Semrush that is available via the Profile page

action* report
type* tracking_visibility_adwords

Request type

url* string

Tracked URL or competitor URL (with mask)

date_begin Date in YYYYMMDD format

Start date of the selected period

date_end Date in YYYYMMDD format

End date of the selected period

display_tags string

Tags, separated by the '|' symbol. The '-' symbol can be used to exclude a tag. If only the included tags are present in the expression, then the OR logic is used to group them. If both included and excluded tags are present, then each category is grouped using the OR logic, but then the AND logic is used to join the categories.

display_tags_condition string

This is a newer variation of the display_tags filter.

Tags, separated by the '|' symbol (the OR logic) or the '&' symbol (the AND logic). The '!' symbol can be used to exclude a tag.

display_filter string

Filter for the Ph, Nq, Cp columns

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
total integer

The number of results

data array

An array of dates and a domain's metrics on them

Dt Date in YYYYMMDD format

Date

Vi float

Absolute visibility value

Vr float

Relative visibility value

Av float

Average position

Sov float

Share of Voice

Tr float

Estimated traffic on the specified date

Tc float

Estimated traffic cost on the specified date

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/reports/v1/projects/{campaignID}/tracking/

Request example

GET /?key=YOUR_API_KEY&action=report&type=tracking_visibility_adwords&date_begin=20140401&date_end=20140411&url=*.apple.com%2F*

Response example

{
  "total": "7",
  "state": "0",
  "data": {
    "0": {
      "Dt": "20210518",
      "Vi": 23000000,
      "Vr": 11.5,
      "Av": 10.745,
      "Sov": 1.11,
      "Tr": 690766.666,
      "Tc": 815932.3328
    },
    "...": "...",
    "6": {
      "Dt": "20210524",
      "Vi": 16000000,
      "Vr": 8,
      "Av": 11.13,
      "Sov": 0.83,
      "Tr": 517833.3329,
      "Tc": 515993.6663
    }
  }
}

Organic landing pages report

Price: 1000 API units per landing page

This request lists all URLs from the Google's top 100 search results that the specified domain appears in for the keywords from the tracking campaign.

About the Position Tracking Pages report ›

Request parameters
Name Value/Type Description
key string

An identification key assigned to a user after subscribing to Semrush that is available on the Profile page.

action report
type tracking_landing_pages_organic

Request type.

url string

Tracked URL or competitor URL (without a mask).

date_begin Date in YYYYMMDD format

Start date of the selected period.

date_end Date in YYYYMMDD format

End date of the selected period.

display_tags string

Tags, separated by the '|' symbol. The '-' sign can be used to exclude a tag. If only the included tags are present in the expression, then the OR logic is used to group them. If both included and excluded tags are present, then each category is grouped using the OR logic, but then the AND logic is used to join the categories.

display_tags_condition string

This is a newer variation of the display_tags filter.

Tags, separated by the '|' symbol (the OR logic) or the '&' symbol (the AND logic). The '!' sign can be used to exclude a tag.

display_filter string

Filter for the Ph, Nq, and Cp columns.

display_limit integer

Number of returned results. Default value is 10.

display_offset integer

Number of lines to skip in the report output.

display_sort 0_mc_asc 0_mc_desc 1_mc_asc 1_mc_des…
0_mc_asc 0_mc_desc 1_mc_asc 1_mc_desc md_asc md_desc 0_tr_asc 0_tr_desc 1_tr_asc 1_tr_desc trdiff_asc trdiff_desc 0_av_asc 0_av_desc 1_av_asc 1_av_desc ad_asc ad_desc 0_nq_asc 0_nq_desc 1_nq_asc 1_nq_desc rd_asc rd_desc

Report sorting.

newlost_filter new, lost

Return only new or lost URLs.

linktype_filter 0 - Include local pack and hotels ranki…
0 - Include local pack and hotels rankings. Default value. 1 - Include only local pack and hotels rankings (organic rankings are excluded). 2 - Exclude local pack rankings. 524288 - Exclude hotels rankings. 524290 - Exclude local pack and hotels rankings.

Specifies whether the local pack and hotels rankings should be included in the report output or excluded from it

use_volume national regional local

Specifies the level of CPC and volume to be used in the report. If omitted, the bottom-most available level is used.

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
total integer

Number of results.

limit integer

Number of returned results.

offset integer

Number of lines to skip in the report output.

new integer

Number of new URLs (URLs that didn't rank for any keyword on the start date of the selected period, but rank for at least one keyword on the end date of the selected period).

lost integer

Number of lost URLs (URLs that ranked for at least one keyword on the start date of the selected period, but don't rank for any keyword on the end date of the selected period).

keywords integer

Number of keywords used to build this report.

Pc integer

Number of HTTP and HTTPS URLs.

data array

Array of landing URLs and their metrics.

Ur string

URL that ranks for the keyword.

Tp new, lost

"new": the URL didn't rank for any keyword on the start date of the selected period, but ranks for at least one keyword on the end date of the selected period.

"lost": the URL ranked for at least one keyword on the start date of the selected period, but doesn't rank for any keyword on the end date of the selected period.

Mc integer

Number of keywords the URL ranks for on the specified date.

Av float

Average position for the keywords the URL ranks for on the specified date

Tr float

Estimated traffic on the specified date.

Tc float

Estimated traffic cost on the specified date.

Rq integer

Total volume for the keywords the URL ranks for on the specified date.

Kw array

List of keywords the URL ranks for.

Pi string

Keyword ID.

Ph string

Keyword the URL ranks for.

Kw -> Tp new, lost

"new": the URL didn't rank for this keyword on the start date of the selected period, but ranks for this keyword on the end date of the selected period

"lost": the URL ranked for this keyword on the start date of the selected period, but doesn't rank this keyword on the end date of the selected period>

Rq integer

Keyword volume.

Gs integer

Volume crawling status where 0 is crawled, and 1 is not crawled.

Tg array

Keyword tags.

Kw -> Dt array

Array of dates and positions.

Lt string

Ranking type.

For a full list of ranking types, refer to Basic doc > SERP features.

Kw -> In array

Array of intents for the keyword:

i: Informational.
n: Navigational.
t: Transactional.
c: Commercial.

Dt -> [date] -> In array

List of intents for the URL.
Four items for each intent.


Kc: Keywords count.
Tr: Traffic.
Kp: Percentage.
Na: Name of intent (i for Informational, n for Navigational, t for Transactional, c for Commercial)

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/reports/v1/projects/{campaignID}/tracking/

Request example

GET /?key=YOUR_API_KEY&action=report&type=tracking_landing_pages_organic&date_begin=20210518&date_end=20210524&url=apple.com&linktype_filter=0&display_sort=1_mc_desc

Response example

{
  "total":310,
  "state":"0",
  "limit":100,
  "offset":0,
  "new":34,
  "lost":32,
  "keywords":200,
  "Pc":{
    "http":2,
    "https":308
  },
  "data":{
    "0":{
      "Ur":"https://apps.apple.com/us/app/zillow-real-estate-rentals/id310738695",
      "Tp":"",
      "Dt":{
        "20210518":{
          "Mc":1,
          "Av":3,
          "Tr":52566.666666666664,
          "Tc":9987.666666666666,
          "Rq":16600000,
           "In": [
              {
                "Kc": 1,
                "Tr": 269.36,
                "Kp": 50,
                "Na": "i"
              },
              {
                "Kc": 0,
                "Tr": 0,
                "Kp": 0,
                "Na": "n"
              },
              {
                "Kc": 1,
                "Tr": 269.36,
                "Kp": 50,
                "Na": "t"
              },
              {
                "Kc": 0,
                "Tr": 0,
                "Kp": 0,
                "Na": "c"
              }
          ]
        },
        "20210524":{
          "Mc":1,
          "Av":4,
          "Tr":43713.333333333336,
          "Tc":8305.533333333333,
          "Rq":16600000,
           "In": [
              {
                "Kc": 1,
                "Tr": 269.36,
                "Kp": 50,
                "Na": "i"
              },
              {
                "Kc": 0,
                "Tr": 0,
                "Kp": 0,
                "Na": "n"
              },
              {
                "Kc": 1,
                "Tr": 269.36,
                "Kp": 50,
                "Na": "t"
              },
              {
                "Kc": 0,
                "Tr": 0,
                "Kp": 0,
                "Na": "c"
              }
           ]
        },
        "Diff":{
          "Mc":0,
          "Av":-1,
          "Tr":-8853.333333333328,
          "Tc":-1682.1333333333332,
          "Rq":0,
           "In": [
              {
                "Kc": 0,
                "Tr": -176.86,
                "Na": "i"
              },
              {
                "Kc": 0,
                "Tr": 0,
                "Na": "n"
              }
           ]
        }
      },
      "Kw":[
        {
          "Pi":"5243708147689083041",
          "Ph":"zillow",
          "Tp":"",
          "Rq":16600000,
          "Gs":1,
          "Tg":{
            
          },
          "In": {
            "0": "i",
            "1": "t"
         },
          "Dt":{
            "20210518":3,
            "20210524":4,
            "Diff":-1
          },
          "Tr":{
            "20210518":52566.666666666664,
            "20210524":43713.333333333336,
            "Diff":-8853.333333333328
          },
          "Tc":{
            "20210518":9987.666666666666,
            "20210524":8305.533333333333,
            "Diff":-1682.1333333333332
          },
          "Lt":{
            "20210518":[
              "rev"
            ],
            "20210524":[
              "rev"
            ]
          }
        }
      ],
      "Amp":0
    },
    ...
  }

Adwords landing pages report

Price: 1000 API units per landing page

This request lists all URLs from the Google paid search results that the specified domain appears in for the keywords from the tracking campaign.

About the Position Tracking Pages report ›

Request parameters
Name Value/Type Description
key string

An identification key assigned to a user after subscribing to Semrush that is available via Profile page

action report
type tracking_landing_pages_adwords

Request type

url string

Tracked URL or competitor URL (with mask)

date_begin Date in YYYYMMDD format

Start date of the selected period

date_end Date in YYYYMMDD format

End date of the selected period

display_tags string

Tags, separated by the '|' symbol. The '-' sign can be used to exclude a tag. If only the included tags are present in the expression, then the OR logic is used to group them. If both included and excluded tags are present, then each category is grouped using the OR logic, but then the AND logic is used to join the categories.

display_tags_condition string

This is a newer variation of the display_tags filter.

Tags, separated by the '|' symbol (the OR logic) or the '&' symbol (the AND logic). The '!' sign can be used to exclude a tag.

display_filter string

Filter for columns Ph, Nq, Cp

display_limit integer

The number of returned results, the default value is 10

display_offset integer

The number of lines to skip in the report output

display_sort 0_mc_asc, 0_mc_desc, 1_mc_asc, 1_mc_des…
0_mc_asc, 0_mc_desc, 1_mc_asc, 1_mc_desc, md_asc, md_desc, 0_tr_asc, 0_tr_desc, 1_tr_asc, 1_tr_desc, trdiff_asc, trdiff_desc, 0_av_asc, 0_av_desc, 1_av_asc, 1_av_desc, ad_asc, ad_desc, 0_nq_asc, 0_nq_desc, 1_nq_asc, 1_nq_desc, rd_asc, rd_desc,

Report sorting

newlost_filter new, lost

Return only new or lost urls

* Fields marked by an asterisk (*) are required

Response parameters
Name Value/Type Description
total integer

The number of results

limit integer

The number of returned results

offset integer

The number of lines to skip in the report output

new integer

The number of new URLs (URLs that didn't rank for any keyword on the start date of the selected period, but rank for at least one keyword on the end date of the selected period)

lost integer

The number of lost URLs (URLs that ranked for at least one keyword on the start date of the selected period, but don't rank for any keyword on the end date of the selected period)

keywords integer

The number of keywords used to build this report

Pc integer

The number of http and https URLs

data array

An array of landing URLs and their metrics

Ur string

The URL that the keyword ranks for

Tp new, lost

"new" - the URL didn't rank for any keyword on the start date of the selected period, but ranks for at least one keyword on the end date of the selected period

"lost" - the URL ranked for at least one keyword on the start date of the selected period, but doesn't rank for any keyword on the end date of the selected period

Mc integer

The number of keywords the URL ranks for on the specified date

Av float

The average position for the keywords the URL ranks for on the specified date

Tr float

Estimated traffic on the specified date

Tc float

Estimated traffic cost on the specified date

Rq integer

Total volume for the keywords the URL ranks for on the specified date

Kw array

A list of keywords the URL ranks for

Pi string

Keyword ID

Ph string

A keyword the URL ranks for

Kw -> Tp new, lost

"new" - the URL didn't rank for this keyword on the start date of the selected period, but ranks for this keyword on the end date of the selected period

"lost" - the URL ranked for this keyword on the start date of the selected period, but doesn't rank this keyword on the end date of the selected period>

Rq integer

Keyword volume

Gs integer

Volume crawling status; 0 - crawled, 1 - not crawled

Tg array

Keyword tags

Kw -> Dt array

An array of dates and positions

Lt array

Ranking type
- org: Organic
- adt: AdWords top
- adb: AdWords bottom

* Fields marked by an asterisk (*) are required

Endpoint (GET)

https://api.semrush.com/reports/v1/projects/{campaignID}/tracking/

Request example

GET /?key=YOUR_API_KEY&action=report&type=tracking_landing_pages_adwords&date_begin=20210518&date_end=20210524&url=*.apple.com%2F*&linktype_filter=0&display_sort=1_mc_desc

Response example

{
  "total":4,
  "state":"0",
  "limit":500,
  "offset":0,
  "new":0,
  "lost":2,
  "keywords":200,
  "Pc":{
    "http":0,
    "https":3
  },
  "data":{
    "0":{
      "Ur":"https://music.apple.com/",
      "Tp":"lost",
      "Dt":{
        "20210518":{
          "Mc":1,
          "Av":1,
          "Tr":18333.333333333332,
          "Tc":30433.333333333332,
          "Rq":550000
        },
        "20210524":{
          "Mc":0,
          "Av":"-",
          "Tr":0,
          "Tc":0,
          "Rq":0
        },
        "Diff":{
          "Mc":-1,
          "Av":-11,
          "Tr":-18333.333333333332,
          "Tc":-30433.333333333332,
          "Rq":-550000
        }
      },
      "Kw":[
        {
          "Pi":"11540482552829684149",
          "Ph":"apple music",
          "Tp":"lost",
          "Rq":550000,
          "Gs":1,
          "Tg":{
            
          },
          "Dt":{
            "20210518":1,
            "20210524":"-",
            "Diff":-11
          },
          "Tr":{
            "20210518":18333.333333333332,
            "20210524":0,
            "Diff":-18333.333333333332
          },
          "Tc":{
            "20210518":30433.333333333332,
            "20210524":0,
            "Diff":-30433.333333333332
          },
          "Lt":{
            "20210518":[
              "adt"
            ],
            "20210524":[
              
            ]
          }
        }
      ],
      "Amp":0
    },
    ...
  }
}