FeaturesMessagesMeta
Message Metadata
Attach custom metadata to messages for tracking, filtering, and analytics
Attach user-defined metadata to any message regardless of format. Metadata is stored separately and can be retrieved or updated independently.
Store Message with Metadata
client.sessions.store_message(
session_id=session.id,
blob={"role": "user", "content": "Hello!"},
format="openai",
meta={"source": "web", "request_id": "abc123", "user_agent": "mobile"}
)await client.sessions.storeMessage(
session.id,
{ role: "user", content: "Hello!" },
{ format: "openai", meta: { source: "web", request_id: "abc123" } }
);Retrieve Metadata
The metas array in get_messages response contains metadata for each message in the same order as items and ids.
result = client.sessions.get_messages(session_id=session.id, format="openai")
for i, msg in enumerate(result.items):
meta = result.metas[i]
print(f"Message: {msg}, Meta: {meta}")const result = await client.sessions.getMessages(session.id, { format: "openai" });
for (let i = 0; i < result.items.length; i++) {
const msg = result.items[i];
const meta = result.metas[i];
console.log(`Message: ${JSON.stringify(msg)}, Meta: ${JSON.stringify(meta)}`);
}Update Metadata
Use patch_message_meta to add, update, or delete metadata keys after message creation.
# Add or update keys
updated = client.sessions.patch_message_meta(
session_id=session.id,
message_id=msg.id,
meta={"status": "processed", "score": 0.95}
)
# Delete a key by passing None
updated = client.sessions.patch_message_meta(
session_id=session.id,
message_id=msg.id,
meta={"old_key": None}
)// Add or update keys
const updated = await client.sessions.patchMessageMeta(
session.id,
msg.id,
{ status: "processed", score: 0.95 }
);
// Delete a key by passing null
await client.sessions.patchMessageMeta(
session.id,
msg.id,
{ old_key: null }
);Next Steps
Last updated on