Lite
The lowest-cost search results, built for high volume.
`POST https://api.keirolabs.cloud/api/v2/search/lite`
Cost: 0.0375 credits on plans · 1 pay as you go · Latency: ~0.3-1 s
Cost-efficient raw SERP (web, images, videos) — title, URL and snippet per result. Content mode (page text, prompt ranking, and region/date/domain filters) is temporarily unavailable; Lite is SERP-only right now. Use Search + Content for page text.
**When to use it.** Use Lite for the cheapest raw SERP — link discovery, quick result lists, and image/video feeds. Content extraction, prompt ranking, and region/date/domain filters are temporarily unavailable on this endpoint.
**When not to.** Don't use Lite when you need page text (use Search+Content), a synthesized cited answer (use Answer), or multi-iteration research (use Web Agent).
## Request
**cURL**
```bash
curl -X POST https://api.keirolabs.cloud/api/v2/search/lite \
-H "Authorization: Bearer $KEIRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "open source llm observability", "count": 10}'
```
**Python**
```python
import os, requests
res = requests.post(
"https://api.keirolabs.cloud/api/v2/search/lite",
headers={"Authorization": f"Bearer {os.environ['KEIRO_API_KEY']}"},
json={
"query": "open source llm observability",
"count": 10
},
)
print(res.json())
```
**Node.js**
```js
const res = await fetch("https://api.keirolabs.cloud/api/v2/search/lite", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.KEIRO_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"query": "open source llm observability",
"count": 10
}),
});
console.log(await res.json());
```
## Parameters
| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `query` | string | yes | The search query (1-500 chars). |
| `type` | enum | no | Search tab: web, images, videos. |
| `count` | integer | no | Max results to return. Range: 1-30 (server-clamped). Alias: maxResults. |
| `language` | string | no | Optional language tag, e.g. "de-DE". |
| `content` | boolean | no | TEMPORARILY UNSUPPORTED — content:true returns 400 while Lite is SERP-only. Use /api/v2/search/content for page text. |
| `prompt` | string | no | TEMPORARILY UNSUPPORTED — returns 400 while Lite is SERP-only. |
## Response
```json title="200 OK"
{
"query": "keirolabs",
"type": "web",
"content": false,
"count": 2,
"results": [
{
"title": "KeiroLabs \u2014 pricing",
"url": "https://keirolabs.cloud/pricing",
"domain": "keirolabs.cloud",
"snippet": "Plans start at $29/mo\u2026",
"position": 1
},
{
"title": "KeiroLabs Docs",
"url": "https://platform.keirolabs.cloud/docs",
"domain": "platform.keirolabs.cloud",
"snippet": "Quick start, authentication, endpoints\u2026",
"position": 2
}
],
"creditsCharged": 0.0375,
"creditsRemaining": 1141
}
```
| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `results` | array | no | List of results in SERP order. |
| `results[].title` | string | no | Result title. |
| `results[].url` | string | no | Page URL. |
| `results[].domain` | string | no | Result domain. |
| `results[].snippet` | string | no | Short text excerpt from the search engine. |
| `results[].position` | integer | no | 1-based rank in the SERP. |
| `results[].score` | number | no | Relevance score (0-1) when the engine supplies one. |
| `query` | string | no | The query that was searched. |
| `type` | string | no | Search tab echoed back (web, images, videos). |
| `count` | integer | no | Number of results returned. |
| `content` | boolean | no | Always false while Lite is SERP-only. |
| `creditsCharged` | number | no | Credits deducted (0.0375 on a plan, 1 on signup or pack credits). |
| `creditsRemaining` | number | no | Remaining credit balance after this request. |
## Errors
| Status | Code | Cause | Fix |
| --- | --- | --- | --- |
| `400` | `VALIDATION_ERROR` | Missing/invalid query, or query > 500 chars | Ensure query is a non-empty string (1-500 chars). |
| `400` | `CONTENT_MODE_DISABLED` | content:true or prompt supplied while Lite is SERP-only | Omit content/prompt, or use /api/v2/search/content for page text. |
| `401` | `UNAUTHORIZED` | Missing or invalid API key | Check your Authorization: Bearer header. |
| `402` | `INSUFFICIENT_CREDITS` | Not enough credits | Buy more credits or upgrade at /dashboard/billing. |
| `429` | `RATE_LIMIT_EXCEEDED` | Too many requests | Check X-RateLimit-Remaining. Wait for Retry-After seconds. |
| `500` | `LITE_NOT_CONFIGURED` | Server has no SE_ROUTER_TOKEN | Server-side config issue — contact support. |
| `502` | `SEARCH_UNAVAILABLE` | Search backend unreachable | Credits auto-refunded. Retry; if persistent, contact support. |
## Rate limits
| Tier | Limit |
| --- | --- |
| Free | 15/min |
| Starter | 60/min |
| Pro | 120/min |
| Startup | 240/min |
| Enterprise | 300/min |
Over the limit you get a `429`. See [Rate limits](/rate-limits) for headers and backoff.https://api.keirolabs.cloud/api/v2/search/liteCost-efficient raw SERP (web, images, videos) — title, URL and snippet per result. Content mode (page text, prompt ranking, and region/date/domain filters) is temporarily unavailable; Lite is SERP-only right now. Use Search + Content for page text.
When to use it. Use Lite for the cheapest raw SERP — link discovery, quick result lists, and image/video feeds. Content extraction, prompt ranking, and region/date/domain filters are temporarily unavailable on this endpoint.
When not to. Don't use Lite when you need page text (use Search+Content), a synthesized cited answer (use Answer), or multi-iteration research (use Web Agent).
Request
curl -X POST https://api.keirolabs.cloud/api/v2/search/lite \
-H "Authorization: Bearer $KEIRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "open source llm observability", "count": 10}'Parameters
Prop
Type
Response
{
"query": "keirolabs",
"type": "web",
"content": false,
"count": 2,
"results": [
{
"title": "KeiroLabs \u2014 pricing",
"url": "https://keirolabs.cloud/pricing",
"domain": "keirolabs.cloud",
"snippet": "Plans start at $29/mo\u2026",
"position": 1
},
{
"title": "KeiroLabs Docs",
"url": "https://platform.keirolabs.cloud/docs",
"domain": "platform.keirolabs.cloud",
"snippet": "Quick start, authentication, endpoints\u2026",
"position": 2
}
],
"creditsCharged": 0.0375,
"creditsRemaining": 1141
}Prop
Type
Errors
| Status | Code | Cause | Fix |
|---|---|---|---|
400 | VALIDATION_ERROR | Missing/invalid query, or query > 500 chars | Ensure query is a non-empty string (1-500 chars). |
400 | CONTENT_MODE_DISABLED | content:true or prompt supplied while Lite is SERP-only | Omit content/prompt, or use /api/v2/search/content for page text. |
401 | UNAUTHORIZED | Missing or invalid API key | Check your Authorization: Bearer header. |
402 | INSUFFICIENT_CREDITS | Not enough credits | Buy more credits or upgrade at /dashboard/billing. |
429 | RATE_LIMIT_EXCEEDED | Too many requests | Check X-RateLimit-Remaining. Wait for Retry-After seconds. |
500 | LITE_NOT_CONFIGURED | Server has no SE_ROUTER_TOKEN | Server-side config issue — contact support. |
502 | SEARCH_UNAVAILABLE | Search backend unreachable | Credits auto-refunded. Retry; if persistent, contact support. |
Rate limits
| Tier | Limit |
|---|---|
| Free | 15/min |
| Starter | 60/min |
| Pro | 120/min |
| Startup | 240/min |
| Enterprise | 300/min |
Over the limit you get a 429. See Rate limits for headers and backoff.
Paste one prompt into Claude Code, Cursor, Codex or Windsurf. It installs Keiro MCP, reads these docs and writes the integration against the real API.