Skip to content
Dashboard

Users

UsersContacts

Contacts are the customers and leads in your Featurebase organization. Use this endpoint to list and retrieve contact information.

List contacts
client.users.contacts.list(ContactListParams { contactType, cursor, limit, featurebaseVersion } params?, RequestOptionsoptions?): CursorPage<Data>
GET/v2/contacts
Create or update a contact
client.users.contacts.createOrUpdate(ContactCreateOrUpdateParams { companies, createdAt, customFields, 10 more } params, RequestOptionsoptions?): ContactCreateOrUpdateResponse
POST/v2/contacts
Get contact by ID
client.users.contacts.retrieve(stringid, ContactRetrieveParams { featurebaseVersion } params?, RequestOptionsoptions?): ContactRetrieveResponse
GET/v2/contacts/{id}
Delete contact by ID
client.users.contacts.delete(stringid, ContactDeleteParams { featurebaseVersion } params?, RequestOptionsoptions?): DeletedContact { id, deleted, object }
DELETE/v2/contacts/{id}
Block a contact
client.users.contacts.block(stringid, ContactBlockParams { featurebaseVersion } params?, RequestOptionsoptions?): ContactBlockResponse { id, blocked, object }
POST/v2/contacts/{id}/block
Unblock a contact
client.users.contacts.unblock(stringid, ContactUnblockParams { featurebaseVersion } params?, RequestOptionsoptions?): ContactUnblockResponse { id, object, unblocked }
POST/v2/contacts/{id}/unblock
ModelsExpand Collapse
Contact { id, name, object, 16 more }

User who submitted the response

id: string

Unique identifier

name: string

Contact display name

object: "contact"

Object type identifier

type: "customer" | "lead"

Type of contact

One of the following:
"customer"
"lead"
commentsCreated?: number

Number of comments created

companies?: Array<Company { id, companyId, companySize, 11 more } >

Companies the contact belongs to

id: string

Featurebase internal ID

companyId: string

External company ID from your system

companySize: number | null

Company employee headcount

createdAt: string | null

ISO date when company was created

industry: string | null

Industry

lastActivity: string | null

ISO date of last activity

linkedUsers: number | null

Number of users linked to this company

monthlySpend: number | null

Monthly spend

name: string

Company name

object: "company"

Object type identifier

plan: string | null

Plan or tier name

updatedAt: string | null

ISO date when company was last updated

website: string | null

Company website URL

customFields?: Record<string, unknown>

Custom field values

customFields?: Record<string, unknown>

Custom field values on the contact

description?: string

Contact description/bio

email?: string | null

Contact email

lastActivity?: string

Last activity ISO timestamp

locale?: string

Contact locale

manuallyOptedOutFromChangelog?: boolean

Whether manually opted out from changelog

organizationId?: string

Organization ID the contact belongs to

postsCreated?: number

Number of posts created

profilePicture?: string | null

Profile picture URL

roles?: Array<string>

Contact roles

subscribedToChangelog?: boolean

Whether subscribed to changelog

userId?: string

External user ID from SSO

verified?: boolean

Whether email is verified

ContactList { data, nextCursor, object }
data: Array<Data>

Array of contacts

nextCursor: string | null

Cursor for fetching the next page (cursor-based pagination)

object: "list"

Object type identifier

DeletedContact { id, deleted, object }
id: string

Unique identifier of the deleted contact

deleted: true

Indicates the resource was deleted

object: "contact"

Object type identifier

ContactCreateOrUpdateResponse extends Contact { id, name, object, 16 more } | null

User who submitted the response

ContactRetrieveResponse extends Contact { id, name, object, 16 more } | null

User who submitted the response

ContactBlockResponse { id, blocked, object }
id: string

Unique identifier of the blocked contact

blocked: true

Indicates the contact was blocked

object: "contact"

Object type identifier

ContactUnblockResponse { id, object, unblocked }
id: string

Unique identifier of the unblocked contact

object: "contact"

Object type identifier

unblocked: true

Indicates the contact was unblocked

UsersContactsBy User ID

Contacts are the customers and leads in your Featurebase organization. Use this endpoint to list and retrieve contact information.

