SEO Domain & Keyword Scraper (Semrush Alternative)
Pricing
from $5.00 / 1,000 result rows
SEO Domain & Keyword Scraper (Semrush Alternative)
SEMrush-alternative SEO data: domain overview, ranked keywords, keyword research, competitors & backlinks via the DataForSEO API. MCP/API-ready.
Pricing
from $5.00 / 1,000 result rows
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
SEO Domain & Keyword Scraper (DataForSEO)
Use this Apify Actor to analyze a target domain or a keyword set and return structured SEO rows through Apify datasets and Apify MCP. It accepts one domain for domain-oriented modes, or a list of keywords for keyword-oriented modes. Each returned record represents one SEO result row, while domain overview and backlinks summary modes return one record. The main fields include keyword metrics, ranked URLs, organic competitor overlap, and backlink profile totals, so the output supports research, reporting, and agent-driven workflows.
Best fit and connected workflows
This Actor fits workflows that begin with a domain audit, keyword research task, competitor review, or backlink snapshot and then continue into a dataset, spreadsheet, dashboard, or agent summary.
Typical routing:
- Start with
domain_overviewfor a compact domain-level view of organic and paid keyword totals. - Use
ranked_keywordswhen you want the keywords a domain ranks for, plus position and ranked URL. - Use
keyword_overviewwhen you already have specific terms and want metrics for those exact keywords. - Use
keyword_ideaswhen you want related keyword suggestions seeded from one or more phrases. - Use
competitorswhen you want organic competitor domains and shared keyword overlap. - Use
backlinks_summarywhen you want backlink profile totals for one domain.
SEO Domain & Keyword Scraper (DataForSEO) is designed as a focused standalone workflow.
Practical scenario
Jordan, an SEO specialist, starts with nike.com in domain_overview. The returned record includes organicKeywords, organicEtv, organicTrafficCostUsd, and paidKeywords. Jordan uses those fields to choose the next step: review ranked_keywords for deeper page-level analysis, then export the dataset rows into a reporting sheet for the client team.
Input fields
| Field | Type | Description |
|---|---|---|
mode | string | Selects the dataset to pull: domain_overview, ranked_keywords, keyword_overview, keyword_ideas, competitors, or backlinks_summary. Defaults to domain_overview. |
target | string | Domain to analyze, such as nike.com. Used by domain, ranked keyword, competitor, and backlink modes. |
keywords | array of strings | Keyword phrases for keyword_overview or keyword_ideas. |
dataforSeoLogin | string | DataForSEO API login email. Stored as a secret. |
dataforSeoPassword | string | DataForSEO API password. Stored as a secret. |
locationCode | integer | DataForSEO location code for the market. Defaults to 2840 for the United States. |
languageCode | string | Two-letter language code such as en. Defaults to en. |
maxResults | integer | Maximum rows for list modes. Ignored by domain_overview and backlinks_summary. |
includeSerpInfo | boolean | When enabled, keyword overview and keyword ideas also request SERP feature data. |
Focused input example
{"mode": "keyword_ideas","keywords": ["running shoes", "marathon training"],"locationCode": 2840,"languageCode": "en","maxResults": 50,"includeSerpInfo": true,"dataforSeoLogin": "you@example.com","dataforSeoPassword": "your-dataforseo-api-password"}
Output fields
| Field | Type | Meaning |
|---|---|---|
mode | string | Mode used for the returned row. |
target | string | Domain analyzed in domain, competitor, or backlink modes. |
keyword | string | Keyword for keyword-based rows. |
searchVolume | integer | Search volume for the keyword. |
cpc | number | Cost per click. |
competition | number | Competition value for the keyword. |
competitionLevel | string | Competition level label. |
keywordDifficulty | integer | Keyword difficulty. |
mainIntent | string | Main intent for the keyword. |
position | integer | Organic position. |
positionAbsolute | integer | Absolute position. |
serpType | string | SERP type. |
rankedUrl | string | URL ranking for the keyword. |
etv | number | Estimated traffic value. |
estimatedTrafficCostUsd | number | Estimated traffic cost in USD. |
organicKeywords | integer | Organic keyword count for the target domain. |
organicEtv | number | Organic estimated traffic value. |
organicTrafficCostUsd | number | Organic traffic cost in USD. |
paidKeywords | integer | Paid keyword count for the target domain. |
competitorDomain | string | Competitor domain returned in competitor mode. |
avgPosition | number | Average position across shared keywords. |
intersections | integer | Shared keywords with the target domain. |
competitorOrganicKeywords | integer | Competitor's organic keyword count. |
competitorOrganicEtv | number | Competitor's organic estimated traffic value. |
rank | integer | Backlink rank. |
backlinks | integer | Backlink count. |
referringDomains | integer | Referring domain count. |
referringMainDomains | integer | Referring main domain count. |
brokenBacklinks | integer | Broken backlink count. |
Illustrative output record
{"mode": "ranked_keywords","target": "nike.com","keyword": "running shoes","searchVolume": 823000,"cpc": 0.74,"competition": 0.42,"keywordDifficulty": 91,"mainIntent": "informational","position": 1,"serpType": "organic","rankedUrl": "https://www.nike.com/","etv": 248300.5}
How it works
The Actor sends your selected mode and inputs to the matching DataForSEO dataset path.
- Domain modes return a single report record.
- Keyword, competitor, and ranked keyword modes return multiple rows.
maxResultsapplies to list modes.includeSerpInfoonly affectskeyword_overviewandkeyword_ideas.- Results are written to the Apify dataset.
- A run summary is written to the default key-value store under
OUTPUT.
The dataset also includes views for keyword data, domain overview, competitors, and backlinks, which makes the returned rows easier to inspect by use case.
Pricing
This Actor uses Apify Pay per event pricing, plus normal Apify platform usage charges such as storage and compute according to your execution configuration. DataForSEO usage is billed separately on your own DataForSEO account, and Apify platform usage is billed separately as part of your Apify run.
For current rates, open the live Pricing tab on the Actor page.
A simple event-count example: one run with one Actor start event, twelve Result row events, and one Domain/backlink report event is billed on Apify according to those event types, while the DataForSEO API calls are billed on your DataForSEO account.
Use with AI agents (MCP)
This Actor is available through Apify MCP as a tool for fetching structured SEO data from the exact Actor identity khadinakbar/seo-domain-keyword-scraper.
Tool description: request a domain or keyword set, and the Actor returns SEO metrics as dataset rows that an agent can read, summarize, or pass into another workflow.
Analyze
nike.cominranked_keywordsmode for the US market and return the top 20 rows. Include keyword metrics, ranking position, and ranked URL. Then summarize the main intent patterns from the returned dataset.
Output interpretation:
resultspoints to the dataset items endpoint for all returned rows.keywordDatais the keyword view for keyword overview, keyword ideas, and ranked keyword rows.domainOverviewis the domain view for domain-level totals.competitorsis the competitor view.backlinksis the backlink view.summaryincludes the run summary record with mode, result count, Apify charge, and DataForSEO cost.runopens the Apify Console run page for logs and storage links.
Provenance and scope:
- The data comes from the DataForSEO API through this Actor.
- Results reflect the selected mode, target, location, language, and keyword inputs.
- Keyword modes use the provided keyword list, while domain modes use the target domain.
Pagination and cost guidance:
- Use
maxResultsto bound list outputs. - Domain and backlink report modes return one record.
- When
includeSerpInfois enabled, keyword overview and keyword ideas also request SERP feature data and use more DataForSEO API resources.
Apify API example
import { ApifyClient } from "apify-client";const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const actor = client.actor("khadinakbar/seo-domain-keyword-scraper");const run = await actor.call({mode: "domain_overview",target: "nike.com",locationCode: 2840,languageCode: "en",dataforSeoLogin: process.env.DATAFORSEO_LOGIN,dataforSeoPassword: process.env.DATAFORSEO_PASSWORD,});const datasetId = run.defaultDatasetId;const { items } = await client.dataset(datasetId).listItems();console.log(items);
Best results and outcome guidance
Start with the mode that matches the decision you want to make.
- Use
domain_overviewfor a fast summary before deeper research. - Use
ranked_keywordsto inspect current organic coverage and landing pages. - Use
keyword_overviewfor exact terms you already care about. - Use
keyword_ideasfor expansion from seed terms. - Use
competitorsto compare overlap and estimate competitive pressure. - Use
backlinks_summaryfor a backlink snapshot tied to one domain.
The most useful inputs are a clean domain, a matching locationCode, and a languageCode aligned with that market. For keyword modes, keep the keyword list focused on the exact phrases you want analyzed.
Focused standalone workflow
SEO Domain & Keyword Scraper (DataForSEO) is designed as a focused standalone workflow for the public input and structured output contract described above.
Design note
I found that the live dataset contract separates report views from row-based views: domain_overview and backlinks_summary map to single-record outputs, while keyword and competitor modes map to multi-row datasets.
FAQ
Can I use this Actor for a domain audit and keyword research in the same workflow?
Yes. A common path is domain_overview first, then ranked_keywords, competitors, or backlinks_summary for follow-up analysis.
Which input should I use for keyword metrics?
Use keywords with keyword_overview or keyword_ideas. The target field is for domain-oriented modes.
How do competitor rows relate to the target domain?
Each competitor row includes the competitor domain plus shared keywords and overlap metrics tied to the selected target.
Where do I find the returned rows after the execution finishes?
Open the dataset via the results link, or read the dataset items through the Apify API from defaultDatasetId.
Is this Actor usable through Apify MCP?
Yes. It is an Apify Actor that can be called through Apify MCP as part of an agent workflow.
Responsible use
Use this Actor with DataForSEO credentials that you control and in line with your DataForSEO agreement. Review the selected mode before each run so the output matches the analysis you want. Keep keyword lists and target domains relevant to the market you are studying, and store secrets in the dedicated secret fields.