## Upsert by property value **put** `/v2/prism/{teamId}/action/by/{slug}/{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. ### Path Parameters - `teamId: optional string` - `slug: string` - `value: string` ### Query Parameters - `list_id: optional string` Scope the upsert to a specific list/app. Required to match or write list-scoped properties, including `app_stage`. ### Header Parameters - `"Idempotency-Key": optional string` ### Body Parameters - `default: optional map[unknown]` Properties keyed by property slug. Values can be strings, numbers, booleans, arrays, or null. For select/multiselect properties, values may be option slugs or option UUIDs on write; option slugs are returned on read. - `list: optional unknown` ### Returns - `id: string` - `default: optional map[unknown]` Properties keyed by property slug. - `list: optional unknown` ### Example ```http curl https://developers.micro.so/v2/prism/$TEAM_ID/action/by/$SLUG/$VALUE \ -X PUT \ -H 'Content-Type: application/json' \ -H "x-api-key: $MICRO_API_KEY" \ -d '{}' ``` #### Response ```json { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "default": { "foo": "bar" }, "list": {} } ```