Documentation
Sign inGet started

Get a preference

GET
/v1/preferences/{preference_id}
const preference = await bird.preferences.get(
  "prf_01krdgeqcxet5s7t44vh8rt9mg",
);
console.log(preference.status, preference.coverage);
Risposta200
{
  "id": "prf_01krdgeqcxet5s7t44vh8rt9mg",
  "channel": "sms",
  "handle": "+15550001234",
  "sender_scope": "+15557654321",
  "topic_id": null,
  "status": "revoked",
  "coverage": "non_transactional",
  "origin": "api_key",
  "source": "signup-form-v2",
  "contact_id": "con_01krdgeqcxet5s7t44vh8rt9mg",
  "created_at": "2026-05-20T09:14:52Z",
  "updated_at": "2026-05-25T16:42:01Z"
}
Returns one preference: the key it is about, the current statement on it, and the statement's provenance. An ID that does not exist in the workspace returns 404, including after a delete, which removes the record its ID pointed at.
Parametri
preference_id
string
ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.
Payload di risposta
id
string
obbligatorio
channel
string
obbligatorio
handle
string
obbligatorio
Who the statement is about: an email address on the email channel, a phone number in E.164 format on SMS and WhatsApp.
sender_scope
nullable string
obbligatorio
The sender the statement is limited to, or null when it covers the whole channel. On SMS this is the originator the person replied to; on WhatsApp it identifies the business account that messaged them. Email preferences are always channel-wide, so it is always null there.
topic_id
nullable string
obbligatorio
The topic the statement is limited to, or null when it covers every topic. Part of the key that identifies a statement, alongside sender_scope.
status
string
obbligatorio
coverage
string
obbligatorio
effective_at
string
obbligatorio
When the statement was made, as reported by whoever made it. This is what orders one key's statements: a write dated before this moment is refused rather than applied.
origin
string
obbligatorio
source
nullable string
Free-form note on where the statement came from, as supplied when it was recorded: a form name, an import batch, a campaign. Null when none was given.
consented_at
nullable string
When the person consented, as evidenced by whoever asserted the grant. Null on statements that carry no consent evidence, including every opt-out.
contact_id
nullable string
The contact whose handle matched when the statement was recorded. Null when no contact matched at that moment; it is not updated when contacts change later.
created_at
string
obbligatorio
updated_at
string
obbligatorio