Integrating a search API into no-code agent builders like n8n, Flowise, and Langflow gives your visual agents real-time web access without writing custom connectors. The pattern is the same across platforms: configure an HTTP request node or custom tool that POSTs to the search endpoint, parse the JSON response, and feed it into the agent's context. This tutorial shows the exact configuration for each builder, including header setup, body templates, and output mapping.
Prerequisites
- An n8n, Flowise, or Langflow instance running locally or in the cloud
- A Scavio API key from scavio.dev
- Basic familiarity with node-based workflow editors
Walkthrough
Step 1: Configure the HTTP request in n8n
In n8n, add an HTTP Request node. Set the method to POST, the URL to the search endpoint, and add your API key as a header. Use the JSON body to pass the query from a previous node or an AI agent tool call.
// n8n HTTP Request node configuration:
// Method: POST
// URL: https://api.scavio.dev/api/v1/search
// Authentication: Header Auth
// Name: x-api-key
// Value: {{ $env.SCAVIO_API_KEY }}
// Body (JSON):
{
"query": "{{ $json.query || $json.chatInput }}",
"country_code": "us"
}
// Output: the full JSON response is available in {{ $json }}Step 2: Wire it as an n8n AI Agent tool
In n8n's AI Agent node, add a Tool node connected to the HTTP Request. The agent will call this tool when it needs to search the web. Set the tool name and description so the LLM knows when to use it.
// n8n AI Agent -> Tool (HTTP Request) configuration:
// Tool Name: web_search
// Tool Description: Search the web for a query. Returns titles, links, and snippets.
// Input Schema:
// query (string, required): The search query
//
// The HTTP Request node uses {{ $json.query }} from the tool input
// Response Mapping (Code node after HTTP Request):
const results = $input.all()[0].json.organic_results || [];
return results.slice(0, 5).map(r => ({
title: r.title,
url: r.link,
snippet: r.snippet || ''
}));Step 3: Set up in Flowise as a custom tool
In Flowise, use the Custom Tool node. Set the HTTP method, URL, headers, and body. Flowise passes the agent's query through the input variable.
// Flowise Custom Tool configuration:
// Name: WebSearch
// Description: Search the web and return top results
// Input Schema: { "query": { "type": "string", "description": "Search query" } }
//
// Tool Function (JavaScript):
const resp = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: {
'x-api-key': $vars.SCAVIO_API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({ query: $query, country_code: 'us' })
});
const data = await resp.json();
const results = (data.organic_results || []).slice(0, 5);
return results.map(r => `${r.title}\n${r.link}\n${r.snippet || ''}`).join('\n\n');Step 4: Set up in Langflow as a component
In Langflow, use the Python Function component or the API Request component. Map the input to the search body and the output to the next node.
# Langflow Python Function component:
import requests
def search_web(query: str) -> str:
resp = requests.post(
'https://api.scavio.dev/api/v1/search',
headers={'x-api-key': flow_variables['SCAVIO_API_KEY'],
'Content-Type': 'application/json'},
json={'query': query, 'country_code': 'us'}
)
results = resp.json().get('organic_results', [])[:5]
return '\n'.join(
f"{r['title']} - {r['link']}\n{r.get('snippet', '')}"
for r in results
)
# Connect this component's output to the Agent's tool inputPython Example
import requests, os
API_KEY = os.environ.get('SCAVIO_API_KEY', 'your_scavio_api_key')
ENDPOINT = 'https://api.scavio.dev/api/v1/search'
HEADERS = {'x-api-key': API_KEY, 'Content-Type': 'application/json'}
def search_tool(query: str, country: str = 'us') -> str:
'''Reusable search function for any agent builder.'''
resp = requests.post(ENDPOINT, headers=HEADERS,
json={'query': query, 'country_code': country})
resp.raise_for_status()
results = resp.json().get('organic_results', [])[:5]
return '\n'.join(
f"{r['title']}\n{r['link']}\n{r.get('snippet', '')}"
for r in results
)
# Langflow / custom agent integration
print(search_tool('best no-code agent builder 2026'))JavaScript Example
const API_KEY = process.env.SCAVIO_API_KEY || 'your_scavio_api_key';
const ENDPOINT = 'https://api.scavio.dev/api/v1/search';
// Reusable for n8n Code node, Flowise Custom Tool, or standalone
async function searchTool(query, country = 'us') {
const resp = await fetch(ENDPOINT, {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ query, country_code: country })
});
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
const data = await resp.json();
return (data.organic_results || []).slice(0, 5).map(r => ({
title: r.title,
url: r.link,
snippet: r.snippet || ''
}));
}
searchTool('best no-code agent builder 2026')
.then(r => r.forEach(x => console.log(`${x.title}\n ${x.url}`)));Expected Output
// n8n output:
[
{ "title": "Top No-Code Agent Builders in 2026", "url": "https://example.com/builders", "snippet": "Compare n8n, Flowise, and Langflow..." },
{ "title": "Build AI Agents Without Code", "url": "https://example.com/no-code-agents", "snippet": "The fastest way to deploy agents..." }
]
// Flowise/Langflow text output:
Top No-Code Agent Builders in 2026
https://example.com/builders
Compare n8n, Flowise, and Langflow...
Build AI Agents Without Code
https://example.com/no-code-agents
The fastest way to deploy agents...