Skip to main content
PATCH
Edit my signal

Authorizations

X-API-Key
string
header
required

Path Parameters

signal_id
string<shortuuid>
required

Public short-UUID id of the signal.

Required string length: 22
Pattern: ^[23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{22}$

Body

application/json

Payload to edit the consumer's own active signal. All fields optional.

Only consumer-owned content fields are editable. A field omitted from the request body is left unchanged; sending sentiment: null or contact_email: null explicitly clears that field.

body
string | null

Replacement feedback text. Omit to leave unchanged.

category
string | null

Replacement category code (must be a known code). Omit to leave unchanged.

sentiment
string | null

Replacement sentiment code, or null to clear. Omitting the key leaves it unchanged; sending null explicitly removes the consumer's declared sentiment.

Replacement contact opt-in. Omit to leave unchanged.

contact_email
string | null

Replacement verified contact email, or null to clear. Must be one of the consumer's own verified addresses. Omitting the key leaves it unchanged.

Response

OK

A signal as the consumer (submitter) sees it.

Carries the full set of consumer-owned fields. category and sentiment are stable codes, never labels. Identifier context (gtin / batch / serial) is surfaced as the human-facing identifier string, not the internal row id.

id
string<shortuuid>
required

Public short-UUID identifier of the signal.

Required string length: 22
Pattern: ^[23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{22}$
gtin
string
required

GTIN of the product this signal is about (the product's GTIN-14 string).

category
string
required

Consumer-picked category as a stable, language-independent code (e.g. quality_issue, packaging_problem). Never a translated label — translation is display-side only.

body
string
required

Freeform feedback text the consumer wrote (may be empty for voice-only signals).

status
string
required

Lifecycle code: active or revoked.

Whether the consumer opted in to be contacted by the brand about this feedback.

has_voice
boolean
required

True when a voice capture session backs this signal (audio handled out-of-band; not exposed here).

created
string<date-time>
required

ISO-8601 timestamp the signal was submitted.

modified
string<date-time>
required

ISO-8601 timestamp the signal was last modified.

batch
string | null

Batch/lot identifier (GS1 AI 10) carried from the scan context, or null if the scan carried none.

serial
string | null

Serialized-unit context carried from the scan, or null. Currently the linked serial pool's public id when a serialized scan was wired through; bare-API submissions leave this null (serial linkage is set by the scan/voice pipeline, C-3314).

sentiment
string | null

Optional consumer-declared sentiment as a stable code (positive / neutral / negative), or null if the consumer declined to declare one. Never inferred by Closient.