Go to Studio

Semrush Domain Keywords

The Semrush Domain Keywords node retrieves the organic or paid keywords ranked by one or several domains using the Semrush API.

Semrush domain keywords explorer attaching organic inventories to workflow canvases cleanly

What does the Semrush Domain Keywords node do?

The Semrush Domain Keywords node queries the Semrush API to return the list of keywords (organic or paid) for which one or several domains rank in a chosen country database. It is the backbone of competitor research, content gap analysis, and SEO audit workflows running inside Draft & Goal.

Common use cases:

  • Pulling the top organic keywords of a competitor before drafting a content brief.
  • Comparing a list of domains in a single run to spot keyword overlaps.
  • Feeding paid keyword lists into a Google Ads strategy node.
Warning

Credit cost: Semrush charges 2 credits per keyword retrieved. A run with 10 domains and a limit of 100 keywords each can consume up to 2,000 Semrush credits.

Quick setup

Connect your Semrush account

Open Settings > Integrations and add a Semrush integration with a valid API key. The node will not run without a configured integration.

Add the node to the canvas

Open the Node Library, go to Integrations > SEO Tools > Semrush, then drag the Semrush Domain Keywords node onto your workspace.

Provide the domain(s)

Either type one domain per line in the Domain(s) field, or connect a text input containing a single domain or a JSON array of domains (e.g. [example.com, example.fr]).

Choose mode and database

Pick Organic Keywords or Paid Keywords, then select the country database (France, United States, United Kingdom, Germany, Spain, Italy, Netherlands, Canada, Australia, Brazil).

Connect the output

Connect the Keywords Data output to the next node (LLM, JSON Path Extractor, Filter List, etc.) and bind it to a variable name in that node.

Configuration parameters

Semrush domain settings database locale competitor depth pagination token budgeting

Required fields

Name string required default: Semrush Domain Keywords

Node name — Used to identify the node when running and debugging the workflow (e.g. Competitor organic keywords FR).

Description string required default: Takes in one or multiple domains and retrieves organic or paid keywords using Semrush.

Node description — Short summary of what this node fetches.

Semrush Integration integration required

Semrush account — Select the Semrush integration that holds the API key used to authenticate the request.

Mode string required default: organic

Keyword typeOrganic Keywords returns SEO rankings, Paid Keywords returns Google Ads keywords.

Database (Country) string required default: fr

Country database — Selects the Semrush regional index. Available values: fr, us, uk, de, es, it, nl, ca, au, br.

Number of Results number required default: 100

Display limit — Maximum number of keywords returned per domain. Range: 1 to 10,000. Remember the 2-credits-per-keyword cost.

Export Columns string required default: Ph,Po,Nq,Cp,Co,Nr

Columns returned — Comma-separated Semrush column codes. Available: Ph (Keyword), Po (Position), Nq (Search Volume), Cp (CPC), Co (Competition), Nr (Number of Results).

Optional fields

Domain(s) string

Domains to analyze — One domain per line, or a JSON array of domains piped in from a previous node. When connected as an input, the field accepts either a plain string or a JSON array such as [example.com, example.fr].

Tip

Provide multiple domains in a single run to receive a unified result list where every keyword carries a source_domain field, ready for filtering or grouping downstream.

What does the node output?

The node outputs a JSON string containing the merged list of keyword rows for every domain processed. Each row carries the requested export columns plus a source_domain field added automatically.

keywords_data string

JSON-encoded array of keyword objects. Each object contains the columns requested in Export Columns and a source_domain field with the originating domain.

How to use the output

  1. Draw a connection from the Keywords Data output.
  2. Connect it to the next node (for example a JSON Path Extractor, an LLM, or a Filter List).
  3. Create and name a variable on the receiving node (for example semrush_keywords). The JSON payload will be injected into it.

Usage examples

Example 1: Single competitor organic audit

Pull the top 100 organic keywords of competitor.com in the US database.

Configuration:

  • Domain(s) = competitor.com
  • Mode = Organic Keywords
  • Database = United States (google.com)
  • Number of Results = 100
  • Export Columns = Ph,Po,Nq,Cp,Co,Nr

Output (truncated):

[
  {
    "Ph": "best seo tools",
    "Po": "3",
    "Nq": "12000",
    "Cp": "4.50",
    "Co": "0.78",
    "Nr": "8500000",
    "source_domain": "competitor.com"
  }
]

Example 2: Multi-domain comparison

Compare three French e-commerce domains in one run and feed the result to an LLM for clustering.

Configuration:

  • Domain(s) =
    shop1.fr
    shop2.fr
    shop3.fr
  • Mode = Organic Keywords
  • Database = France (google.fr)
  • Number of Results = 200
  • Export Columns = Ph,Po,Nq

The output array merges the three result sets. Use source_domain downstream to group keywords by site.

Common issues

Semrush: API key not configured

Cause: No Semrush integration is selected on the node, or the integration is missing an API key.

Solution: Open Settings > Integrations, create or update the Semrush integration with a valid API key, then re-select it in the node.

The run consumed far more credits than expected

Cause: Each retrieved keyword costs 2 Semrush credits. Running with multiple domains multiplies the bill.

Solution: Lower Number of Results, restrict the domain list, or filter results downstream rather than fetching unused rows.

The node returned an empty list

Cause: The chosen database has no data for that domain, or the domain is misspelled (https:// prefix, trailing slash, subdomain mismatch).

Solution: Use the bare apex domain (example.com, not https://www.example.com/) and confirm the country database matches where the domain actually ranks.

Best practices and pitfalls

Tip

Cache the output: place a Conditional or Filter List node downstream so subsequent runs reuse the keyword list instead of re-querying Semrush.

Warning

Always validate domain inputs before the node. Empty strings raise a Domain is required error and break the workflow run.

How does it fit into a workflow?

Semrush Domain Keywords usually sits at the top of an SEO research pipeline, feeding cleaned keyword data to extractors, filters, or LLMs.

graph LR
    List[Create List of Domains] --> Semrush[Semrush Domain Keywords]
    Semrush --> Filter[Filter List
<br/>volume > 500]
    Filter --> LLM[LLM clusters topics]
    LLM --> Sheet[Google Sheets export]