Skip to content

Applications ​

The platform operator's routes. A tenant cannot create tenants.

Create a tenant ​

POST /v1/applications

Credential: The platform operator's key. A tenant key is refused permission_denied.
Rate limit: write, 120 a minute

Request body application/json

FieldTypeDescription
slugstring2–40 characters. Matches ^[a-z0-9][a-z0-9-]*$.
namestring1–120 characters.
settings?ApplicationSettingsThe platform defaults this tenant runs with. Nothing in it is a tenant domain concept.

Response 201 — The application.

FieldTypeDescription
idstring (uuid)
slugstring
namestring
statusstringOne of active, suspended.
settingsApplicationSettingsThe platform defaults this tenant runs with. Nothing in it is a tenant domain concept.
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
409conflict, room_full, room_closed, duplicate_identity, already_answered
413payload_too_large
429rate_limited
500internal

Read a tenant ​

GET /v1/applications/{id}

Credential: The platform operator's key. A tenant key is refused permission_denied.
Rate limit: read, 600 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)

Response 200 — The application.

FieldTypeDescription
idstring (uuid)
slugstring
namestring
statusstringOne of active, suspended.
settingsApplicationSettingsThe platform defaults this tenant runs with. Nothing in it is a tenant domain concept.
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
404not_found, room_not_found, identity_not_found
429rate_limited
500internal

Rename, suspend or reconfigure a tenant ​

PATCH /v1/applications/{id}

A change of status or settings reaches every node at once, not in a minute.

Credential: The platform operator's key. A tenant key is refused permission_denied.
Rate limit: write, 120 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)

Request body application/json

FieldTypeDescription
name?string1–120 characters.
status?stringOne of active, suspended.
settings?ApplicationSettingsThe platform defaults this tenant runs with. Nothing in it is a tenant domain concept.

Response 200 — The application, as it now stands.

FieldTypeDescription
idstring (uuid)
slugstring
namestring
statusstringOne of active, suspended.
settingsApplicationSettingsThe platform defaults this tenant runs with. Nothing in it is a tenant domain concept.
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
404not_found, room_not_found, identity_not_found
413payload_too_large
429rate_limited
500internal

A tenant's keys, newest first, without their secrets ​

GET /v1/applications/{id}/keys

Credential: The platform operator's key. A tenant key is refused permission_denied.
Rate limit: read, 600 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)
limit?queryinteger1–100. Default 20.
cursor?querystringThe nextCursor of the previous page. 1–512 characters.

Response 200 — A page of keys.

FieldTypeDescription
dataApplicationKey[]
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

Mint a key pair ​

POST /v1/applications/{id}/keys

The secret is in this response and never again; nothing can show it later.

Credential: The platform operator's key. A tenant key is refused permission_denied.
Rate limit: write, 120 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)

Request body application/json

FieldTypeDescription
label?stringAt most 60 characters.
env?stringOne of live, test. Default "live".

Response 201 — The key and its secret.

FieldTypeDescription
idstring (uuid)
apiKeystringMatches ^tlk_(live|test)_.
apiSecretstringShown once. Matches ^tlsk_.
labelstring
createdAtstring (date-time)
warningstring

Errors

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

Revoke a key ​

DELETE /v1/applications/{id}/keys/{keyId}

Signaling nodes stop honouring it within a second.

Credential: The platform operator's key. A tenant key is refused permission_denied.
Rate limit: write, 120 a minute

Parameters

NameInTypeDescription
idpathstring (uuid)
keyIdpathstring (uuid)

Response 200 — The revoked key.

FieldTypeDescription
idstring (uuid)
apiKeystring
status"revoked"One of revoked.
revokedAtstring (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
404not_found, room_not_found, identity_not_found
429rate_limited
500internal

Talkline documentation