← Back to all apps

Overview

Tools Available3
DeveloperSemrush Holdings, Inc.
CategoryBusiness

Research keywords & traffic

Available Tools

Semrush provides 3 tools that can be used to interact with its services.

Semrush Report

semrush_report
Full Description

Execute Semrush marketing intelligence report (SEO/PPC/traffic data). Requires: exact parameters from semrush_report_schema. Avoid-if: parameters unknown; call semrush_report_schema first.Semrush is a leading marketing intelligence platform providing SEO, PPC, content, and competitive research data.

Parameters

Required
reportstring
toolkitstring
Optional
black_liststring

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

business_namestring

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

campaign_idstring

Campaign ID for position tracking project. Required to identify which tracking campaign to retrieve data from.

categorystring

Category name from the list of 110 categories. For example, human_resources.Refer to Industry categories to find the list of all available values along with the corresponding Market Overview business categories.

countrystring

ISO 3166-1 country code. Use-if: Trends geo filter; trends toolkit is available in toolkit enum. IMPORTANT: Call semrush_toolkit_info(toolkit='trends', table='geocodes') for valid codes.

country_codestring

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

databasestring

Regional database code. Use-if: specific region. Avoid-if: global data. Values: us, uk, de, etc. mobile (prefixed with 'mobile-'), and extended (suffixed with '-ext').

date_beginstring

Start date of the selected period.

date_endstring

End date of the selected period.

device_typestring

This parameter lets you choose whether to retrieve desktop or mobile data. If the parameter isn't specified, data for all devices is shown by default.

display_dailystring

This parameter allows you to get daily updates on position changes that occurred in the last 30 days or more. If the parameter isn't specified, your report will show monthly results for the current and previous months. This option is applied only when display_positions is set.

display_datestring

Date parameter for historical data analysis. Format and range varies by toolkit.

display_filterstring

Filter expression using pipe '|' as separator. Format: <sign>|<field>|<operation>|<value>. Multiple filters: separate with '|'. Example: '+|Po|Eq|10' or multiple: '+|Po|Eq|10|+|Pd|Gt|5'. IMPORTANT: Call semrush_toolkit_info(toolkit, table='operators') for valid operators and fields. The pipe '|' is the required separator between all filter components.

display_limitnumber

Number of results to return. Default and maximum values vary by toolkit. Use-if: pagination needed. Avoid-if: default limit ok.

display_offsetnumber

Skip N results. Use-if: pagination. Avoid-if: first page. Requires: display_limit.

display_positionsstring

The new value indicates keywords that brought a subfolder to Google's top 100 organic or paid search results;lost indicates keywords that no longer bring a subfolder to Google's top 100 organic or paid search results;rise indicates keywords that helped a subfolder get a higher ranking in Google's top 100 organic or paid search results;fall indicates keywords that are currently helping a subfolder remain in the Google top 100, though its ranking may have decreased.

display_positions_typestring

The organic value indicates keywords for which the subfolder ranks only in the traditional positions on the SERP. This is the default value.all indicates keywords for which the subfolder ranks for traditional positions and the keywords where the subfolder ranks in SERP Features.serp_features indicates keywords for which the subfolder ranks only in SERP Features.

display_sortstring

Sort parameter. Use-if: ordering needed. IMPORTANT: Call semrush_toolkit_info(toolkit, table='sort') for valid sort options.

display_tagsstring

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_conditionstring

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. All tags used in either campaign update or filter parameters are sanitized before use following these rules: 1) Any characters other than letters, digits, spaces, or specific allowed symbols, such as .,&,-,$,+,', and #, are removed. 2) Sequences of two or more spaces are replaced with a single space. 3) Three or more underscores in a row are replaced with two underscores. 4) Underscores at the beginning or end of tags are trimmed. 5) All tags are converted to lowercase and spaces are trimmed. IMPORTANT: When using this parameter, 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.

domainstring

Clean domain format. Use-if: domain analysis. Avoid-if: subdomain/subfolder; use target.

domainsstring

URL-encoded string that contains domains in a specified format, separated by the | symbol.This format requires a domain to include <sign>|<type>|<domain>, where: • <sign> means possible operations: +, -, *, or /.• <type> can be or for organic keywords or ad for paid keywords.• <domain> indicates a domain name.You can use the following combinations to see:• Shared keywords: *|or|<your domain>|*|or|<domain2>|*|or|<domain3> (in this example)• All keywords: *|or|<your domain>|+|or|<domain2>|+|or|<domain3>• Unique keywords for your domain: *|or|<your domain>|-|or|<domain2>|-|or|<domain3>• Untapped keywords for your domain: *|or|<domain2>|+|or|<domain3>|-|or|<your domain>• Missing keywords for your domain: *|or|<domain2>|*|or|<domain3>|-|or|<your domain>• Keywords only in one of the domains: *|or|<your domain>|/|or|<domain2>|/|or|<domain3> (only available via API)To encode the characters, use a URL encoder or refer to the Encode special characters section on the Construct your API call page.

