v25

latestOpenAPI 3.1.0raw.githubusercontent.com2026-08-0131545750.2 KB

Upsert by property value

Idempotent create-or-update keyed on {slug}={value}. If exactly one record matches, it is patched and 200 is returned. If none match, a new record is created (with the lookup property set if absent) and 201 is returned. If multiple records match, 409 is returned and you should patch by id instead.

put/v2/prism/{teamId}/{objectType}/by/{slug}/{value}

Path parameters

teamIdstring uuid required
objectType'comment' | 'deal' | 'engagement' | 'identity' | 'ai_chat_thread' | 'ai_chat_message' | 'agent_site' | 'document' | 'action' | 'event' | 'organization' | 'contact' required
slugstring required
valuestring required

Query parameters

list_idstring uuid

Scope the upsert to a specific list/app. Required to match or write list-scoped properties, including app_stage.

Headers

Idempotency-Keystring

A unique key (UUID or any opaque string up to 255 chars) that identifies this logical request. The server caches the first response under this key for 24 hours and replays it on retry — safe to use on every POST/PUT/PATCH to make network retries deterministic. Reusing the same key with a different body returns 409 idempotency_key_mismatch. Replays include the idempotent-replay: true response header.

Request body

OR

Response

Existing record patched.

idstring uuid required
defaultobject

Properties keyed by property slug.

listobject