# Batch Endpoints

You can use batch endpoints to insert, delete or read multiple entries at once. These three endpoints are only available when running Stream on your backend.

### Upsert

Upsert allows you to insert or update up to 1000 entries with a single API call. The payload is an array of entries.
Entries that already exist (same ID) will be updated with the new version.

| name       | type   | description                                                         | default | optional |
| ---------- | ------ | ------------------------------------------------------------------- | ------- | -------- |
| collection | string | The name of the collection                                          | -       |          |
| entry_id   | string | The id of the entry, if not given an ID will be generated by Stream | -       | ✓        |
| data       | object | The data related to the user                                        | -       |          |

```js label="JavaScript"
client.collections.upsert("user", [
  { id: "123", name: "johndoe", favorite_color: "blue" },
]);
```

### Select

This method allows you to retrieve up to 1000 entries by ID.

| name        | type           | description                                                                        | default | optional |
| ----------- | -------------- | ---------------------------------------------------------------------------------- | ------- | -------- |
| foreign_ids | list of string | The list of collection:id entries to retrieve (eg. ["visitor:123", "visitor:124"]) | -       | ✓        |
| data        | object         | The data related to the user                                                       | -       |          |

```js label="JavaScript"
// select the entries with ID 123 and 124 from items collection
let objects = await client.collections.select("items", ["123", "124"]);
```

### Delete Many

This method allows you to delete up to 1000 entries by ID.

| name       | type            | description                | default | optional |
| ---------- | --------------- | -------------------------- | ------- | -------- |
| collection | string          | The name of the collection | -       |          |
| ids        | list of strings | The list of id to remove   | -       | ✓        |

```js label="JavaScript"
// delete the entries with ID 123 and 124 from visitor collection
client.collections.deleteMany("visitor", ["123", "124"]);
```

<Admonition type="info">

When you delete an entry from a collection any references will be converted to a missing reference error when reading feeds with [enrichment](https://getstream.io/activity-feeds/docs/node/v2/enrichment/).

</Admonition>


---

This page was last updated at 2026-08-07T20:37:31.033Z.

For the most recent version of this documentation, visit [https://getstream.io/activity-feeds/docs/javascript/v2/collections-batch/](https://getstream.io/activity-feeds/docs/javascript/v2/collections-batch/).