Description
n8n-nodes-serpstat
This is an n8n community node. It lets you use Serpstat API in your n8n workflows.
Serpstat is AI-based SEO platform used for competitive intelligence, keyword and backlinks research, tracking keyword rankings, SEO audits, and managing SEO tasks.
n8n is a fair-code licensed workflow automation platform.
Installation
Operations
Credentials
Compatibility
Usage
Resources
Version history
Installation
To install this node in your n8n instance:
1. Go to Settings > Community Nodes.
2. Click Install a node.
3. Enter n8n-nodes-serpstat as the npm Package Name.
4. Agree to the terms and click Install.
For more details, see the n8n community nodes installation guide.
Operations
This node supports operations across twelve main resources:
Audit Analysis
- Export Audit Report (
export) - Get Audit Basic Info (
getBasicInfo) - Get Audit Categories Statistic (
getCategoriesStatistic) - Get Audit Default Settings (
getDefaultSettings) - Get Audit Error Elements (
getErrorElements) - Get Audit History by Error Count (
getHistoryByCountError) - Get Audit List (
getList) - Get Audit Report Without Details (
getReportWithoutDetails) - Get Audit Scan User URL List (
getScanUserUrlList) - Get Audit Settings (
getSettings) - Get Audit Sub-Elements by CRC (
getSubElementsByCrc) - Set Audit Settings (
setSettings) - Start Audit (
start) - Stop Audit (
stop) - Get Anchors (
getAnchors) - Get Backlinks Summary (
getSummaryV2) - Get Changes History (
getBacklinksChangesHistory) - Get Intersecting Domains (
getIntersect) - Get Intersecting Domains Summary (
getIntersectSummary) - Get Lost Backlinks (
getLostBacklinks) - Get Lost Outlinks (
getLostOutlinks) - Get New Backlinks (
getNewBacklinks) - Get Outlink Domains (
getOutDomains) - Get Outlink Threat Domains (
getOutThreats) - Get Outlink Threat Links (
getOutThreatsLinks) - Get Outlinks (
getOutlinks) - Get Redirected Domains (
getRedirectedDomains) - Get Referring Domains (
getRefDomains) - Get Referring Threat Domains (
getThreats) - Get Referring Threat Links (
getThreatsLinks) - Get SDR Distribution (
getDistributionSDR) - Get TLD Distribution (
getDistributionTLD) - Get Top Anchors (
getTopAnchors) - Get Top Pages (
getTopPages) - Get API Statistics (
getStats) - Get Audit Statistics (
getAuditStats) - Export Domain Positions (
exportPositions) - Get Category Top Domains (
getCategoryTopDomains) - Get Domain All Regions Traffic (
getAllRegionsTraffic) - Get Domain Keywords (
getDomainKeywords) - Get Domain Keywords By Language (
getDomainKeywordsByLanguage) - Get Domain Organic Competitors (
getOrganicCompetitors) - Get Domain PPC Competitors (
getAdsCompetitors) - Get Domain PPC Keywords (
getAdKeywords) - Get Domain Regions Count (
getRegionsCount) - Get Domain Search History (
getDomainsHistory) - Get Domain Top URLs (
getTopUrlsV2) - Get Domain URLs (
getDomainUrls) - Get Domains AIO Brand Opportunities (
getAIOBrandOpportunities) - Get Domains AIO Summary (
getAIOSummary) - Get Domains Intersection (
getDomainsIntersection) - Get Domains Rating Data (
getDomainsRatingData) - Get Domains Search Summary (
getDomainsInfo) - Get Domains Unique Keywords (
getDomainsUniqKeywords) - Get Market Categories (
getMarketCategories) - Add Domains Classification Task (
addTask) - Get Domain Classification Task Result (
getTask) - Get Domain Classification Tasks (
getTaskList) - Export Keyword Organic Keywords (
exportKeywordsPhrase) - Export Keyword Suggestions (
exportSuggestions) - Get Keyword Ad Keywords (
getAdKeywords) - Get Keyword Competitors (
getCompetitors) - Get Keyword Full Top (
getKeywordFullTop) - Get Keyword Organic Keywords (
getKeywords) - Get Keyword PPC Competitors (
getAdsCompetitors) - Get Keyword Related Keywords (
getRelatedKeywords) - Get Keyword Suggestions (
getSuggestions) - Get Keyword Top (
getKeywordTop) - Get Keyword Top URLs (
getTopUrls) - Get Keywords Search Summary (
getKeywordsInfo) - Add Keyword Volume Checker Task (
addTask) - Get Keyword Volume Checker Task Result (
getTaskResult) - Get Keyword Volume Checker Task Status (
getTaskStatus) - Create (
create) - Delete (
delete) - Get Many (
getMany) - Get Rank Tracker Keyword SERP History (
getKeywordsSerpResultsHistory) - Get Rank Tracker Project Regions (
getProjectRegions) - Get Rank Tracker Project Status (
getProjectStatus) - Get Rank Tracker Projects (
getProjects) - Get Rank Tracker Top Competitors History (
getTopCompetitorsDomainsHistory) - Get Rank Tracker URL SERP History (
getUrlsSerpResultsHistory) - Add SERP Crawling Task (
addTask) - Get SERP Crawling Keyword SERP (
getKeywordSerp) - Get SERP Crawling Parsing Balance (
getParsingBalance) - Get SERP Crawling Task Result (
getTaskResult) - Get SERP Crawling Tasks (
getTaskList) - Activate (
activate) - Deactivate (
deactivate) - Delete (
delete) - Get Many (
getMany) - Invite (
invite) - Get URL Competitors (
getUrlCompetitors) - Get URL Keywords (
getUrlKeywords) - Get URL Missing Keywords (
getUrlMissingKeywords) - Get URL Summary Traffic (
getUrlSummaryTraffic) - Resource:
Domain - Operation:
Get Organic Competitors - Domain:
palantir.com - Search Engine:
G_us(Google US) - Additional Fields (Optional):
Backlink Analysis
Credit Analysis
Domain Analysis
Domain Classification
Keyword Analysis
Keyword Volume Checker
Project Management
Rank Tracker
SERP Crawling
Team Management
URL Analysis
Credentials
You need a Serpstat API token to use this node. You can test Serpstat API with a free trial.
Consider purchasing Serpstat subscription plans to increase data volume.
For heavy API usage, we offer special API plans. Contact us for the details.
After you get access to the Serpstat API, create a new token in your user profile.
Compatibility
Compatible with n8n version 1.105.3 or higher.
Usage
Each user can have only one API token. There are no sandboxes, test endpoints, or any other test environment.
During the testing phase, limit the data size by using the Page and Size optional fields. This way, you can test your workflows without burning all API credits.
If you are not familiar with n8n, check quickstart guides.
Usage Example: Get Organic Competitors
Here is a worked example showing how to configure the node to get organic search competitors for a domain.
#### 1. Configure Node Parameters
– Page: 1
– Size: 10
#### 2. Expected Output
The node returns an array of organic search competitors and their associated SEO metrics, which you can use directly in your workflow.
Example JSON output structure:
[
{
"json": {
"domain": "palantir.com",
"favicon": "https://www.google.com/s2/favicons?domain=palantir.com",
"all": {
"currentValue": 8242,
"dynamicValue": -220
},
"common": {
"currentValue": 8053,
"dynamicValue": 100
},
"visibility": {
"currentValue": 0.2578,
"dynamicValue": 0.24804999999999996
},
"missing": 0,
"relevance": 100,
"our_relevance": 100,
"traff": 190009
}
},
{
"json": {
"domain": "community.palantir.com",
"favicon": "https://www.google.com/s2/favicons?domain=community.palantir.com",
"all": {
"currentValue": 353,
"dynamicValue": null
},
"common": {
"currentValue": 302,
"dynamicValue": 3.75
},
"visibility": {
"currentValue": null,
"dynamicValue": null
},
"missing": 51,
"relevance": 85.55,
"our_relevance": 3.75,
"traff": 0
}
},
{
"json": {
"domain": "investors.palantir.com",
"favicon": "https://www.google.com/s2/favicons?domain=investors.palantir.com",
"all": {
"currentValue": 439,
"dynamicValue": null
},
"common": {
"currentValue": 344,
"dynamicValue": 4.27
},
"visibility": {
"currentValue": null,
"dynamicValue": null
},
"missing": 95,
"relevance": 78.36,
"our_relevance": 4.27,
"traff": 0
}
},
{
"json": {
"domain": "blog.palantir.com",
"favicon": "https://www.google.com/s2/favicons?domain=blog.palantir.com",
"all": {
"currentValue": 562,
"dynamicValue": null
},
"common": {
"currentValue": 435,
"dynamicValue": 5.4
},
"visibility": {
"currentValue": null,
"dynamicValue": null
},
"missing": 127,
"relevance": 77.4,
"our_relevance": 5.4,
"traff": 0
}
},
{
"json": {
"domain": "careers.snap.com",
"favicon": "https://www.google.com/s2/favicons?domain=careers.snap.com",
"all": {
"currentValue": 4019,
"dynamicValue": null
},
"common": {
"currentValue": 242,
"dynamicValue": 3.01
},
"visibility": {
"currentValue": null,
"dynamicValue": null
},
"missing": 3777,
"relevance": 6.02,
"our_relevance": 3.01,
"traff": 0
}
},
{
"json": {
"domain": "anduril.com",
"favicon": "https://www.google.com/s2/favicons?domain=anduril.com",
"all": {
"currentValue": 7957,
"dynamicValue": -510
},
"common": {
"currentValue": 256,
"dynamicValue": 3.18
},
"visibility": {
"currentValue": 0.54487,
"dynamicValue": -0.0047599999999999865
},
"missing": 7701,
"relevance": 3.22,
"our_relevance": 3.18,
"traff": 49314
}
},
{
"json": {
"domain": "spark.apache.org",
"favicon": "https://www.google.com/s2/favicons?domain=spark.apache.org",
"all": {
"currentValue": 15046,
"dynamicValue": -36
},
"common": {
"currentValue": 388,
"dynamicValue": 4.82
},
"visibility": {
"currentValue": 0.07158,
"dynamicValue": -0.17115
},
"missing": 14658,
"relevance": 2.58,
"our_relevance": 4.82,
"traff": 121393
}
},
{
"json": {
"domain": "databricks.com",
"favicon": "https://www.google.com/s2/favicons?domain=databricks.com",
"all": {
"currentValue": 59807,
"dynamicValue": -392
},
"common": {
"currentValue": 1054,
"dynamicValue": 13.09
},
"visibility": {
"currentValue": 2.79894,
"dynamicValue": -0.31820000000000004
},
"missing": 58753,
"relevance": 1.76,
"our_relevance": 13.09,
"traff": 622654
}
},
{
"json": {
"domain": "docs.databricks.com",
"favicon": "https://www.google.com/s2/favicons?domain=docs.databricks.com",
"all": {
"currentValue": 22335,
"dynamicValue": null
},
"common": {
"currentValue": 347,
"dynamicValue": 4.31
},
"visibility": {
"currentValue": null,
"dynamicValue": null
},
"missing": 21988,
"relevance": 1.55,
"our_relevance": 4.31,
"traff": 0
}
},
{
"json": {
"domain": "jobs.apple.com",
"favicon": "https://www.google.com/s2/favicons?domain=jobs.apple.com",
"all": {
"currentValue": 23799,
"dynamicValue": -1114
},
"common": {
"currentValue": 294,
"dynamicValue": 3.65
},
"visibility": {
"currentValue": 2.94061,
"dynamicValue": -0.26141000000000014
},
"missing": 23505,
"relevance": 1.24,
"our_relevance": 3.65,
"traff": 992591
}
}
]
Usage Example: Get Domain Search History
Here is a worked example showing how to configure the node to get the search history of changes for a domain.
#### 1. Configure Node Parameters
DomainGet Domain Search Historynike.comG_us (Google US) – Size: 5
– With Subdomains: true
#### 2. Expected Output
The node returns an array of data entries representing the historical metrics of the domain over time.
Example JSON output structure:
[
{
"domain": "nike.com",
"keywords": 3164090,
"traff": 171700098,
"visible_static": 376.81473,
"new_keywords": 97474,
"out_keywords": 125533,
"rised_keywords": 111684,
"down_keywords": 150290,
"ad_keywords": 288,
"ads": 222,
"date": "2025-06-02",
"aio_keywords": 1250,
"aio_citations": 42
}
]
Development
Setup
Install dependencies:
npm install --legacy-peer-deps
Commands
npm run build: Compile the node files and build icons.npm run dev: Build and watch for code changes.npm run lint: Lint the codebase.npm run release: Interactive CLI to bump versions and release a new tag (triggers GitHub Actions publication).