Skip to main content
User profiles are extremely short summaries of context about an entity (Usually a user, but can be anything) which includes both the static facts about them, as well as a few recent episodes.
You can think of these as a dynamic compaction that’s done by supermemory in real-time.
This profile should be injected into the agent context for truly personalized experiences. To read more, visit User profiles - Concept Get a user’s profile — their static facts and dynamic context — with a single API call.
Profiles are built automatically as you ingest content. No setup required.

Quick Start

Response:

Get profile and search results in one call by adding the q parameter:

Parameters

ParameterTypeRequiredDescription
containerTagstringYesUser/project identifier
qstringNoSearch query (includes search results in response)
threshold0-1NoFilter search results by relevance score
filtersobjectNoMetadata filters applied to profile and search results
includestring[]NoSections to return — any of "static", "dynamic", "buckets". Omit to return all
bucketsstring[]NoRestrict the buckets section to specific keys. Omit for all configured buckets

Building Prompts

The most common pattern — inject profile into your LLM’s system prompt:

Full Context Pattern

Get profile + query-specific memories in one call:

Profile Buckets

Buckets are custom topical categories for a profile — an axis that sits alongside static and dynamic. Where static/dynamic split facts by how long-lived they are, buckets group them by subject (e.g. preferences, goals, work). As content is ingested, a classifier assigns each memory to the buckets it matches, so you can pull just the slice of context a given surface needs. Every org starts with a built-in preferences bucket. You can define your own at the organization or space level in your console settings; space-level buckets are add-only — a container tag inherits all org buckets and may add more, but cannot disable them.

Requesting buckets

Pass include: ["buckets"] to return bucket-organized memories, and optionally buckets to limit the response to specific keys. include also lets you skip sections you don’t need — ["buckets"] alone omits static and dynamic.
Response:
[Recent] and [Summary] labels. To keep profiles dense, an entity’s older memories are periodically aggregated into a short synthesis. Entries prefixed [Summary] are that aggregated context; entries prefixed [Recent] were ingested since the last aggregation and aren’t summarized yet. The dynamic section uses the same [Recent] prefix (plus a [YYYY-MM-DD] date). Strip the prefixes if you only want raw text, or keep them to signal recency to your model.

List bucket definitions

To see which buckets are configured for a container tag (org buckets merged with any space-level additions), call /v4/profile/buckets:
Response:
FieldTypeDescription
buckets[].keystringStable slug, also stored on each memory. Lowercase alphanumeric with -/_, 1–64 chars
buckets[].descriptionstringWhat belongs in the bucket — guides the ingestion classifier
Bucket descriptions steer classification. A precise description (“Explicit first-person preferences only — exclude inferred traits”) yields cleaner buckets than a vague one. static and dynamic are reserved and can’t be used as bucket keys.

Framework Examples

See AI SDK Integration for details.

Response Schema


Next Steps