Skip to main content
Kaer APIv1

SearchEndpoints


POST /v1/search
Scope
search
Tier
Starter and up
Price
$0.0005 to $0.003 per query, see Search pricing
Free credit
Yes, once Starter opens it

Search Kaer's own index, alone or racing the live web, and get ranked results.

Before you begin

  • A key with the search scope. See Authentication.
  • An account on the Starter tier or above. Search is locked on the Free tier until your first top-up.
  • A lane for your query. See Choose a lane.

Request body

ParameterTypeDefaultDescription
queryRequiredstring·1 to 512 characters after trimming.
lanestringautoweb, fast, deep or auto, case-insensitive. Anything else is a 400.
num_resultsinteger5Results per query, 1 to 25. Numbers outside are clamped; anything that is not a number is a 400. Also read as numResults.
include_domainsstring[]·Only results from these hosts or their subdomains, up to 20. The web lane applies it before ranking; the others filter after retrieval. Also includeDomains.
exclude_domainsstring[]·Never return results from these hosts or their subdomains, up to 20. Also excludeDomains.
fieldsstring[]·Result keys to keep, 1 to 20 of title, url, snippet, source, published_date, text, text_truncated, text_source. Leave it out for all of them. Any other name is a 400 invalid_fields.

Any other field is not applied, and the response lists it in kaer.ignored_params, so a filter you expected never fails silently. The body is limited to 16 KB.

Choose a lane

LaneWhat it doesPer queryTimeout
webKaer's index alone. Fastest and cheapest.$0.00056 s
fastThe index racing the live web.$0.00112 s
deepEvery lane, re-ranked. Results carry the page's text, up to 4,000 characters, when it could be read.$0.00340 s
autoKaer picks a lane per query. Billed at the lane that served it.As served40 s

A query that runs past its lane's timeout fails with 504 search_timeout and is not charged.

Response

FieldTypeDescription
objectstringsearch.result
querystringThe query, trimmed.
lanestringThe lane you asked for.
served_lanestringThe lane that ran, and the one billed.
results[].titlestringPage title.
results[].urlstringPage address.
results[].snippetstringText from the page that matches the query.
results[].sourcestring[]Which engines returned the page.
results[].published_datestringPublication time (RFC 3339), when known.
results[].textstringDeep only: the page's main text, up to 4,000 characters.
results[].text_truncatedbooleanDeep only: the text was cut.
results[].text_sourcestringDeep only: page, or snippet when the site would not serve us the page.
kaer.request_idstringSame as x-request-id.
kaer.cost_usdnumberWhat the query cost.
kaer.ignored_paramsstring[]Fields that were not applied, when there are any.
{
  "object": "search.result",
  "query": "latest ai research",
  "lane": "fast",
  "served_lane": "fast",
  "results": [
    {
      "title": "…",
      "url": "https://…",
      "snippet": "…",
      "source": ["kaer_web"]
    }
  ],
  "kaer": { "request_id": "req_…", "cost_usd": 0.001 }
}

Headers: x-request-id and the x-ratelimit-* headers. Search sends no x-kaer-cost-usd header: the cost is kaer.cost_usd in the body.

Errors

StatusCodeWhen
400invalid_jsonThe body is not valid JSON. Images also needs a JSON object.
400query_requiredquery is missing or blank.
400query_too_longquery is over 512 characters (search) or 300 (images).
400invalid_lanelane is not web, fast, deep or auto.
400invalid_num_resultsnum_results is not a number.
400invalid_domainsinclude_domains or exclude_domains is not an array of up to 20 host names.
403tier_requiredYour tier does not include this service yet.
413body_too_largeThe body is over the endpoint's limit: chat 1 MB, search 16 KB, batch 64 KB, images 8 KB, mail 512 KB.
502search_failedThe search service failed. Nothing was charged.
503search_busySearch is at capacity. Nothing was charged.
504search_timeoutSearch ran out of time. Nothing was charged.
502 or 503search_unavailableSearch is unreachable or paused. Nothing was charged.
curl https://api.kaer.ai/v1/search \
  -H "Authorization: Bearer $KAER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "latest ai research",
    "lane": "fast",
    "num_results": 5
  }'

© 2026 Kaer Labs Ltd. All rights reserved.