Get contact by external user ID
client.users.contacts.byUserID.retrieve(stringuserID, ByUserIDRetrieveParams { featurebaseVersion } params?, RequestOptionsoptions?): ByUserIDRetrieveResponse
GET/v2/contacts/by-user-id/{userId}
Delete contact by external user ID
client.users.contacts.byUserID.delete(stringuserID, ByUserIDDeleteParams { featurebaseVersion } params?, RequestOptionsoptions?): DeletedContact { id, deleted, object }
DELETE/v2/contacts/by-user-id/{userId}
ModelsExpand Collapse
ByUserIDRetrieveResponse extends Contact { id, name, object, 16 more } | null

User who submitted the response

UsersContactsBy User IDEmail Preferences

Contacts are the customers and leads in your Featurebase organization. Use this endpoint to list and retrieve contact information.

Get contact email preferences by external user ID
client.users.contacts.byUserID.emailPreferences.retrieve(stringuserID, EmailPreferenceRetrieveParams { featurebaseVersion } params?, RequestOptionsoptions?): PreferencesOutput { contactId, object, preferences, 2 more }
GET/v2/contacts/by-user-id/{userId}/email-preferences
Update contact email preferences by external user ID
client.users.contacts.byUserID.emailPreferences.update(stringuserID, EmailPreferenceUpdateParams { preferences, featurebaseVersion } params, RequestOptionsoptions?): PreferencesOutput { contactId, object, preferences, 2 more }
PATCH/v2/contacts/by-user-id/{userId}/email-preferences

UsersContactsEmail Preferences

Contacts are the customers and leads in your Featurebase organization. Use this endpoint to list and retrieve contact information.

Get contact email preferences by ID
client.users.contacts.emailPreferences.retrieve(stringid, EmailPreferenceRetrieveParams { featurebaseVersion } params?, RequestOptionsoptions?): PreferencesOutput { contactId, object, preferences, 2 more }
GET/v2/contacts/{id}/email-preferences
Update contact email preferences by ID
client.users.contacts.emailPreferences.update(stringid, EmailPreferenceUpdateParams { preferences, featurebaseVersion } params, RequestOptionsoptions?): PreferencesOutput { contactId, object, preferences, 2 more }
PATCH/v2/contacts/{id}/email-preferences
ModelsExpand Collapse
PreferenceState { effectiveStatus, status }

Global email preference state for all email notifications.

effectiveStatus: "subscribed" | "unsubscribed"

Final effective status after applying global preference overrides

One of the following:
"subscribed"
"unsubscribed"
status: "subscribed" | "unsubscribed"

Stored preference status for this category

One of the following:
"subscribed"
"unsubscribed"
PreferencesOutput { contactId, object, preferences, 2 more }
contactId: string

Featurebase contact ID

object: "contact_email_preferences"

Object type identifier

preferences: Preferences { all, changelog, commentReplies, 2 more }

Email preference state for this contact, including both stored status and final effective status.

all: PreferenceState { effectiveStatus, status }

Global email preference state for all email notifications.

effectiveStatus: "subscribed" | "unsubscribed"

Final effective status after applying global preference overrides

One of the following:
"subscribed"
"unsubscribed"
status: "subscribed" | "unsubscribed"

Stored preference status for this category

One of the following:
"subscribed"
"unsubscribed"
changelog: PreferenceState { effectiveStatus, status }

Global email preference state for all email notifications.

effectiveStatus: "subscribed" | "unsubscribed"

Final effective status after applying global preference overrides

One of the following:
"subscribed"
"unsubscribed"
status: "subscribed" | "unsubscribed"

Stored preference status for this category

One of the following:
"subscribed"
"unsubscribed"
commentReplies: PreferenceState { effectiveStatus, status }

Global email preference state for all email notifications.

effectiveStatus: "subscribed" | "unsubscribed"

Final effective status after applying global preference overrides

One of the following:
"subscribed"
"unsubscribed"
status: "subscribed" | "unsubscribed"

Stored preference status for this category

One of the following:
"subscribed"
"unsubscribed"
postComments: PreferenceState { effectiveStatus, status }

Global email preference state for all email notifications.

effectiveStatus: "subscribed" | "unsubscribed"

Final effective status after applying global preference overrides

One of the following:
"subscribed"
"unsubscribed"
status: "subscribed" | "unsubscribed"

Stored preference status for this category

One of the following:
"subscribed"
"unsubscribed"
postUpdates: PreferenceState { effectiveStatus, status }

Global email preference state for all email notifications.

effectiveStatus: "subscribed" | "unsubscribed"

Final effective status after applying global preference overrides

