Domain Analysis | SE Ranking SEO & AI Search API
Pricing
Pay per usage
Domain Analysis | SE Ranking SEO & AI Search API
This collection of endpoints allows you to perform in-depth competitive analysis on any domain. Use these requests to uncover keyword strategies, traffic trends, and competitor performance in both organic and paid search.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
SE Ranking
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
What is SE Ranking Domain Analysis API Actor?
SE Ranking Domain Analysis gives you search-performance data for any domain or URL straight from SE Ranking's Data API: organic and paid keywords, traffic estimates, position changes, top pages, subdomains, competitors, keyword gaps and paid ads. Pick an endpoint, enter a domain, press Start, and get the result as a dataset you can download as JSON, CSV or Excel or pull through the Apify API.
The data is refreshed monthly and covers 188+ regional databases, so you can compare a domain's visibility in the US, the UK, Germany or any other market.
What can this Actor do?
- 🔎 Domain overview for one regional database or worldwide (organic and paid keywords, traffic, traffic value, top-position distribution)
- 📈 History - monthly trends of keywords and traffic for a domain
- 🔑 Keyword rankings with positions, volume, CPC, difficulty, intent, SERP features, and 25+ filters
- 📄 Top pages and 🌐 subdomains with traffic and keyword counts
- 🥊 Competitors and keyword gap / overlap between two domains
- 📢 Paid ads - which ads a domain runs, or who advertises on a keyword
- ⏱️ Runs on the Apify platform: schedule it, call it through the API, connect it to Make, n8n, Zapier or Google Sheets, and get notified when a run fails
What data can you extract?
| Endpoint (choose in the Endpoint field) | What you get |
|---|---|
Get domain overview by region (overview/db) | Organic + paid keyword counts, traffic, traffic value, position changes for one country database |
Get worldwide domain overview (overview/worldwide) | The same metrics aggregated worldwide, optionally split by country |
Get worldwide URL overview (overview/worldwide/url) | Worldwide keywords, traffic and traffic value for a single URL |
Get domain traffic & keyword history (overview/history) | One row per month: keywords, traffic, traffic value, top-position buckets |
Get domain keyword rankings (keywords) | One row per keyword: position, previous position, volume, CPC, competition, difficulty, intents, SERP features |
Get domain pages (pages) | One row per ranking page: keywords, traffic, traffic share, intent split |
Get domain subdomains (subdomains) | One row per subdomain with keywords, traffic and traffic value |
Get paid ads (ads) | Keywords a domain advertises on, or domains advertising on a keyword, with ad copy and landing pages |
Get domain competitors (competitors) | Competing domains with common keywords, relevance and traffic |
Analyze keyword overlap and gaps (keywords/comparison) | Keywords two domains share, or that one ranks for and the other does not |
How to use SE Ranking Domain Analysis
- Open the Actor and go to the Input tab.
- Choose an Endpoint.
- Fill in the Base parameters section:
domain(orurl) andsource, the regional database code such asus,deoruk. - Open the section that matches your endpoint (for example keywords parameters) and set the options you need. Everything else is ignored for that endpoint.
- Click Start and wait a few seconds.
- Open the Output tab and export the dataset as JSON, CSV or Excel, or read it through the API.
Which fields does each endpoint use?
| Endpoint | Required fields | Notes |
|---|---|---|
overview/db | source, domain or url | |
overview/worldwide | domain or url | No source - it is worldwide |
overview/worldwide/url | url | |
overview/history | source, domain or url | type: organic or paid |
keywords | source, domain or url | If both are set, url wins. year and month must be set together for a historical snapshot |
pages, subdomains | target, scope, source | scope: base_domain or domain (url only for pages) |
ads | source + domain or keyword | Fill keyword to see who advertises on it; otherwise domain is used |
competitors | source, domain | |
keywords/comparison | source, domain or url, compare | diff: 0 = common keywords, 1 = keyword gap |
Field names match the SE Ranking API parameter names, so the API reference applies one to one. The description under every field says which endpoints use it and which values are valid.
Filtering tips
- Keyword text: type it in lowercase.
filter[keyword]andfilter[multi_keyword_included]match case-sensitively against lowercase keywords; the Actor lowercases plain text for you. - Plain text is enough for
filter[keyword],filter[domain_url],filter[url]andfilter[multi_keyword_*]- the Actor builds the JSON the API expects. For AND/OR logic infilter[multi_keyword_included]paste raw JSON, for example[[{"type":"contains","value":"seo tools"},{"type":"begins","value":"free"}]](inner array = AND, outer array = OR; types:contains,begins,ends,exact). - Sorting keeps each endpoint's own default when
order_fieldandorder_typeare empty.
How much does it cost to use SE Ranking Domain Analysis?
Each run makes one request to SE Ranking's Domain Analysis API and returns one page of results (up to the 10).
Input and output examples
Input example
{"endpoint": "keywords","source": "us","domain": "seranking.com","type": "organic","limit": 5,"order_field": "volume","filter[difficulty][to]": 30}
Output example (keywords)
Each keyword is one dataset item. Sample values:
{"keyword": "ranking","position": 4,"prev_pos": 4,"volume": 22400,"cpc": 0,"competition": 0,"difficulty": 59,"url": "https://seranking.com/","traffic": 836,"traffic_percent": 2.09,"price": 0,"serp_features": ["sitelinks", "video", "sge", "related_searches"],"intents": ["I", "N"]}
Overview endpoints return a single item with organic and adv blocks; list endpoints (keywords, pages, subdomains, ads, competitors, keywords/comparison, overview/history) return one item per row.
Use it through the Apify API
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('se_ranking/domain-analysis').call({endpoint: 'keywords/comparison',source: 'us',domain: 'seranking.com',compare: 'semrush.com',diff: '1',limit: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
FAQ
How often is the data updated?
Domain Analysis data is refreshed monthly. Use overview/history for month-by-month trends or the year and month fields of keywords for a past snapshot.
Why is my result empty?
The usual causes:
- A filter is too narrow, or a keyword filter was typed with capital letters (see Filtering tips).
yearandmonthwere not set together, or the month is outside the retention window.- The
sourcecode is wrong. Useukfor the United Kingdom, notgb. domainandurlwere both set forkeywords:urltakes precedence and only that exact URL is analyzed.
How do I find keywords my competitor ranks for and I don't?
Use keywords/comparison, put the competitor in domain, yourself in compare, and set diff to 1. Swapping the two flips the direction of the gap.
Are historical keyword rows different from current ones?
Yes. Historical snapshots use previous_position instead of prev_pos, return volume and traffic as strings, use long intent names such as INFORMATIONAL, and omit total_sites and block_type.
Can I schedule runs and send the data elsewhere?
Yes. Use Apify schedules for recurring runs, webhooks or integrations (Make, n8n, Zapier, Google Sheets) to move the data, and the API example above for custom code.
Are there usage limits?
Yes. To keep the service available for everyone, each Apify account has a fair-use limit on the number of runs (one run = one request to SE Ranking's API). When the limit is reached, the run stops with a message that tells you when the counter resets (00:00 UTC).


