Package Information
Available Nodes
Documentation generating…
Documentation
n8n-nodes-serpresult
The SerpResult community node for n8n. SerpResult runs live searches on Google, Bing, DuckDuckGo, Yahoo, Brave and Yandex from the country you pick, and returns the organic results as structured data: one item per result, with its position, title, URL, domain and snippet.
The node runs on your own SerpResult API key. Each search costs 1 credit from your SerpResult account; a cached result still costs 1 credit. Bulk Search costs 1 credit per query.
- Homepage: https://serpresult.com
- Docs: https://docs.serpresult.com/integrations/n8n/
- Support: team@serpresult.com
Installation
On a self-hosted n8n instance (owner or admin account):
- Go to Settings > Community Nodes and select Install.
- Enter
n8n-nodes-serpresultas the npm package name. - Tick I understand the risks of installing unverified code from a public source and select Install.
See n8n's community node installation guide for details. To install without the UI, run npm install n8n-nodes-serpresult in ~/.n8n/nodes and restart n8n.
Credentials
The node uses one credential, SerpResult API, with one field.
- In the SerpResult dashboard open Developers > API keys (https://app.serpresult.com/dashboard/developers/api-keys) and create a key. Name it after n8n so you can tell its usage apart.
- In n8n, add a SerpResult node, open Credential to connect with and select Create new credential.
- Paste the key (it starts with
sk_) into API Key and select Save.
n8n tests the credential by calling GET /v1/me, which costs no credits. The key is sent as Authorization: Bearer <key>.
Test keys. "Test" is only a label and a lower rate limit. A test key runs real searches and spends real credits.
Operations
| Resource | Operation | Input | API call |
|---|---|---|---|
| Search | Search | Query, Target, Country, Additional Fields | GET /v1/query |
| Search | Bulk Search | Queries (one per line, up to 50), Target, Country, Additional Fields | POST /v1/bulk |
| Account | Get Info | none | GET /v1/me |
Search runs one query on one target and returns its organic results.
Bulk Search runs up to 50 queries in one request. Put one query per line; blank lines are ignored. Target, Country and every Additional Field apply to all of them.
Get Info returns the account email, plan, the credits it can spend right now (credits_available) and the key's label and mode. It costs no credits.
Target is the engine: Google, Bing, DuckDuckGo, Yahoo, Brave or Yandex. Country is the country the search exits from, so the results are the ones a searcher there sees. 193 countries are available.
Additional Fields are optional. Leave one unset and the API applies its own default.
| Field | Values | Served by |
|---|---|---|
| Locale | a tag like en-us (default: the country's main locale) |
every target |
| Page | 1 to 5 | Google, Brave and Yandex; the other targets serve page 1 only |
| Results per Page | 1 to 20 | up to 20 on Google, Bing and Brave; up to 10 on DuckDuckGo, Yahoo and Yandex |
| Safe Search | Off, Moderate, Strict | every target except DuckDuckGo and Yandex |
A value the target cannot serve fails with unsupported_parameter and names the parameter.
Output
Search and Bulk Search emit one item per organic result, in rank order, with these fields in this order:
position: the result's rank on the page, starting at 1.title: the result's title.url: the result's URL.domain: the domain ofurl.snippet: the text the engine shows under the title.query: the query that produced the result. In Bulk Search each item carries its own query.target: the engine, such asgoogle_search.geo: the country code the search ran from.locale: the locale the search ran with.page: the results page.request_id: the ID of the search (qry_…).
A search that finds nothing emits no items. It is not an error. If later steps must run anyway, enable the node's Always Output Data setting.
One result:
{
"position": 1,
"title": "7 Best Running Shoes in 2026 - RunRepeat",
"url": "https://runrepeat.com/guides/best-running-shoes",
"domain": "runrepeat.com",
"snippet": "Sep 12, 2026 ... The New Balance 1080 v15 stands out in the all-rounder game, bringing a whole new level of comfort while sustaining lightness and responsiveness ...",
"query": "best running shoes",
"target": "google_search",
"geo": "us",
"locale": "en-us",
"page": 1,
"request_id": "qry_f99b881c0da545b48a49608da51c1fb0"
}
Rate limits, credits and keys
Each search costs 1 credit from your SerpResult account; a cached result still costs 1 credit. Bulk Search costs 1 credit per query. Account Info costs no credits.
- 429 Too Many Requests. Each key has a per-minute limit. The node waits for the
Retry-Aftertime (at most 10 seconds) and retries once. If it is still limited, the step stops withRate limited: your SerpResult plan allows N requests per minute.Space out the runs (for example with Loop Over Items and a Wait) or move to a plan with a higher rate: https://serpresult.com/pricing - 402 Payment Required. The account is out of credits. The step stops with a link to https://app.serpresult.com/dashboard/billing. Top up and run it again.
- 401 Unauthorized. The key is wrong or revoked.
- 400
unsupported_parameter. The target cannot serve one of the Additional Fields. Remove it or pick another target.
With Settings > On Error > Continue the failing item carries { "error": "<message>" } instead of stopping the workflow.
Compatibility
Built with @n8n/node-cli 0.50 against the n8n nodes API version 1. The package has no runtime dependencies.
Development
pnpm install
pnpm run dev
pnpm run lint
pnpm run check
pnpm run dev starts a local n8n with the node loaded. pnpm run check builds the node and runs check.mjs, which drives it against a mocked API: a Google search, an empty answer, a bulk search with a blank line, a bulk search over 50 lines, a 429 that clears on retry, a 429 that doesn't, a 401, a 402 with Continue on Fail, Get Info, and a check that the Country list matches the API's. samples/ holds the node's real output for each fixture in fixtures/.
This repository is a mirror. The source lives in the SerpResult monorepo under integrations/n8n/, and nodes/SerpResult/shared.ts is a verbatim copy of the client every SerpResult marketplace integration shares. Report issues at https://github.com/ArulGnani/n8n-nodes-serpresult/issues or team@serpresult.com.