Skip to main content
Access to each endpoint is gated by a scope. Your partner credential is provisioned with a set of scopes; if a call’s required scope is not in that set, the API returns 403 INSUFFICIENT_SCOPE. Scopes follow a resource.action pattern, where action is read or write. A write scope covers create, update, and delete for that resource.

Available scopes

There is no chat.write. The Integration API exposes chat history only — it cannot post, edit, or delete messages, and it never returns 1:1 direct messages. See Chat.

Endpoints that need more than one scope

Almost every endpoint requires exactly one scope. The exceptions are the reads that span several resources in a single response, and therefore require the read scope for all of them: The two file endpoints do not require bulletins.read, because bulletins do not support attachments and so can never appear in a file listing. If any one is missing the response is 403 INSUFFICIENT_SCOPE, and the message names exactly which:

Scope per endpoint

102 endpoints.

Two kinds of permission

Two independent checks apply to every call:
  1. Partner scope — does your application hold the scope for this endpoint? Decided by the scopes on your partner credential.
  2. User access — can the authenticated user see or modify this specific resource? Decided by the user’s roles and membership inside Daysync. Even with the right scope, a request can be rejected because the user lacks access to that tour or organization.
A partner can be provisioned with any subset of scopes (for example, a read-only integration with just tours.read, schedule.read, and organization.read). See Apply for API Access to request a credential and the scopes your integration needs.