SearchApi is a fast, reliable SERP and data extraction API that focuses on performance, parsing quality, and competitive pricing. We offer realtime structured data from many different sources like Google, Bing, Amazon and others...
Follow the installation guide in the n8n community nodes documentation.
The node supports one main operation: Search. You can use it to search from all of the supported engines.
- Sign up at SearchApi.io and copy your API Key.
- In n8n go to Credentials → + New Credential → SearchApi.
- Paste the key and save.
The new credential will now appear in the node’s Credential dropdown.
- Go to Credentials → + New Credential → SearchApi.
- Paste the API Key.
- Click Save.
- Create a SearchApi credential in n8n.
- Go to the SearchApi node and select your Credential.
- Select the Engine you want to use.
- Enter the parameters for the engine. After selection, you will see the parameters for the engine. There are also optional parameters that you can use to further refine your search.
- Click Execute to receive the response as JSON.
- SearchApi.io documentation – https://www.searchapi.io/
- n8n Community Nodes Documentation – https://docs.n8n.io/integrations/#community-nodes
- n8n Community Forum – https://community.n8n.io
| Error message | Likely cause | Fix |
|---|---|---|
| 401 Unauthorized | Invalid or missing API key | Double‑check the credentials. |
| 429 Too Many Requests | Rate limit exceeded | Slow down the workflow or upgrade plan. |
You can see the version history here.
- Run
npm installto install the dependencies - Run
npm run devto start n8n with the node in development mode - Open http://localhost:5678 to access n8n with the node loaded
- Make changes to the source files — the node rebuilds automatically on file changes
Other useful commands:
npm run build— compile TypeScript for productionnpm run lint— run ESLint code quality checksnpm run lint:fix— auto-fix linting issuesnpm run check:enums— validate shared enumerations (runs in CI)npm run generate:labels— regeneratenodes/SearchApi/shared/labels.tsnpm run release— bump version, update changelog, and publish to npm
Country, language, currency and locale dropdowns are shared rather than duplicated per engine. An engine lists only the codes its API accepts and the label comes from one canonical table:
import { countryOptions } from '../shared/options';
{ name: 'gl', type: 'options', options: countryOptions(['us', 'gb', 'de']) }nodes/SearchApi/shared/labels.ts is generated — do not hand-edit it. Country, language and
currency labels come from Node's ICU data (Intl.DisplayNames), with vendor-specific codes that
ICU cannot resolve listed explicitly in scripts/overrides.mjs. Locale labels come from
searchapi.io's Constants::Duckduckgo::LOCALES; without that checkout the existing table is
kept as-is. Regenerate with npm run generate:labels, overriding the sources if needed:
RAILS_DUCKDUCKGO_CONSTANTS=../searchapi.io/app/lib/constants/duckduckgo.rb npm run generate:labelsnpm run check:enums fails the build when a code has no canonical label or when an options
default is not one of its own values.
If a searchapi.io checkout is present it also compares each engine's values against the
matching public/openapi/<engine>.yaml enum, case-insensitively. Those divergences are
reported as warnings — the specs and the engine files do not agree yet, and neither side is
authoritative for every parameter. Pass --strict to fail on them once they are reconciled:
OPENAPI_DIR=../searchapi.io/public/openapi npm run check:enums -- --strictYou will be able to see the the node in the local n8n http://localhost:5678.
Obs: You might need to run rm -rf ~/.n8n-node-cli, to clear the cache of old n8n instances you might have installed, it might make the cli to timeout.


