Telephone
United States
+1 (800) 815 - 9959
10:00 AM - 5:00 PM (EST/EDT)
Monday - Friday
Need help?
Telephone
United States
United States
Canada
United Kingdom
Spain
France
Italy
Germany
Australia
+1 (800) 815 - 9959
10:00 AM - 5:00 PM (EST/EDT)
Monday - Friday
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/
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.
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.
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/ |
Encode parameter values containing special characters. Encoding reference ›
When using thedisplay_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.
All tags used in either campaign update or filter parameters are sanitized before use following these rules:
.
,&
,-
,$
,+
,'
, and #
, are removed.{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 |
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. |
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 | 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. |
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.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
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.
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 |
|
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)
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" } }
This request lets you enable the delivery of weekly emails with tracking campaign statistics.
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)
This request lets you disable the delivery of weekly emails with tracking campaign statistics.
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)
This request lets you add keywords to track to an existing tracking campaign and group them with tags.
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
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)
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 } ] }
This request lets you remove tracked keywords from an existing tracking campaign.
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
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)
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 } ] }
This request lets you assign up to five tags to each of your tracked keywords.
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
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)
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 } ] }
This request lets you delete up to five tags assigned to each of your tracked keywords.
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
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)
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 } ] }
This request lets you add competitor domains to an existing tracking campaign.
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
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)
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 } ] }
This request lets you remove competitors from an existing tracking campaign.
About adding and removing competitors from a Position Tracking campaign ›
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
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)
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 } ] }
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.
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
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: |
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)
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 } }
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.
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
Name | Value/Type | Description |
---|---|---|
locations | array | Array of locations |
available_volume_types | local, regional, national | Volume types available for the location |
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 |
languages | array of objects | Available languages |
id | integer | Language ID |
hl | string | Language code, such as |
name | string | Language name, such as |
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)
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 } } ] }
This request returns a list of country IDs a project can be set up for.
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
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)
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 } } }, "...": "..." }
This request returns a list of regions within the specified country for which a project can be set up for.
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
Name | Value/Type | Description |
---|---|---|
id | integer | Region ID. |
name | string | Region name. |
* Fields marked by an asterisk (*) are required
Endpoint (GET)
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 } } }, "...": "..." }
This request returns a list of cities within the specified country and region for which a project can be set up for.
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
Name | Value/Type | Description |
---|---|---|
id | integer | City ID. |
name | string | City name. |
* Fields marked by an asterisk (*) are required
Endpoint (GET)
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 } } }, "...": "..." }
This request returns a list of dates when campaign data was harvested.
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
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)
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", }, ... } }
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.
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 |
display_tags_condition | string | A newer variation of the |
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
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 |
* Fields marked by an asterisk (*) are required
Endpoint (GET)
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 } }
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.
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 |
display_tags_condition | string | A newer variation of the |
display_filter | string | Filter for the following columns: |
display_limit | integer | Number of returned results. The default value is |
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
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:
|
Dt | array | Array of dates and positions. Dates are in the |
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: |
* Fields marked by an asterisk (*) are required
Endpoint (GET)
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" ] } } }, "...": "..." } }
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.
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 |
display_tags_condition | string | This is a newer variation of the |
display_filter | string | Filter for the following columns: |
display_limit | integer | The number of returned results. The default value is |
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
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: |
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:
|
* Fields marked by an asterisk (*) are required
Endpoint (GET)
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" ] } } } } }
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.
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
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)
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" }, ... } }
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.
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
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)
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" }, ... } }
This request returns a domain's visibility and visibility changes over the selected period.
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 ' |
display_tags_condition | string | This is a newer variation of the |
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
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)
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 } } }
This report returns a domain's visibility and visibility changes over the selected period.
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 ' |
display_tags_condition | string | This is a newer variation of the |
display_filter | string | Filter for the Ph, Nq, Cp columns |
* Fields marked by an asterisk (*) are required
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)
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 } } }
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.
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_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
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: |
Dt -> [date] -> In | array | List of intents for the URL.
|
* Fields marked by an asterisk (*) are required
Endpoint (GET)
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 }, ... }
This request lists all URLs from the Google paid search results that the specified domain appears in for the keywords from the tracking campaign.
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_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
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 |
* Fields marked by an asterisk (*) are required
Endpoint (GET)
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 }, ... } }