> ## Documentation Index
> Fetch the complete documentation index at: https://docs.memmachine.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Project API

> Reference for managing isolated memory namespaces

The `client.projects` namespace allows you to manage the lifecycle of projects. A Project serves as a strict security and data boundary; memories from one project cannot be accessed by another.

## Project Lifecycle

### `create`

Initializes a new project within an organization. If the project already exists, it returns the existing project details.

```python theme={null}
project = client.projects.create(
    org_id="my_org",
    project_id="my_project",
    description="Main memory store for our customer support agent",
    metadata={"environment": "production"}
)
```

| **Parameter** | **Type** | **Description**                                       |
| ------------- | -------- | ----------------------------------------------------- |
| `org_id`      | `str`    | Organization identifier.                              |
| `project_id`  | `str`    | Unique project identifier within the org.             |
| `description` | `str`    | Optional text describing the project.                 |
| `metadata`    | `dict`   | Optional key-value pairs for organizational labeling. |

### `get`

Retrieves the details of an existing project.

```python theme={null}
project = client.projects.get(org_id="my_org", project_id="my_project")
```

| **Parameter** | **Type** | **Description**          |
| ------------- | -------- | ------------------------ |
| `org_id`      | `str`    | Organization identifier. |
| `project_id`  | `str`    | Project identifier.      |

### `delete`

Permanently removes a project and all associated episodic and semantic data.

<Warning>
  This action is irreversible. All vector embeddings, relational tags, and chat history associated with this project will be destroyed.
</Warning>

| **Parameter** | **Type** | **Description**          |
| ------------- | -------- | ------------------------ |
| `org_id`      | `str`    | Organization identifier. |
| `project_id`  | `str`    | Project identifier.      |

***

## Project Inspection

### `get_episode_count`

Returns the total number of episodic memory entries stored in the project.

```python theme={null}
count = client.projects.get_episode_count("my_org", "my_project")
print(f"Project has {count} memories.")
```

### `list_all`

Lists all project IDs belonging to a specific organization.

```python theme={null}
projects = client.projects.list_all(org_id="my_org")
```

***

## The Project Object

When you use `client.projects.get()` or `create()`, you receive a `Project` instance. This object contains the following attributes:

| **Attribute**   | **Type** | **Description**                                        |
| --------------- | -------- | ------------------------------------------------------ |
| `org_id`        | `str`    | The organization ID this project belongs to.           |
| `project_id`    | `str`    | The unique ID for this project.                        |
| `description`   | `str`    | The project's description.                             |
| `configuration` | `dict`   | The specific LLM/Embedder config used by this project. |
