Append context
curl --request POST \
--url https://api.jeantechnologies.com/v1/context \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"user_id": "u_alice",
"domain": "dating",
"content": "Just got back from a week of hiking in the Catskills. Loved it. Already planning the next trip.",
"source": "chat",
"occurred_at": "2023-11-07T05:31:56Z"
}
'{
"user_id": "u_alice",
"domain": "dating",
"context_id": "ctx_a8c2",
"fields_updated": [
"interests",
"values_text"
],
"embeddings_refreshed": true
}Users
Append context
Stream new context into an existing user without resending the full payload.
POST
/
context
Append context
curl --request POST \
--url https://api.jeantechnologies.com/v1/context \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"user_id": "u_alice",
"domain": "dating",
"content": "Just got back from a week of hiking in the Catskills. Loved it. Already planning the next trip.",
"source": "chat",
"occurred_at": "2023-11-07T05:31:56Z"
}
'{
"user_id": "u_alice",
"domain": "dating",
"context_id": "ctx_a8c2",
"fields_updated": [
"interests",
"values_text"
],
"embeddings_refreshed": true
}Use this when a user already exists and you want to enrich them incrementally. The platform extracts against your domain schema, merges into the existing representation, and refreshes embeddings if any soft fields changed.
Typical sources:
- Chat messages between users
- Voice or video call transcripts
- Behavior events (likes, skips, time-on-profile)
- New uploads (additional photos, updated resume)
curl https://api.jeantechnologies.com/v1/context \
-H "Authorization: Bearer $JEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"user_id": "u_alice",
"domain": "dating",
"source": "chat",
"content": "Just got back from a week of hiking in the Catskills. Loved it. Already planning the next trip."
}'
Example response
{
"user_id": "u_alice",
"domain": "dating",
"context_id": "ctx_a8c2",
"fields_updated": ["interests", "values_text"],
"embeddings_refreshed": true
}
fields_updated tells you which columns actually changed (so you can avoid downstream cache invalidation when nothing moved). embeddings_refreshed is true when at least one soft field changed and the dense vector was re-computed.
Send context as it arrives. The platform deduplicates near-identical content and rate-limits embedding refreshes per user, so high-throughput sources (a chat feed) won’t burn your quota.
When to use which endpoint
| Situation | Use |
|---|---|
| First time you’ve ever seen this user | POST /users |
| Full re-import or bulk backfill | POST /users |
| New chat message / event / transcript chunk | POST /context |
| User updated a profile field through your UI | POST /users (replaces the row) |
| Periodic behavior batch (e.g. nightly job) | POST /context per row |
Authorizations
API key issued by Jean Technologies. Contact the team for access.
Body
application/json
Example:
"u_alice"
Example:
"dating"
The new piece of context to merge into the user's representation.
Example:
"Just got back from a week of hiking in the Catskills. Loved it. Already planning the next trip."
Where this context came from. Free-form tag stored alongside the extracted fields for provenance.
Available options:
chat, voice_transcript, behavior, upload, connector, manual Example:
"chat"
Optional timestamp the event actually occurred (defaults to server receive time).
⌘I

