n8n
Connect in 3 steps
- Create an API key. In the dashboard, open Developers → API keys and create a key. Name it after n8n so you can tell its usage apart later.
- Paste it into n8n. When n8n asks you to connect a SerpResult account, paste the key (it starts with
sk_). - Test the connection.n8n runs Account Info to check the key. You should see your account email and credit balance. It costs no credits.
Set up in n8n
- In n8n, open Settings → Community Nodes and install
n8n-nodes-serpresult. - Create a SerpResult API credential and paste your API key (it starts with
sk_). Saving the credential runs Account Info as the test. - Add the SerpResult node to a workflow, pick Search, set Query, Target and Country, and execute the node. Each organic result becomes one item.
Operations
Search
Runs one live search and returns its organic results. A setting the chosen engine cannot serve answers 400 unsupported_parameter and costs nothing.
GET /v1/query
- Query (required): The search terms, 1 to 400 characters.
- Target (optional): The engine: Google, Bing, DuckDuckGo, Yahoo, Brave or Yandex (
google_search,bing_search,duckduckgo_search,yahoo_search,brave_search,yandex_search). Defaults to Google. - Country (optional):
geo, one of 193 two-letter country codes, with the launch countries (us,in,gb,ca,au,de,fr,sg,ae,jp) listed first. Defaults to United States (us). - Locale (optional): A language-region tag such as
en-us. Left blank, it is derived from the country. - Page (optional): 1 to 5 on Google, Brave and Yandex; 1 only on Bing, DuckDuckGo and Yahoo. Defaults to 1.
- Results per page (optional):
num: up to 20 on Google, Bing and Brave, up to 10 on DuckDuckGo, Yahoo and Yandex. Defaults to 10. - Safe search (optional):
off,moderateorstrict. Not available on DuckDuckGo or Yandex. Defaults tooff.
Bulk Search
Runs up to 50 searches in one call. Each query succeeds or fails on its own, so one unusable query never fails the batch.
POST /v1/bulk
- Queries (required): 1 to 50 queries, each 1 to 400 characters.
- Target (optional): The engine: Google, Bing, DuckDuckGo, Yahoo, Brave or Yandex (
google_search,bing_search,duckduckgo_search,yahoo_search,brave_search,yandex_search). Defaults to Google. Applied to every query. - Country (optional):
geo, one of 193 two-letter country codes, with the launch countries (us,in,gb,ca,au,de,fr,sg,ae,jp) listed first. Defaults to United States (us). Applied to every query. - Locale (optional): A language-region tag such as
en-us. Left blank, it is derived from the country. Applied to every query.
Account Info
Returns the account email, plan, credits_available, and the key's label and mode. Costs no credits, so it doubles as the connection test.
GET /v1/me
No inputs.
Output fields
Each organic result comes back as one flat row with the same fields, in the same order, on every marketplace. Bulk Search returns the rows of every query in one list.
| Field | Type | Meaning |
|---|---|---|
position | integer | 1-based rank within the answered page, after de-duplication. |
title | string | The result's title as the engine shows it. |
url | string | The result's URL. |
domain | string | The registrable domain of url (example.co.uk), or the hostname when it has no public suffix. |
snippet | string | The engine's description text. Empty when the engine gave none. |
query | string | The query as run, after whitespace normalisation. |
target | string | The engine that answered, such as google_search. |
geo | string | The country code the search was localized to. |
locale | string | The language-region tag the search ran with, xx-yy. |
page | integer | The results page that was answered. |
request_id | string | The response id: the query's id in the log, qry_ plus 32 hex characters. |
Alongside the rows, each operation reports a summary:
| Field | Operation | Type | Meaning |
|---|---|---|---|
count | Search | integer | How many result rows the search returned. |
queries_run | Bulk Search | integer | How many queries the batch ran. |
credits_used | Bulk Search | integer | Credits the batch spent, from the X-Credits-Used response header. |
An engine that finds nothing for the query returns an empty array, never an error.
Each search costs 1 credit from your SerpResult account; a cached result still costs 1 credit. Bulk Search costs 1 credit per query.
Rate limits and credits
- 429 Too Many Requests. Your key allows a set number of requests per minute. The integration waits the
Retry-Aftertime and retries once. If it is still limited, the step fails with a message naming the rate. Space out the runs. Limits are in Rate limits. - 402 Payment Required (
insufficient_credits). The account has no credits left and nothing was charged. The step fails with a link to Billing. Top up and re-run. - 401 Unauthorized (
invalid_api_key). The key is missing, mistyped or revoked. Create a new key and reconnect. - 400 Bad Request (
unsupported_parameter). The chosen engine cannot serve a setting, such as page 2 on Bing or safe search on DuckDuckGo. Nothing was charged. SeeTargets & geo.
API key notes
- Test keys. "Test" is only a label on the key. A test key runs real searches and spends real credits, the same as a live key.
- One key per tool. A separate key for n8n keeps its usage apart in the dashboard, and revoking it leaves your other integrations running.