Skip to main content
GET
Get brand 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}$

Response

OK

A signal as a brand member sees it (ownership + claim scoped).

Same code-not-label contract as :class:SignalOut. contact_email is present only when the consumer consented and a verified address is still attached (C-3310 consent + verification gate); otherwise it is null. Internal consumer-account details beyond the consented contact email are never exposed.

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 code (e.g. quality_issue). Never a translated label.

body
string
required

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

has_voice
boolean
required

True when a voice capture session backs this signal.

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

is_flagged
boolean
required

True when the text-hygiene heuristic flagged this signal's content (profanity/abuse). A flag is advisory — the signal is shown regardless; it never blocks submission. Use it to triage.

created
string<date-time>
required

ISO-8601 timestamp the signal was submitted.

batch
string | null

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

serial
string | null

Serialized-unit context carried from the scan, or null.

sentiment
string | null

Optional consumer-declared sentiment code (positive / neutral / negative), or null.

contact_email
string | null

The consumer's verified contact email — present ONLY when contact_consent is true AND a verified address is still attached. Null in every other case (no consent, or the address was removed / lost verification). Use it in your own email; Closient does not relay replies.

flag_reason
enum<string> | null

Stable code describing why the signal was flagged (e.g. profanity), or null when not flagged. A code, never a translated label.

Available options:
profanity