Position Tracking
Jump to Basic docBasic doc
Jump to About Position Tracking APIAbout Position Tracking API
The Position Tracking API lets you monitor keyword rankings, visibility, and competitors’ performance across search engines and locations. It provides access to ranking data for specific keywords, devices, and regions.
Learn more about Position Tracking ›
Jump to MethodsMethods
The Position Tracking API methods require you to replace the
{campaignID}placeholder in the method URL with your campaign ID. Learn how to get your campaign ID ›
The Position Tracking API methods are divided into three groups:
- Management
- Available regions
- Reports
Management
Lets you create a Position Tracking campaign and manage the process of sending emails with tracking campaign statistics.
https://api.semrush.com/management/v1/projects/{projectID or campaignID}/tracking/Available regions
Returns a list of available countries with corresponding regions and cities.
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.
https://api.semrush.com/reports/v1/projects/{campaignID}/tracking/Jump to URL parameter maskURL parameter mask
Use a proper mask in requests with the url parameter:
In some requests, such as Organic landing pages report, Organic competitors discovery report, or Adwords competitors discovery report, you need to specify a URL without a mask. For example, the
urlparameter for therootdomainURL type will beebay.com.
Jump to URL encodingURL encoding
Encode parameter values containing special characters such as / in the URL. Learn more in the Encode special characters section on the Construct your API call page.
When using the
display_tags_conditionparameter 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,%25is decoded as the%character, and then%26is decoded as the&character.
Jump to TagsTags
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.
Jump to SortingsSortings
{DATE} is a date in the YYYYMMDD format.
{DOMAIN_N} is a domain number: 0, 1, 2, 3, 4.
Jump to FiltersFilters
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.
display_filter=+|Ph|Co|phone|+|Nq|Gt|10000|+|Cp|Gt|2display_filter=%2B%7CPh%7CCo%7Cphone%7C%2B%7CNq%7CGt%7C10000%7C%2B%7CCp%7CGt%7C2Jump to SERP FeaturesSERP Features
The table provides a list of supported SERP features with their letter-based codes and descriptions.
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 domain appears within that feature.
The serp_feature_filter consists of -<sf>,<domain>, where:
-(optional): Excludes the specified SERP feature if present.sf: SERP feature code, such asgeofor Local Pack orfsnfor Featured Snippet.domain(optional): The position of a domain in theurlparameter list of values. Note that the numbering of domains starts with 0.
Jump to Example requestsExample requests
https://api.semrush.com/reports/v1/projects/{campaignID}/tracking/?type=tracking_position_organic&key=YOUR_API_KEY&action=report&url=*.apple.com%2F*:*.amazon.com&serp_feature_filter=fsn,0https://api.semrush.com/reports/v1/projects/{campaignID}/tracking/?type=tracking_position_organic&key=YOUR_API_KEY&action=report&url=*.apple.com%2F*:*.amazon.com%2F*&serp_feature_filter=fsn,1Jump to Create a Position Tracking campaign in a projectCreate 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
tracking_url_typeRequired
Value/Type: rootdomain, subdomain, subfolder, url
tracking_urlRequired
Value/Type: string
location_idRequired
To get the location ID, use the Universal location search method.
Value/Type: integer
weekly_notification
true (default): Enable weekly emails.
false: Disable weekly emails.
Value/Type: boolean
timezone
Value/Type: integer
device
Value/Type: desktop, phone, tablet
business_name
Value/Type: string
{
"tracking_url": "example.com",
"tracking_url_type": "rootdomain",
"location_id": 2840,
"weekly_notification": true,
"device": "desktop",
"business_name": "example.com"
}{
"status": "SUCCESS",
"action": "tracking_enable",
"result": {
"campaign_id": "103345921_15710"
}
}Jump to Enable email-sending containing tracking campaign statisticsEnable 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
Jump to Disable email-sending containing tracking campaign statisticsDisable 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
Jump to Add keywords to an existing tracking campaignAdd 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
keywords
Value/Type: array
tags
Value/Type: array
url
Value/Type: string
tools
Value/Type: array
project_id
Value/Type: string
project_name
Value/Type: string
campaign_id
Value/Type: string
competitors
Value/Type: array
keywords
Value/Type: array
{"keywords":[{"keyword":"seo", "tags":["seo"]},{"keyword":"seotool", "tags":["seo"]}]}{
"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
}
]
}Jump to Remove keywords from an existing tracking campaignRemove 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
keywords
Value/Type: array
url
Value/Type: string
tools
Value/Type: array
project_id
Value/Type: string
project_name
Value/Type: string
campaign_id
Value/Type: string
competitors
Value/Type: array
keywords
Value/Type: array
{"keywords":[{"keyword":"seo"},{"keyword":"seotool"}]}{
"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
}
]
}Jump to Add tags to keywords in an existing tracking campaignAdd 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
keywords
Value/Type: array
tags
Value/Type: array
url
Value/Type: string
tools
Value/Type: array
project_id
Value/Type: string
project_name
Value/Type: string
campaign_id
Value/Type: string
competitors
Value/Type: array
keywords
Value/Type: array
[{"tag":"seo", "keywords":["search tool", "search engine"]},{"tag":"seo tool", "keywords":["search tool", "search engine"]}]{
"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
}
]
}Jump to Remove tags from keywords in an existing projectRemove 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
keywords
Value/Type: array
tags
Value/Type: array
url
Value/Type: string
tools
Value/Type: array
project_id
Value/Type: string
project_name
Value/Type: string
campaign_id
Value/Type: string
competitors
Value/Type: array
keywords
Value/Type: array
[{"tag":"seo", "keywords":["search tool", "search engine"]},{"tag":"seo tool", "keywords":["search tool", "search engine"]}]{
"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
}
]
}Jump to Add competitors to an existing tracking campaignAdd competitors to an existing tracking campaign
Price: 100 API units per request
This request lets you add up to 20 competitor domains to an existing tracking campaign.
About adding competitors to a Position Tracking campaign ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
competitors
Value/Type: array
url
Value/Type: string
tools
Value/Type: array
project_id
Value/Type: string
project_name
Value/Type: string
campaign_id
Value/Type: string
competitors
Value/Type: array
keywords
Value/Type: array
{"competitors":["yahoo.com"]}{
"url": "mysite.com",
"tools": [
{
"tool": "tracking"
}
],
"project_id": 643526670283248,
"project_name": "myproject",
"campaign_id": 643526670283248_17238,
"competitors": [
"google.com",
"ebay.com",
"yahoo.com"
],
}Jump to Remove competitors from an existing tracking campaignRemove 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
competitors
Value/Type: array
url
Value/Type: string
tools
Value/Type: array
project_id
Value/Type: string
project_name
Value/Type: string
campaign_id
Value/Type: string
competitors
Value/Type: array
keywords
Value/Type: array
{"competitors":["ebay.com","yahoo.com"]}{
"url": "mysite.com",
"tools": [
{
"tool": "tracking"
}
],
"project_id": 643526670283248,
"project_name": "myproject",
"campaign_id": 643526670283248_17238,
"competitors": [
"google.com"
],
}Jump to Get a list of campaignsGet 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.
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type:
targets
Value/Type: integer
project_id
Value/Type: string
device
desktop, phone, or tablet.Value/Type: string
engine
Value/Type: string
id
Value/Type: string
isGathering
Value/Type: boolean
keywords_count
Value/Type: integer
language
Value/Type: string
location->code
Value/Type: string
location->hl
Value/Type: string
location->location_id
Value/Type: integer
location->name
Value/Type: string
location->type
Value/Type: string
url
Value/Type: string
type
Value/Type: string
{
"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
}
}Jump to Universal location searchUniversal location search
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.
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
location_id
Value/Type: integer
name
Value/Type: string
country_code
Country code, as defined by ISO 3166-1 code reference (column Alpha-2 code).
Value/Type: 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
type
Value/Type: 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
filter_engine
Value/Type: google, bing, baidu
locations
Value/Type: array
https://api.semrush.com/position-tracking/management/v1/info/locations?key=API_KEY&type=postal%20code&country_code=us{
"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
}
}
]
}Jump to Campaign datesCampaign dates
Price: 100 API units per request
This request returns a list of dates when campaign data was harvested.
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
actionRequired
Value/Type: report
typeRequired
Value/Type: tracking_campaign_dates
total
Value/Type: integer
last_crawl
Value/Type: integer
Dt
Value/Type: Date in YYYYMMDD format
GET /?key=YOUR_API_KEY&action=report&type=tracking_campaign_dates{
"total": "9",
"last_crawl": "2",
"data": {
"0": {
"Dt": "20140401",
},
"1": {
"Dt": "20140402",
},
"2": {
"Dt": "20140403",
},
"3": {
"Dt": "20140404",
},
...
}
}Jump to Organic overview reportOrganic overview report
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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
actionRequired
Value/Type: report
typeRequired
Value/Type: tracking_overview_organic
url
Tracked URL or competitor URL (with a mask). To specify multiple domains, use the following format: url={domain1}:{domain2}.
If omitted, the value from the campaign settings is used by default.
Value/Type: string
display_tags
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.
Value/Type: string
display_tags_condition
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.
Value/Type: string
date_begin
Value/Type: Date in YYYYMMDD format
date_end
Value/Type: Date in YYYYMMDD format
linktype_filter
Specifies whether the local pack and hotel rankings should be included in the report output or excluded from it.
Value/Type: 0 - Include local pack and hotel rankings. This is the default value 1 - Include only local pack and hotel rankings (organic rankings are excluded) 2 - Exclude local pack rankings 524288 - Exclude hotels rankings 524290 - Exclude local pack and hotel rankings 536870912 - Exclude AI Overview rankings 536870914 - Exclude local pack and AI Overview rankings 537395202 - Exclude local pack, hotels, and AI Overview rankings
business_name
Business name associated with the domain. It must match the name in Google Business Profile.
Value/Type: string
total
Value/Type: integer
visibility
Value/Type: percentage
differenceVisibility
Value/Type: percentage
all
Value/Type: integer
all_difference
Value/Type: integer
all_improved
Value/Type: integer
all_declined
Value/Type: integer
all_left
Value/Type: integer
all_entered
Value/Type: integer
top3
Value/Type: integer
top3_improved
Value/Type: integer
top3_declined
Value/Type: integer
top3_difference
Value/Type: integer
top3_left
Value/Type: integer
top3_entered
Value/Type: integer
top10
Value/Type: integer
top10_improved
Value/Type: integer
top10_declined
Value/Type: integer
top10_difference
Difference in the number of keywords ranking on the first page of search results.
Value/Type: integer
top10_left
Value/Type: integer
top10_entered
Value/Type: integer
top20
Value/Type: integer
top20_improved
Value/Type: integer
top20_declined
Value/Type: integer
top20_difference
Difference in the number of keywords ranking on the first two pages of search results.
Value/Type: integer
top20_left
Value/Type: integer
top20_entered
Value/Type: integer
data
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.
Value/Type: array
GET /?key=YOUR_API_KEY&action=report&type=tracking_overview_organic&url=*.apple.com%2F*&date_begin=20140405&date_end=20140411&linktype_filter=0{
"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
}
}Jump to Adwords overview reportAdwords overview report
Price: 100 API units per request
This request returns the number of keywords that land the specified domain on each of the Google’s paid search rankings 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
actionRequired
Value/Type: report
typeRequired
Value/Type: tracking_overview_adwords
url
Tracked URL or competitor URL (with a mask).
If omitted, the value from the campaign settings is used by default.
Value/Type: string
display_tags
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.
Value/Type: string
display_tags_condition
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.
Value/Type: string
date_begin
Value/Type: Date in YYYYMMDD format
date_end
Value/Type: Date in YYYYMMDD format
business_name
Business name associated with the domain. It must match the name in Google Business Profile.
Value/Type: string
total
Value/Type: integer
visibility
Value/Type: percentage
differenceVisibility
Value/Type: percentage
all
Value/Type: integer
all_difference
Value/Type: integer
all_improved
Value/Type: integer
all_declined
Value/Type: integer
all_left
Value/Type: integer
all_entered
Value/Type: integer
top3
Value/Type: integer
top3_improved
Value/Type: integer
top3_declined
Value/Type: integer
top3_difference
Value/Type: integer
top3_left
Value/Type: integer
top3_entered
Value/Type: integer
top10
Value/Type: integer
top10_improved
Value/Type: integer
top10_declined
Value/Type: integer
top10_difference
Difference in the number of keywords ranking on the first page of search results.
Value/Type: integer
top10_left
Value/Type: integer
top10_entered
Value/Type: integer
top20
Value/Type: integer
top20_improved
Value/Type: integer
top20_declined
Value/Type: integer
top20_difference
Difference in the number of keywords ranking on the first two pages of search results.
Value/Type: integer
top20_left
Value/Type: integer
top20_entered
Value/Type: integer
data
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.
Value/Type: array
GET /?key=YOUR_API_KEY&action=report&type=tracking_overview_adwords&url=*.apple.com%2F*&date_begin=20140405&date_end=20140411&linktype_filter=0{
"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
}
}Jump to Organic positions reportOrganic positions report
Price: 100 API units per keyword added
This request lists all keywords from a Position Tracking campaign, top 100 rankings of the specified URLs for those keywords, and position changes over the selected timeframe.
In addition to Google, this endpoint supports campaigns targeted to all Search Engine options available in Position Tracking, including ChatGPT. Rankings and visibility data will be returned based on the specific search engine selected in the campaign configuration.
About the Position Tracking Overview report ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
actionRequired
Value/Type: report
typeRequired
Value/Type: tracking_position_organic
url
Tracked URL or competitor URL (with a mask). To specify multiple domains, use the following format: url={domain1}:{domain2}.
If omitted, the value from the campaign settings is used by default.
Value/Type: string
top_filter
Value/Type: 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
date_begin
Value/Type: Date in YYYYMMDD format
date_end
Value/Type: Date in YYYYMMDD format
display_tags
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.
Value/Type: string
display_tags_condition
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.
Value/Type: string
display_filter
Ph, Nq, and Cp.Value/Type: string
display_limit
10.Value/Type: integer
display_offset
Value/Type: integer
display_sort
Value/Type: 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
linktype_filter
Specifies whether the local pack and hotel rankings should be included in the report output or excluded from it.
Value/Type: 0 - Include local pack and hotel rankings. This is the default value 1 - Include only local pack and hotel rankings (organic rankings are excluded) 2 - Exclude local pack rankings 524288 - Exclude hotels rankings 524290 - Exclude local pack and hotel rankings 536870912 - Exclude AI Overview rankings 536870914 - Exclude local pack and AI Overview rankings 537395202 - Exclude local pack, hotels, and AI Overview rankings
use_volume
Specifies the level of CPC and volume to be used in the report. If omitted, the bottom-most available level is used.
Value/Type: national regional local
business_name
Business name associated with the domain. It must match the name in Google Business Profile.
Value/Type: string
serp_feature_filter
Filters the report output for keywords that have a specific SERP feature on the SERP.
For a full list of available SERP features, refer to Basic doc > SERP features.
Value/Type: string
limit
Value/Type: integer
offset
Value/Type: integer
data
Value/Type: array
Pi
Value/Type: string
Ph
Value/Type: string
Kb
Value/Type: string
Tg
Value/Type: array
Cp
Average price in USD that advertisers pay for a user’s click on an ad containing the given keyword (Google Ads).
Value/Type: float
Nq
Average number of times users have searched for a given keyword per month. We calculate this value over the last 12 months.
Value/Type: integer
Gs
Volume crawling status:
0: Crawled.
1: Not crawled.
Value/Type: integer
Dt
YYYYMMDD format.Value/Type: array
Be
Value/Type: array
Fi
Value/Type: array
Diff
Value/Type: array
Diff1
Value/Type: array
Diff7
Value/Type: array
Diff30
Value/Type: array
Vi
Value/Type: array
Sov
Value/Type: array
Sf
SERP features present on the SERP for the specified date.
For a full list of available SERP features, refer to Basic doc > SERP features.
Value/Type: array
Sfc
SERP feature count indicating how many of each SERP feature appear across all report keywords and whether the tracked domain ranks within them:
Ex: The number of keywords with this SERP feature present in their SERPs.
Ne: The number of keywords without this SERP feature in their SERPs.
De: The number of keywords where the tracked domain is ranking inside this SERP feature.
Dn: The number of keywords where the tracked domain is not ranking inside this SERP feature.
To find the list of all SERP features and their codes, refer to Basic doc > SERP features section.
Value/Type: object
Tr
Value/Type: array
Tc
Value/Type: array
Lu
Value/Type:
Lt
Ranking type.
For a full list of ranking types, refer to Basic doc > SERP features.
Value/Type: array
In
Array of intents for the keyword:
i: Informational.
n: Navigational.
t: Transactional.
c: Commercial.
Value/Type: array
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{
"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.851599999999999,
"*.amazon.com/*": 1.0713999999999999
},
..."20210527": {
"*.apple.com/*": 13.0494,
"*.amazon.com/*": 0.90649999999999997
},
"Diff": {
"*.apple.com/*": 2.1978,
"*.amazon.com/*": -0.16489999999999999
}
},
"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.65999999997,
"*.amazon.com/*": 48100
},
..."20210527": {
"*.apple.com/*": 585833.32999999996,
"*.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"
]
}
}
},
...
}
}Jump to Adwords positions reportAdwords 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.
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
actionRequired
Value/Type: report
typeRequired
Value/Type: tracking_position_adwords
url
Tracked URL or competitor URL (with a mask). To specify multiple domains, use the following format: url={domain1}:{domain2}.
If omitted, the value from the campaign settings is used by default.
Value/Type: string
date_begin
Value/Type: Date in YYYYMMDD format
date_end
Value/Type: Date in YYYYMMDD format
display_tags
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.
Value/Type: string
display_tags_condition
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.
Value/Type: string
display_filter
Ph, Nq, Cp.Value/Type: string
display_limit
10.Value/Type: integer
display_offset
Value/Type: integer
display_sort
Value/Type: 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
total
Value/Type: integer
limit
Value/Type: integer
offset
Value/Type: integer
data
Value/Type: array
Pi
Value/Type: string
Ph
Value/Type: string
Kb
Value/Type: string
Tg
Value/Type: array
Cp
The average price in US dollars that advertisers pay for a user’s click on an ad containing the given keyword (Google AdWords).
Value/Type: float
Nq
The average number of times users search for a given keyword per month. We calculate this value over the last twelve months.
Value/Type: integer
Gs
Volume crawling status:
0: Crawled.
1: Not crawled.
Value/Type: integer
Dt
Value/Type: array
Be
Value/Type: array
Fi
Value/Type: array
Diff
Value/Type: array
Diff1
Value/Type: array
Diff7
Value/Type: array
Diff30
Value/Type: array
Vi
Value/Type: array
Sf
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.
Value/Type: array
Sfc
SERP feature count indicating how many of each SERP feature appear across all report keywords and whether the tracked domain ranks within them:
Ex: The number of keywords with this SERP feature present in their SERPs.
Ne: The number of keywords without this SERP feature in their SERPs.
De: The number of keywords where the tracked domain is ranking inside this SERP feature.
Dn: The number of keywords where the tracked domain is not ranking inside this SERP feature.
To find the list of all SERP features and their codes, refer to Basic doc > SERP features section.
Value/Type: object
Tr
Value/Type: array
Tc
Value/Type: array
Lu
Value/Type:
Lt
Ranking type:
org: Organic.
adt: AdWords top.
adb: AdWords bottom.
Value/Type: array
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{
"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"
]
}
}
},
}
}Jump to Organic competitors discovery reportOrganic 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
An identification key assigned to a user after subscribing to Semrush that is available via the Profile page
Value/Type: string
actionRequired
Value/Type: report
typeRequired
Value/Type: tracking_competitors_organic
url_type
Type of competitor URLs. If omitted, the value from the campaign’s settings is used.
Value/Type: rootdomain subdomain subfolder url
url
Competitor(s) (with a mask) to be returned in the report.
To specify multiple domains, use the following format: url={domain1}:{domain2}.
Value/Type: string
main_domain
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.
Value/Type: string
black_list
Value/Type: string
top_start
Value/Type: integer
top_end
Value/Type: integer
date_begin
Value/Type: Date in YYYYMMDD format
date_end
Value/Type: Date in YYYYMMDD format
display_tags
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.
Value/Type: string
display_tags_condition
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.
Value/Type: string
display_limit
Value/Type: integer
display_offset
Value/Type: integer
display_sort
Value/Type: 1_mc_asc 1_mc_desc av_asc av_desc cd_asc cd_desc cl_asc cl_desc {DATE}_asc {DATE}_desc sov_asc sov_desc sovdiff_asc sovdiff_desc tr_asc tr_desc trdiff_asc trdiff_desc ur_asc ur_desc
linktype_filter
Specifies whether the local pack and hotel rankings should be included in the report output or excluded from it.
Value/Type: 0 - Include local pack and hotel rankings. This is the default value 1 - Include only local pack and hotel rankings (organic rankings are excluded) 2 - Exclude local pack rankings 524288 - Exclude hotels rankings 524290 - Exclude local pack and hotel rankings 536870912 - Exclude AI Overview rankings 536870914 - Exclude local pack and AI Overview rankings 537395202 - Exclude local pack, hotels, and AI Overview rankings
total
Value/Type: integer
limit
Value/Type: integer
offset
Value/Type: integer
keywords_count
Value/Type: integer
data
Value/Type: array
Dt
YYYYMMDD format).Value/Type: array
Mc
Value/Type: integer
Av
Value/Type: float
Sq
Value/Type: integer
Cl
Value/Type: float
Sov
Value/Type: float
Tr
Value/Type: float
Tc
Value/Type: float
Cd
Value/Type: float
Ur
Value/Type: string
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{
"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"
},
...
}
}Jump to Adwords competitors discovery reportAdwords 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
An identification key assigned to a user after subscribing to Semrush that is available via the Profile page.
Value/Type: string
actionRequired
Value/Type: report
typeRequired
Value/Type: tracking_competitors_adwords
url_type
Type of competitor URLs. If omitted, the value from the campaign’s settings is used.
Value/Type: rootdomain subdomain subfolder url
main_domain
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.
Value/Type: string
url
Competitor(s) (with a mask) to be returned in the report.
To specify multiple domains, use the following format: url={domain1}:{domain2}.
Value/Type: string
black_list
Value/Type: string
top_start
Value/Type: integer
top_end
Value/Type: integer
date_begin
Value/Type: Date in YYYYMMDD format
date_end
Value/Type: Date in YYYYMMDD format
display_limit
Value/Type: integer
display_offset
Value/Type: integer
display_sort
Value/Type: av_asc av_desc cd_asc cd_desc cl_asc cl_asc {DATE}_asc {DATE}_desc ur_asc ur_desc
total
Value/Type: integer
limit
Value/Type: integer
offset
Value/Type: integer
keywords_count
Value/Type: integer
data
Value/Type: array
Dt
Value/Type: array
Mc
Value/Type: integer
Av
Value/Type: float
Sq
Value/Type: integer
Cl
Value/Type: float
Sov
Value/Type: float
Tr
Value/Type: float
Tc
Value/Type: float
Cd
Value/Type: float
Ur
Value/Type: string
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{
"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"
},
...
}
}Jump to Organic visibility index reportOrganic 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
An identification key assigned to a user after subscribing to Semrush that is available via the Profile page
Value/Type: string
actionRequired
Value/Type: report
typeRequired
Value/Type: tracking_visibility_organic
url
Tracked URL or competitor URL (with mask). To specify multiple domains, use the following format: url={domain1}:{domain2}.
If omitted, the value from the campaign settings is used by default.
Value/Type: string
date_begin
Value/Type: Date in YYYYMMDD format
date_end
Value/Type: Date in YYYYMMDD format
display_tags
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.
Value/Type: string
display_tags_condition
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.
Value/Type: string
display_filter
Ph, Nq, and Cp columns.Value/Type: string
linktype_filter
Specifies whether the local pack and hotel rankings should be included in the report output or excluded from it.
Value/Type: 0 - Include local pack and hotel rankings. This is the default value 1 - Include only local pack and hotel rankings (organic rankings are excluded) 2 - Exclude local pack rankings 524288 - Exclude hotels rankings 524290 - Exclude local pack and hotel rankings 536870912 - Exclude AI Overview rankings 536870914 - Exclude local pack and AI Overview rankings 537395202 - Exclude local pack, hotels, and AI Overview rankings
use_volume
Specifies the level of CPC and volume to be used in the report. If omitted, the bottom-most available level is used.
Value/Type: national regional local
business_name
The business name associated with the domain. It should match the name from the Google My Business profile.
Value/Type: string
serp_feature_filter
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.
Value/Type: string
total
Value/Type: integer
data
Value/Type: array
Dt
Value/Type: Date in YYYYMMDD format
Vi
Value/Type: float
Vr
Value/Type: float
Av
Value/Type: float
Sov
Value/Type: float
Tr
Value/Type: float
Tc
Value/Type: float
GET /?key=YOUR_API_KEY&action=report&type=tracking_visibility_organic&date_begin=20210518&date_end=20210524&url=*.apple.com%2F*&linktype_filter=0{
"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
}
}
}Jump to Adwords visibility index reportAdwords 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
An identification key assigned to a user after subscribing to Semrush that is available via the Profile page
Value/Type: string
actionRequired
Value/Type: report
typeRequired
Value/Type: tracking_visibility_adwords
url
Tracked URL or competitor URL (with mask). To specify multiple domains, use the following format: url={domain1}:{domain2}.
If omitted, the value from the campaign settings is used by default.
Value/Type: string
date_begin
Value/Type: Date in YYYYMMDD format
date_end
Value/Type: Date in YYYYMMDD format
display_tags
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.
Value/Type: string
display_tags_condition
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.
Value/Type: string
display_filter
Ph, Nq, and Cp columns.Value/Type: string
total
Value/Type: integer
data
Value/Type: array
Dt
Value/Type: Date in YYYYMMDD format
Vi
Value/Type: float
Vr
Value/Type: float
Av
Value/Type: float
Sov
Value/Type: float
Tr
Value/Type: float
Tc
Value/Type: float
GET /?key=YOUR_API_KEY&action=report&type=tracking_visibility_adwords&date_begin=20140401&date_end=20140411&url=*.apple.com%2F*{
"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
}
}
}Jump to Organic landing pages reportOrganic 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
actionRequired
Value/Type: report
typeRequired
Value/Type: tracking_landing_pages_organic
urlRequired
Tracked URL or competitor URL (without a mask). To specify multiple domains, use the following format: url={domain1}:{domain2}.
Value/Type: string
date_begin
Value/Type: Date in YYYYMMDD format
date_end
Value/Type: Date in YYYYMMDD format
display_tags
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.
Value/Type: string
display_tags_condition
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.
Value/Type: string
display_filter
Ph, Nq, and Cp columns.Value/Type: string
display_limit
Value/Type: integer
display_offset
Value/Type: integer
display_sort
Value/Type: 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
newlost_filter
Value/Type: new, lost
linktype_filter
Specifies whether the local pack and hotels rankings should be included in the report output or excluded from it.
Value/Type: 0 - Include local pack and hotel rankings. This is the default value 1 - Include only local pack and hotel rankings (organic rankings are excluded) 2 - Exclude local pack rankings 524288 - Exclude hotels rankings 524290 - Exclude local pack and hotel rankings 536870912 - Exclude AI Overview rankings 536870914 - Exclude local pack and AI Overview rankings 537395202 - Exclude local pack, hotels, and AI Overview rankings
use_volume
Specifies the level of CPC and volume to use in the report. If omitted, the bottom-most available level is used.
Value/Type: national regional local
total
Value/Type: integer
limit
Value/Type: integer
offset
Value/Type: integer
new
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).
Value/Type: integer
lost
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).
Value/Type: integer
keywords
Value/Type: integer
Pc
Value/Type: integer
data
Value/Type: array
Ur
Value/Type: string
Tp
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.
Value/Type: new, lost
Mc
Value/Type: integer
Av
Value/Type: float
Tr
Value/Type: float
Tc
Value/Type: float
Rq
Value/Type: integer
Kw
Value/Type: array
Pi
Value/Type: string
Ph
Value/Type: string
Kw -> Tp
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.
Value/Type: new, lost
Rq
Value/Type: integer
Gs
Value/Type: integer
Tg
Value/Type: array
Kw -> Dt
Value/Type: array
Lt
Ranking type.
For a full list of ranking types, refer to Basic doc > SERP features.
Value/Type: string
Kw -> In
Array of intents for the keyword:
i: Informational.
n: Navigational.
t: Transactional.
c: Commercial.
Value/Type: array
Dt -> [date] -> In
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)
Value/Type: array
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{
"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
},
...
}Jump to Adwords landing pages reportAdwords 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 ›
Jump to EndpointEndpoint
Request Parameters
keyRequired
Identification key assigned to each user after subscribing to Semrush. You’ll find it in Subscription info > API units.
Value/Type: string
actionRequired
Value/Type: report
typeRequired
Value/Type: tracking_landing_pages_adwords
urlRequired
Tracked URL or competitor URL (with a mask). To specify multiple domains, use the following format: url={domain1}:{domain2}.
Value/Type: string
date_begin
Value/Type: Date in YYYYMMDD format
date_end
Value/Type: Date in YYYYMMDD format
display_tags
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.
Value/Type: string
display_tags_condition
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.
Value/Type: string
display_filter
Ph, Nq, and Cp columns.Value/Type: string
display_limit
Value/Type: integer
display_offset
Value/Type: integer
display_sort
Value/Type: 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,
newlost_filter
Value/Type: new, lost
total
Value/Type: integer
limit
Value/Type: integer
offset
Value/Type: integer
new
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).
Value/Type: integer
lost
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).
Value/Type: integer
keywords
Value/Type: integer
Pc
Value/Type: integer
data
Value/Type: array
Ur
Value/Type: string
Tp
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.
Value/Type: new, lost
Mc
Value/Type: integer
Av
Value/Type: float
Tr
Value/Type: float
Tc
Value/Type: float
Rq
Value/Type: integer
Kw
Value/Type: array
Pi
Value/Type: string
Ph
Value/Type: string
Kw -> Tp
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.
Value/Type: new, lost
Rq
Value/Type: integer
Gs
0 - crawled, 1 - not crawled.Value/Type: integer
Tg
Value/Type: array
Kw -> Dt
Value/Type: array
Lt
Ranking type:
- org: Organic
- adt: AdWords top
- adb: AdWords bottom
Value/Type: array
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{
"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
},
...
}
}Last updated: January 30, 2026