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

# Data Ingestion

> Endpoints for uploading and updating data in Cognee Cloud

These endpoints add data to your Cognee Cloud tenant. All require authentication via API key.

For the underlying concepts, see [Remember](/core-concepts/main-operations/remember) and [Add](/core-concepts/main-operations/legacy-operations/add).

## Remember

**`POST /api/v1/remember`** — Ingest data and build the knowledge graph in a single call.

Combines the add and cognify steps. Equivalent to calling `cognee.remember()` in the Python SDK. Accepts multipart form data.

```bash theme={null}
curl -X POST https://your-tenant.aws.cognee.ai/api/v1/remember \
  -H "X-Api-Key: your-key" \
  -F "data=@document.pdf" \
  -F "datasetName=my_dataset"
```

| Parameter           | Type      | Required | Description                                |
| ------------------- | --------- | -------- | ------------------------------------------ |
| `data`              | file(s)   | yes      | One or more files to upload                |
| `datasetName`       | string    | no       | Target dataset name                        |
| `datasetId`         | UUID      | no       | Existing dataset UUID                      |
| `session_id`        | string    | no       | Session identifier for grouping operations |
| `node_set`          | string\[] | no       | Node identifiers                           |
| `run_in_background` | boolean   | no       | Run asynchronously (default: `false`)      |
| `custom_prompt`     | string    | no       | Custom extraction prompt                   |
| `chunks_per_batch`  | integer   | no       | Chunks per batch (default: `10`)           |

<Info>
  For most workflows, `remember` is the simplest entry point — it handles ingestion and graph building in one call. Use the lower-level `add` + `cognify` separately when you need to upload multiple files before triggering processing.
</Info>

## Lower-level operations

The following endpoints provide more granular control over data ingestion. Most users should prefer `remember` above.

### Add

**`POST /api/v1/add`** — Upload files to a dataset without processing.

Accepts multipart form data. Files are stored in the dataset but not yet processed into the knowledge graph — call [cognify](/cognee-cloud/functionality/knowledge-processing#cognify) separately.

```bash theme={null}
curl -X POST https://your-tenant.aws.cognee.ai/api/v1/add \
  -H "X-Api-Key: your-key" \
  -F "data=@document.pdf" \
  -F "datasetName=my_dataset"
```

Supported file types: PDF, CSV, TXT, Markdown, JSON, DOCX.

### Update

**`PATCH /api/v1/update`** — Replace an existing document in a dataset.

Accepts multipart form data. Requires both the data item ID and dataset ID as query parameters.

```bash theme={null}
curl -X PATCH "https://your-tenant.aws.cognee.ai/api/v1/update?data_id=<uuid>&dataset_id=<uuid>" \
  -H "X-Api-Key: your-key" \
  -F "data=@updated_document.pdf"
```

| Parameter    | Location | Type      | Required | Description                               |
| ------------ | -------- | --------- | -------- | ----------------------------------------- |
| `data_id`    | query    | UUID      | yes      | ID of the document to replace             |
| `dataset_id` | query    | UUID      | yes      | ID of the dataset containing the document |
| `data`       | form     | file(s)   | yes      | Replacement file(s)                       |
| `node_set`   | form     | string\[] | no       | Node identifiers                          |
