Web Search
Search the web and return results directly. Returns structured search results including titles, URLs, content snippets, and dates.
Search providers:
brave(default) — Brave Search with Zero Data Retention (ZDR). Search queries are never stored or logged by the search provider.google— Google Search with anonymized queries. Searches are proxied through Venice’s infrastructure so that your identity is not associated with the search request sent to Google. Venice does not store or log search queries.
Authentication: This endpoint accepts either a Bearer API key or a SIGN-IN-WITH-X header for x402 wallet-based authentication. The legacy X-Sign-In-With-X header is also accepted during migration. When using x402, a 402 Payment Required response indicates insufficient balance and includes top-up instructions.
curl --request POST \
--url https://api.venice.ai/api/v1/augment/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "latest news about AI",
"limit": 10,
"search_provider": "brave"
}
'import requests
url = "https://api.venice.ai/api/v1/augment/search"
payload = {
"query": "latest news about AI",
"limit": 10,
"search_provider": "brave"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({query: 'latest news about AI', limit: 10, search_provider: 'brave'})
};
fetch('https://api.venice.ai/api/v1/augment/search', 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.venice.ai/api/v1/augment/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => 'latest news about AI',
'limit' => 10,
'search_provider' => 'brave'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.venice.ai/api/v1/augment/search"
payload := strings.NewReader("{\n \"query\": \"latest news about AI\",\n \"limit\": 10,\n \"search_provider\": \"brave\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.venice.ai/api/v1/augment/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"latest news about AI\",\n \"limit\": 10,\n \"search_provider\": \"brave\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.venice.ai/api/v1/augment/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"latest news about AI\",\n \"limit\": 10,\n \"search_provider\": \"brave\"\n}"
response = http.request(request)
puts response.read_body{
"query": "<string>",
"results": [
{
"title": "<string>",
"url": "<string>",
"content": "<string>",
"date": "<string>"
}
]
}{
"error": "<string>",
"details": {
"_errors": [],
"field": {
"_errors": [
"Field is required"
]
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}query field. The API returns structured results including titles, URLs, content snippets, and dates.
Search providers:
brave(default) — Brave Search with Zero Data Retention (ZDR). Search queries are never stored or logged by the search provider.google— Google Search with anonymized queries. Searches are proxied through Venice’s infrastructure so that your identity is not associated with the search request sent to Google. Venice does not store or log search queries.
Example (cURL)
curl -X POST https://api.venice.ai/api/v1/augment/search \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "latest news about AI"}'
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The search query
1 - 400"latest news about AI"
Maximum number of results to return (default: 10, max: 20)
1 <= x <= 2010
Search provider to use. "brave" uses Brave Search with Zero Data Retention (ZDR) for maximum privacy — search queries are never stored or logged. "google" uses Google Search with anonymized queries — searches are proxied through Venice's infrastructure so that your identity is not associated with the search request sent to Google. Venice does not store or log search queries. Defaults to "brave".
google, brave "brave"
Was this page helpful?
curl --request POST \
--url https://api.venice.ai/api/v1/augment/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "latest news about AI",
"limit": 10,
"search_provider": "brave"
}
'import requests
url = "https://api.venice.ai/api/v1/augment/search"
payload = {
"query": "latest news about AI",
"limit": 10,
"search_provider": "brave"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({query: 'latest news about AI', limit: 10, search_provider: 'brave'})
};
fetch('https://api.venice.ai/api/v1/augment/search', 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.venice.ai/api/v1/augment/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => 'latest news about AI',
'limit' => 10,
'search_provider' => 'brave'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.venice.ai/api/v1/augment/search"
payload := strings.NewReader("{\n \"query\": \"latest news about AI\",\n \"limit\": 10,\n \"search_provider\": \"brave\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.venice.ai/api/v1/augment/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"latest news about AI\",\n \"limit\": 10,\n \"search_provider\": \"brave\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.venice.ai/api/v1/augment/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"latest news about AI\",\n \"limit\": 10,\n \"search_provider\": \"brave\"\n}"
response = http.request(request)
puts response.read_body{
"query": "<string>",
"results": [
{
"title": "<string>",
"url": "<string>",
"content": "<string>",
"date": "<string>"
}
]
}{
"error": "<string>",
"details": {
"_errors": [],
"field": {
"_errors": [
"Field is required"
]
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}