Search & Recall
Retrieve your organization's memory programmatically — ranked search, memory browsing, point-in-time queries, the people directory, and full exports.
Ask gives you answers. This page gives you the raw retrieval surface underneath it — the endpoints you call when you want ranked evidence, structured records, or a full extract to feed your own systems: sync pipelines, audit tooling, agent context windows, or a search box in your own product.
Every endpoint here uses your API key (Authorization: Bearer hck_...) and returns only what the caller is allowed to see — records are isolated to your organization and scoped by Spaces. When you call on behalf of a specific person, add the x-acting-user header and results narrow to that person's view.
At a glance
POST /api/v1/search— ranked, reranked retrieval over everything your organization has ingested. Five modes;hybridis the default and the right choice most of the time.GET /api/v1/memories— browse or filter distilled memories directly, as structured records rather than ranked hits.- Time travel —
GET /memories/deltatells you what changed since a timestamp (perfect for sync);POST /memories/atreconstructs what was known at a past moment (perfect for audits). - The directory —
/entities/:name,/people/:name,/experts,/company,/org-chart, and/who-should-handleturn your corpus into a queryable map of who knows what. GET /api/v1/export— a portable, integrity-verifiable extract of your whole memory store. It's your data.- Agents get the same power via the MCP tools
honeycomb_search,honeycomb_recall, andhoneycomb_context— see Agents & MCP.
Choosing the right endpoint
Search: POST /api/v1/search
Search runs a staged retrieval pipeline: it scopes to what you're allowed to see, retrieves candidates by meaning and by keyword, then reranks the pool for answer-bearing relevance — not just topical overlap. Facts that several independent sources corroborate are ranked more strongly, so well-established truths surface above one-off mentions. You get back a ranked list of results, each carrying its content, provenance, and the entities it mentions.
curl -s "$HONEYCOMB_URL/api/v1/search" \
-H "Authorization: Bearer hck_..." \
-H "Content-Type: application/json" \
-d '{
"query": "Meridian renewal terms",
"mode": "hybrid",
"limit": 5,
"scope": {
"namespace": "sales",
"source": "hubspot",
"dateRange": { "from": "2026-01-01" }
}
}'{
"results": [
{
"id": "pt_9",
"knowledgeEntryId": "ke_3",
"score": 0.82,
"content": "Meridian renewed for $240k ARR on Jan 4...",
"title": "Meridian renewal",
"namespace": "sales",
"contentType": "deal_note",
"sourceAgent": "crm-sync",
"tags": ["renewal"],
"validFrom": "2026-01-04",
"source": "hubspot",
"entities": [{ "name": "Meridian", "type": "customer" }],
"memory": { "memoryId": "m_7", "memoryType": "milestone", "documentDate": "2026-01-04" }
}
],
"totalFound": 1,
"query": "Meridian renewal terms",
"mode": "hybrid",
"searchTimeMs": 143
}Modes
| Mode | Use it when |
|---|---|
hybrid | Default. Blends meaning-based and keyword retrieval, then reranks. The best-tested path — start here. |
semantic | You care about meaning over exact wording ("customers unhappy about pricing"). |
keyword | You need exact terms to match — ticket ids, error codes, product SKUs, names. |
graph | You want results reached through an entity's relationships, not just text similarity. |
temporal | You want date-filtered results plus a snapshot of entity facts at that date. |
Request options
| Field | Type | Default | What it does |
|---|---|---|---|
query | string | required | The search text (1–10,000 chars). |
mode | string | hybrid | One of the five modes above. |
limit | number | 10 | Max results, 1–200. |
exhaustive | boolean | false | Casts a much wider net — use for counting or "list every..." queries. |
scoreThreshold | number | 0 | Minimum relevance score, 0–1. |
rerank | boolean | true | Set false to skip reranking when latency matters more than precision. |
scope | object | — | Filters — see below. |
boostWeights | object | — | Per-query ranking nudges: confidence, recency, priority, entityProximity, reinforcement, attestation. 0 disables a factor, values above 1 amplify it. |
recency | object | — | { "halfLifeDays": 30, "anchorMs": 1751846400000 } — down-rank stale results on a half-life curve. Great for "latest status" queries. |
Scope filters
All filters combine with AND. String filters accept a single value or an array.
| Filter | Example | Matches |
|---|---|---|
namespace | "sales" | The department or domain the knowledge belongs to. |
contentType | ["email", "ticket"] | The semantic document type. |
source | "slack" | The originating platform. |
sourceChannel | "#engineering" | The channel or context within a source. |
agents | "crm-sync" | The agent that ingested the record. |
tags | ["renewal", "q3"] | Records carrying all listed tags. |
dateRange | { "from": "2026-01-01", "to": "2026-03-31" } | ISO date bounds. |
spaceId | "space_..." | Pre-scope retrieval to one Space, so ranking happens within it. |
threadId | "thread_..." | Scope to one conversation's Space — resolved server-side. |
Note:
spaceIdandthreadIdcan only narrow what you see. They never grant access beyond the caller's Spaces, and results are double-checked against Space membership before they're returned.
Browsing memories
Search gives you ranked hits. The memory endpoints give you the records themselves — distilled, deduplicated units of knowledge with their entity links and validity windows. Reach for these when you're building a sync job, rendering a feed, or assembling agent context and you want structure, not ranking.
GET /api/v1/memories
With a query parameter, this ranks memories by relevance. Without one, it's a straight filtered listing, newest first.
curl -s "$HONEYCOMB_URL/api/v1/memories?namespace=support&memoryType=commitment&limit=20" \
-H "Authorization: Bearer hck_..."| Param | Default | What it does |
|---|---|---|
query | — | Rank by relevance instead of listing by date. |
namespace | — | Filter by namespace. |
entityId | — | Only memories linked to this entity. |
memoryType | — | Filter by memory type, e.g. commitment, milestone. |
currentOnly | true | Superseded memories are excluded by default. Pass currentOnly=false to include history. |
dateRange.from / dateRange.to | — | ISO date bounds. |
limit | 50 | Max 200. |
Response: { "results": [...], "totalFound": 12 }.
GET /api/v1/memories/entity/:entityId
Every current memory linked to one entity — the fastest way to load "everything we know about this account" into an agent's context. Accepts optional query (relevance ranking) and limit params.
GET /api/v1/memories/:id
One memory by id, including its entity links and its relations to other memories.
Note: a memory you don't have access to returns
404, not403— the API never confirms the existence of records outside your view.
Time travel
Honeycomb keeps validity windows on every memory, which unlocks two questions ordinary search can't answer.
What changed? — GET /api/v1/memories/delta
Pass a timestamp and get everything added, expired, or updated since. This is the backbone of an incremental sync: store the timestamp of your last run, poll the delta, apply the changes to your own store.
curl -s "$HONEYCOMB_URL/api/v1/memories/delta?since=2026-07-01T00:00:00Z&limit=100" \
-H "Authorization: Bearer hck_..."{
"added": [{ "id": "m_91", "content": "Meridian expanded to 3 new regions...", "documentDate": "2026-07-03" }],
"expired": [{ "id": "m_12", "content": "Meridian contract under negotiation...", "expiredAt": "2026-07-02" }],
"updated": []
}since is required and must be ISO 8601 — anything else returns 400. Optional entityId and namespace narrow the window.
What did we know then? — POST /api/v1/memories/at
Reconstruct the state of knowledge at any past instant: every memory that was valid at that moment, including ones that have since been superseded. Use it for audits ("what did we know when we approved this?"), postmortems, and reproducing an agent's context at decision time.
curl -s "$HONEYCOMB_URL/api/v1/memories/at" \
-H "Authorization: Bearer hck_..." \
-H "Content-Type: application/json" \
-d '{ "timestamp": "2026-03-15T12:00:00Z", "entityId": "e_meridian", "limit": 50 }'Response: { "results": [...], "totalFound": 8, "asOf": "2026-03-15T12:00:00Z" }.
The directory: entities and people
Your memory store doubles as a living directory of accounts, projects, and people — assembled from evidence, not from a stale wiki page.
GET /api/v1/entities/:name — full recall
The deepest single lookup: current facts, memories, relationships, and (at full depth) a timeline and recent mentions for any entity. Fuzzy name matching is built in.
curl -s "$HONEYCOMB_URL/api/v1/entities/Meridian?depth=full" \
-H "Authorization: Bearer hck_..."| Param | Default | What it does |
|---|---|---|
depth | summary | summary, full (adds timeline + mentions), or relationships. |
includeFacts | true | Current facts about the entity. |
includeRelationships | true | Direct one-hop relationships. |
includeMentions | false | Recent documents mentioning the entity. |
query | — | Rank the entity's memories by relevance instead of recency. |
memoryLimit | 50 | Max memories, 1–200. |
Response fields: entity, currentFacts, memories, relationships, plus timeline, observationLog, and recentMentions at full depth. An unknown entity returns 404.
People and org lookups
| Endpoint | Question it answers |
|---|---|
GET /api/v1/people/:name | What does this person actually do? Returns owns, reportsTo, manages, expertise, recentActivity. |
GET /api/v1/experts?topic=billing | Who knows or owns this topic? Ranked experts with the signals and evidence behind each. |
POST /api/v1/who-should-handle | Natural-language routing: { "question": "Customer says invoices are double-charging" } returns the extracted topic and ranked experts. |
GET /api/v1/company | Who are we? The home-org briefing: founders, leadership, key people. |
GET /api/v1/org-chart | The org's real reporting shape, inferred from evidence. |
curl -s "$HONEYCOMB_URL/api/v1/experts?topic=billing&limit=3" \
-H "Authorization: Bearer hck_..."{
"topic": "billing",
"experts": [
{ "name": "Wei Chen", "entityId": "e_5", "score": 12, "signals": ["owns", "works_on"], "evidenceEntryIds": ["ke_1", "ke_2"] }
]
}These endpoints power routing bots, on-call escalation, and "warm intro" features — and they stay current because they're recomputed from what your organization actually does.
Full extracts: GET /api/v1/export
Your organization's memory is yours. The export endpoint produces a portable bundle of your store with SHA-256 receipts so you can verify integrity independently.
# Manifest only (the receipts)
curl -s "$HONEYCOMB_URL/api/v1/export" -H "Authorization: Bearer hck_..."
# The complete bundle
curl -s "$HONEYCOMB_URL/api/v1/export?full=true" -H "Authorization: Bearer hck_..." -o export.jsonNote: for ongoing replication, prefer polling
/memories/delta— export is built for full extracts, backups, and portability, not incremental sync.
Access and scoping, in one paragraph
Every endpoint on this page respects the same rules: your API key binds requests to your organization, and reads are filtered to org-public content plus the Spaces the acting user has been granted. Adding x-acting-user: [email protected] narrows results to Jane's view — essential when a shared backend serves many users. Scoping happens server-side on every request; there is no client-side flag that widens visibility. Details in Spaces & Permissions.
Where to next
- Ask — when you want an answer with citations instead of raw evidence.
- Agents & MCP — the same retrieval surface as MCP tools:
honeycomb_search,honeycomb_recall,honeycomb_context,honeycomb_ingest,honeycomb_upload,honeycomb_manage. - API Reference — every endpoint, parameter by parameter.
- Ingesting Data — how content becomes the memories you're retrieving here.
Asking Questions
Get grounded, cited answers from your organization's memory with POST /api/v1/ask — scoping, confidence, graded refusal, and the console Ask page.
Connecting Agents (MCP)
Give every agent in your organization a shared memory: connect any MCP-capable agent to Honeycomb's /mcp endpoint and use six tools to read, write, and manage what your organization knows.