Skip to content

Organization

Each API key belongs to exactly one organization, and these two endpoints only let you read your own organization’s data: there is no directory of other organizations.

Required scope: organizations:read (you can select it when creating the API key in the dashboard).

List organization

GET /v1/organizations always returns a collection with a single item: the authenticated organization, in the API’s standard list format (data, cursor, has_more). cursor is always null and has_more is always false; there is no real pagination here.

list-organization.sh
curl -X GET \
https://api.turbonotify.com/v1/organizations \
-H "Authorization: Bearer YOUR_KEY"

Response (200)

HTTP status: 200
{
  "data": [
    {
      "id": "org_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
      "name": "Alpha Clinic",
      "plan": "business",
      "locale": "pt-BR",
      "timezone": "America/Sao_Paulo",
      "suspended_at": null,
      "created_at": "2026-03-01T09:00:00Z",
      "updated_at": "2026-06-20T14:30:00Z"
    }
  ],
  "cursor": null,
  "has_more": false
}

Organization details

GET /v1/organizations/{organization_id} returns the same object, without the list envelope. The {organization_id} must be the org_{hex32} of the authenticated organization itself. It never returns another organization’s data.

Rejection happens in two steps, with different codes:

  • 400 invalid_organization_id: the value does not match the format ^org_[0-9a-f]{32}$. Anything malformed lands here: a UUID with hyphens, uppercase hex, an arbitrary string, a missing prefix. The format check runs before the comparison with the authenticated organization.
  • 404 organization_not_found: the value is a well-formed org_{hex32}, but it is not the authenticated organization’s (including a valid org_ of another organization).
get-organization.sh
curl -X GET \
https://api.turbonotify.com/v1/organizations/org_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4 \
-H "Authorization: Bearer YOUR_KEY"

Response (200)

HTTP status: 200
{
  "id": "org_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
  "name": "Alpha Clinic",
  "plan": "business",
  "locale": "pt-BR",
  "timezone": "America/Sao_Paulo",
  "suspended_at": null,
  "created_at": "2026-03-01T09:00:00Z",
  "updated_at": "2026-06-20T14:30:00Z"
}

Response fields

FieldTypeDescription
idstringThe organization’s public identifier (org_ + 32 hex)
namestringThe organization’s registered name
planstringIdentifier of the subscribed plan (e.g. free, solo, business, custom)
localestringLanguage of the organization’s communications, pt-BR or en (in the dashboard, Organization > Communications language). It does not change the format of API responses
timezonestringIANA time zone configured for the account (e.g. America/Sao_Paulo). It does not affect the format of API dates: it sets where each day starts and ends in the dashboard’s overview, indicators and message totals
suspended_atstring|nullISO 8601 date and time of suspension; null when the organization is active
created_atstringISO 8601 date and time the organization was created
updated_atstringISO 8601 date and time of the last update to the registration data

Every date and time returned by the API is in UTC, with a Z suffix and second precision (e.g. 2026-06-01T10:00:05Z). This applies to created_at and at in webhooks, in event polling and in message responses, to the registration fields in the table above, and to the presigned URL expiration fields (expires_at / url_expires_at in the media and picture blocks). In event and message fields the format is ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$, and no value comes with a time zone offset, whatever timezone is configured on the account.

This endpoint only returns the registration data listed above: the organization’s administrative settings do not appear in it.

Possible errors

StatusError codeDescription
400invalid_organization_id(details only) The {organization_id} given is not in the org_ + 32 lowercase hex format (e.g. a UUID with hyphens, uppercase hex, an arbitrary string).
401not_authenticatedThe API key is invalid or missing.
403insufficient_scopeThe API key does not have the organizations:read scope (the response includes required_scope).
404organization_not_found(details only) The {organization_id} given is well-formed, but does not match the authenticated organization. An invalid format returns 400 invalid_organization_id, not this code.
500internal_errorUnexpected internal server error.

See also: API key · Numbers.