---
title: "Upsert Item Public"
method: POST
path: "/public/catalogs/{catalog_id}/items"
tags: ["Catalogs"]
---

# Upsert Item Public

`POST /public/catalogs/{catalog_id}/items`

## Request

- Base URL: `https://catalogapi.rastro.ai/api`
- URL: `https://catalogapi.rastro.ai/api/public/catalogs/{catalog_id}/items`
- Auth: HTTP bearer

Upsert a single item using the same shape as the public read API.

## Path parameters

- `catalog_id` string, required

## Headers

- `X-Organization-Id` string, nullable

## Request body

- PublicUpsertItemRequest
  - `unique_identifier` string, required: Legacy compatibility field. Put the business identifier inside data as well; public single-item upsert uses the submitted data for matching.
  - `data` object, required
  - `source_info` object, nullable

## Response `200`

Successful Response

- PublicCatalogItem
  - `id` string, required
  - `data` object, required
  - `metadata` object, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/rastro-ai/apis/rastro-public-api.md) - [All operations](https://skmtc.dev/rastro-ai/apis/rastro-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rastro-ai/apis/rastro-public-api/revisions/57c8ed4854bb?raw)
