Skip to main content
TypeScript

Authorizations

Authorization
string
header
required

Your Periskope API token, sent as Authorization: Bearer <token>. Generate one from the Periskope dashboard under Settings → API & Webhooks. API access requires an active Pro or Enterprise plan.

Body

application/json
emails
string[]
required

Email addresses of the members to update. Only rows with role member are updated — admins and emails that do not belong to the org are silently skipped.

Minimum array length: 1
Example:
labels
string[] | null

Names (not ids) of chat labels to scope the members’ chat access to, matched case-insensitively against the org’s existing chat labels — unknown names reject the request. Replaces the members’ current label scoping as a whole — send the complete desired list, not just additions. Pass null to clear the label scoping; omitting the field leaves it unchanged.

Example:
orgPhones
string[] | null

Phone numbers to scope the members’ chat access to, as country code + number without symbols or spaces (the @c.us suffix is optional). Every phone must already exist in the org, otherwise the request is rejected. Replaces the members’ current phone scoping as a whole — send the complete desired list, not just additions. Pass null to clear the phone scoping; omitting the field leaves it unchanged.

Example:

Response

The member rows that were updated

org_id
string

Id of the organization the member belongs to

Example:

"00000000-0000-0000-0000-000000000000"

email
string

Email address of the member — the identifier every members endpoint uses to reference them

Example:

"user@example.com"

role
enum<string>

Role of the member. 'admin' members have universal access to every chat and phone in the org; 'member' access is scoped by org_phones and label_ids.

Available options:
admin,
member
Example:

"member"

user_id
string

Id of the member’s Periskope user account. null while the invite is pending — set once the invitee signs up and joins the org.

Example:

"00000000-0000-0000-0000-000000000000"

member_name
string

Display name of the member. null until the member sets one.

Example:

"John Doe"

member_image
string

URL of the member’s avatar image. null when not set.

Example:

null

member_color
string

Hex color used to represent the member in the dashboard, assigned randomly when the member is added

Example:

"#25D366"

org_phones
string[]

Phones the member’s chat access is scoped to, stored with the @c.us suffix. Only meaningful for role member — always null for admins, who can access every phone. null when no phone scoping is configured.

Example:
label_ids
string[]

Ids of the chat labels the member’s chat access is scoped to (label-xxxx). Only meaningful for role member — always null for admins. null when no label scoping is configured.

Example:
is_active
boolean

Whether the member is active in the org

Example:

true

is_online
boolean

Whether the member is currently online in the dashboard. null when never tracked.

Example:

false

is_owner
boolean

true for the org owner. The owner cannot be removed or modified via the members endpoints. null or false for everyone else.

Example:

false

invited_at
string

When the member was invited, as an ISO 8601 timestamp. null when unknown.

Example:

"2026-01-15T09:30:00.000Z"

invited_by
string

Email of the user who invited this member. null when unknown.

Example:

"user@example.com"

member_metadata
any

Free-form JSON metadata attached to the member. null when not set.

Example:

null

preferences
any

Dashboard preferences of the member, as a JSON object

Example:
created_at
string

When the member row was created, as an ISO 8601 timestamp

Example:

"2026-01-15T09:30:00.000Z"