---
title: "Add multiple memories"
method: POST
path: "/memories/add/bulk"
tags: ["Memories"]
---

# Add multiple memories

`POST /memories/add/bulk`

Adds multiple documents to the index in a single request.

All items are validated before any database operations occur. If any item
fails validation, the entire batch is rejected with a 422 error detailing
which items failed and why.

Maximum 100 items per request. Each item follows the same schema as the
single-item /memories/add endpoint.

## Request body

- BulkIngestRequest — Request schema for bulk memory ingestion.
  - `items` IngestRequest[], required — List of memories to ingest. Maximum 100 items.
    - `resource_id` string — The resource ID to add the document to. If not provided, a new resource ID will be generated. If provided, the document will be updated if it already exists.
    - `text` string, required — Full text of the document.
    - `collection` string, nullable — The collection to add the document to — deprecated, set the collection using metadata instead.
    - `title` string, nullable — Title of the document.
    - `date` string, date-time — Date of the document. Depending on the document, this could be the creation date or date the document was last updated (eg. for a chat transcript, this would be the date of the last message). This helps the ranking algorithm and allows you to filter by date range.
    - `metadata` object, nullable — Custom metadata for filtering. Keys must be alphanumeric with underscores, max 64 chars. Values must be string, number, boolean, or null.

## Response `200`

Successful Response

- BulkIngestResponse — Response schema for successful bulk ingestion.
  - `success` boolean
  - `count` integer, required — Number of items successfully processed
  - `items` DocumentStatusResponse[], required — Status of each ingested item
    - `source` 'reddit' | 'notion' | 'slack' | 'google_calendar' | 'google_mail' | 'box' | 'dropbox' | 'github' | 'google_drive' | 'vault' | 'web_crawler' | 'trace' | 'microsoft_teams' | 'gmail_actions' | 'granola' | 'fathom' | 'fireflies' | 'linear' | 'hubspot' | 'salesforce' | 'coda' | 'lightfield' | 'gong', required
    - `resource_id` string, required
    - `status` 'pending' | 'processing' | 'completed' | 'failed' | 'pending_review' | 'skipped', required

## Other responses

- `422` — Validation Error

## Changes

> 37 revisions in range; 1 not diffed.

- **2026-06-17** `77d3e8d5e8a7` — 1 warning
  - added the new `gong` enum value to the `items/items/source` response property for the response status `200`
- **2026-05-29** `5485767cdcda` — 1 warning
  - added the new `fireflies` enum value to the `items/items/source` response property for the response status `200`
- **2026-05-20** `912f94dd47ba` — 1 warning
  - added the new `lightfield` enum value to the `items/items/source` response property for the response status `200`
- **2026-05-20** `d7c846c2cd79` — 1 warning
  - added the new `coda` enum value to the `items/items/source` response property for the response status `200`
- **2026-05-18** `6eb290df2d3b` — 2 warning
  - added the new `hubspot` enum value to the `items/items/source` response property for the response status `200`
  - added the new `salesforce` enum value to the `items/items/source` response property for the response status `200`

[Full history](https://skmtc.dev/hyperspell/apis/hyperspell-api/changes/memories/add/bulk/post.md)

---

[API](https://skmtc.dev/hyperspell/apis/hyperspell-api.md) · [All operations](https://skmtc.dev/hyperspell/apis/hyperspell-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hyperspell/hyperspell-api/revisions/5721acd588e6/schema)
