curl -X POST https://api.ateve.ai/v1/search \
-H "Authorization: Bearer $ATEVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"AI news"}'import json
import os
from urllib.request import Request, urlopen
request = Request(
"https://api.ateve.ai/v1/search",
data=json.dumps({"query": "AI news"}).encode(),
headers={
"Authorization": f"Bearer {os.environ['ATEVE_API_KEY']}",
"Content-Type": "application/json",
},
method="POST",
)
with urlopen(request) as response:
print(json.load(response))const response = await fetch("https://api.ateve.ai/v1/search", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.ATEVE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ query: "AI news" }),
});
console.log(await response.json());{
"id": "req_example",
"created": 1789459200,
"latency_ms": 412,
"query": {
"original": "hybrid search versus vector search"
},
"results": [
{
"id": "results.#0",
"title": "A guide to hybrid search",
"url": "https://example.com/hybrid-search",
"display_url": "https://example.com/hybrid-search",
"published_at": null,
"score": 0.95,
"snippet": "Hybrid search combines lexical and semantic retrieval.",
"images": [],
"is_safe": true
}
],
"total_estimated_matches": 125
}{
"id": "req_example",
"error": {
"code": "invalid_parameter",
"message": "Request validation failed.",
"type": "invalid_request_error"
}
}{
"id": "req_example",
"error": {
"code": "invalid_api_key",
"message": "Missing or invalid API key.",
"type": "authentication_error"
}
}{
"id": "req_example",
"error": {
"code": "insufficient_credit",
"message": "Available Search allowance and prepaid balance are insufficient.",
"type": "invalid_request_error"
}
}{
"id": "req_example",
"error": {
"code": "payment_required",
"message": "Team access suspended or payment review required. Legacy credit failures may also return 403.",
"type": "invalid_request_error"
}
}{
"id": "req_example",
"error": {
"code": "not_found",
"message": "Unknown route.",
"type": "invalid_request_error"
}
}{
"id": "req_example",
"error": {
"code": "method_not_allowed",
"message": "Use POST.",
"type": "invalid_request_error"
}
}{
"id": "req_example",
"error": {
"code": "idempotency_in_progress",
"message": "Request with the same idempotency key is processing, or invalid_parameter for a key conflict.",
"type": "invalid_request_error"
}
}{
"id": "req_example",
"error": {
"code": "invalid_parameter",
"message": "Missing or unsupported Content-Type.",
"type": "invalid_request_error"
}
}{
"id": "req_example",
"error": {
"code": "rate_limit_exceeded",
"message": "A team rate window was exceeded.",
"type": "rate_limit_error"
}
}{
"id": "req_example",
"error": {
"code": "server_error",
"message": "Internal error.",
"type": "server_error"
}
}{
"id": "req_example",
"error": {
"code": "service_unavailable",
"message": "Upstream Search unavailable.",
"type": "server_error"
}
}{
"id": "req_example",
"error": {
"code": "timeout",
"message": "Upstream Search timed out.",
"type": "server_error"
}
}Search
Search the web and return ranked results with source URLs, snippets, and optional extracted content.
curl -X POST https://api.ateve.ai/v1/search \
-H "Authorization: Bearer $ATEVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"AI news"}'import json
import os
from urllib.request import Request, urlopen
request = Request(
"https://api.ateve.ai/v1/search",
data=json.dumps({"query": "AI news"}).encode(),
headers={
"Authorization": f"Bearer {os.environ['ATEVE_API_KEY']}",
"Content-Type": "application/json",
},
method="POST",
)
with urlopen(request) as response:
print(json.load(response))const response = await fetch("https://api.ateve.ai/v1/search", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.ATEVE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ query: "AI news" }),
});
console.log(await response.json());{
"id": "req_example",
"created": 1789459200,
"latency_ms": 412,
"query": {
"original": "hybrid search versus vector search"
},
"results": [
{
"id": "results.#0",
"title": "A guide to hybrid search",
"url": "https://example.com/hybrid-search",
"display_url": "https://example.com/hybrid-search",
"published_at": null,
"score": 0.95,
"snippet": "Hybrid search combines lexical and semantic retrieval.",
"images": [],
"is_safe": true
}
],
"total_estimated_matches": 125
}{
"id": "req_example",
"error": {
"code": "invalid_parameter",
"message": "Request validation failed.",
"type": "invalid_request_error"
}
}{
"id": "req_example",
"error": {
"code": "invalid_api_key",
"message": "Missing or invalid API key.",
"type": "authentication_error"
}
}{
"id": "req_example",
"error": {
"code": "insufficient_credit",
"message": "Available Search allowance and prepaid balance are insufficient.",
"type": "invalid_request_error"
}
}{
"id": "req_example",
"error": {
"code": "payment_required",
"message": "Team access suspended or payment review required. Legacy credit failures may also return 403.",
"type": "invalid_request_error"
}
}{
"id": "req_example",
"error": {
"code": "not_found",
"message": "Unknown route.",
"type": "invalid_request_error"
}
}{
"id": "req_example",
"error": {
"code": "method_not_allowed",
"message": "Use POST.",
"type": "invalid_request_error"
}
}{
"id": "req_example",
"error": {
"code": "idempotency_in_progress",
"message": "Request with the same idempotency key is processing, or invalid_parameter for a key conflict.",
"type": "invalid_request_error"
}
}{
"id": "req_example",
"error": {
"code": "invalid_parameter",
"message": "Missing or unsupported Content-Type.",
"type": "invalid_request_error"
}
}{
"id": "req_example",
"error": {
"code": "rate_limit_exceeded",
"message": "A team rate window was exceeded.",
"type": "rate_limit_error"
}
}{
"id": "req_example",
"error": {
"code": "server_error",
"message": "Internal error.",
"type": "server_error"
}
}{
"id": "req_example",
"error": {
"code": "service_unavailable",
"message": "Upstream Search unavailable.",
"type": "server_error"
}
}{
"id": "req_example",
"error": {
"code": "timeout",
"message": "Upstream Search timed out.",
"type": "server_error"
}
}Authorizations
API key beginning with sk_. Create a key in the Ateve Dashboard.
Body
A nonblank search query.
1 - 2000"hybrid search versus vector search"
Maximum results to return. Fewer results may be available.
1 <= x <= 100Show child attributes
Show child attributes
UTC freshness filter: day, week, month, year; YYYY-MM-DD; YYYY-MM-DD..YYYY-MM-DD; YYYY-MM-DD..; or ..YYYY-MM-DD. Use valid calendar dates with end on or after start.
"month"
Restrict results to these host names, without schemes or paths.
300["openai.com", "claude.ai"]
Exclude these host names.
300["reddit.com", "twitter.com"]
Filter explicit or unsafe content.
Response
Successful search. Example content and timing are illustrative.
JSON object containing request metadata and ranked search results.
Original search request ID. Replays retain this ID.
"req_example"
Response creation time as UTC Unix epoch seconds.
Server-side search processing time in milliseconds.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Estimated total matches when available. Omitted when unknown.