export_columnsarray

Column selection for customizing report output. Specify column names as array elements to include only needed data. IMPORTANT: Call semrush_toolkit_info(toolkit, table='columns') to discover available columns for each report. Supports analytics columns like organic/paid keywords, traffic metrics, competitive data, and performance indicators. Each toolkit has specific column sets optimized for different analysis types.

export_decodestring

If this parameter is set to 0, the response will be sent as a URL-encoded string; otherwise, the response won't be converted.

export_escapestring

If this parameter is set to 1, the report's columns will be wrapped in double quotation marks (").

filterstring

Filter projects by user permissions. Use one of the possible values: - all: No filter. - own: Return only the projects owned by the user with the submitted ID key. Used by default. - shared: Return shared projects only. - corporate: For corporate subscribers only.

filter_enginestring

Search engine

geo_typearray

Type of geographical coverage.If the value of the parameter is set to either continent or subcontinent, the geo column will be populated with corresponding region codes. Refer to Geo type codes to find the list of supported region codes.If this parameter isn't specified, the country data is shown by default. To define a country code, use the ISO 3166-1 code reference, column Alpha-2 code.

idstring

Project ID. Learn how to get your project ID › Navigate to the main Projects page and select the required project. Check the page URL displayed in your browser's address bar. It will look like: https://www.semrush.com/projects/6647718. The number after 'projects' is your project ID. In this example, it's 6647718. Copy and save it for future requests.

include_forecasted_itemsboolean

The parameter indicates whether the response includes forecasted items for the next four weeks. The display_date parameter must be set to the current month.The default value is false.

issueidstring

Audit issue ID. Use-if: issue_details. Avoid-if: no audit. Requires: meta_issues report.

limitnumber

The limit. Default value: 7.

linktype_filterstring

