Skip to main content
Semrush is an online visibility and marketing analytics platform. Its Analytics API exposes SEO and paid-search data — domain performance, the organic and paid keywords a domain ranks for, competitor overlap, and keyword research metrics — for any domain or keyword across Semrush’s regional databases.

Configuring Semrush as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Semrush option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

The Analytics API authenticates with an API key. It requires a Semrush SEO Business subscription plus a purchased API-unit package. The following configurations are available:
  • API Key (required): Your Semrush API key, found under Subscription info > API units on semrush.com.
  • Domains: The domains (for example example.com) to pull the domain and competitor reports for. One request is made per domain. Leave empty to skip the domain-based streams.
  • Keywords: The keywords to pull the keyword reports for. Keyword Overview batches them into a single request; Related Keywords makes one request per seed keyword. Leave empty to skip the keyword-based streams.
  • Database (region): The Semrush regional database to query, for example br (Brazil), us, or uk. It applies to every report except Domain Overview, which returns all databases the domain has data in.
  • Snapshot Month: Optional month snapshot as YYYY-MM. Leave empty to pull the latest available data.
  • Row Limit per Report: Optional cap on the number of rows fetched per report per domain or keyword. Each returned row consumes API units, so use this to control cost. Leave empty to fetch all matching rows.
Semrush bills the Analytics API per returned row of data. Start with a small set of domains and keywords — and consider setting a Row Limit — to keep API-unit consumption predictable.
Once you’re done, click Next.

2. Select streams

Choose which data streams you want to sync. For faster extractions and lower API-unit cost, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.
Tip: The stream can be found more easily by typing its name.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table, and the type of sync.
  • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster.
  • Sync Type: the Semrush reports are point-in-time snapshots, so FULL_TABLE is recommended.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Below you’ll find all available data streams from Semrush and their corresponding fields. All streams are point-in-time snapshots. The queried domain/database (and the seed keyword, for Related Keywords) are added to each record so the data is self-describing.
Top-line organic and paid visibility metrics for a domain, with one row per Semrush regional database where the domain has data.Fields:
  • domain - Domain the overview metrics are reported for
  • database - Semrush regional database code the metrics refer to (e.g. us, br, uk)
  • rank - Semrush popularity rank of the domain, based on its organic traffic
  • organic_keywords - Number of keywords the domain ranks for in the top 100 organic results
  • organic_traffic - Estimated monthly organic search traffic to the domain
  • organic_cost - Estimated monthly cost (USD) of the domain’s organic keywords if paid via ads
  • adwords_keywords - Number of paid (Google Ads) keywords the domain bids on
  • adwords_traffic - Estimated monthly paid search traffic to the domain
  • adwords_cost - Estimated monthly paid search budget (USD) of the domain
  • pla_keywords - Number of keywords that trigger the domain’s Product Listing Ads
  • pla_uniques - Number of unique Product Listing Ads for the domain
A monthly time series of a domain’s visibility metrics for a single regional database.Fields:
  • domain - Domain the historical metrics refer to
  • database - Semrush regional database code queried
  • date - Date of the historical data point; identifies the time-series row
  • rank - Semrush popularity rank of the domain at that date
  • organic_keywords - Organic keywords in the top 100 at that date
  • organic_traffic - Estimated organic traffic at that date
  • organic_cost - Estimated organic keyword cost (USD) at that date
  • adwords_keywords - Paid keywords at that date
  • adwords_traffic - Estimated paid traffic at that date
  • adwords_cost - Estimated paid budget (USD) at that date
The keywords a domain ranks for in organic search, with position and traffic metrics.Fields:
  • domain - Domain that ranks for the keyword
  • database - Semrush regional database code queried
  • keyword - Keyword the domain ranks for in organic search
  • position - Current organic position (1-100) of the domain for the keyword
  • previous_position - Organic position for the keyword in the previous period
  • position_difference - Change in organic position versus the previous period
  • search_volume - Average monthly search volume for the keyword in the database
  • cpc - Average cost per click (USD) for the keyword in paid search
  • competition - Competitive density of advertisers for the keyword (0 to 1)
  • number_of_results - Number of organic results returned for the keyword
  • url - Landing page URL that ranks for the keyword
  • traffic_percent - Share of the domain’s organic traffic that this keyword drives (%)
  • traffic_cost_percent - Share of the domain’s organic traffic cost from this keyword (%)
  • traffic - Estimated organic traffic the domain gets from this keyword
  • keyword_difficulty - Estimated difficulty of ranking for the keyword (0 to 100)
  • trends - Comma-separated 12-month search-volume trend series for the keyword
The keywords a domain bids on in paid search, with ad position and traffic metrics.Fields:
  • domain - Domain that runs ads for the keyword
  • database - Semrush regional database code queried
  • keyword - Keyword the domain bids on in paid search
  • position - Ad position for the keyword
  • previous_position - Ad position for the keyword in the previous period
  • position_difference - Change in ad position versus the previous period
  • search_volume - Average monthly search volume for the keyword in the database
  • cpc - Average cost per click (USD) for the keyword
  • competition - Competitive density of advertisers for the keyword (0 to 1)
  • number_of_results - Number of organic results returned for the keyword
  • traffic_percent - Share of the domain’s paid traffic that this keyword drives (%)
  • traffic_cost_percent - Share of the domain’s paid traffic cost from this keyword (%)
  • traffic - Estimated paid traffic the domain gets from this keyword
  • visible_url - Displayed (visible) URL of the ad
  • url - Destination/landing URL of the ad
  • trends - Comma-separated 12-month search-volume trend series for the keyword
Domains that compete with the target domain in organic search, ranked by keyword overlap.Fields:
  • target_domain - Domain whose organic competitors are listed
  • database - Semrush regional database code queried
  • domain - Competitor domain that overlaps in organic search
  • competitor_relevance - Level of competition with the target based on shared keywords (0 to 1)
  • common_keywords - Number of keywords both domains rank for organically
  • organic_keywords - Competitor’s total organic keywords in the top 100
  • organic_traffic - Competitor’s estimated monthly organic traffic
  • organic_cost - Estimated cost (USD) of the competitor’s organic keywords
  • adwords_keywords - Competitor’s number of paid keywords
Core research metrics for each configured keyword, returned in a single batched request.Fields:
  • keyword - The keyword the metrics describe
  • database - Semrush regional database code queried
  • search_volume - Average monthly search volume for the keyword in the database
  • cpc - Average cost per click (USD) for the keyword in paid search
  • competition - Competitive density of advertisers for the keyword (0 to 1)
  • number_of_results - Number of organic results returned for the keyword
  • keyword_difficulty - Estimated difficulty of ranking for the keyword (0 to 100)
  • trends - Comma-separated 12-month search-volume trend series for the keyword

Implementation Notes

  • API units: The Analytics API is metered — most reports are billed per returned row. Use the Row Limit per Report setting and a focused set of domains and keywords to control consumption. If the account runs out of units, Semrush returns only as many rows as the balance allows.
  • Databases: Every report except Domain Overview is scoped to a single regional database. Add a separate source (or change the Database setting) to pull another region.
  • Sync type: These reports are current snapshots, so FULL_TABLE keeps each table in sync with the latest Semrush data.