Migration guide · n8n
Move n8n workflows off the Google Custom Search JSON API
n8n has no built-in Custom Search node, so workflows call the Custom Search JSON API with the HTTP Request node, or the HTTP Request Tool on an AI Agent. Google discontinues that API on January 1, 2027. Change the URL and the key in that one node; the JSON it returns keeps the same fields, so the nodes after it keep working.
Where n8n keeps the URL and key
In the HTTP Request node: the URL field holds https://www.googleapis.com/customsearch/v1, and Send Query Parameters holds key, cx, q and the rest as Name/Value pairs. Some workflows keep the key in a Query Auth credential named key instead.
Community nodes that wrap the API keep Google's address in their code. @bitovi/n8n-nodes-google-search, for one, sets its base URL to https://www.googleapis.com with no field to change it; replace it with an HTTP Request node.
Switch the node in four steps
- 01Change the URLSet URL to https://api.searlo.tech/customsearch/v1. The method stays GET.
- 02Swap the keyReplace the key parameter's value, or the Value of your Query Auth credential, with your Searlo API key. Or move it to a header: Authentication, Generic Credential Type, Header Auth, with Name x-api-key and your key as Value, and delete the key parameter so it stays out of the URL.
- 03Leave the other parametersKeep cx, q, num, start and the rest. cx is accepted and has no effect; if your engine searched a few sites, add a siteSearch parameter.
- 04Run the nodeExecute it once. The output has the same items, title, link, snippet, searchInformation and queries fields, so expressions such as {{ $json.items[0].link }} in later nodes keep working.
Or import it
Starting fresh? In a new HTTP Request node choose Import cURL and paste this, with your key in place of $SEARLO_API_KEY. n8n loads the request into the node's fields.
curl "https://api.searlo.tech/customsearch/v1?cx=YOUR_CX&q=lectures&num=10" \
-H "x-api-key: $SEARLO_API_KEY"
Notes
Each execution of the node is one call, 1 credit, whatever num (1 to 10) asks for. A call that returns an error is not charged.
Errors keep Google's envelope. Out of credits is 403 with reason dailyLimitExceeded, which clears when you top up rather than at midnight; a rate limit is 429 with a Retry-After header.
An AI Agent's HTTP Request Tool takes the same URL and key. Let the model fill q and keep key, cx and num fixed, so it cannot change them.
We ran the cURL command above on 2026-10-25. We did not run an n8n instance for this guide; the field names are from n8n's documentation.
FAQ
Questions
Does n8n have a Google Custom Search node?
Not among its built-in nodes. Workflows use the HTTP Request node, and a few community nodes wrap the API with Google's address fixed in their code.
Will the nodes after the HTTP Request node break?
No, if they read the standard fields: the response is Custom Search JSON. Fields Searlo does not return (cacheId, labels, spelling, most of pagemap) come back empty in expressions that read them.
Run your workflows on Searlo
Create a key, change the URL, execute the node.