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

# Upsert a search object

> Add or update one of your objects in Reintersect search.

> Reintersect apps are in developer preview. Names and limits can still change before general
> release.

Adds or updates a search object. See [Search and memories](/search-and-memories) for where results
appear.

Authenticate with an install token that has the `search:write` scope.

## Body

| Field | Type | Required | Description |
| - | - | - | - |
| `kind` | `string` | Yes | One of your reference kinds that has `search`. |
| `externalId` | `string` | Yes | Your id, 1 to 200 characters. |
| `title` | `string` | Yes | At most 200 characters. |
| `url` | `string` | Yes | An `https://` URL. |
| `subtitle` | `string` | No | At most 200 characters. |
| `body` | `string` | No | Plain text to search, at most 8,000 characters. |
| `updatedAt` | `string` | Yes | ISO 8601. An upsert older than the stored object isn't applied. |
| `visibility` | `"workspace"` or `{ circleIds }` | Yes | Everyone, or members of 1 to 50 circles. |

## Response

The stored object (`kind`, `externalId`, `title`, `url`, `subtitle`, `updatedAt`, `visibility`) plus
`applied`, which is `false` when a newer copy was kept.

## Errors

| `_tag` | Status | Cause |
| - | - | - |
| `ReintersectAppScopeMissingError` | 403 | The install lacks `search:write`. |
| `ReintersectAppReferenceKindUnknownError` | 422 | The installed version has no such kind. |
| `ReintersectAppReferenceKindNotSearchableError` | 422 | The kind has no `search`. |
| `ReintersectAppCircleNotFoundError` | 404 | A circle isn't in the workspace or your app can't reach it; `circleIds` lists them. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.