Answers that cite their sources
Sounder pulls the closest passages, writes the answer and marks where every line came from.
Sounder stores your documents and chats as vectors and finds the right passages in milliseconds. Hybrid search, filters and cited answers, all through one API.
npm install sounder
Free for your first million vectors. No card needed.
const { hits } = await sounder.search({
query: "refund after 30 days",
topK: 3,
});
Point Sounder at your sources once. It keeps the index fresh as they change, so answers never quote last month.
Sync docs, tickets and chat history from a bucket, a database or the API. Changes arrive in seconds.
Sounder splits each document into passages, embeds them with the model you pick and stores them with their metadata.
Each query blends vector and keyword ranking, then filters by customer, date or any field you stored.
Stream an answer written from the best passages, with a citation on every claim your users can check.
Typed clients for TypeScript and Python, and a plain HTTP API for everything else. The same query works in all three.
import { Sounder } from "sounder";
const sounder = new Sounder({
apiKey: process.env.SOUNDER_KEY,
});
const { hits } = await sounder.search({
index: "help-center",
query: "refund after 30 days",
filter: { lang: "en" },
topK: 3,
});
console.log(hits);
[
{ id: "refunds#late", score: 0.92 },
{ id: "billing#credit", score: 0.87 },
{ id: "faq#window", score: 0.74 },
]
import os
from sounder import Sounder
sounder = Sounder(api_key=os.environ["SOUNDER_KEY"])
hits = sounder.search(
index="help-center",
query="refund after 30 days",
filter={"lang": "en"},
top_k=3,
)
for hit in hits:
print(hit.score, hit.id)
0.92 refunds#late
0.87 billing#credit
0.74 faq#window
curl https://api.sounder.dev/v1/indexes/help-center/search \
-H "Authorization: Bearer $SOUNDER_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "refund after 30 days",
"filter": { "lang": "en" },
"top_k": 3
}'
{
"hits": [
{ "id": "refunds#late", "score": 0.92 },
{ "id": "billing#credit", "score": 0.87 },
{ "id": "faq#window", "score": 0.74 }
]
}
Retrieval is more than a nearest neighbour lookup. Sounder handles the caching, limits and failover that real traffic needs.
Sounder pulls the closest passages, writes the answer and marks where every line came from.
Popular questions are answered from cache. A write clears only the results it changes.
2msmedian answer for a cached question
Give each key a budget, so one busy customer never slows the rest.
Narrow by customer, language or date before ranking, so the top results are always ones you can show.
41,208 passages, 3 returned
If a region goes down, queries move to the standby before your users notice.
38ms
Median search across 100M vectors
99.99%
Uptime over the last 12 months
2.1B
Vectors stored by 900 teams
11
Regions to keep data near users
Our support bot stopped making up refund rules the week we moved retrieval to Sounder.
Mara Lindqvist, Head of Support Engineering
Forty million contract clauses, and search still comes back before the page finishes painting.
Dev Raman, Staff Engineer
We deleted two services and a cron job. The filters alone paid for the move.
Ines Okafor, CTO
Each customer gets their own namespace, so nobody ever sees another school’s notes.
Tomas Weller, Platform Lead
Clinicians get an answer with the guideline it came from. That is the only kind they trust.
Priya Natarajan, Product Director
Inbox search went from keyword roulette to finding the thread you meant on the first try.
Sam Achterberg, Engineering Manager
The first million vectors and 100,000 queries are free every month. After that you pay for usage, and you can see the bill coming.
Estimated monthly bill
Not answered here? Write to us and an engineer will reply.
One embedded passage with its text and metadata. A 2,000 word document usually becomes 8 to 12 vectors.
Bring your own vectors, or let Sounder embed for you with one of its hosted open models. You can switch models later and re-embed in the background.
No. Every query blends vector and keyword ranking, and you can weight one over the other per query.
A write is searchable in about a second. Synced sources check for changes every minute, or right away when they send a webhook.
In the region you pick, encrypted at rest and in transit. Enterprise plans can run in a private region inside your own cloud account.
Nothing stops. You get an email at 80% and 100% of a budget you set, and you can put a hard cap on any key.