Documentation
Sign inGet started

List contact properties

GET
/v1/contact-properties
for await (const prop of bird.contactProperties.list()) {
  console.log(prop.key, prop.type);
}
const page = await bird.contactProperties.list({ limit: 50 }); // page.data, page.next_cursor
Returns a paginated list of the workspace's contact properties, newest first. Archived properties are included; check each entry's archived flag.
Query Parameters
limit
integer
Maximum number of items to return per page.
starting_after
string
Cursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.
ending_before
string
Cursor from the prev_cursor field of a previous list response. Returns items immediately before the cursor position in the current sort order.
Response Payload
data
array of object
required
Page of contact property objects.
Show child attributes
data.id
string
required
ID of the property (prp_-prefixed), accepted by every operation that takes a property_id.
data.key
string
required
The property key, used as the key in contact data and as the attribute in the bird.contact.<key> broadcast template variable. Lowercase letters, digits, and underscores, starting with a letter. Cannot be changed after creation.
data.type
string
required
The value type every contact must use for a property. Cannot be changed after creation.
datetime values are RFC 3339 timestamps with an explicit offset (for example 2024-01-15T09:30:00Z or 2024-01-15T11:30:00+02:00); a bare date or a time with no offset is rejected. The value is normalized to UTC with second precision on write, so 2024-01-15T11:30:00+02:00 is stored and returned as 2024-01-15T09:30:00Z, and any fractional seconds are dropped.
Possible values: string, number, boolean, datetime
data.fallback_value
Default used when a contact has no value for this property and the template does not supply an inline fallback. A string, number, boolean, or RFC 3339 datetime matching the declared type (strings up to 500 characters), or null when no fallback is set.
data.archived
boolean
Whether the property is archived. An archived property is rejected in new contact writes and stops rendering in templates, but every value already stored on contacts is preserved. Reactivate it with unarchive.
data.created_at
string
required
data.updated_at
string
required
next_cursor
nullable string
required
Cursor for the next page. Pass back as starting_after to advance forward. Null when no next page exists.
prev_cursor
nullable string
required
Cursor for the previous page. Pass back as ending_before to step backward. Null when no previous page exists.
refresh_cursor
nullable string
required
Refresh anchor. Pass back as ending_before later to fetch items that have appeared since this response. Non-null whenever data is non-empty; null only on an empty page. Distinct from prev_cursor.