One of the following:
"subscribed"
"unsubscribed"
status: "subscribed" | "unsubscribed"

Stored preference status for this category

One of the following:
"subscribed"
"unsubscribed"
email?: string | null

Contact email address, if available

userId?: string | null

External user ID from your system, if available

UpdatePreferenceBody { preferences }
preferences: Preferences { all, changelog, commentReplies, 2 more }
all?: "subscribed" | "unsubscribed"

Master delivery gate. When unsubscribed, the contact receives no emails regardless of the per-category values. Per-category values are preserved.

One of the following:
"subscribed"
"unsubscribed"
changelog?: "subscribed" | "unsubscribed"

Stored status for new changelog release notifications.

One of the following:
"subscribed"
"unsubscribed"
commentReplies?: "subscribed" | "unsubscribed"

Stored status for replies to the contact’s own comments.

One of the following:
"subscribed"
"unsubscribed"
postComments?: "subscribed" | "unsubscribed"

Stored status for new comments on posts the contact follows.

One of the following:
"subscribed"
"unsubscribed"
postUpdates?: "subscribed" | "unsubscribed"

Stored status for post status changes and updates on posts the contact follows.

One of the following:
"subscribed"
"unsubscribed"

UsersCompanies

Companies represent organizations or businesses that your users belong to. Use this endpoint to list and retrieve company information.

List all companies
client.users.companies.list(CompanyListParams { cursor, limit, featurebaseVersion } params?, RequestOptionsoptions?): CursorPage<Company { id, companyId, companySize, 11 more } >
GET/v2/companies
Create or update a company
client.users.companies.createOrUpdate(CompanyCreateOrUpdateParams { companyId, name, companySize, 7 more } params, RequestOptionsoptions?): Company { id, companyId, companySize, 11 more }
POST/v2/companies
Get company by ID
client.users.companies.retrieve(stringid, CompanyRetrieveParams { featurebaseVersion } params?, RequestOptionsoptions?): Company { id, companyId, companySize, 11 more }
GET/v2/companies/{id}
Delete a company
client.users.companies.delete(stringid, CompanyDeleteParams { featurebaseVersion } params?, RequestOptionsoptions?): DeletedCompany { id, deleted, object }
DELETE/v2/companies/{id}
Delete a company by external company ID
client.users.companies.deleteByCompanyID(stringcompanyID, CompanyDeleteByCompanyIDParams { featurebaseVersion } params?, RequestOptionsoptions?): DeletedCompany { id, deleted, object }
DELETE/v2/companies/by-company-id/{companyId}
ModelsExpand Collapse
Company { id, companyId, companySize, 11 more }
id: string

Featurebase internal ID

companyId: string

External company ID from your system

companySize: number | null

Company employee headcount

createdAt: string | null

ISO date when company was created

industry: string | null

Industry

lastActivity: string | null

ISO date of last activity

linkedUsers: number | null

Number of users linked to this company

monthlySpend: number | null

Monthly spend

name: string

Company name

object: "company"

Object type identifier

plan: string | null

Plan or tier name

updatedAt: string | null

ISO date when company was last updated

website: string | null

Company website URL

customFields?: Record<string, unknown>

Custom field values

DeletedCompany { id, deleted, object }
id: string

Unique identifier of the deleted company

deleted: true

Indicates the resource was deleted

object: "company"

Object type identifier

UsersCompaniesContacts

Companies represent organizations or businesses that your users belong to. Use this endpoint to list and retrieve company information.

List contacts attached to a company
client.users.companies.contacts.list(stringid, ContactListParams { cursor, limit, featurebaseVersion } params?, RequestOptionsoptions?): CursorPage<Data>
GET/v2/companies/{id}/contacts
Attach a contact to a company
client.users.companies.contacts.attach(stringid, ContactAttachParams { contactId, featurebaseVersion } params, RequestOptionsoptions?): ContactAttachResponse
POST/v2/companies/{id}/contacts
Remove a contact from a company
client.users.companies.contacts.remove(stringcontactID, ContactRemoveParams { id, featurebaseVersion } params, RequestOptionsoptions?): ContactRemoveResponse
DELETE/v2/companies/{id}/contacts/{contactId}
ModelsExpand Collapse
ContactAttachResponse extends Contact { id, name, object, 16 more } | null

User who submitted the response

ContactRemoveResponse extends Contact { id, name, object, 16 more } | null

User who submitted the response