Controls inclusion/exclusion of specific SERP feature rankings in reports. Value meanings: 0 - Include local pack and hotel rankings (default), 1 - Include only local pack and hotel rankings (organic rankings 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.

location_idnumber

Location ID

main_domainstring

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. Use a proper mask in requests with the url parameter. URL type examples: rootdomain: *.ebay.com/*, subdomain: www.ebay.com/*, subfolder: ebay.com/motors/*, url: http://www.ebay.com/motors/. Choose the appropriate mask format based on the scope of analysis you need. Important: Encode parameter values containing special characters such as / in the URL.

namestring

Location name to search for.

newlost_filterstring

Return only new or lost URLs.

offsetnumber

The offset. Default value: 0.

pagenumber

The page number. Default value: 1

pageidstring

Page ID from crawl. Use-if: page_info report. Avoid-if: no crawl. Requires: page_list report.

phrasestring

Target keyword. Use-if: keyword analysis. Avoid-if: domain analysis.

positions_typestring

The organic value indicates results with only the traditional organic positions on the SERP. This is the default value.The all vale indicates results that contain the traditional organic positions and the SERP Features as positions. In that case, the Pt column will return -1 for the organic or SERP feature code.

project_idstring

Semrush project ID. Use-if: project reports. Avoid-if: domain reports. Requires: valid Semrush project.

search_stringstring

This filter lets you get data for subfolders that contain the specified search term in their path.

segmentstring

An operator that defines the audience scope:contains unites the audience of the selected_targets.shares combines the audience who visited all the selected_targets.excludes selects the audience who visited other selected_targets domains but not the one you exclude.

selected_targetsarray

Array of domains separated by a comma. These are the domains selected from the targets parameter for analysis.The maximum number of domains depends on the number of domains in targets (up to 5).

serp_feature_filterstring

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. Filters the report output for keywords that have a specific SERP feature on the SERP. Available SERP Features: aai (Ask AI), adb (Google Ads bottom), adt (Google Ads top), aic (AI chat), aim (AI summary), aio (AI overview), ais (AI stories), amp (AMP), app (Apps block), asr (AI search results), car (Organic carousel), ctt (Citations), drp (Double response), flg (Flights), fsn (Featured snippet), geo (Local pack), hot (Hotels), img (Images), ind (Indented), job (Jobs), kng (Knowledge panel), knw (Instant answer), mac (Media actions), new (Top stories), org (Organic), rel (People also ask), res (Related searches), rev (Reviews), rsp (Response), shp (Shopping ads), spb (Sports Onebox), stl (Sitelinks), tea (Teaser), twt (Twitter), vib (Featured video), vid (Video). You can select multiple SERP features or use 'none' to filter keywords without any SERP features.

snapshot_idstring

Audit snapshot ID. Use-if: historical audit. Avoid-if: latest audit. Requires: snapshots report.

sortstring

The sorting type. Default value: DESC

sort_orderstring

This parameter lets you sort the data. For descending order, append _desc; for ascending order, append _asc. If this parameter isn't specified, data is shown in descending order by default.

subdomainstring

Unique name of a website's subdomain you'd like to investigate.

subfolderstring

Unique name of a website's subfolder you'd like to investigate.

targetstring

Primary analysis subject. Use-if: single domain/URL analysis. Avoid-if: multi-domain; use targets.

target_typestring

Type of requested target.

target_typesarray

Target type array. Use-if: with targets parameter. Avoid-if: no targets. Requires: matching targets array.

targetsarray

Array of domains/URLs. Use-if: multi-domain analysis. Avoid-if: single domain; use target. Requires: target_types array.

top_endnumber

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

top_filterstring

Positions filter.

top_startnumber

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

traffic_channelstring

This parameter lets you filter traffic sources by a specific channel type. If this parameter isn't specified, data for all traffic channels is shown by default.

traffic_typestring

This parameter allows you to retrieve organic or paid traffic. If this parameter isn't specified, data for all traffic types is shown by default.

typestring

Location type. Values: 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

urlstring

Exact URL format. Use-if: page analysis. Avoid-if: domain analysis. Requires: exact crawled format.

url_typestring

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

use_volumestring

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

Semrush Report Schema

semrush_report_schema
Full Description

Get Semrush marketing intelligence report parameters/schema (SEO/PPC/traffic data). Use-if: before executing report. Avoid-if: already have parameters.

Validation rules: required=must provide, omitempty=optional, oneof=allowed values, datetime=date format, min/max=limits, dive=array validation.

TOOLKITS: + trends(Traffic Analytics): Use for strategic traffic insights, audience behavior, competitive positioning. Ideal for competitive intelligence, audience demographics analysis, geographic market research, business intelligence decisions. Focuses on 'what' happens vs tactical 'how' optimization. + domains(Domain Analytics): Use for detailed search marketing analysis, keyword research, competitor SEO/PPC strategies. Essential for SEO keyword research, PPC competitor analysis, search visibility tracking, tactical optimization. Focuses on 'how' to optimize vs strategic 'what'. + backlinks(Backlink Analytics): Use for link profile analysis, link building opportunities, competitive backlink research, domain authority evaluation. Essential for backlink profile audits, link building opportunities, competitor backlink analysis, authority assessment. Essential for off-page SEO. + keyword(Keyword Report): Use for individual keyword research, difficulty analysis, finding related keywords, SERP competition understanding. Ideal for keyword research and discovery, keyword difficulty analysis, SERP competitive analysis, PPC keyword planning. Essential for content and PPC strategy. + overview(Domain Overview): Use for domain authority and ranking insights across databases. Essential for competitor benchmarking, market position assessment, multi-region ranking analysis. Provides high-level domain performance vs detailed keyword research. + subdomain(Subdomain Analytics): Use for specific subdomains (blog.domain.com, shop.domain.com) vs entire domains. Essential for subdomain SEO performance analysis, site architecture optimization, multi-brand analysis, subdomain competitive intelligence. Ideal for large sites with distinct subdomain strategies. + subfolder(Subfolder Analytics): Use for specific website sections with trailing slash format. Perfect for content section SEO analysis, URL structure optimization, category performance analysis, subfolder competitive intelligence. Exact format matters for results. + tracking(Position Tracking): Use for ongoing keyword position monitoring, competitor tracking, and ranking performance analysis. Essential for SEO performance tracking, competitor rank surveillance, keyword position alerts, campaign monitoring. Ideal for agencies managing multiple clients and tracking campaigns over time. + projects(Project Management): Use for ongoing monitoring campaigns vs one-time analysis. Ideal for rank tracking campaigns, technical SEO audits, team collaboration, client reporting. Essential for agencies and teams managing multiple clients or long-term campaigns. + siteaudit(Site Audit): Use for comprehensive technical SEO analysis, identifying crawl issues, performance problems, and optimization opportunities. Essential for technical SEO audits, site health monitoring, issue identification, SEO performance tracking. Workflow: 1) snapshots → 2) info/meta_issues → 3) page_list → 4) page_info/issue_details.

Parameters

Required
reportstring
toolkitstring

Semrush Toolkit Info

semrush_toolkit_info
Full Description

Get Semrush toolkit information including available reports, data columns, and reference tables. IMPORTANT: Call this tool with 'table' parameter when report arguments reference specific tables (e.g., export_columns→columns, display_sort→sort, display_filter→operators). Use-if: parameter descriptions mention 'semrush_toolkit_info', need column/SERP/operator/sort details.

Parameters

Required
toolkitstring

Filter by specific toolkit

Optional
tablestring

Specific reference table: 'columns' for export_columns, 'sort' for display_sort, 'operators' for display_filter, 'geocodes' for country, 'serp' for SERP features