Skip to main content
GET
/
v2
/
search
/
online
Online Search
curl --request GET \
  --url https://api.polynode.dev/v2/search/online \
  --header 'x-api-key: <api-key>'
import requests

url = "https://api.polynode.dev/v2/search/online"

headers = {"x-api-key": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};

fetch('https://api.polynode.dev/v2/search/online', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.polynode.dev/v2/search/online",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.polynode.dev/v2/search/online"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("x-api-key", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.polynode.dev/v2/search/online")
.header("x-api-key", "<api-key>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.polynode.dev/v2/search/online")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'

response = http.request(request)
puts response.read_body
Beta. This endpoint is designed for low-volume context enrichment. Results are best-effort, cached, and may be partial when upstream search engines throttle or fail.

Endpoint

GET /v2/search/online
Search the public web and return normalized organic results. Responses are cached to keep the endpoint lightweight.
curl "https://api.polynode.dev/v2/search/online?q=Cavaliers%20Knicks%20injury%20news&max_results=5" \
  -H "x-api-key: YOUR_KEY"

Query parameters

ParameterDescription
qSearch query. Required.
max_resultsNumber of normalized organic results. Defaults to 10, capped at 20.
enginesComma-separated engine adapters. Defaults to bing,duckduckgo. brave is available as an opt-in adapter.
languageSearch language. Defaults to en-US.
time_rangeOptional freshness filter when supported: day, week, month, year.
safe_searchSafe-search mode: 0, 1, or 2. Defaults to 0.
cache_ttl_secondsCache TTL for this query. Defaults to 600, capped at 3600.
Rate limit: 3 requests per 10 seconds per API key, in addition to your normal tier limit.

Response

{
  "query": "Cavaliers Knicks injury news",
  "source": "search_online",
  "adapter": "searxng",
  "status": "ok",
  "cached": false,
  "engines_requested": ["bing", "duckduckgo"],
  "unresponsive_engines": [],
  "result_count": 2,
  "results": [
    {
      "title": "Cleveland Cavaliers Injury Status - ESPN",
      "url": "https://www.espn.com/nba/team/injuries/_/name/cle/cleveland-cavaliers",
      "domain": "espn.com",
      "snippet": "Visit ESPN for the current injury situation...",
      "engines": ["duckduckgo"],
      "score": 1,
      "category": "general",
      "published_at": null
    }
  ],
  "answers": [],
  "suggestions": [],
  "fetched_at": "2026-05-25T11:10:00.000Z",
  "elapsed_ms": 1200
}
status may be partial when one engine fails but other engines still return results.

Authorizations

x-api-key
string
header
required

Query Parameters

q
string
required

Search query.

max_results
integer
default:10

Number of normalized organic results. Defaults to 10, capped at 20.

Required range: 1 <= x <= 20
engines
string
default:bing,duckduckgo

Comma-separated engine adapters. Defaults to bing,duckduckgo. brave is available as an opt-in adapter.

language
string
default:en-US

Search language.

time_range
enum<string>

Optional freshness filter when supported.

Available options:
day,
week,
month,
year

Safe-search mode.

Available options:
0,
1,
2
cache_ttl_seconds
integer
default:600

Cache TTL for the query. Defaults to 600, capped at 3600.

Required range: 1 <= x <= 3600

Response

Online search results