The App Object

Represents an app that can be installed and used on the inTandem platform.

Properties

NameDescriptionTypeRequired
uidUnique identifier of the app.stringYes
app_code_nameUnique code name of the app (e.g., "calendar_sync").stringYes
nameApp display name (e.g., "Calendar Sync").stringYes
redirect_uriThe app main landing page. The platform uses this URI when opening the app.stringYes
app_hostComputed URL used by the platform to open the app (based on redirect_uri plus runtime query parameters).string
url_paramsA list of standard platform context parameters that the platform injects into the query string when building app_host. Each value is a predefined key whose value is resolved at runtime by the platform (e.g., selecting "business_uid" causes the caller's business UID to be appended as ?business_uid=...). This is different from the additional_params entry in extensions, which defines custom, app-specific key-value pairs that are also appended to the URL.array of strings
app_typesA list of app types / integration points associated with the app. This mirrors core's app_type field and is related to (and can be derived from) the app's extension configuration. Valid values are based on core validation rules and may include internal-only values.array of strings
open_in_new_tabWhether the app is opened in a new browser tab instead of an in-product iframe.boolean
supported_in_mobileWhether the app is supported in mobile experiences.boolean
permissionsA list of permission codes required for certain app capabilities or UI entries (e.g., "can_view_payments").array of strings
trustedWhether the app can skip the user consent screen when authorizing access.boolean
oauth_redirect_urisAn array of URLs to redirect the user to after a successful OAuth login.array of strings
assignment_typesHow the app is available to the caller. An app can have multiple assignment types simultaneously. Heuristics: installed and internal cannot happen at the same time. The only combination is installed + directory_offering.array of stringsYes
ownerWhether the caller is the owner of the app. For Internal tokens, apps with no owning directory are returned with owner=true.boolean
app_marketApp market metadata shown to users in the app market.object
internalInternal-runtime app metadata used by clients that render the app shell.object
extensionsDeveloper-provided extension configuration entries. Each entry contains a type key identifying the extension and a value key holding its configuration. Only extensions with non-empty values are included. The array contains at most one entry per type.array of objects
created_atTimestamp indicating when the app was created.stringYes
updated_atTimestamp indicating when the app was last updated.stringYes

App Market Properties

NameDescriptionTypeRequired
descriptionApp description texts and logo.object
app_featuresA list of app features displayed in the app market.array of strings
app_screenshot_urisLinks to screenshots or demo videos shown on desktop.array of strings
app_mobile_screenshot_urisLinks to screenshots or demo videos shown on mobile.array of strings
supported_countriesCountries in which the app is available. Use full country names (e.g., "United States"). Use an empty array for all countries.array of strings
localesLocales supported by the app (e.g., "en", "he").array of strings
privacy_policy_linkLink to the app privacy policy.string
contact_support_linkLink to the app contact support page.string
personal_connectionWhether each staff member needs to connect separately to the app.boolean

Internal Properties

NameDescriptionTypeRequired
api_uriLink to the application's API.string
full_screenWhether the app is opened in a full screen mode.boolean
deep_linkDeep link to an inner product page.object

Example

JSON

{
  "uid": "d290f1ee-26c5-4e91-b1a0-4f8b1c2d3e4f",
  "app_code_name": "calendar_sync",
  "name": "Calendar Sync",
  "redirect_uri": "https://calendar-sync.example.com/app",
  "app_host": "https://calendar-sync.example.com/app?business_uid=d290f1ee-26c5-4e91-b1a0-4f8b1c2d3e4f&staff_uid=stf_123&language=en",
  "url_params": [
    "business_uid",
    "staff_uid",
    "language"
  ],
  "app_types": [
    "communication",
    "menu_items"
  ],
  "open_in_new_tab": false,
  "supported_in_mobile": true,
  "permissions": [
    "can_view_payments"
  ],
  "trusted": false,
  "oauth_redirect_uris": [
    "https://calendar-sync.example.com/oauth/callback"
  ],
  "assignment_types": [
    "installed",
    "directory_offering"
  ],
  "app_market": {
    "description": {
      "logo": "https://cdn.example.com/apps/calendar_sync/logo.png",
      "short_description": "Two-way sync between your calendar and inTandem bookings.",
      "text": "Sync bookings to your calendar automatically and avoid double-booking across devices."
    },
    "app_features": [
      "Two-way sync",
      "Conflict detection"
    ],
    "app_screenshot_uris": [
      "https://cdn.example.com/apps/calendar_sync/screenshots/1.png"
    ],
    "app_mobile_screenshot_uris": [
      "https://cdn.example.com/apps/calendar_sync/screenshots/mobile_1.png"
    ],
    "supported_countries": [
      "United States",
      "United Kingdom",
      "Israel"
    ],
    "locales": [
      "en",
      "he"
    ],
    "privacy_policy_link": "https://calendar-sync.example.com/privacy",
    "contact_support_link": "https://calendar-sync.example.com/support",
    "personal_connection": true
  },
  "internal": {
    "api_uri": "https://calendar-sync.example.com/api",
    "full_screen": false,
    "deep_link": {
      "path": "/apps/calendar_sync/settings",
      "path_params": {
        "tab": "connections"
      }
    }
  },
  "owner": true,
  "extensions": [
    {
      "type": "menu_items",
      "value": {
        "subitems": [
          {
            "category": "clients",
            "item_name": {
              "en": "Calendar Sync"
            },
            "route": "calendar-sync",
            "display_order": 0,
            "block_impersonation": false
          }
        ]
      }
    },
    {
      "type": "additional_params",
      "value": {
        "open_channel_communication": true
      }
    },
    {
      "type": "full_screen",
      "value": true
    }
  ],
  "created_at": "2026-02-01T10:30:00Z",
  "updated_at": "2026-02-20T09:15:00Z"
}