Skip to content

Identities ​

What a person chose — display name, availability — and where to ring them.

Read an identity's settings ​

GET /v1/identities/{identity}

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: read, 600 a minute

Parameters

NameInTypeDescription
identitypathstringThe tenant's opaque identity string, URL-encoded. 1–200 characters.

Response 200 — The identity's settings.

FieldTypeDescription
identitystring
displayNamestring | null
availabilitystringWhat the person chose. Presence is what the platform sees. One of available, away, dnd.
metadataobjectThe tenant's own JSON, at most 4 096 bytes as UTF-8. The platform never reads it.
updatedAtstring (date-time)

Errors

StatusCode
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
404not_found, room_not_found, identity_not_found
429rate_limited
500internal

Set an identity's display name, availability and metadata ​

PUT /v1/identities/{identity}

A PUT is the whole record; a field it leaves out returns to its default.

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: write, 120 a minute

Parameters

NameInTypeDescription
identitypathstringThe tenant's opaque identity string, URL-encoded. 1–200 characters.

Request body application/json

FieldTypeDescription
displayName?stringAt most 120 characters.
availability?stringWhat the person chose. Presence is what the platform sees. One of available, away, dnd. Default "available".
metadata?objectThe tenant's own JSON, at most 4 096 bytes as UTF-8. The platform never reads it.

Response 200 — The identity's settings.

FieldTypeDescription
identitystring
displayNamestring | null
availabilitystringWhat the person chose. Presence is what the platform sees. One of available, away, dnd.
metadataobjectThe tenant's own JSON, at most 4 096 bytes as UTF-8. The platform never reads it.
updatedAtstring (date-time)

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
413payload_too_large
429rate_limited
500internal

An identity's registered installs, most recently registered first ​

GET /v1/identities/{identity}/devices

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: read, 600 a minute

Parameters

NameInTypeDescription
identitypathstringThe tenant's opaque identity string, URL-encoded. 1–200 characters.
limit?queryinteger1–100. Default 20.
cursor?querystringThe nextCursor of the previous page. 1–512 characters.

Response 200 — A page of devices.

FieldTypeDescription
dataDevice[]
nextCursorstring | nullThe cursor for the next page; null on the last.

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
429rate_limited
500internal

Register or refresh one install ​

PUT /v1/identities/{identity}/devices/{deviceId}

A PUT is the whole registration: a field it leaves out is cleared. A push or VoIP token moves to the install that registered it last.

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: write, 120 a minute

Parameters

NameInTypeDescription
identitypathstringThe tenant's opaque identity string, URL-encoded. 1–200 characters.
deviceIdpathstringThe tenant's own handle for the install. 1–200 characters.

Request body application/json

FieldTypeDescription
platformstringOne of web, android, ios.
pushProvider?stringOne of fcm, apns_voip, web_push, none. Default "none".
pushToken?string1–4096 characters.
voipToken?stringiOS PushKit; not the APNs alert token. 1–4096 characters.
sdkVersion?stringAt most 40 characters.
appVersion?stringAt most 40 characters.
osVersion?stringAt most 60 characters.
model?stringAt most 80 characters.

Response 200 — The device.

FieldTypeDescription
identitystring
deviceIdstringThe tenant's own handle for the install.
platformstringOne of web, android, ios.
pushProviderstringOne of fcm, apns_voip, web_push, none.
pushTokenstring | null
voipTokenstring | nulliOS PushKit; not the APNs alert token.
sdkVersionstring | null
appVersionstring | null
osVersionstring | null
modelstring | null
lastSeenAtstring (date-time)
createdAtstring (date-time)
updatedAtstring (date-time)

Errors

StatusCode
400validation_failed, token_ttl_too_long
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
413payload_too_large
429rate_limited
500internal

Remove one install, on logout ​

DELETE /v1/identities/{identity}/devices/{deviceId}

Credential: API key — Authorization: Bearer <api_key>.<api_secret>
Rate limit: write, 120 a minute

Parameters

NameInTypeDescription
identitypathstringThe tenant's opaque identity string, URL-encoded. 1–200 characters.
deviceIdpathstringThe tenant's own handle for the install. 1–200 characters.

Response 204 — Removed.

Errors

StatusCode
401unauthenticated, token_expired, token_replayed, token_not_yet_valid
403permission_denied, app_suspended, quota_exhausted
404not_found, room_not_found, identity_not_found
429rate_limited
500internal

Talkline documentation