docs/templates/parameters_reference_template.mdx
Parameter references document every input/output detail for one operation after the quickstart/onboarding journey. Keep them scannable: signature, tables, examples, exits.
title, description, icon. Titles should mirror the operation (“Add Memories Parameters”).<CodeGroup>. Mention defaults or breaking changes in an <Info> or <Warning> immediately after.<CodeGroup> JSON snippets beneath the row.<Note> explaining why.---
title: [Operation title] Parameters
description: Full reference for `[client.method]` inputs and responses.
icon: "table"
---
# [Operation title] Parameters
<CodeGroup>
```python Python
client.memories.add(
user_id: str,
memory: str,
metadata: Optional[dict] = None,
memory_type: Literal["session", "long_term"] = "session",
)
```
```ts TypeScript
await mem0.memories.add({
userId: string;
memory: string;
metadata?: Record<string, string>;
memoryType?: "session" | "long_term";
});
```
</CodeGroup>
<Info>
Defaults to session memories. Override `memory_type` for long-term storage.
</Info>
<Warning>
[Optional: call out deprecated fields or upcoming removals.]
</Warning>
## Parameters
| Name | Type | Required | Description | Notes |
| --- | --- | --- | --- | --- |
| `user_id` | string | Yes | Unique identifier for the end user. | Must match follow-up operations. |
| `memory` | string | Yes | Content to persist. | Managed & OSS. Markdown allowed. |
| `metadata` | object | No | Key-value pairs for filters. | OSS stores as JSONB; limit to 2KB. |
| `memory_type` | string | No | Retention bucket | Platform supports `shared`. |
<Tip>
Set `ttl_seconds` when you need memories to expire automatically (OSS only).
</Tip>
## Response fields
| Field | Type | Description | Example |
| --- | --- | --- | --- |
| `memory_id` | string | Identifier used for updates/deletes. | `mem_123` |
| `created_at` | string (ISO 8601) | Timestamp when the memory was stored. | `2025-02-04T12:00:00Z` |
| `metadata` | object | Echoed metadata (if provided). | `{ "team": "support" }` |
```json
{
"memory_id": "mem_123",
"memory": "I am training for a marathon.",
"metadata": {
"team": "support"
}
}
```
## Examples
<Tabs>
<Tab title="Python">
<CodeGroup>
```python Python
response = client.memories.add(
user_id="alex",
memory="I am training for a marathon.",
)
print(response["memory_id"])
```
</CodeGroup>
</Tab>
<Tab title="TypeScript">
<CodeGroup>
```typescript TypeScript
const { memoryId } = await mem0.memories.add({
userId: "alex",
memory: "I am training for a marathon.",
});
console.log(memoryId);
```
</CodeGroup>
</Tab>
</Tabs>
These snippets confirm the method returns the new `memory_id` for follow-up operations.
## Related operations
- [Operation guide](./[operation-guide-slug])
- [Complementary operation](./[secondary-operation-slug])
## Troubleshooting
- **`400 Missing user_id`** — Provide either `user_id` or `agent_id` in the payload.
- **`422 Metadata too large`** — Reduce metadata size below 2KB (OSS hard limit).
<CardGroup cols={2}>
<Card
title="[Operation guide title]"
description="[Why to read the operation walkthrough next]"
icon="book"
href="/[operation-guide-link]"
/>
<Card
title="[Cookbook or integration]"
description="[How these parameters power a real workflow]"
icon="rocket"
href="/[cookbook-link]"
/>
</CardGroup>
<Note> explains missing parity).