The independent Web Search API

Privacy-first web search as a service. One endpoint, one API key — and a response schema that is drop-in compatible with the Brave Search API.

Why Kelly Search?

🔌

Brave-compatible schema

Already integrated with Brave's Search API? Point your base URL at Kelly Search and keep your parsing code untouched.

🌍

Global results

Federated search across a distributed peer index of the open web — no single point of index control.

Built-in response cache

Repeated queries are answered in milliseconds from our local result store, reducing latency and upstream load.

🛡️

Spam-filtered ranking

Results pass domain blacklists, keyword heuristics and quality scoring before they ever reach your app.

🔒

Privacy-first

Minimal logging, no user tracking, no profiling. We store queries and results — nothing about the people asking.

🧩

Simple integration

REST + JSON, single authentication header, sensible defaults. If you can call an HTTP endpoint, you can search.

Quickstart

Authenticate with a subscription token header and send your first query in under a minute.

# Search the web
curl -H "X-Subscription-Token: $KELLY_API_KEY" \
  "https://kelly-search.com/res/v1/web/search?q=best+coffee+in+berlin&count=5"
🔑 Get API key
📡 Send query
🧠 Cache / federated lookup
✅ JSON results

API Reference

GET /res/v1/web/search

ParameterTypeDescription
qstringThe user's search query (required)
countintNumber of results, max 50 (default 20)
offsetintZero-based offset for pagination

Header: X-Subscription-Token: <your API key>

Response

{
  "query": { "original": "best coffee in berlin" },
  "type": "search",
  "web": {
    "type": "results",
    "results": [
      {
        "type": "search_result",
        "title": "...",
        "url": "https://example.com/article",
        "description": "...",
        "meta_url": { "scheme": "https", "hostname": "example.com", "..." : "..." },
        "profile": { "name": "example.com", "url": "https://example.com" }
      }
    ]
  }
}

Pricing

Current plan

Free Beta

$0

Per-key rate limits apply.
Cached queries are free.
Best-effort support.

Pro

TBA

Higher rate limits.
Priority freshness.
Per-1k-query pricing.

During beta, request an API key by contacting us.