Sift gives you a single endpoint to retrieve, filter, and rank live web content for your AI applications. All requests are authenticated with a Bearer token.
Every request requires an API key as a Bearer token in the Authorization header. Create and manage keys from your dashboard.
Authorization: Bearer YOUR_API_KEYRetrieve and rank web results for a natural-language query. Returns a list of content chunks ordered by relevance to your query.
| Parameter | Type | Status | Description |
|---|---|---|---|
| query | string | required | Natural language search query. |
| limit | integer | optional | Max results to return. Default 5, max 20. |
| filter_spam | boolean | optional | Remove low-quality and spammy results. Default false. |
| deduplicate | boolean | optional | Remove near-duplicate content. Default false. |
| source_category | string | optional | Filter by source type: news, academic, reddit, github. |
| allowed_domains | string[] | optional | Only return results from these domains. |
| blocked_domains | string[] | optional | Exclude results from these domains. |
| language | string | optional | ISO 639-1 language code for results. |
| extraction_schema | object | optional | JSON schema for structured data extraction from results. |
curl -X POST https://api.sift.dev/v1/search \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "latest AI research papers",
"limit": 5,
"filter_spam": true,
"deduplicate": true
}'import requests
headers = {"Authorization": "Bearer YOUR_API_KEY"}
payload = {
"query": "latest AI research papers",
"limit": 5,
"filter_spam": True,
"deduplicate": True,
}
resp = requests.post(
"https://api.sift.dev/v1/search",
headers=headers,
json=payload,
)
results = resp.json()["results"]
for r in results:
print(r["title"], r["score"])const response = await fetch("https://api.sift.dev/v1/search", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
query: "latest AI research papers",
limit: 5,
filter_spam: true,
deduplicate: true,
}),
});
const { results } = await response.json();
results.forEach(r => console.log(r.title, r.score));{
"query": "latest AI research papers",
"results": [
{
"url": "https://arxiv.org/abs/...",
"title": "Attention Is All You Need",
"text": "We propose the Transformer, a model architecture...",
"score": 0.94,
"date": "2017-06-12"
}
],
"cached": false
}Run multiple queries in a single request. Accepts the same parameters as /v1/search plus a queries array instead of a single query string. Responses are returned in order. Ideal for research automation and batch processing workflows.
Search for images on the web. Returns a list of image results with URLs, thumbnails, and source pages. Accepts q, limit, and optional safe parameters.
Rate limits are applied per API key. Exceeding limits returns a 429 response with a Retry-After header. See the pricing page for per-plan limits, or contact support to discuss higher limits.