# TimeTac API v6 — generated spec + BP overlay + tier/feature annotation + code samples
openapi: 3.0.0
info:
  version: v6
  title: TimeTac API
  description: "TimeTac provides an easy accessible RESTful application programming interface (API) for\
    \ developers to connect and integrate a TimeTac account into their own apps. The API as well as every\
    \ TimeTac company account is decoupled from all the other company accounts. Your API user is restricted\
    \ to your account and can only ever access the data of that account.\n\n\n# Getting started\n\n##\
    \ 1. Base URL\n\nEvery request is scoped to your TimeTac account, which is the first segment of\n\
    the path:\n\n```\nhttps://prod-plus-api.timetac.com/{account}/v6/...     # production\nhttps://sandbox-plus-api.timetac.com/{account}/v6/...\
    \  # sandbox\n```\n\n`{account}` is your TimeTac company account name — the same name you use to log\n\
    in. From **v6 onwards the version comes directly after the account** and there\nis no `userapi` segment;\
    \ that segment belongs to the older v1–v5 routes only.\n\n## 2. Authenticate\n\nCreate a `client_id`\
    \ / `client_secret` pair in your TimeTac account, then\nexchange them for a bearer token:\n\n```bash\n\
    curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/auth/oauth2/token' \\\n  -d 'grant_type=client_credentials'\
    \ \\\n  -d 'client_id=YOUR_CLIENT_ID' \\\n  -d 'client_secret=YOUR_CLIENT_SECRET'\n```\n\nThe response\
    \ contains `access_token` and `expires_in` (seconds). Send the token\non every subsequent request:\n\
    \n```\nAuthorization: Bearer YOUR_ACCESS_TOKEN\n```\n\n## 3. Call an endpoint\n\nResources use action-style\
    \ paths rather than REST verbs on a collection —\n`read`, `create`, `update` and `delete` are part\
    \ of the URL:\n\n```bash\ncurl 'https://sandbox-plus-api.timetac.com/{account}/v6/timeTrackings/read/?_limit=10'\
    \ \\\n  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'\n```\n\n## Response envelope\n\nSuccessful responses\
    \ are wrapped in a common envelope; the payload is always in\n`Results`:\n\n```json\n{\n  \"Success\"\
    : true,\n  \"NumResults\": 2,\n  \"ResourceName\": \"timeTrackings\",\n  \"RequestStartTime\": \"\
    2026-09-10T09:00:00+02:00\",\n  \"RequestEndTime\": \"2026-09-10T09:00:00+02:00\",\n  \"ServerTimeZone\"\
    : \"Europe/Vienna\",\n  \"Results\": [ { \"id\": 1 }, { \"id\": 2 } ]\n}\n```\n\n## Reading data\n\
    \nEvery `read` endpoint accepts these query parameters:\n\n| Parameter | Purpose |\n|---|---|\n| `_limit`\
    \ | Maximum number of rows to return (default 100) |\n| `_offset` | Number of rows to skip — use together\
    \ with `_limit` to page |\n| `_order_by` | Field name to sort by |\n| `_sort_direction` | `ASC` or\
    \ `DESC` |\n| `_since` | Return only rows modified since this date-time |\n\nFields listed on a `read`\
    \ endpoint can also be used as filters, e.g.\n`?user_id=42`.\n\n## Errors\n\nErrors use standard HTTP\
    \ status codes — `401` (not authenticated), `403`\n(not permitted), `410` (gone) and `487` (account\
    \ migration / maintenance) are\nthe ones worth handling explicitly. Error responses carry a machine-readable\n\
    error code; the full list is in the `ErrorCode` schema.\n"
  termsOfService: https://www.timetac.com/en/company/gtc/
  contact:
    name: TimeTac Support
    email: support@timetac.com
    url: https://www.timetac.com/en/company/contact/
security:
- bearerAuth: []
servers:
- url: https://{environment}.timetac.com/{account}
  variables:
    environment:
      enum:
      - sandbox-plus-api
      - prod-plus-api
      default: sandbox-plus-api
      description: Choose the environment against which you want to execute the API call
    account:
      default: demo
      description: Enter the TimeTac account against which you want to execute API calls
tags:
- name: authentication
  description: Starting point for TimeTac API usage.
- name: deltaSync
  description: Read endpoints for all of the delta synchronizations changes.
- name: absenceDays
- name: absenceEntitlements
- name: absenceInsights
- name: absences
- name: absenceTypes
- name: annualHoursHistory
- name: automaticBreakTemplates
- name: bookings
- name: budgets
- name: changeLogs
- name: changeTimeTrackingRequests
- name: departments
- name: favouriteTasks
- name: features
- name: generalSettingsChangeLog
- name: generalSettings
- name: geofences
- name: geofenceToNodes
- name: holidayAdjustment
- name: hourTypes
- name: jobQueueExecutionLogs
- name: languages
- name: nfcTransponders
- name: nominalHours
- name: notifications
- name: oAuthClients
- name: otherPaidLeaveLimitations
- name: paidBreaksHistory
- name: payrollClientUsers
- name: permissionResolveAbsenceTypesAndUsers
- name: permissionResolveDepartments
- name: permissionResolveEntities
- name: permissionResolveOauthClients
- name: permissionResolveProjectsAndTasks
- name: permissionResolveQuestions
- name: permissionResolveUsers
- name: permissions
- name: permissionScopes
- name: permissionsProjectsAndTasksPermissions
- name: projectMembers
- name: projects
- name: publicHolidays
- name: publicHolidayTemplates
- name: recentTasks
- name: requestCounts
- name: ssoConfig
- name: tags
- name: tagToActivity
- name: tagToProject
- name: tagToTimeEntries
- name: tasks
- name: timesheetAccountings
- name: timesheetAccountingsHistory
- name: timesheetAccountingSummaries
- name: timesheetActionLogs
- name: timeTrackingChangelogs
- name: timeTrackings
- name: timezones
- name: translations
- name: userHistory
- name: userPreferences
- name: usersArchiveHistory
- name: users
- name: userStatusOverview
- name: userTemplateHistory
- name: userToOauthClients
- name: workingHourSlotGroups
- name: workingTimeBalanceRules
- name: workScheduleDayDefinitions
- name: workScheduleDays
- name: workSchedules
- name: employeeDocuments
paths:
  /auth/oauth2/token:
    post:
      tags:
      - authentication
      summary: Get token for further authentication.
      security: []
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        Create your client_id and client_secret in your TimeTac application.'
      operationId: getAccessToken
      requestBody:
        description: Get access token based on parameters below
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/authentication_getaccesstoken'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                title: AuthResult
                properties:
                  access_token:
                    type: string
                    description: Bearer token
                  token_type:
                    type: string
                    description: token type (bearer)
                  expires_in:
                    type: integer
                    description: Time to live(TTL) in seconds
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/auth/oauth2/token' \\\n\
          \  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"grant_type\": \"client_credentials\",\n    \"client_id\": 1,\n    \"client_secret\":\
          \ \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/auth/oauth2/token',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"grant_type\": \"client_credentials\"\
          ,\n    \"client_id\": 1,\n    \"client_secret\": \"string\"\n  }),\n});\n\nif (!res.ok) {\n\
          \  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/auth/oauth2/token',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"grant_type\": \"client_credentials\"\
          ,\n      \"client_id\": 1,\n      \"client_secret\": \"string\"\n    },\n)\nres.raise_for_status()\n\
          results = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/auth/oauth2/token',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'grant_type' => 'client_credentials',\n\
          \        'client_id' => 1,\n        'client_secret' => 'string',\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/deltaSync/read/:
    get:
      tags:
      - deltaSync
      summary: Read endpoints for all of the delta synchronizations changes.
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                title: DeltaSyncResult
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: object
                    properties:
                      users:
                        type: object
                        properties:
                          Success:
                            type: boolean
                          SuccessNested:
                            type: boolean
                          NumResults:
                            type: integer
                          NumResultsNested:
                            type: integer
                          ResourceName:
                            type: string
                          Results:
                            type: array
                            items:
                              $ref: '#/components/schemas/users'
                          Deleted:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                deleted_at:
                                  type: string
                                  format: date-time
                      departments:
                        type: object
                        properties:
                          Success:
                            type: boolean
                          SuccessNested:
                            type: boolean
                          NumResults:
                            type: integer
                          NumResultsNested:
                            type: integer
                          ResourceName:
                            type: string
                          Results:
                            type: array
                            items:
                              $ref: '#/components/schemas/departments'
                          Deleted:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                deleted_at:
                                  type: string
                                  format: date-time
                      notifications:
                        type: object
                        properties:
                          Success:
                            type: boolean
                          SuccessNested:
                            type: boolean
                          NumResults:
                            type: integer
                          NumResultsNested:
                            type: integer
                          ResourceName:
                            type: string
                          Results:
                            type: array
                            items:
                              $ref: '#/components/schemas/notifications'
                          Deleted:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                deleted_at:
                                  type: string
                                  format: date-time
                      projects:
                        type: object
                        properties:
                          Success:
                            type: boolean
                          SuccessNested:
                            type: boolean
                          NumResults:
                            type: integer
                          NumResultsNested:
                            type: integer
                          ResourceName:
                            type: string
                          Results:
                            type: array
                            items:
                              $ref: '#/components/schemas/projects'
                          Deleted:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                deleted_at:
                                  type: string
                                  format: date-time
                      tasks:
                        type: object
                        properties:
                          Success:
                            type: boolean
                          SuccessNested:
                            type: boolean
                          NumResults:
                            type: integer
                          NumResultsNested:
                            type: integer
                          ResourceName:
                            type: string
                          Results:
                            type: array
                            items:
                              $ref: '#/components/schemas/tasks'
                          Deleted:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                deleted_at:
                                  type: string
                                  format: date-time
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/deltaSync/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/deltaSync/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/deltaSync/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/deltaSync/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/absenceDays/delete/:
    delete:
      tags:
      - absenceDays
      summary: Deletes the absenceDays objects using a DELETE API call.
      operationId: absenceDaysDeleteDelete
      parameters:
      - $ref: '#/components/parameters/absenceDays_V6_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/absenceDays_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: absence_management
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: &id001
      - Time & Attendance
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `absence_management` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Time & Attendance seat. This endpoint is unavailable when the feature
        is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceDays/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/absenceDays/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/absenceDays/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceDays/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/absenceDays/read/:
    get:
      tags:
      - absenceDays
      summary: Reads the absenceDays objects using a GET API call.
      operationId: absenceDaysGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/absenceDays_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: absence_management
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id001
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `absence_management` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Time & Attendance seat. This endpoint is unavailable when the feature
        is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceDays/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/absenceDays/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/absenceDays/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceDays/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/absenceEntitlements/read/:
    get:
      tags:
      - absenceEntitlements
      summary: Reads the absenceEntitlements objects using a GET API call.
      operationId: absenceEntitlementsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/absenceEntitlements_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: absence_management
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id001
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `absence_management` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Time & Attendance seat. This endpoint is unavailable when the feature
        is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceEntitlements/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/absenceEntitlements/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/absenceEntitlements/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceEntitlements/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/absenceInsights/read/:
    get:
      tags:
      - absenceInsights
      summary: Reads the absenceInsights objects using a GET API call.
      operationId: absenceInsightsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/absenceInsights_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: insights
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats:
      - Project Time Tracking
      - Time & Attendance
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `insights` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable
        when the feature is off. _Mapping inferred from the resource name and not yet confirmed by Product
        — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceInsights/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/absenceInsights/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/absenceInsights/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceInsights/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/absences/read/:
    get:
      tags:
      - absences
      summary: Reads the absences objects using a GET API call.
      operationId: absencesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/absences_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: absence_management
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id001
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `absence_management` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Time & Attendance seat. This endpoint is unavailable when the feature
        is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/absences/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/absences/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/absences/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/absences/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/absenceTypes/create/:
    post:
      tags:
      - absenceTypes
      summary: Creates the absenceTypes objects using a POST API call.
      operationId: absenceTypesPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/absenceTypes_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/absenceTypes_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/absenceTypes_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: absence_types
      x-timetac-scope: limit
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: &id002
      - Time & Attendance
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `absence_types` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. The feature is always present; your plan caps how many records
        may exist.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"name_const\": \"string\",\n    \"abbreviation_const\": \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"name_const\": \"string\",\n   \
          \ \"abbreviation_const\": \"string\"\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac\
          \ API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"name_const\": \"string\"\
          ,\n      \"abbreviation_const\": \"string\"\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'name_const' => 'string',\n      \
          \  'abbreviation_const' => 'string',\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status =\
          \ curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response ||\
          \ $status >= 400) {\n    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n\
          }\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/absenceTypes/delete/:
    delete:
      tags:
      - absenceTypes
      summary: Deletes the absenceTypes objects using a DELETE API call.
      operationId: absenceTypesDeleteDelete
      parameters:
      - $ref: '#/components/parameters/absenceTypes_V1_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/absenceTypes_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: absence_types
      x-timetac-scope: limit
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id002
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `absence_types` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. The feature is always present; your plan caps how many records
        may exist.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/absenceTypes/read/:
    get:
      tags:
      - absenceTypes
      summary: Reads the absenceTypes objects using a GET API call.
      operationId: absenceTypesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/absenceTypes_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: absence_types
      x-timetac-scope: limit
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id002
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `absence_types` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. The feature is always present; your plan caps how many records
        may exist.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/absenceTypes/update/:
    put:
      tags:
      - absenceTypes
      summary: Updates the absenceTypes objects using a PUT API call.
      operationId: absenceTypesPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/absenceTypes_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/absenceTypes_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/absenceTypes_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: absence_types
      x-timetac-scope: limit
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id002
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `absence_types` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. The feature is always present; your plan caps how many records
        may exist.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/absenceTypes/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/annualHoursHistory/read/:
    get:
      tags:
      - annualHoursHistory
      summary: Reads the annualHoursHistory objects using a GET API call.
      operationId: annualHoursHistoryGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/annualHoursHistory_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: annual_working_hours
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: &id006
      - Time & Attendance
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `annual_working_hours` feature.** Enabled by default on Standard,
        Advanced. Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/annualHoursHistory/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/annualHoursHistory/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/annualHoursHistory/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/annualHoursHistory/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/automaticBreakTemplates/read/:
    get:
      tags:
      - automaticBreakTemplates
      summary: Reads the automaticBreakTemplates objects using a GET API call.
      operationId: automaticBreakTemplatesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/automaticBreakTemplates_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: employee_breakrule_automatic_deduction
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats:
      - Time & Attendance
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `employee_breakrule_automatic_deduction` feature.** Enabled by default
        on Standard, Advanced. Needs a Time & Attendance seat. This endpoint is unavailable when the feature
        is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/automaticBreakTemplates/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/automaticBreakTemplates/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/automaticBreakTemplates/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/automaticBreakTemplates/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/bookings/read/:
    get:
      tags:
      - bookings
      summary: Reads the bookings objects using a GET API call.
      operationId: bookingsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/bookings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/bookings/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/bookings/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/bookings/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/bookings/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/budgets/read/:
    get:
      tags:
      - budgets
      summary: Reads the budgets objects using a GET API call.
      operationId: budgetsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/budgets_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: budgets
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: &id018
      - Project Time Tracking
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `budgets` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/budgets/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/budgets/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/budgets/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/budgets/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/changeLogs/read/:
    get:
      tags:
      - changeLogs
      summary: Reads the changeLogs objects using a GET API call.
      operationId: changeLogsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/changeLogs_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/changeLogs/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/changeLogs/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/changeLogs/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/changeLogs/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/changeTimeTrackingRequests/read/:
    get:
      tags:
      - changeTimeTrackingRequests
      summary: Reads the changeTimeTrackingRequests objects using a GET API call.
      operationId: changeTimeTrackingRequestsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/changeTimeTrackingRequests_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: request_management
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: &id011
      - Time & Attendance
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `request_management` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/changeTimeTrackingRequests/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/changeTimeTrackingRequests/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/changeTimeTrackingRequests/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/changeTimeTrackingRequests/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/departments/read/:
    get:
      tags:
      - departments
      summary: Reads the departments objects using a GET API call.
      operationId: departmentsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/departments_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: departments
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: &id019
      - Project Time Tracking
      - Time & Attendance
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `departments` feature.** Enabled by default on Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the
        feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/departments/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/departments/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/departments/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/departments/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/favouriteTasks/create/:
    post:
      tags:
      - favouriteTasks
      summary: Creates the favouriteTasks objects using a POST API call.
      operationId: favouriteTasksPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/favouriteTasks_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/favouriteTasks_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/favouriteTasks_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: favourites
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: &id003
      - Project Time Tracking
      - Time & Attendance
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `favourites` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable
        when the feature is off. _Mapping inferred from the resource name and not yet confirmed by Product
        — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/favouriteTasks/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"user_id\": 1,\n    \"node_id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/favouriteTasks/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"user_id\": 1,\n    \"node_id\"\
          : 1\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n\
          }\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/favouriteTasks/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"user_id\": 1,\n    \
          \  \"node_id\": 1\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/favouriteTasks/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'user_id' => 1,\n        'node_id'\
          \ => 1,\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/favouriteTasks/delete/:
    delete:
      tags:
      - favouriteTasks
      summary: Deletes the favouriteTasks objects using a DELETE API call.
      operationId: favouriteTasksDeleteDelete
      parameters:
      - $ref: '#/components/parameters/favouriteTasks_V1_id_delete'
      - $ref: '#/components/parameters/favouriteTasks_V1_user_id_delete'
      - $ref: '#/components/parameters/favouriteTasks_V1_node_id_delete'
      - $ref: '#/components/parameters/favouriteTasks_V1__cascade_children_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/favouriteTasks_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: favourites
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id003
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `favourites` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable
        when the feature is off. _Mapping inferred from the resource name and not yet confirmed by Product
        — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/favouriteTasks/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/favouriteTasks/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/favouriteTasks/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/favouriteTasks/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/favouriteTasks/read/:
    get:
      tags:
      - favouriteTasks
      summary: Reads the favouriteTasks objects using a GET API call.
      operationId: favouriteTasksGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/favouriteTasks_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: favourites
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id003
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `favourites` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable
        when the feature is off. _Mapping inferred from the resource name and not yet confirmed by Product
        — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/favouriteTasks/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/favouriteTasks/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/favouriteTasks/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/favouriteTasks/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/features/read/:
    get:
      tags:
      - features
      summary: Reads the features objects using a GET API call.
      operationId: featuresGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/features_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/features/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/features/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/features/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/features/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/generalSettings/read/:
    get:
      tags:
      - generalSettings
      summary: Reads the generalSettings objects using a GET API call.
      operationId: generalSettingsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/generalSettings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/generalSettings/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/generalSettings/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/generalSettings/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/generalSettings/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/generalSettings/update/:
    put:
      tags:
      - generalSettings
      summary: Updates the generalSettings objects using a PUT API call.
      operationId: generalSettingsPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/generalSettings_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/generalSettings_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/generalSettings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/generalSettings/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/generalSettings/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/generalSettings/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/generalSettings/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/generalSettingsChangeLog/read/:
    get:
      tags:
      - generalSettingsChangeLog
      summary: Reads the generalSettingsChangeLog objects using a GET API call.
      operationId: generalSettingsChangeLogGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/generalSettingsChangeLog_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/generalSettingsChangeLog/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/generalSettingsChangeLog/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/generalSettingsChangeLog/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/generalSettingsChangeLog/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/geofences/create/:
    post:
      tags:
      - geofences
      summary: Creates the geofences objects using a POST API call.
      operationId: geofencesPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/geofences_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/geofences_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/geofences_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: geofences
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: &id004
      - Project Time Tracking
      - Time & Attendance
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `geofences` feature.** Enabled by default on Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the
        feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/geofences/create/' \\\
          \n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"task_ids\": {}\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/geofences/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"task_ids\": {}\n  }),\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/geofences/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"task_ids\": {}\n   \
          \ },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/geofences/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'task_ids' => [],\n    ]),\n]);\n\n\
          $response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/geofences/read/:
    get:
      tags:
      - geofences
      summary: Reads the geofences objects using a GET API call.
      operationId: geofencesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/geofences_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: geofences
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id004
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `geofences` feature.** Enabled by default on Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the
        feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/geofences/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/geofences/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/geofences/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/geofences/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/geofences/update/:
    put:
      tags:
      - geofences
      summary: Updates the geofences objects using a PUT API call.
      operationId: geofencesPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/geofences_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/geofences_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/geofences_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: geofences
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id004
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `geofences` feature.** Enabled by default on Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the
        feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/geofences/update/' \\\n\
          \  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"task_ids\": {}\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/geofences/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"task_ids\": {}\n  }),\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/geofences/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"task_ids\": {}\n   \
          \ },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/geofences/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'task_ids' => [],\n    ]),\n]);\n\n\
          $response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/geofenceToNodes/create/:
    post:
      tags:
      - geofenceToNodes
      summary: Creates the geofenceToNodes objects using a POST API call.
      operationId: geofenceToNodesPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/geofenceToNodes_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/geofenceToNodes_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/geofenceToNodes_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"geofence_id\": 1,\n    \"node_id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"geofence_id\": 1,\n    \"node_id\"\
          : 1\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n\
          }\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"geofence_id\": 1,\n\
          \      \"node_id\": 1\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'geofence_id' => 1,\n        'node_id'\
          \ => 1,\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/geofenceToNodes/delete/:
    delete:
      tags:
      - geofenceToNodes
      summary: Deletes the geofenceToNodes objects using a DELETE API call.
      operationId: geofenceToNodesDeleteDelete
      parameters:
      - $ref: '#/components/parameters/geofenceToNodes_V3_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/geofenceToNodes_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/geofenceToNodes/read/:
    get:
      tags:
      - geofenceToNodes
      summary: Reads the geofenceToNodes objects using a GET API call.
      operationId: geofenceToNodesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/geofenceToNodes_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/geofenceToNodes/update/:
    put:
      tags:
      - geofenceToNodes
      summary: Updates the geofenceToNodes objects using a PUT API call.
      operationId: geofenceToNodesPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/geofenceToNodes_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/geofenceToNodes_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/geofenceToNodes_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/geofenceToNodes/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/holidayAdjustment/add/:
    post:
      tags:
      - holidayAdjustment
      summary: Adds the holidayAdjustment objects using a POST API call.
      operationId: holidayAdjustmentPostAdd
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/holidayAdjustment_add'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/holidayAdjustment_add'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/holidayAdjustment_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/holidayAdjustment/add/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"user_id\": 1,\n    \"date\": \"2026-01-15\",\n    \"value\": 1.0\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/holidayAdjustment/add/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"user_id\": 1,\n    \"date\": \"\
          2026-01-15\",\n    \"value\": 1.0\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac\
          \ API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/holidayAdjustment/add/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"user_id\": 1,\n    \
          \  \"date\": \"2026-01-15\",\n      \"value\": 1.0\n    },\n)\nres.raise_for_status()\nresults\
          \ = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/holidayAdjustment/add/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'user_id' => 1,\n        'date' =>\
          \ '2026-01-15',\n        'value' => 1.0,\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status\
          \ = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response\
          \ || $status >= 400) {\n    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n\
          }\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/holidayAdjustment/set/:
    post:
      tags:
      - holidayAdjustment
      summary: Sets the holidayAdjustment objects using a POST API call.
      operationId: holidayAdjustmentPostSet
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/holidayAdjustment_set'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/holidayAdjustment_set'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/holidayAdjustment_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/holidayAdjustment/set/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"user_id\": 1,\n    \"data\": {}\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/holidayAdjustment/set/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"user_id\": 1,\n    \"data\": {}\n\
          \  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n\
          }\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/holidayAdjustment/set/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"user_id\": 1,\n    \
          \  \"data\": {}\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/holidayAdjustment/set/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'user_id' => 1,\n        'data' =>\
          \ [],\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/hourTypes/create/:
    post:
      tags:
      - hourTypes
      summary: Creates the hourTypes objects using a POST API call.
      operationId: hourTypesPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/hourTypes_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/hourTypes_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/hourTypes_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/hourTypes/create/' \\\
          \n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"group_id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/hourTypes/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"group_id\": 1\n  }),\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/hourTypes/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"group_id\": 1\n    },\n\
          )\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/hourTypes/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'group_id' => 1,\n    ]),\n]);\n\n\
          $response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/hourTypes/read/:
    get:
      tags:
      - hourTypes
      summary: Reads the hourTypes objects using a GET API call.
      operationId: hourTypesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/hourTypes_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/hourTypes/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/hourTypes/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/hourTypes/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/hourTypes/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/hourTypes/update/:
    put:
      tags:
      - hourTypes
      summary: Updates the hourTypes objects using a PUT API call.
      operationId: hourTypesPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/hourTypes_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/hourTypes_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/hourTypes_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/hourTypes/update/' \\\n\
          \  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/hourTypes/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/hourTypes/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/hourTypes/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/jobQueueExecutionLogs/read/:
    get:
      tags:
      - jobQueueExecutionLogs
      summary: Reads the jobQueueExecutionLogs objects using a GET API call.
      operationId: jobQueueExecutionLogsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/jobQueueExecutionLogs_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/jobQueueExecutionLogs/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/jobQueueExecutionLogs/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/jobQueueExecutionLogs/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/jobQueueExecutionLogs/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/languages/read/:
    get:
      tags:
      - languages
      summary: Reads the languages objects using a GET API call.
      operationId: languagesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/languages_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/languages/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/languages/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/languages/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/languages/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/nfcTransponders/create/:
    post:
      tags:
      - nfcTransponders
      summary: Creates the nfcTransponders objects using a POST API call.
      operationId: nfcTranspondersPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/nfcTransponders_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/nfcTransponders_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/nfcTransponders_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: nfc
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: &id005
      - Project Time Tracking
      - Time & Attendance
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `nfc` feature.** Enabled by default on Essential, Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the
        feature is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat
        as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"mode_id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"mode_id\": 1\n  }),\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"mode_id\": 1\n    },\n\
          )\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'mode_id' => 1,\n    ]),\n]);\n\n\
          $response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/nfcTransponders/delete/:
    delete:
      tags:
      - nfcTransponders
      summary: Deletes the nfcTransponders objects using a DELETE API call.
      operationId: nfcTranspondersDeleteDelete
      parameters:
      - $ref: '#/components/parameters/nfcTransponders_V6_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/nfcTransponders_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: nfc
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id005
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `nfc` feature.** Enabled by default on Essential, Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the
        feature is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat
        as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/nfcTransponders/read/:
    get:
      tags:
      - nfcTransponders
      summary: Reads the nfcTransponders objects using a GET API call.
      operationId: nfcTranspondersGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/nfcTransponders_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: nfc
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id005
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `nfc` feature.** Enabled by default on Essential, Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the
        feature is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat
        as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/nfcTransponders/update/:
    put:
      tags:
      - nfcTransponders
      summary: Updates the nfcTransponders objects using a PUT API call.
      operationId: nfcTranspondersPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/nfcTransponders_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/nfcTransponders_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/nfcTransponders_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: nfc
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id005
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `nfc` feature.** Enabled by default on Essential, Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the
        feature is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat
        as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/nfcTransponders/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/nominalHours/read/:
    get:
      tags:
      - nominalHours
      summary: Reads the nominalHours objects using a GET API call.
      operationId: nominalHoursGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/nominalHours_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: annual_working_hours
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id006
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `annual_working_hours` feature.** Enabled by default on Standard,
        Advanced. Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.
        _Mapping inferred from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/nominalHours/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/nominalHours/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/nominalHours/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/nominalHours/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/notifications/read/:
    get:
      tags:
      - notifications
      summary: Reads the notifications objects using a GET API call.
      operationId: notificationsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/notifications_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/notifications/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/notifications/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/notifications/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/notifications/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/notifications/update/:
    put:
      tags:
      - notifications
      summary: Updates the notifications objects using a PUT API call.
      operationId: notificationsPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/notifications_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/notifications_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/notifications_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/notifications/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/notifications/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/notifications/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/notifications/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/oAuthClients/create/:
    post:
      tags:
      - oAuthClients
      summary: Creates the oAuthClients objects using a POST API call.
      operationId: oAuthClientsPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/oAuthClients_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/oAuthClients_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/oAuthClients_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: api_users
      x-timetac-scope: limit
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: &id007
      - Project Time Tracking
      - Time & Attendance
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `api_users` feature.** Enabled by default on Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. The feature is always present; your plan
        caps how many records may exist.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"client_name\": \"string\",\n    \"expire_date\": \"2026-01-15\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"client_name\": \"string\",\n  \
          \  \"expire_date\": \"2026-01-15\"\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac\
          \ API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"client_name\": \"string\"\
          ,\n      \"expire_date\": \"2026-01-15\"\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'client_name' => 'string',\n     \
          \   'expire_date' => '2026-01-15',\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/oAuthClients/delete/:
    delete:
      tags:
      - oAuthClients
      summary: Deletes the oAuthClients objects using a DELETE API call.
      operationId: oAuthClientsDeleteDelete
      parameters:
      - $ref: '#/components/parameters/oAuthClients_V4_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/oAuthClients_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: api_users
      x-timetac-scope: limit
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id007
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `api_users` feature.** Enabled by default on Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. The feature is always present; your plan
        caps how many records may exist.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/oAuthClients/read/:
    get:
      tags:
      - oAuthClients
      summary: Reads the oAuthClients objects using a GET API call.
      operationId: oAuthClientsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/oAuthClients_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: api_users
      x-timetac-scope: limit
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id007
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `api_users` feature.** Enabled by default on Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. The feature is always present; your plan
        caps how many records may exist.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/oAuthClients/update/:
    put:
      tags:
      - oAuthClients
      summary: Updates the oAuthClients objects using a PUT API call.
      operationId: oAuthClientsPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/oAuthClients_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/oAuthClients_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/oAuthClients_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: api_users
      x-timetac-scope: limit
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id007
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `api_users` feature.** Enabled by default on Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. The feature is always present; your plan
        caps how many records may exist.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1,\n    \"expire_date\": \"2026-01-15\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1,\n    \"expire_date\":\
          \ \"2026-01-15\"\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}:\
          \ ${await res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1,\n      \"expire_date\"\
          : \"2026-01-15\"\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/oAuthClients/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n        'expire_date'\
          \ => '2026-01-15',\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/otherPaidLeaveLimitations/read/:
    get:
      tags:
      - otherPaidLeaveLimitations
      summary: Reads the otherPaidLeaveLimitations objects using a GET API call.
      operationId: otherPaidLeaveLimitationsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/otherPaidLeaveLimitations_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/otherPaidLeaveLimitations/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/otherPaidLeaveLimitations/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/otherPaidLeaveLimitations/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/otherPaidLeaveLimitations/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/otherPaidLeaveLimitations/update/:
    put:
      tags:
      - otherPaidLeaveLimitations
      summary: Updates the otherPaidLeaveLimitations objects using a PUT API call.
      operationId: otherPaidLeaveLimitationsPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/otherPaidLeaveLimitations_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/otherPaidLeaveLimitations_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/otherPaidLeaveLimitations_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/otherPaidLeaveLimitations/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/otherPaidLeaveLimitations/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/otherPaidLeaveLimitations/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/otherPaidLeaveLimitations/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/paidBreaksHistory/read/:
    get:
      tags:
      - paidBreaksHistory
      summary: Reads the paidBreaksHistory objects using a GET API call.
      operationId: paidBreaksHistoryGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/paidBreaksHistory_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: paid_breaks
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats:
      - Time & Attendance
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `paid_breaks` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/paidBreaksHistory/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/paidBreaksHistory/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/paidBreaksHistory/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/paidBreaksHistory/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/payrollClientUsers/read/:
    get:
      tags:
      - payrollClientUsers
      summary: Reads the payrollClientUsers objects using a GET API call.
      operationId: payrollClientUsersGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/payrollClientUsers_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/payrollClientUsers/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/payrollClientUsers/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/payrollClientUsers/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/payrollClientUsers/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/permissionResolveAbsenceTypesAndUsers/read/:
    get:
      tags:
      - permissionResolveAbsenceTypesAndUsers
      summary: Reads the permissionResolveAbsenceTypesAndUsers objects using a GET API call.
      operationId: permissionResolveAbsenceTypesAndUsersGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/permissionResolveAbsenceTypesAndUsers_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveAbsenceTypesAndUsers/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveAbsenceTypesAndUsers/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveAbsenceTypesAndUsers/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveAbsenceTypesAndUsers/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/permissionResolveDepartments/read/:
    get:
      tags:
      - permissionResolveDepartments
      summary: Reads the permissionResolveDepartments objects using a GET API call.
      operationId: permissionResolveDepartmentsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/permissionResolveDepartments_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveDepartments/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveDepartments/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveDepartments/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveDepartments/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/permissionResolveEntities/read/:
    get:
      tags:
      - permissionResolveEntities
      summary: Reads the permissionResolveEntities objects using a GET API call.
      operationId: permissionResolveEntitiesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/permissionResolveEntities_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveEntities/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveEntities/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveEntities/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveEntities/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/permissionResolveOauthClients/read/:
    get:
      tags:
      - permissionResolveOauthClients
      summary: Reads the permissionResolveOauthClients objects using a GET API call.
      operationId: permissionResolveOauthClientsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/permissionResolveOauthClients_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveOauthClients/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveOauthClients/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveOauthClients/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveOauthClients/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/permissionResolveProjectsAndTasks/read/:
    get:
      tags:
      - permissionResolveProjectsAndTasks
      summary: Reads the permissionResolveProjectsAndTasks objects using a GET API call.
      operationId: permissionResolveProjectsAndTasksGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/permissionResolveProjectsAndTasks_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveProjectsAndTasks/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveProjectsAndTasks/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveProjectsAndTasks/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveProjectsAndTasks/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/permissionResolveQuestions/read/:
    get:
      tags:
      - permissionResolveQuestions
      summary: Reads the permissionResolveQuestions objects using a GET API call.
      operationId: permissionResolveQuestionsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/permissionResolveQuestions_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveQuestions/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveQuestions/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveQuestions/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveQuestions/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/permissionResolveUsers/read/:
    get:
      tags:
      - permissionResolveUsers
      summary: Reads the permissionResolveUsers objects using a GET API call.
      operationId: permissionResolveUsersGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/permissionResolveUsers_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveUsers/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveUsers/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveUsers/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionResolveUsers/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/permissions/read/:
    get:
      tags:
      - permissions
      summary: Reads the permissions objects using a GET API call.
      operationId: permissionsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/permissions_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/permissions/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/permissions/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/permissions/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/permissions/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/permissionScopes/read/:
    get:
      tags:
      - permissionScopes
      summary: Reads the permissionScopes objects using a GET API call.
      operationId: permissionScopesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/permissionScopes_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionScopes/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/permissionScopes/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/permissionScopes/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionScopes/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/permissionsProjectsAndTasksPermissions/create/:
    post:
      tags:
      - permissionsProjectsAndTasksPermissions
      summary: Creates the permissionsProjectsAndTasksPermissions objects using a POST API call.
      operationId: permissionsProjectsAndTasksPermissionsPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/permissionsProjectsAndTasksPermissions_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/permissionsProjectsAndTasksPermissions_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/permissionsProjectsAndTasksPermissions_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"task_project_id\": 1,\n    \"resource_id\": 1,\n    \"permission_id\": 1,\n    \"\
          permission_scope_id\": 1,\n    \"permission_scope_data_1\": \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"task_project_id\": 1,\n    \"resource_id\"\
          : 1,\n    \"permission_id\": 1,\n    \"permission_scope_id\": 1,\n    \"permission_scope_data_1\"\
          : \"string\"\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await\
          \ res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"task_project_id\": 1,\n\
          \      \"resource_id\": 1,\n      \"permission_id\": 1,\n      \"permission_scope_id\": 1,\n\
          \      \"permission_scope_data_1\": \"string\"\n    },\n)\nres.raise_for_status()\nresults =\
          \ res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'task_project_id' => 1,\n        'resource_id'\
          \ => 1,\n        'permission_id' => 1,\n        'permission_scope_id' => 1,\n        'permission_scope_data_1'\
          \ => 'string',\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/permissionsProjectsAndTasksPermissions/delete/:
    delete:
      tags:
      - permissionsProjectsAndTasksPermissions
      summary: Deletes the permissionsProjectsAndTasksPermissions objects using a DELETE API call.
      operationId: permissionsProjectsAndTasksPermissionsDeleteDelete
      parameters:
      - $ref: '#/components/parameters/permissionsProjectsAndTasksPermissions_V1_task_project_id_delete'
      - $ref: '#/components/parameters/permissionsProjectsAndTasksPermissions_V1_resource_id_delete'
      - $ref: '#/components/parameters/permissionsProjectsAndTasksPermissions_V1_permission_id_delete'
      - $ref: '#/components/parameters/permissionsProjectsAndTasksPermissions_V1_permission_scope_id_delete'
      - $ref: '#/components/parameters/permissionsProjectsAndTasksPermissions_V1_permission_scope_data_1_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/permissionsProjectsAndTasksPermissions_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/permissionsProjectsAndTasksPermissions/read/:
    get:
      tags:
      - permissionsProjectsAndTasksPermissions
      summary: Reads the permissionsProjectsAndTasksPermissions objects using a GET API call.
      operationId: permissionsProjectsAndTasksPermissionsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/permissionsProjectsAndTasksPermissions_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/permissionsProjectsAndTasksPermissions/set/:
    post:
      tags:
      - permissionsProjectsAndTasksPermissions
      summary: Sets the permissionsProjectsAndTasksPermissions objects using a POST API call.
      operationId: permissionsProjectsAndTasksPermissionsPostSet
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/permissionsProjectsAndTasksPermissions_set'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/permissionsProjectsAndTasksPermissions_set'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/permissionsProjectsAndTasksPermissions_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/set/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"task_project_id\": 1,\n    \"resource_id\": 1,\n    \"permission_id\": 1,\n    \"\
          permission_scope_id\": 1,\n    \"permission_scope_data_1\": \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/set/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"task_project_id\": 1,\n    \"resource_id\"\
          : 1,\n    \"permission_id\": 1,\n    \"permission_scope_id\": 1,\n    \"permission_scope_data_1\"\
          : \"string\"\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await\
          \ res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/set/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"task_project_id\": 1,\n\
          \      \"resource_id\": 1,\n      \"permission_id\": 1,\n      \"permission_scope_id\": 1,\n\
          \      \"permission_scope_data_1\": \"string\"\n    },\n)\nres.raise_for_status()\nresults =\
          \ res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/permissionsProjectsAndTasksPermissions/set/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'task_project_id' => 1,\n        'resource_id'\
          \ => 1,\n        'permission_id' => 1,\n        'permission_scope_id' => 1,\n        'permission_scope_data_1'\
          \ => 'string',\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/projectMembers/create/:
    post:
      tags:
      - projectMembers
      summary: Creates the projectMembers objects using a POST API call.
      operationId: projectMembersPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/projectMembers_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/projectMembers_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/projectMembers_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: project_time_tracking
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: &id008
      - Project Time Tracking
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `project_time_tracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking seat. This endpoint is unavailable when the
        feature is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat
        as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/projectMembers/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"project_id\": 1,\n    \"user_id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/projectMembers/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"project_id\": 1,\n    \"user_id\"\
          : 1\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n\
          }\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/projectMembers/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"project_id\": 1,\n \
          \     \"user_id\": 1\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/projectMembers/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'project_id' => 1,\n        'user_id'\
          \ => 1,\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/projectMembers/delete/:
    delete:
      tags:
      - projectMembers
      summary: Deletes the projectMembers objects using a DELETE API call.
      operationId: projectMembersDeleteDelete
      parameters:
      - $ref: '#/components/parameters/projectMembers_V6_id_delete'
      - $ref: '#/components/parameters/projectMembers_V6_task_project_id_delete'
      - $ref: '#/components/parameters/projectMembers_V6_permission_scope_data_1_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/projectMembers_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: project_time_tracking
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id008
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `project_time_tracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking seat. This endpoint is unavailable when the
        feature is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat
        as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/projectMembers/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/projectMembers/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/projectMembers/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/projectMembers/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/projectMembers/read/:
    get:
      tags:
      - projectMembers
      summary: Reads the projectMembers objects using a GET API call.
      operationId: projectMembersGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/projectMembers_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: project_time_tracking
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id008
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `project_time_tracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking seat. This endpoint is unavailable when the
        feature is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat
        as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/projectMembers/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/projectMembers/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/projectMembers/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/projectMembers/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/projects/create/:
    post:
      tags:
      - projects
      summary: Creates the projects objects using a POST API call.
      operationId: projectsPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/projects_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/projects_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/projects_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: project_time_tracking
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id008
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `project_time_tracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking seat. This endpoint is unavailable when the
        feature is off.


        > **Requires the `billable_time` feature.** Enabled by default on Standard, Advanced. Needs a
        Project Time Tracking seat. The endpoint still answers without the feature, but specific fields
        or values are rejected.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/projects/create/' \\\n\
          \  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"billing_mode\": \"string\",\n    \"members_can_modify_billable\": true,\n    \"internal_rate\"\
          : 1.0\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/projects/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"billing_mode\": \"string\",\n \
          \   \"members_can_modify_billable\": true,\n    \"internal_rate\": 1.0\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/projects/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"billing_mode\": \"string\"\
          ,\n      \"members_can_modify_billable\": true,\n      \"internal_rate\": 1.0\n    },\n)\nres.raise_for_status()\n\
          results = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/projects/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'billing_mode' => 'string',\n    \
          \    'members_can_modify_billable' => true,\n        'internal_rate' => 1.0,\n    ]),\n]);\n\
          \n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/projects/read/:
    get:
      tags:
      - projects
      summary: Reads the projects objects using a GET API call.
      operationId: projectsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/projects_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: project_time_tracking
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id008
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `project_time_tracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking seat. This endpoint is unavailable when the
        feature is off.


        > **Requires the `billable_time` feature.** Enabled by default on Standard, Advanced. Needs a
        Project Time Tracking seat. The endpoint still answers without the feature, but specific fields
        or values are rejected.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/projects/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/projects/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/projects/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/projects/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/projects/update/:
    put:
      tags:
      - projects
      summary: Updates the projects objects using a PUT API call.
      operationId: projectsPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/projects_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/projects_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/projects_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: project_time_tracking
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id008
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `project_time_tracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking seat. This endpoint is unavailable when the
        feature is off.


        > **Requires the `billable_time` feature.** Enabled by default on Standard, Advanced. Needs a
        Project Time Tracking seat. The endpoint still answers without the feature, but specific fields
        or values are rejected.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/projects/update/' \\\n\
          \  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"billing_mode\": \"string\",\n    \"members_can_modify_billable\": true,\n    \"internal_rate\"\
          : 1.0\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/projects/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"billing_mode\": \"string\",\n \
          \   \"members_can_modify_billable\": true,\n    \"internal_rate\": 1.0\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/projects/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"billing_mode\": \"string\"\
          ,\n      \"members_can_modify_billable\": true,\n      \"internal_rate\": 1.0\n    },\n)\nres.raise_for_status()\n\
          results = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/projects/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'billing_mode' => 'string',\n    \
          \    'members_can_modify_billable' => true,\n        'internal_rate' => 1.0,\n    ]),\n]);\n\
          \n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/publicHolidays/create/:
    post:
      tags:
      - publicHolidays
      summary: Creates the publicHolidays objects using a POST API call.
      operationId: publicHolidaysPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/publicHolidays_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/publicHolidays_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/publicHolidays_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: public_holidays
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: &id009
      - Project Time Tracking
      - Time & Attendance
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `public_holidays` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable
        when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"template_id\": 1,\n    \"date\": \"2026-01-15\",\n    \"name\": \"string\",\n  \
          \  \"value\": 1.0\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"template_id\": 1,\n    \"date\"\
          : \"2026-01-15\",\n    \"name\": \"string\",\n    \"value\": 1.0\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"template_id\": 1,\n\
          \      \"date\": \"2026-01-15\",\n      \"name\": \"string\",\n      \"value\": 1.0\n    },\n\
          )\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'template_id' => 1,\n        'date'\
          \ => '2026-01-15',\n        'name' => 'string',\n        'value' => 1.0,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/publicHolidays/delete/:
    delete:
      tags:
      - publicHolidays
      summary: Deletes the publicHolidays objects using a DELETE API call.
      operationId: publicHolidaysDeleteDelete
      parameters:
      - $ref: '#/components/parameters/publicHolidays_V1_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/publicHolidays_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: public_holidays
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id009
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `public_holidays` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable
        when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/publicHolidays/read/:
    get:
      tags:
      - publicHolidays
      summary: Reads the publicHolidays objects using a GET API call.
      operationId: publicHolidaysGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/publicHolidays_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: public_holidays
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id009
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `public_holidays` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable
        when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/publicHolidays/update/:
    put:
      tags:
      - publicHolidays
      summary: Updates the publicHolidays objects using a PUT API call.
      operationId: publicHolidaysPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/publicHolidays_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/publicHolidays_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/publicHolidays_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: public_holidays
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id009
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `public_holidays` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable
        when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidays/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/publicHolidayTemplates/create/:
    post:
      tags:
      - publicHolidayTemplates
      summary: Creates the publicHolidayTemplates objects using a POST API call.
      operationId: publicHolidayTemplatesPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/publicHolidayTemplates_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/publicHolidayTemplates_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/publicHolidayTemplates_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: public_holiday_templates
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: &id010
      - Project Time Tracking
      - Time & Attendance
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `public_holiday_templates` feature.** Enabled by default on Standard,
        Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable
        when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"template_name\": \"string\",\n    \"country_id\": 1,\n    \"iso_3166\": \"string\"\
          \n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"template_name\": \"string\",\n\
          \    \"country_id\": 1,\n    \"iso_3166\": \"string\"\n  }),\n});\n\nif (!res.ok) {\n  throw\
          \ new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results } = await\
          \ res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"template_name\": \"\
          string\",\n      \"country_id\": 1,\n      \"iso_3166\": \"string\"\n    },\n)\nres.raise_for_status()\n\
          results = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'template_name' => 'string',\n   \
          \     'country_id' => 1,\n        'iso_3166' => 'string',\n    ]),\n]);\n\n$response = curl_exec($ch);\n\
          $status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response\
          \ || $status >= 400) {\n    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n\
          }\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/publicHolidayTemplates/delete/:
    delete:
      tags:
      - publicHolidayTemplates
      summary: Deletes the publicHolidayTemplates objects using a DELETE API call.
      operationId: publicHolidayTemplatesDeleteDelete
      parameters:
      - $ref: '#/components/parameters/publicHolidayTemplates_V6_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/publicHolidayTemplates_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: public_holiday_templates
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id010
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `public_holiday_templates` feature.** Enabled by default on Standard,
        Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable
        when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/publicHolidayTemplates/read/:
    get:
      tags:
      - publicHolidayTemplates
      summary: Reads the publicHolidayTemplates objects using a GET API call.
      operationId: publicHolidayTemplatesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/publicHolidayTemplates_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: public_holiday_templates
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id010
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `public_holiday_templates` feature.** Enabled by default on Standard,
        Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable
        when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/publicHolidayTemplates/update/:
    put:
      tags:
      - publicHolidayTemplates
      summary: Updates the publicHolidayTemplates objects using a PUT API call.
      operationId: publicHolidayTemplatesPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/publicHolidayTemplates_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/publicHolidayTemplates_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/publicHolidayTemplates_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: public_holiday_templates
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id010
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `public_holiday_templates` feature.** Enabled by default on Standard,
        Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable
        when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/publicHolidayTemplates/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/recentTasks/read/:
    get:
      tags:
      - recentTasks
      summary: Reads the recentTasks objects using a GET API call.
      operationId: recentTasksGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/recentTasks_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: project_time_tracking
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id008
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `project_time_tracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking seat. This endpoint is unavailable when the
        feature is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat
        as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/recentTasks/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/recentTasks/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/recentTasks/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/recentTasks/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/requestCounts/read/:
    get:
      tags:
      - requestCounts
      summary: Reads the requestCounts objects using a GET API call.
      operationId: requestCountsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/requestCounts_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: request_management
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id011
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `request_management` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off. _Mapping
        inferred from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/requestCounts/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/requestCounts/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/requestCounts/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/requestCounts/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/ssoConfig/create/:
    post:
      tags:
      - ssoConfig
      summary: Creates the ssoConfig objects using a POST API call.
      operationId: ssoConfigPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ssoConfig_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ssoConfig_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ssoConfig_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: sso
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: &id012
      - Project Time Tracking
      - Time & Attendance
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `sso` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the feature
        is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/create/' \\\
          \n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"open_id_login\": \"string\",\n    \"login_url\": \"string\",\n    \"logout_url\": \"\
          string\",\n    \"entity_id\": 1,\n    \"x509_certificate\": \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"open_id_login\": \"string\",\n\
          \    \"login_url\": \"string\",\n    \"logout_url\": \"string\",\n    \"entity_id\": 1,\n  \
          \  \"x509_certificate\": \"string\"\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac\
          \ API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"open_id_login\": \"\
          string\",\n      \"login_url\": \"string\",\n      \"logout_url\": \"string\",\n      \"entity_id\"\
          : 1,\n      \"x509_certificate\": \"string\"\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'open_id_login' => 'string',\n   \
          \     'login_url' => 'string',\n        'logout_url' => 'string',\n        'entity_id' => 1,\n\
          \        'x509_certificate' => 'string',\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status\
          \ = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response\
          \ || $status >= 400) {\n    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n\
          }\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/ssoConfig/delete/:
    delete:
      tags:
      - ssoConfig
      summary: Deletes the ssoConfig objects using a DELETE API call.
      operationId: ssoConfigDeleteDelete
      parameters:
      - $ref: '#/components/parameters/ssoConfig_V1_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ssoConfig_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: sso
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id012
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `sso` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the feature
        is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/ssoConfig/read/:
    get:
      tags:
      - ssoConfig
      summary: Reads the ssoConfig objects using a GET API call.
      operationId: ssoConfigGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ssoConfig_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: sso
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id012
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `sso` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the feature
        is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/ssoConfig/update/:
    put:
      tags:
      - ssoConfig
      summary: Updates the ssoConfig objects using a PUT API call.
      operationId: ssoConfigPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ssoConfig_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ssoConfig_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ssoConfig_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: sso
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id012
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `sso` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the feature
        is off. _Mapping inferred from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/update/' \\\n\
          \  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/ssoConfig/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/tags/create/:
    post:
      tags:
      - tags
      summary: Creates the tags objects using a POST API call.
      operationId: tagsPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tags_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/tags_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tags_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: tags
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: &id013
      - Project Time Tracking
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `tags` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/tags/create/' \\\n  -H\
          \ 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n   \
          \ \"name\": \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tags/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"name\": \"string\"\n  }),\n});\n\
          \nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tags/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"name\": \"string\"\n\
          \    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tags/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'name' => 'string',\n    ]),\n]);\n\
          \n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/tags/delete/:
    delete:
      tags:
      - tags
      summary: Deletes the tags objects using a DELETE API call.
      operationId: tagsDeleteDelete
      parameters:
      - $ref: '#/components/parameters/tags_V6_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tags_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: tags
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id013
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `tags` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/tags/delete/' \\\n\
          \  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tags/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tags/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tags/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/tags/read/:
    get:
      tags:
      - tags
      summary: Reads the tags objects using a GET API call.
      operationId: tagsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tags_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: tags
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id013
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `tags` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/tags/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tags/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tags/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tags/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/tags/update/:
    put:
      tags:
      - tags
      summary: Updates the tags objects using a PUT API call.
      operationId: tagsPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tags_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/tags_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tags_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: tags
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id013
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `tags` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/tags/update/' \\\n  -H\
          \ 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n   \
          \ \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tags/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tags/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tags/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/tagToActivity/create/:
    post:
      tags:
      - tagToActivity
      summary: Creates the tagToActivity objects using a POST API call.
      operationId: tagToActivityPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tagToActivity_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/tagToActivity_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tagToActivity_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: tags
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id013
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `tags` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off. _Mapping inferred
        from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToActivity/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"tag_id\": 1,\n    \"activity_id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tagToActivity/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"tag_id\": 1,\n    \"activity_id\"\
          : 1\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n\
          }\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tagToActivity/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"tag_id\": 1,\n     \
          \ \"activity_id\": 1\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToActivity/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'tag_id' => 1,\n        'activity_id'\
          \ => 1,\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/tagToActivity/delete/:
    delete:
      tags:
      - tagToActivity
      summary: Deletes the tagToActivity objects using a DELETE API call.
      operationId: tagToActivityDeleteDelete
      parameters:
      - $ref: '#/components/parameters/tagToActivity_V6_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tagToActivity_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: tags
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id013
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `tags` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off. _Mapping inferred
        from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToActivity/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tagToActivity/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tagToActivity/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToActivity/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/tagToActivity/read/:
    get:
      tags:
      - tagToActivity
      summary: Reads the tagToActivity objects using a GET API call.
      operationId: tagToActivityGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tagToActivity_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: tags
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id013
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `tags` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off. _Mapping inferred
        from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToActivity/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tagToActivity/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tagToActivity/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToActivity/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/tagToProject/create/:
    post:
      tags:
      - tagToProject
      summary: Creates the tagToProject objects using a POST API call.
      operationId: tagToProjectPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tagToProject_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/tagToProject_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tagToProject_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: tags
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id013
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `tags` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off. _Mapping inferred
        from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToProject/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"tag_id\": 1,\n    \"project_id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tagToProject/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"tag_id\": 1,\n    \"project_id\"\
          : 1\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n\
          }\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tagToProject/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"tag_id\": 1,\n     \
          \ \"project_id\": 1\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToProject/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'tag_id' => 1,\n        'project_id'\
          \ => 1,\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/tagToProject/delete/:
    delete:
      tags:
      - tagToProject
      summary: Deletes the tagToProject objects using a DELETE API call.
      operationId: tagToProjectDeleteDelete
      parameters:
      - $ref: '#/components/parameters/tagToProject_V6_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tagToProject_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: tags
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id013
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `tags` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off. _Mapping inferred
        from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToProject/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tagToProject/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tagToProject/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToProject/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/tagToProject/read/:
    get:
      tags:
      - tagToProject
      summary: Reads the tagToProject objects using a GET API call.
      operationId: tagToProjectGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tagToProject_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: tags
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id013
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `tags` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off. _Mapping inferred
        from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToProject/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tagToProject/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tagToProject/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToProject/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/tagToTimeEntries/create/:
    post:
      tags:
      - tagToTimeEntries
      summary: Creates the tagToTimeEntries objects using a POST API call.
      operationId: tagToTimeEntriesPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tagToTimeEntries_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/tagToTimeEntries_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tagToTimeEntries_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: tags
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id013
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `tags` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off. _Mapping inferred
        from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToTimeEntries/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"tag_id\": 1,\n    \"time_entry_id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tagToTimeEntries/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"tag_id\": 1,\n    \"time_entry_id\"\
          : 1\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n\
          }\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tagToTimeEntries/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"tag_id\": 1,\n     \
          \ \"time_entry_id\": 1\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToTimeEntries/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'tag_id' => 1,\n        'time_entry_id'\
          \ => 1,\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/tagToTimeEntries/delete/:
    delete:
      tags:
      - tagToTimeEntries
      summary: Deletes the tagToTimeEntries objects using a DELETE API call.
      operationId: tagToTimeEntriesDeleteDelete
      parameters:
      - $ref: '#/components/parameters/tagToTimeEntries_V6_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tagToTimeEntries_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: tags
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id013
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `tags` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off. _Mapping inferred
        from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToTimeEntries/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tagToTimeEntries/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tagToTimeEntries/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToTimeEntries/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/tagToTimeEntries/read/:
    get:
      tags:
      - tagToTimeEntries
      summary: Reads the tagToTimeEntries objects using a GET API call.
      operationId: tagToTimeEntriesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tagToTimeEntries_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: tags
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id013
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#b25d07'
      description: '> **Requires the `tags` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off. _Mapping inferred
        from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToTimeEntries/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tagToTimeEntries/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tagToTimeEntries/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tagToTimeEntries/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/tasks/create/:
    post:
      tags:
      - tasks
      summary: Creates the tasks objects using a POST API call.
      operationId: tasksPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tasks_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/tasks_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tasks_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: add_activities
      x-timetac-scope: field
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: &id014
      - Time & Attendance
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `add_activities` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Time & Attendance seat. The endpoint still answers without the feature, but
        specific fields or values are rejected.


        > **Requires the `project_time_tracking` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Project Time Tracking seat. The endpoint still answers without the feature,
        but specific fields or values are rejected.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/tasks/create/' \\\n \
          \ -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"geofence_ids\": {},\n    \"internal_rate\": 1.0,\n    \"external_rate\": 1.0\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tasks/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"geofence_ids\": {},\n    \"internal_rate\"\
          : 1.0,\n    \"external_rate\": 1.0\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac\
          \ API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tasks/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"geofence_ids\": {},\n\
          \      \"internal_rate\": 1.0,\n      \"external_rate\": 1.0\n    },\n)\nres.raise_for_status()\n\
          results = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tasks/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'geofence_ids' => [],\n        'internal_rate'\
          \ => 1.0,\n        'external_rate' => 1.0,\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status\
          \ = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response\
          \ || $status >= 400) {\n    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n\
          }\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/tasks/read/:
    get:
      tags:
      - tasks
      summary: Reads the tasks objects using a GET API call.
      operationId: tasksGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tasks_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: add_activities
      x-timetac-scope: field
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id014
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `add_activities` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Time & Attendance seat. The endpoint still answers without the feature, but
        specific fields or values are rejected.


        > **Requires the `project_time_tracking` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Project Time Tracking seat. The endpoint still answers without the feature,
        but specific fields or values are rejected.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/tasks/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tasks/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tasks/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tasks/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/tasks/update/:
    put:
      tags:
      - tasks
      summary: Updates the tasks objects using a PUT API call.
      operationId: tasksPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tasks_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/tasks_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/tasks_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: add_activities
      x-timetac-scope: field
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id014
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `add_activities` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Time & Attendance seat. The endpoint still answers without the feature, but
        specific fields or values are rejected.


        > **Requires the `project_time_tracking` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Project Time Tracking seat. The endpoint still answers without the feature,
        but specific fields or values are rejected.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/tasks/update/' \\\n  -H\
          \ 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n   \
          \ \"geofence_ids\": {},\n    \"internal_rate\": 1.0,\n    \"external_rate\": 1.0\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/tasks/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"geofence_ids\": {},\n    \"internal_rate\"\
          : 1.0,\n    \"external_rate\": 1.0\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac\
          \ API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/tasks/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"geofence_ids\": {},\n\
          \      \"internal_rate\": 1.0,\n      \"external_rate\": 1.0\n    },\n)\nres.raise_for_status()\n\
          results = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/tasks/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'geofence_ids' => [],\n        'internal_rate'\
          \ => 1.0,\n        'external_rate' => 1.0,\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status\
          \ = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response\
          \ || $status >= 400) {\n    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n\
          }\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/timesheetAccountings/read/:
    get:
      tags:
      - timesheetAccountings
      summary: Reads the timesheetAccountings objects using a GET API call.
      operationId: timesheetAccountingsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timesheetAccountings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: timesheet_approval
      x-timetac-scope: endpoint
      x-timetac-provenance: product
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: &id015
      - Time & Attendance
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `timesheet_approval` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountings/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountings/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountings/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountings/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/timesheetAccountings/update/:
    put:
      tags:
      - timesheetAccountings
      summary: Updates the timesheetAccountings objects using a PUT API call.
      operationId: timesheetAccountingsPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/timesheetAccountings_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/timesheetAccountings_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timesheetAccountings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: timesheet_approval
      x-timetac-scope: endpoint
      x-timetac-provenance: product
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id015
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `timesheet_approval` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountings/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"user_id\": 1,\n    \"date\": \"2026-01-15\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountings/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"user_id\": 1,\n    \"date\": \"\
          2026-01-15\"\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await\
          \ res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountings/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"user_id\": 1,\n    \
          \  \"date\": \"2026-01-15\"\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountings/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'user_id' => 1,\n        'date' =>\
          \ '2026-01-15',\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/timesheetAccountingsHistory/read/:
    get:
      tags:
      - timesheetAccountingsHistory
      summary: Reads the timesheetAccountingsHistory objects using a GET API call.
      operationId: timesheetAccountingsHistoryGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timesheetAccountingsHistory_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountingsHistory/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountingsHistory/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountingsHistory/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountingsHistory/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/timesheetAccountingSummaries/read/:
    get:
      tags:
      - timesheetAccountingSummaries
      summary: Reads the timesheetAccountingSummaries objects using a GET API call.
      operationId: timesheetAccountingSummariesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      - $ref: '#/components/parameters/timesheetAccountingSummaries_V3_id_read'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timesheetAccountingSummaries_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: timesheet_report
      x-timetac-scope: endpoint
      x-timetac-provenance: inferred
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats:
      - Time & Attendance
      x-badges:
      - name: All plans
        position: after
        color: '#b25d07'
      description: '> **Requires the `timesheet_report` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.
        _Mapping inferred from the resource name and not yet confirmed by Product — treat as indicative._


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountingSummaries/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountingSummaries/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountingSummaries/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetAccountingSummaries/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/timesheetActionLogs/delete/:
    delete:
      tags:
      - timesheetActionLogs
      summary: Deletes the timesheetActionLogs objects using a DELETE API call.
      operationId: timesheetActionLogsDeleteDelete
      parameters:
      - $ref: '#/components/parameters/timesheetActionLogs_V1_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timesheetActionLogs_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetActionLogs/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timesheetActionLogs/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetActionLogs/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetActionLogs/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/timesheetActionLogs/read/:
    get:
      tags:
      - timesheetActionLogs
      summary: Reads the timesheetActionLogs objects using a GET API call.
      operationId: timesheetActionLogsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timesheetActionLogs_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetActionLogs/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timesheetActionLogs/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetActionLogs/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timesheetActionLogs/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/timeTrackingChangelogs/read/:
    get:
      tags:
      - timeTrackingChangelogs
      summary: Reads the timeTrackingChangelogs objects using a GET API call.
      operationId: timeTrackingChangelogsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timeTrackingChangelogs_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackingChangelogs/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackingChangelogs/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackingChangelogs/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackingChangelogs/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/timeTrackings/approve/:
    put:
      tags:
      - timeTrackings
      summary: Approves the timeTrackings objects using a PUT API call.
      operationId: timeTrackingsPutApprove
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/timeTrackings_approve'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/timeTrackings_approve'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timeTrackings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: basic_timetracking
      x-timetac-scope: endpoint
      x-timetac-provenance: product
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: &id016
      - Project Time Tracking
      - Time & Attendance
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `basic_timetracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is
        unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/approve/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/approve/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/approve/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/approve/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/timeTrackings/billableTimeSummary/:
    get:
      tags:
      - timeTrackings
      summary: BillableTimeSummarys the timeTrackings objects using a GET API call.
      operationId: timeTrackingsGetBillableTimeSummary
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      - $ref: '#/components/parameters/timeTrackings_V6_from_billableTimeSummary'
      - $ref: '#/components/parameters/timeTrackings_V6_to_billableTimeSummary'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timeTrackings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: basic_timetracking
      x-timetac-scope: endpoint
      x-timetac-provenance: product
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id016
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `basic_timetracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is
        unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/billableTimeSummary/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/billableTimeSummary/',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/billableTimeSummary/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/billableTimeSummary/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/timeTrackings/cancel/:
    put:
      tags:
      - timeTrackings
      summary: Cancels the timeTrackings objects using a PUT API call.
      operationId: timeTrackingsPutCancel
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/timeTrackings_cancel'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/timeTrackings_cancel'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timeTrackings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: basic_timetracking
      x-timetac-scope: endpoint
      x-timetac-provenance: product
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id016
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `basic_timetracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is
        unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/cancel/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/cancel/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/cancel/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/cancel/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/timeTrackings/create/:
    post:
      tags:
      - timeTrackings
      summary: Creates the timeTrackings objects using a POST API call.
      operationId: timeTrackingsPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/timeTrackings_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/timeTrackings_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timeTrackings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: basic_timetracking
      x-timetac-scope: endpoint
      x-timetac-provenance: product
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id016
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `basic_timetracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is
        unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"user_id\": 1,\n    \"task_id\": 1,\n    \"start_time\": \"2026-01-15T08:00:00+01:00\"\
          ,\n    \"end_time\": \"2026-01-15T08:00:00+01:00\",\n    \"start_time_timezone\": \"string\"\
          ,\n    \"end_time_timezone\": \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"user_id\": 1,\n    \"task_id\"\
          : 1,\n    \"start_time\": \"2026-01-15T08:00:00+01:00\",\n    \"end_time\": \"2026-01-15T08:00:00+01:00\"\
          ,\n    \"start_time_timezone\": \"string\",\n    \"end_time_timezone\": \"string\"\n  }),\n\
          });\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n\
          }\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"user_id\": 1,\n    \
          \  \"task_id\": 1,\n      \"start_time\": \"2026-01-15T08:00:00+01:00\",\n      \"end_time\"\
          : \"2026-01-15T08:00:00+01:00\",\n      \"start_time_timezone\": \"string\",\n      \"end_time_timezone\"\
          : \"string\"\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'user_id' => 1,\n        'task_id'\
          \ => 1,\n        'start_time' => '2026-01-15T08:00:00+01:00',\n        'end_time' => '2026-01-15T08:00:00+01:00',\n\
          \        'start_time_timezone' => 'string',\n        'end_time_timezone' => 'string',\n    ]),\n\
          ]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/timeTrackings/current/:
    get:
      tags:
      - timeTrackings
      summary: Currents the timeTrackings objects using a GET API call.
      operationId: timeTrackingsGetCurrent
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timeTrackings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: basic_timetracking
      x-timetac-scope: endpoint
      x-timetac-provenance: product
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id016
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `basic_timetracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is
        unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/current/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/current/',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/current/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/current/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/timeTrackings/delete/:
    delete:
      tags:
      - timeTrackings
      summary: Deletes the timeTrackings objects using a DELETE API call.
      operationId: timeTrackingsDeleteDelete
      parameters:
      - $ref: '#/components/parameters/timeTrackings_V6_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timeTrackings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: basic_timetracking
      x-timetac-scope: endpoint
      x-timetac-provenance: product
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id016
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `basic_timetracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is
        unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/timeTrackings/read/:
    get:
      tags:
      - timeTrackings
      summary: Reads the timeTrackings objects using a GET API call.
      operationId: timeTrackingsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timeTrackings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: basic_timetracking
      x-timetac-scope: endpoint
      x-timetac-provenance: product
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id016
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `basic_timetracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is
        unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/timeTrackings/reject/:
    put:
      tags:
      - timeTrackings
      summary: Rejects the timeTrackings objects using a PUT API call.
      operationId: timeTrackingsPutReject
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/timeTrackings_reject'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/timeTrackings_reject'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timeTrackings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: basic_timetracking
      x-timetac-scope: endpoint
      x-timetac-provenance: product
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id016
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `basic_timetracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is
        unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/reject/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/reject/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/reject/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/reject/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/timeTrackings/split/:
    post:
      tags:
      - timeTrackings
      summary: Splits the timeTrackings objects using a POST API call.
      operationId: timeTrackingsPostSplit
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/timeTrackings_split'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/timeTrackings_split'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timeTrackings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: basic_timetracking
      x-timetac-scope: endpoint
      x-timetac-provenance: product
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id016
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `basic_timetracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is
        unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/split/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1,\n    \"timezone\": \"string\",\n    \"time\": \"2026-01-15T08:00:00+01:00\"\
          \n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/split/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1,\n    \"timezone\": \"\
          string\",\n    \"time\": \"2026-01-15T08:00:00+01:00\"\n  }),\n});\n\nif (!res.ok) {\n  throw\
          \ new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results } = await\
          \ res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/split/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1,\n      \"timezone\"\
          : \"string\",\n      \"time\": \"2026-01-15T08:00:00+01:00\"\n    },\n)\nres.raise_for_status()\n\
          results = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/split/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n        'timezone' =>\
          \ 'string',\n        'time' => '2026-01-15T08:00:00+01:00',\n    ]),\n]);\n\n$response = curl_exec($ch);\n\
          $status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response\
          \ || $status >= 400) {\n    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n\
          }\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/timeTrackings/start/:
    post:
      tags:
      - timeTrackings
      summary: Starts the timeTrackings objects using a POST API call.
      operationId: timeTrackingsPostStart
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/timeTrackings_start'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/timeTrackings_start'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timeTrackings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: basic_timetracking
      x-timetac-scope: endpoint
      x-timetac-provenance: product
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id016
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `basic_timetracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is
        unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/start/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"user_id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/start/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"user_id\": 1\n  }),\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/start/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"user_id\": 1\n    },\n\
          )\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/start/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'user_id' => 1,\n    ]),\n]);\n\n\
          $response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/timeTrackings/stop/:
    put:
      tags:
      - timeTrackings
      summary: Stops the timeTrackings objects using a PUT API call.
      operationId: timeTrackingsPutStop
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/timeTrackings_stop'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/timeTrackings_stop'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timeTrackings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: basic_timetracking
      x-timetac-scope: endpoint
      x-timetac-provenance: product
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id016
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `basic_timetracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is
        unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/stop/' \\\
          \n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"user_id\": 1,\n    \"end_time_timezone\": \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/stop/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"user_id\": 1,\n    \"end_time_timezone\"\
          : \"string\"\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await\
          \ res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/stop/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"user_id\": 1,\n    \
          \  \"end_time_timezone\": \"string\"\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/stop/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'user_id' => 1,\n        'end_time_timezone'\
          \ => 'string',\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/timeTrackings/update/:
    put:
      tags:
      - timeTrackings
      summary: Updates the timeTrackings objects using a PUT API call.
      operationId: timeTrackingsPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/timeTrackings_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/timeTrackings_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timeTrackings_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: basic_timetracking
      x-timetac-scope: endpoint
      x-timetac-provenance: product
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id016
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `basic_timetracking` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is
        unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timeTrackings/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/timezones/read/:
    get:
      tags:
      - timezones
      summary: Reads the timezones objects using a GET API call.
      operationId: timezonesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/timezones_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/timezones/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/timezones/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/timezones/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/timezones/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/translations/read/:
    get:
      tags:
      - translations
      summary: Reads the translations objects using a GET API call.
      operationId: translationsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/translations_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/translations/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/translations/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/translations/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/translations/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/userHistory/read/:
    get:
      tags:
      - userHistory
      summary: Reads the userHistory objects using a GET API call.
      operationId: userHistoryGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/userHistory_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: user_history
      x-timetac-scope: endpoint
      x-timetac-provenance: name
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats:
      - Project Time Tracking
      - Time & Attendance
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `user_history` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable
        when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/userHistory/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/userHistory/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/userHistory/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/userHistory/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/userPreferences/read/:
    get:
      tags:
      - userPreferences
      summary: Reads the userPreferences objects using a GET API call.
      operationId: userPreferencesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/userPreferences_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/userPreferences/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/userPreferences/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/userPreferences/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/userPreferences/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/userPreferences/update/:
    put:
      tags:
      - userPreferences
      summary: Updates the userPreferences objects using a PUT API call.
      operationId: userPreferencesPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/userPreferences_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/userPreferences_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/userPreferences_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/userPreferences/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"name\": \"string\",\n    \"value\": \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/userPreferences/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"name\": \"string\",\n    \"value\"\
          : \"string\"\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await\
          \ res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/userPreferences/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"name\": \"string\",\n\
          \      \"value\": \"string\"\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/userPreferences/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'name' => 'string',\n        'value'\
          \ => 'string',\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/users/read/:
    get:
      tags:
      - users
      summary: Reads the users objects using a GET API call.
      operationId: usersGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/users_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/users/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/users/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/users/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/users/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/usersArchiveHistory/read/:
    get:
      tags:
      - usersArchiveHistory
      summary: Reads the usersArchiveHistory objects using a GET API call.
      operationId: usersArchiveHistoryGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/usersArchiveHistory_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/usersArchiveHistory/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/usersArchiveHistory/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/usersArchiveHistory/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/usersArchiveHistory/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/userStatusOverview/read/:
    get:
      tags:
      - userStatusOverview
      summary: Reads the userStatusOverview objects using a GET API call.
      operationId: userStatusOverviewGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/userStatusOverview_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/userStatusOverview/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/userStatusOverview/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/userStatusOverview/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/userStatusOverview/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/userTemplateHistory/read/:
    get:
      tags:
      - userTemplateHistory
      summary: Reads the userTemplateHistory objects using a GET API call.
      operationId: userTemplateHistoryGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/userTemplateHistory_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/userTemplateHistory/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/userTemplateHistory/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/userTemplateHistory/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/userTemplateHistory/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/userTemplateHistory/view/:
    get:
      tags:
      - userTemplateHistory
      summary: Views the userTemplateHistory objects using a GET API call.
      operationId: userTemplateHistoryGetView
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      - $ref: '#/components/parameters/userTemplateHistory_V3_user_id_view'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/userTemplateHistory_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/userTemplateHistory/view/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/userTemplateHistory/view/',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/userTemplateHistory/view/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/userTemplateHistory/view/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/userToOauthClients/read/:
    get:
      tags:
      - userToOauthClients
      summary: Reads the userToOauthClients objects using a GET API call.
      operationId: userToOauthClientsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/userToOauthClients_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/userToOauthClients/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/userToOauthClients/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/userToOauthClients/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/userToOauthClients/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/userToOauthClients/update/:
    put:
      tags:
      - userToOauthClients
      summary: Updates the userToOauthClients objects using a PUT API call.
      operationId: userToOauthClientsPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/userToOauthClients_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/userToOauthClients_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/userToOauthClients_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/userToOauthClients/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1,\n    \"allowed\": true\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/userToOauthClients/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1,\n    \"allowed\": true\n\
          \  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n\
          }\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/userToOauthClients/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1,\n      \"allowed\"\
          : true\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/userToOauthClients/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n        'allowed' => true,\n\
          \    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/workingHourSlotGroups/create/:
    post:
      tags:
      - workingHourSlotGroups
      summary: Creates the workingHourSlotGroups objects using a POST API call.
      operationId: workingHourSlotGroupsPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/workingHourSlotGroups_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/workingHourSlotGroups_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workingHourSlotGroups_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"name\": \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"name\": \"string\"\n  }),\n});\n\
          \nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"name\": \"string\"\n\
          \    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'name' => 'string',\n    ]),\n]);\n\
          \n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/workingHourSlotGroups/delete/:
    delete:
      tags:
      - workingHourSlotGroups
      summary: Deletes the workingHourSlotGroups objects using a DELETE API call.
      operationId: workingHourSlotGroupsDeleteDelete
      parameters:
      - $ref: '#/components/parameters/workingHourSlotGroups_V6_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workingHourSlotGroups_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/workingHourSlotGroups/read/:
    get:
      tags:
      - workingHourSlotGroups
      summary: Reads the workingHourSlotGroups objects using a GET API call.
      operationId: workingHourSlotGroupsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workingHourSlotGroups_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/workingHourSlotGroups/update/:
    put:
      tags:
      - workingHourSlotGroups
      summary: Updates the workingHourSlotGroups objects using a PUT API call.
      operationId: workingHourSlotGroupsPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/workingHourSlotGroups_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/workingHourSlotGroups_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workingHourSlotGroups_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workingHourSlotGroups/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/workingTimeBalanceRules/read/:
    get:
      tags:
      - workingTimeBalanceRules
      summary: Reads the workingTimeBalanceRules objects using a GET API call.
      operationId: workingTimeBalanceRulesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workingTimeBalanceRules_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/workingTimeBalanceRules/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workingTimeBalanceRules/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workingTimeBalanceRules/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workingTimeBalanceRules/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/workScheduleDayDefinitions/create/:
    post:
      tags:
      - workScheduleDayDefinitions
      summary: Creates the workScheduleDayDefinitions objects using a POST API call.
      operationId: workScheduleDayDefinitionsPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/workScheduleDayDefinitions_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/workScheduleDayDefinitions_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workScheduleDayDefinitions_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"timesheet_template_id\": 1,\n    \"weekday_id\": 1,\n    \"slot_id\": 1,\n    \"\
          start\": \"string\",\n    \"end\": \"string\",\n    \"valid_for_task_id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"timesheet_template_id\": 1,\n \
          \   \"weekday_id\": 1,\n    \"slot_id\": 1,\n    \"start\": \"string\",\n    \"end\": \"string\"\
          ,\n    \"valid_for_task_id\": 1\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API\
          \ ${res.status}: ${await res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"timesheet_template_id\"\
          : 1,\n      \"weekday_id\": 1,\n      \"slot_id\": 1,\n      \"start\": \"string\",\n      \"\
          end\": \"string\",\n      \"valid_for_task_id\": 1\n    },\n)\nres.raise_for_status()\nresults\
          \ = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'timesheet_template_id' => 1,\n  \
          \      'weekday_id' => 1,\n        'slot_id' => 1,\n        'start' => 'string',\n        'end'\
          \ => 'string',\n        'valid_for_task_id' => 1,\n    ]),\n]);\n\n$response = curl_exec($ch);\n\
          $status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response\
          \ || $status >= 400) {\n    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n\
          }\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/workScheduleDayDefinitions/delete/:
    delete:
      tags:
      - workScheduleDayDefinitions
      summary: Deletes the workScheduleDayDefinitions objects using a DELETE API call.
      operationId: workScheduleDayDefinitionsDeleteDelete
      parameters:
      - $ref: '#/components/parameters/workScheduleDayDefinitions_V1_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workScheduleDayDefinitions_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/workScheduleDayDefinitions/read/:
    get:
      tags:
      - workScheduleDayDefinitions
      summary: Reads the workScheduleDayDefinitions objects using a GET API call.
      operationId: workScheduleDayDefinitionsGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workScheduleDayDefinitions_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/workScheduleDayDefinitions/update/:
    put:
      tags:
      - workScheduleDayDefinitions
      summary: Updates the workScheduleDayDefinitions objects using a PUT API call.
      operationId: workScheduleDayDefinitionsPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/workScheduleDayDefinitions_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/workScheduleDayDefinitions_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workScheduleDayDefinitions_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDayDefinitions/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/workScheduleDays/read/:
    get:
      tags:
      - workScheduleDays
      summary: Reads the workScheduleDays objects using a GET API call.
      operationId: workScheduleDaysGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workScheduleDays_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDays/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDays/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDays/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDays/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/workScheduleDays/update/:
    put:
      tags:
      - workScheduleDays
      summary: Updates the workScheduleDays objects using a PUT API call.
      operationId: workScheduleDaysPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/workScheduleDays_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/workScheduleDays_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workScheduleDays_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDays/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDays/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDays/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workScheduleDays/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/workSchedules/create/:
    post:
      tags:
      - workSchedules
      summary: Creates the workSchedules objects using a POST API call.
      operationId: workSchedulesPostCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/workSchedules_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/workSchedules_create'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workSchedules_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: workschedule_zerohours
      x-timetac-scope: field
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: &id017
      - Time & Attendance
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `workschedule_zerohours` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Time & Attendance seat. The endpoint still answers without the feature,
        but specific fields or values are rejected.


        > **Requires the `workschedule_minijobber` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Time & Attendance seat. The endpoint still answers without the feature, but
        specific fields or values are rejected.


        > **Requires the `workschedule_surcharges` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. The endpoint still answers without the feature, but specific fields
        or values are rejected.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"name\": \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"name\": \"string\"\n  }),\n});\n\
          \nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"name\": \"string\"\n\
          \    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'name' => 'string',\n    ]),\n]);\n\
          \n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/workSchedules/delete/:
    delete:
      tags:
      - workSchedules
      summary: Deletes the workSchedules objects using a DELETE API call.
      operationId: workSchedulesDeleteDelete
      parameters:
      - $ref: '#/components/parameters/workSchedules_V1_id_delete'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workSchedules_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: workschedule_zerohours
      x-timetac-scope: field
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id017
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `workschedule_zerohours` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Time & Attendance seat. The endpoint still answers without the feature,
        but specific fields or values are rejected.


        > **Requires the `workschedule_minijobber` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Time & Attendance seat. The endpoint still answers without the feature, but
        specific fields or values are rejected.


        > **Requires the `workschedule_surcharges` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. The endpoint still answers without the feature, but specific fields
        or values are rejected.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/workSchedules/read/:
    get:
      tags:
      - workSchedules
      summary: Reads the workSchedules objects using a GET API call.
      operationId: workSchedulesGetRead
      parameters:
      - $ref: '#/components/parameters/_limit'
      - $ref: '#/components/parameters/_offset'
      - $ref: '#/components/parameters/_order_by'
      - $ref: '#/components/parameters/_since'
      - $ref: '#/components/parameters/_sort_direction'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workSchedules_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: workschedule_zerohours
      x-timetac-scope: field
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id017
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `workschedule_zerohours` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Time & Attendance seat. The endpoint still answers without the feature,
        but specific fields or values are rejected.


        > **Requires the `workschedule_minijobber` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Time & Attendance seat. The endpoint still answers without the feature, but
        specific fields or values are rejected.


        > **Requires the `workschedule_surcharges` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. The endpoint still answers without the feature, but specific fields
        or values are rejected.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/read/?_limit=10'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/read/?_limit=10',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/read/?_limit=10',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/read/?_limit=10',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/workSchedules/update/:
    put:
      tags:
      - workSchedules
      summary: Updates the workSchedules objects using a PUT API call.
      operationId: workSchedulesPutUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/workSchedules_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/workSchedules_update'
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/workSchedules_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '497':
          $ref: '#/components/responses/error497'
      x-timetac-feature: workschedule_zerohours
      x-timetac-scope: field
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id017
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `workschedule_zerohours` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Time & Attendance seat. The endpoint still answers without the feature,
        but specific fields or values are rejected.


        > **Requires the `workschedule_minijobber` feature.** Enabled by default on Essential, Standard,
        Advanced. Needs a Time & Attendance seat. The endpoint still answers without the feature, but
        specific fields or values are rejected.


        > **Requires the `workschedule_surcharges` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. The endpoint still answers without the feature, but specific fields
        or values are rejected.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/update/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/workSchedules/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/absences/approve/:
    put:
      tags:
      - absences
      summary: Approves a pending absence request.
      operationId: absencesPutApprove
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/absences_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/absences_approve'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/absences_approve'
      x-timetac-feature: absence_management
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id001
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `absence_management` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Time & Attendance seat. This endpoint is unavailable when the feature
        is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/absences/approve/' \\\n\
          \  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/absences/approve/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/absences/approve/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/absences/approve/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/absences/cancel/:
    put:
      tags:
      - absences
      summary: Cancels an absence request.
      operationId: absencesPutCancel
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/absences_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/absences_cancel'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/absences_cancel'
      x-timetac-feature: absence_management
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id001
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `absence_management` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Time & Attendance seat. This endpoint is unavailable when the feature
        is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/absences/cancel/' \\\n\
          \  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/absences/cancel/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/absences/cancel/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/absences/cancel/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/absences/create/:
    post:
      tags:
      - absences
      summary: Creates an absence request for a user.
      operationId: absencesPostCreate
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/absences_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/absences_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/absences_create'
      x-timetac-feature: absence_management
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id001
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `absence_management` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Time & Attendance seat. This endpoint is unavailable when the feature
        is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/absences/create/' \\\n\
          \  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"user_id\": 1,\n    \"type_id\": 1,\n    \"from_date\": \"string\",\n    \"to_date\":\
          \ \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/absences/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"user_id\": 1,\n    \"type_id\"\
          : 1,\n    \"from_date\": \"string\",\n    \"to_date\": \"string\"\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/absences/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"user_id\": 1,\n    \
          \  \"type_id\": 1,\n      \"from_date\": \"string\",\n      \"to_date\": \"string\"\n    },\n\
          )\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/absences/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'user_id' => 1,\n        'type_id'\
          \ => 1,\n        'from_date' => 'string',\n        'to_date' => 'string',\n    ]),\n]);\n\n\
          $response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/absences/reject/:
    put:
      tags:
      - absences
      summary: Rejects a pending absence request.
      operationId: absencesPutReject
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/absences_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/absences_reject'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/absences_reject'
      x-timetac-feature: absence_management
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id001
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `absence_management` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Time & Attendance seat. This endpoint is unavailable when the feature
        is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/absences/reject/' \\\n\
          \  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/absences/reject/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/absences/reject/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/absences/reject/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/absences/update/:
    put:
      tags:
      - absences
      summary: Updates an existing absence request.
      operationId: absencesPutUpdate
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/absences_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/absences_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/absences_update'
      x-timetac-feature: absence_management
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-timetac-seats: *id001
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Requires the `absence_management` feature.** Enabled by default on Essential,
        Standard, Advanced. Needs a Time & Attendance seat. This endpoint is unavailable when the feature
        is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/absences/update/' \\\n\
          \  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/absences/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/absences/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/absences/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/budgets/create/:
    post:
      tags:
      - budgets
      summary: Creates a budget.
      operationId: budgetsPostCreate
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/budgets_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/budgets_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/budgets_create'
      x-timetac-feature: budgets
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id018
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `budgets` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/budgets/create/' \\\n\
          \  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"name\": \"string\",\n    \"description\": \"string\",\n    \"metric\": \"string\",\n\
          \    \"target\": 1,\n    \"interval\": \"string\",\n    \"from_date\": \"string\",\n    \"to_date\"\
          : \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/budgets/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"name\": \"string\",\n    \"description\"\
          : \"string\",\n    \"metric\": \"string\",\n    \"target\": 1,\n    \"interval\": \"string\"\
          ,\n    \"from_date\": \"string\",\n    \"to_date\": \"string\"\n  }),\n});\n\nif (!res.ok) {\n\
          \  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/budgets/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"name\": \"string\",\n\
          \      \"description\": \"string\",\n      \"metric\": \"string\",\n      \"target\": 1,\n \
          \     \"interval\": \"string\",\n      \"from_date\": \"string\",\n      \"to_date\": \"string\"\
          \n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/budgets/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'name' => 'string',\n        'description'\
          \ => 'string',\n        'metric' => 'string',\n        'target' => 1,\n        'interval' =>\
          \ 'string',\n        'from_date' => 'string',\n        'to_date' => 'string',\n    ]),\n]);\n\
          \n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/budgets/update/{id}/:
    put:
      tags:
      - budgets
      summary: Updates a budget.
      operationId: budgetsPutUpdate
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/budgets_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/budgets_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/budgets_update'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
        description: Id of the budgets record.
      x-timetac-feature: budgets
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id018
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `budgets` feature.** Enabled by default on Standard, Advanced. Needs
        a Project Time Tracking seat. This endpoint is unavailable when the feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/budgets/update/ID/' \\\
          \n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"name\": \"string\",\n    \"description\": \"string\",\n    \"metric\": \"string\"\n \
          \ }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/budgets/update/ID/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"name\": \"string\",\n    \"description\"\
          : \"string\",\n    \"metric\": \"string\"\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac\
          \ API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/budgets/update/ID/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"name\": \"string\",\n\
          \      \"description\": \"string\",\n      \"metric\": \"string\"\n    },\n)\nres.raise_for_status()\n\
          results = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/budgets/update/ID/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'name' => 'string',\n        'description'\
          \ => 'string',\n        'metric' => 'string',\n    ]),\n]);\n\n$response = curl_exec($ch);\n\
          $status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response\
          \ || $status >= 400) {\n    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n\
          }\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/departments/create/:
    post:
      tags:
      - departments
      summary: Creates a department.
      operationId: departmentsPostCreate
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/departments_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/departments_create'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/departments_create'
      x-timetac-feature: departments
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id019
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `departments` feature.** Enabled by default on Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the
        feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/departments/create/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"department_name\": \"string\",\n    \"mother_id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/departments/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"department_name\": \"string\",\n\
          \    \"mother_id\": 1\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}:\
          \ ${await res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/departments/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"department_name\": \"\
          string\",\n      \"mother_id\": 1\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/departments/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'department_name' => 'string',\n \
          \       'mother_id' => 1,\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/departments/delete/:
    delete:
      tags:
      - departments
      summary: Deletes a department.
      operationId: departmentsDeleteDelete
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/departments_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      parameters:
      - name: id
        in: query
        required: true
        schema:
          type: integer
        description: Id of the departments record to delete.
      x-timetac-feature: departments
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id019
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `departments` feature.** Enabled by default on Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the
        feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/departments/delete/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/departments/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/departments/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/departments/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/departments/update/:
    put:
      tags:
      - departments
      summary: Updates a department.
      operationId: departmentsPutUpdate
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/departments_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/departments_update'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/departments_update'
      x-timetac-feature: departments
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id019
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      description: '> **Requires the `departments` feature.** Enabled by default on Standard, Advanced.
        Needs a Project Time Tracking or Time & Attendance seat. This endpoint is unavailable when the
        feature is off.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/departments/update/' \\\
          \n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/departments/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/departments/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/departments/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/users/activate/:
    put:
      tags:
      - users
      summary: Activates a user.
      operationId: usersPutActivate
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/users_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/users_activate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/users_activate'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/users/activate/' \\\n\
          \  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/users/activate/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/users/activate/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/users/activate/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/users/forgotPassword/:
    put:
      tags:
      - users
      summary: Triggers the forgot-password e-mail flow for a user.
      operationId: usersPutForgotPassword
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/users_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/users_forgotPassword'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/users_forgotPassword'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/users/forgotPassword/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"username\": \"string\",\n    \"administrators_username\": \"string\",\n    \"email_address\"\
          : \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/users/forgotPassword/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"username\": \"string\",\n    \"\
          administrators_username\": \"string\",\n    \"email_address\": \"string\"\n  }),\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/users/forgotPassword/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"username\": \"string\"\
          ,\n      \"administrators_username\": \"string\",\n      \"email_address\": \"string\"\n   \
          \ },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/users/forgotPassword/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'username' => 'string',\n        'administrators_username'\
          \ => 'string',\n        'email_address' => 'string',\n    ]),\n]);\n\n$response = curl_exec($ch);\n\
          $status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response\
          \ || $status >= 400) {\n    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n\
          }\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/users/resetPassword/:
    put:
      tags:
      - users
      summary: Requests a password reset for a user.
      operationId: usersPutResetPassword
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/users_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/users_resetPassword'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/users_resetPassword'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/users/resetPassword/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"username\": \"string\",\n    \"administrators_username\": \"string\",\n    \"email_address\"\
          : \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/users/resetPassword/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"username\": \"string\",\n    \"\
          administrators_username\": \"string\",\n    \"email_address\": \"string\"\n  }),\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/users/resetPassword/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"username\": \"string\"\
          ,\n      \"administrators_username\": \"string\",\n      \"email_address\": \"string\"\n   \
          \ },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/users/resetPassword/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'username' => 'string',\n        'administrators_username'\
          \ => 'string',\n        'email_address' => 'string',\n    ]),\n]);\n\n$response = curl_exec($ch);\n\
          $status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response\
          \ || $status >= 400) {\n    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n\
          }\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/users/sendWelcomeEmail/:
    post:
      tags:
      - users
      summary: Re-sends the welcome e-mail to a user.
      operationId: usersPostSendWelcomeEmail
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/users_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/users_sendWelcomeEmail'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/users_sendWelcomeEmail'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/users/sendWelcomeEmail/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/users/sendWelcomeEmail/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/users/sendWelcomeEmail/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/users/sendWelcomeEmail/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/users/setInitialPassword/:
    put:
      tags:
      - users
      summary: Sets the initial password for a newly invited user.
      operationId: usersPutSetInitialPassword
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/users_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/users_setInitialPassword'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/users_setInitialPassword'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/users/setInitialPassword/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"administrators_password\": \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/users/setInitialPassword/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"administrators_password\": \"string\"\
          \n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n\
          }\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/users/setInitialPassword/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"administrators_password\"\
          : \"string\"\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/users/setInitialPassword/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'administrators_password' => 'string',\n\
          \    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/users/setPassword/:
    put:
      tags:
      - users
      summary: Sets a new password using a reset token.
      operationId: usersPutSetPassword
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/users_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/users_setPassword'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/users_setPassword'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/users/setPassword/' \\\
          \n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"temporary_token\": \"string\",\n    \"password\": \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/users/setPassword/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"temporary_token\": \"string\",\n\
          \    \"password\": \"string\"\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API\
          \ ${res.status}: ${await res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/users/setPassword/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"temporary_token\": \"\
          string\",\n      \"password\": \"string\"\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/users/setPassword/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'temporary_token' => 'string',\n \
          \       'password' => 'string',\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/users/updatePassword/:
    put:
      tags:
      - users
      summary: Updates the password of the authenticated user.
      operationId: usersPutUpdatePassword
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/users_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/users_updatePassword'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/users_updatePassword'
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        '
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/users/updatePassword/'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"id\": 1\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/users/updatePassword/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"id\": 1\n  }),\n});\n\nif (!res.ok)\
          \ {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst { Results\
          \ } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/users/updatePassword/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"id\": 1\n    },\n)\n\
          res.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/users/updatePassword/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'id' => 1,\n    ]),\n]);\n\n$response\
          \ = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\
          \nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac API\
          \ '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ?? [];"
  /V6/users/create/:
    post:
      tags:
      - users
      summary: Creates one user, or several when the body is an array.
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        This endpoint accepts either a single object or an array of objects (batch). The request body
        fields are not published yet — this endpoint is served by a Backend-Plus handler whose payload
        is not described by a Request DTO, so the field list could not be derived from the source. Use
        the `users` read schema for field names and contact TimeTac Support to confirm the exact write
        contract.'
      operationId: usersPostCreate
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/users_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - type: object
                additionalProperties: true
              - type: array
                items:
                  type: object
                  additionalProperties: true
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/users/create/' \\\n \
          \ -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/users/create/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/users/create/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/users/create/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/users/delete/:
    delete:
      tags:
      - users
      summary: Deletes a user.
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        This endpoint accepts either a single object or an array of objects (batch). The request body
        fields are not published yet — this endpoint is served by a Backend-Plus handler whose payload
        is not described by a Request DTO, so the field list could not be derived from the source. Use
        the `users` read schema for field names and contact TimeTac Support to confirm the exact write
        contract.'
      operationId: usersDeleteDelete
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/users_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      parameters:
      - name: id
        in: query
        required: true
        schema:
          type: integer
        description: Id of the user to delete.
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/users/delete/' \\\n\
          \  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/users/delete/',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/users/delete/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/users/delete/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/users/invite/:
    post:
      tags:
      - users
      summary: Invites one user, or several when the body is an array.
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        This endpoint accepts either a single object or an array of objects (batch). The request body
        fields are not published yet — this endpoint is served by a Backend-Plus handler whose payload
        is not described by a Request DTO, so the field list could not be derived from the source. Use
        the `users` read schema for field names and contact TimeTac Support to confirm the exact write
        contract.'
      operationId: usersPostInvite
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/users_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - type: object
                additionalProperties: true
              - type: array
                items:
                  type: object
                  additionalProperties: true
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/users/invite/' \\\n \
          \ -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/users/invite/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/users/invite/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/users/invite/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/users/update/:
    put:
      tags:
      - users
      summary: Updates one user, or several when the body is an array.
      description: '> **Available on all plans.** No feature needs to be enabled for this endpoint.


        This endpoint accepts either a single object or an array of objects (batch). The request body
        fields are not published yet — this endpoint is served by a Backend-Plus handler whose payload
        is not described by a Request DTO, so the field list could not be derived from the source. Use
        the `users` read schema for field names and contact TimeTac Support to confirm the exact write
        contract.'
      operationId: usersPutUpdate
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/users_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - type: object
                additionalProperties: true
              - type: array
                items:
                  type: object
                  additionalProperties: true
      x-timetac-tiers:
      - Essential
      - Standard
      - Advanced
      x-badges:
      - name: All plans
        position: after
        color: '#348442'
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/users/update/' \\\n  -H\
          \ 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/users/update/',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/users/update/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/users/update/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/employeeDocuments/read:
    get:
      tags:
      - employeeDocuments
      summary: Lists employee documents the caller may see.
      description: '> **Requires the `employee_documents` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        Returns the documents of every employee in the caller''s scope. Documents in a restricted category
        (payslips) are included only for the employee they belong to and for privileged roles.


        This endpoint does not page: it answers with every matching row, capped at 10000. The `_limit`
        / `_offset` parameters the other read endpoints accept have no effect here.'
      operationId: employeeDocumentsGetRead
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/employeeDocuments_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '400':
          description: 'A field could not be accepted: a malformed date, a `period` outside `YYYY-MM`,
            a non-positive `user_id`, an empty `files` array, a declared size over the limit, or a `title`
            / file name longer than 255 characters. On confirm this is also the answer to a `pending_upload_id`
            that is unknown or expired, and to a stored object that failed validation.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  Success:
                    type: boolean
                    example: false
                  ErrorMessage:
                    type: string
      x-timetac-no-paging: true
      parameters:
      - name: user_id
        in: query
        required: false
        schema:
          type: string
        example: 42,43
        description: Comma-separated employee ids to restrict the result to. Intersected with the caller's
          scope; omit it for everyone the caller may see.
      - name: include_archived
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: Include archived documents. Off by default.
      - name: expiring_within_days
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
        description: Return only documents whose `valid_until` falls within this many days from today.
          `0` means expiring today.
      x-timetac-feature: employee_documents
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: &id020
      - Time & Attendance
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/read'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/read',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/read',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/read',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/employeeDocuments/categories:
    get:
      tags:
      - employeeDocuments
      summary: Lists the document categories and what each one requires.
      description: '> **Requires the `employee_documents` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        The categories are fixed per account. Each row says which date fields it hides, allows or requires,
        and whether the authenticated user may file documents in it — so a client can render its upload
        form without knowing the roles behind it.'
      operationId: employeeDocumentsGetCategories
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/employeeDocuments_category'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
      x-timetac-feature: employee_documents
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id020
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/categories'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/categories',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/categories',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/categories',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/employeeDocuments/uploadUrl:
    post:
      tags:
      - employeeDocuments
      summary: 'Step 1 of an upload: requests one presigned upload URL per file.'
      description: '> **Requires the `employee_documents` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        Uploading is a three-step flow: `POST uploadUrl` to obtain a presigned URL per file, `PUT` the
        bytes straight to that URL (replaying `required_headers` verbatim), then `POST employeeDocuments/`
        to confirm. File bytes never pass through this API.


        Every permission question is settled here, before a writable URL exists: the feature gate, the
        caller''s scope over each target employee, and whether this caller may file the chosen category.
        What the request says about a file — its name, size and type — is only a claim and decides nothing.'
      operationId: employeeDocumentsPostUploadUrl
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/employeeDocuments_preparedUpload'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '400':
          description: 'A field could not be accepted: a malformed date, a `period` outside `YYYY-MM`,
            a non-positive `user_id`, an empty `files` array, a declared size over the limit, or a `title`
            / file name longer than 255 characters. On confirm this is also the answer to a `pending_upload_id`
            that is unknown or expired, and to a stored object that failed validation.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  Success:
                    type: boolean
                    example: false
                  ErrorMessage:
                    type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/employeeDocuments_uploadUrl'
      x-timetac-feature: employee_documents
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id020
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/uploadUrl'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"category_id\": 1,\n    \"files\": [\n      {}\n    ]\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/uploadUrl',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"category_id\": 1,\n    \"files\"\
          : [\n      {}\n    ]\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}:\
          \ ${await res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/uploadUrl',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"category_id\": 1,\n\
          \      \"files\": [\n        {}\n      ]\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/uploadUrl',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'category_id' => 1,\n        'files'\
          \ => [[]],\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/employeeDocuments/:
    post:
      tags:
      - employeeDocuments
      summary: 'Step 3 of an upload: turns an uploaded file into a document.'
      description: '> **Requires the `employee_documents` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        Uploading is a three-step flow: `POST uploadUrl` to obtain a presigned URL per file, `PUT` the
        bytes straight to that URL (replaying `required_headers` verbatim), then `POST employeeDocuments/`
        to confirm. File bytes never pass through this API.


        Takes the pending-upload id and the document''s metadata, and nothing about where the bytes are
        — the employee, the category and the storage location were fixed when the URL was signed. The
        stored object is validated first: at most 20971520 bytes, and its content must actually be one
        of `application/pdf`, `image/png`, `image/jpeg`. Which date fields are allowed or mandatory is
        the category''s decision.'
      operationId: employeeDocumentsPostConfirm
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/employeeDocuments_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '400':
          description: 'A field could not be accepted: a malformed date, a `period` outside `YYYY-MM`,
            a non-positive `user_id`, an empty `files` array, a declared size over the limit, or a `title`
            / file name longer than 255 characters. On confirm this is also the answer to a `pending_upload_id`
            that is unknown or expired, and to a stored object that failed validation.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  Success:
                    type: boolean
                    example: false
                  ErrorMessage:
                    type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/employeeDocuments_confirm'
      x-timetac-feature: employee_documents
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id020
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/' \\\
          \n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\
          \    \"pending_upload_id\": 1,\n    \"title\": \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"pending_upload_id\": 1,\n    \"\
          title\": \"string\"\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}:\
          \ ${await res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"pending_upload_id\"\
          : 1,\n      \"title\": \"string\"\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'pending_upload_id' => 1,\n      \
          \  'title' => 'string',\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/employeeDocuments/{id}:
    get:
      tags:
      - employeeDocuments
      summary: Reads one employee document.
      description: '> **Requires the `employee_documents` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        Metadata only — use `{id}/download` for the file itself.'
      operationId: employeeDocumentsGetGet
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/employeeDocuments_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '422':
          description: No such document, or the caller may not see it — the two are deliberately indistinguishable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  Success:
                    type: boolean
                    example: false
                  ErrorMessage:
                    type: string
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
        description: Id of the document.
      x-timetac-feature: employee_documents
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id020
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
    put:
      tags:
      - employeeDocuments
      summary: Updates a document's category, title and dates.
      description: '> **Requires the `employee_documents` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        The file itself cannot be replaced; upload a new document instead. A date field whose key is absent
        from the body keeps its stored value, so a partial update cannot silently clear one — send the
        key as `null` to clear it deliberately.'
      operationId: employeeDocumentsPutUpdate
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/employeeDocuments_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '400':
          description: 'A field could not be accepted: a malformed date, a `period` outside `YYYY-MM`,
            a non-positive `user_id`, an empty `files` array, a declared size over the limit, or a `title`
            / file name longer than 255 characters. On confirm this is also the answer to a `pending_upload_id`
            that is unknown or expired, and to a stored object that failed validation.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  Success:
                    type: boolean
                    example: false
                  ErrorMessage:
                    type: string
        '422':
          description: No such document, or the caller may not see it — the two are deliberately indistinguishable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  Success:
                    type: boolean
                    example: false
                  ErrorMessage:
                    type: string
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
        description: Id of the document.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/employeeDocuments_update'
      x-timetac-feature: employee_documents
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id020
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN' \\\n  -H 'Content-Type: application/json' \\\n  -d\
          \ '{\n    \"category_id\": 1,\n    \"title\": \"string\"\n  }'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID',\
          \ {\n  method: 'PUT',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type':\
          \ 'application/json',\n  },\n  body: JSON.stringify({\n    \"category_id\": 1,\n    \"title\"\
          : \"string\"\n  }),\n});\n\nif (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await\
          \ res.text()}`);\n}\n\nconst { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.put(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n    json={\n      \"category_id\": 1,\n\
          \      \"title\": \"string\"\n    },\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID',\n\
          \    CURLOPT_CUSTOMREQUEST => 'PUT',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => [\n        'Authorization: Bearer '.$token,\n        'Content-Type: application/json',\n\
          \    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'category_id' => 1,\n        'title'\
          \ => 'string',\n    ]),\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n\
          curl_close($ch);\n\nif (false === $response || $status >= 400) {\n    throw new RuntimeException('TimeTac\
          \ API '.$status.': '.$response);\n}\n\n$results = json_decode($response, true)['Results'] ??\
          \ [];"
  /V6/employeeDocuments/{id}/download:
    get:
      tags:
      - employeeDocuments
      summary: Downloads the document's file.
      description: '> **Requires the `employee_documents` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        Streams the stored bytes as an attachment. Unlike every other endpoint this answers with the file
        itself rather than the JSON envelope; the `Content-Type` is the type detected when the document
        was confirmed.'
      operationId: employeeDocumentsGetDownload
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
        description: Id of the document.
      responses:
        '200':
          description: The file, as an attachment.
          content:
            application/pdf:
              schema:
                type: string
                format: binary
            image/png:
              schema:
                type: string
                format: binary
            image/jpeg:
              schema:
                type: string
                format: binary
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '422':
          description: No such document, or the caller may not see it — the two are deliberately indistinguishable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  Success:
                    type: boolean
                    example: false
                  ErrorMessage:
                    type: string
        '487':
          description: Endpoint not available - Account migration / maintenance
      x-timetac-feature: employee_documents
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id020
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID/download'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID/download',\
          \ {\n  method: 'GET',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.get(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID/download',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID/download',\n\
          \    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/employeeDocuments/{id}/archive:
    post:
      tags:
      - employeeDocuments
      summary: Archives a document.
      description: '> **Requires the `employee_documents` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        Archived documents stay readable and downloadable, but drop out of `read` unless `include_archived`
        is set. Takes no request body.'
      operationId: employeeDocumentsPostArchive
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/employeeDocuments_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '422':
          description: No such document, or the caller may not see it — the two are deliberately indistinguishable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  Success:
                    type: boolean
                    example: false
                  ErrorMessage:
                    type: string
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
        description: Id of the document.
      x-timetac-feature: employee_documents
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id020
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID/archive'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID/archive',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID/archive',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID/archive',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/employeeDocuments/{id}/unarchive:
    post:
      tags:
      - employeeDocuments
      summary: Restores an archived document.
      description: '> **Requires the `employee_documents` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        Takes no request body.'
      operationId: employeeDocumentsPostUnarchive
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/employeeDocuments_read'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '422':
          description: No such document, or the caller may not see it — the two are deliberately indistinguishable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  Success:
                    type: boolean
                    example: false
                  ErrorMessage:
                    type: string
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
        description: Id of the document.
      x-timetac-feature: employee_documents
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id020
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID/unarchive'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID/unarchive',\
          \ {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\nif\
          \ (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\nconst\
          \ { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.post(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID/unarchive',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/ID/unarchive',\n\
          \    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
  /V6/employeeDocuments/delete/{id}:
    delete:
      tags:
      - employeeDocuments
      summary: Deletes a document and its file.
      description: '> **Requires the `employee_documents` feature.** Enabled by default on Standard, Advanced.
        Needs a Time & Attendance seat. This endpoint is unavailable when the feature is off.


        Permanent: the stored file is removed as well. Archive the document instead if it should merely
        drop out of the default listing. Answers with the deleted document''s id.'
      operationId: employeeDocumentsDeleteDelete
      responses:
        '200':
          description: Executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  Host:
                    type: string
                  Success:
                    type: boolean
                  SuccessNested:
                    type: boolean
                  NumResults:
                    type: integer
                  NumResultsNested:
                    type: integer
                  ResourceName:
                    type: string
                  RequestStartTime:
                    type: string
                    format: date-time
                  RequestEndTime:
                    type: string
                    format: date-time
                  ServerTimeZone:
                    type: string
                  Results:
                    type: array
                    items:
                      $ref: '#/components/schemas/employeeDocuments_delete'
        '401':
          $ref: '#/components/responses/error401'
        '403':
          $ref: '#/components/responses/error403'
        '410':
          $ref: '#/components/responses/error410'
        '487':
          description: Endpoint not available - Account migration / maintenance
        '422':
          description: No such document, or the caller may not see it — the two are deliberately indistinguishable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  Success:
                    type: boolean
                    example: false
                  ErrorMessage:
                    type: string
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
        description: Id of the document.
      x-timetac-feature: employee_documents
      x-timetac-scope: endpoint
      x-timetac-provenance: code
      x-timetac-tiers:
      - Standard
      - Advanced
      x-timetac-seats: *id020
      x-badges:
      - name: Standard / Advanced
        position: after
        color: '#0064de'
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/delete/ID'\
          \ \\\n  -H 'Authorization: Bearer $TOKEN'"
      - lang: JavaScript
        source: "const res = await fetch('https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/delete/ID',\
          \ {\n  method: 'DELETE',\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\n\n\
          if (!res.ok) {\n  throw new Error(`TimeTac API ${res.status}: ${await res.text()}`);\n}\n\n\
          const { Results } = await res.json();"
      - lang: Python
        source: "import requests\n\nres = requests.delete(\n    'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/delete/ID',\n\
          \    headers={'Authorization': f'Bearer {token}'},\n)\nres.raise_for_status()\nresults = res.json()['Results']"
      - lang: PHP
        source: "<?php\n\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => 'https://sandbox-plus-api.timetac.com/{account}/V6/employeeDocuments/delete/ID',\n\
          \    CURLOPT_CUSTOMREQUEST => 'DELETE',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER\
          \ => ['Authorization: Bearer '.$token],\n]);\n\n$response = curl_exec($ch);\n$status = curl_getinfo($ch,\
          \ CURLINFO_RESPONSE_CODE);\ncurl_close($ch);\n\nif (false === $response || $status >= 400) {\n\
          \    throw new RuntimeException('TimeTac API '.$status.': '.$response);\n}\n\n$results = json_decode($response,\
          \ true)['Results'] ?? [];"
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
  responses:
    error401:
      description: Unauthorized access
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error401'
    error403:
      description: No permission for this specific endpoint
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error403'
    error410:
      description: Endpoint not available - This API endpoint existed in previous API versions, but not
        in a current version
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error410'
    error497:
      description: Refresh token has been expired, deleted or tried to issue a new access token with the
        refresh token but for a different user
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error497'
  schemas:
    authentication_getaccesstoken:
      type: object
      title: AuthenticationGetAccessToken
      properties:
        grant_type:
          type: string
          enum:
          - client_credentials
        client_id:
          type: string
        client_secret:
          type: string
    absenceDays:
      type: object
      title: AbsenceDays (NEW)
      properties:
        id:
          type: integer
        user_id:
          type: integer
        user_department_id:
          type: integer
        user_role_id:
          type: integer
        date:
          type: string
          format: date
        type:
          type: string
        subtype:
          type: string
        other_paid_leave_id:
          type: integer
        value:
          type: number
        value_unit:
          type: string
        request_id:
          type: integer
        status:
          type: integer
        comment:
          type: string
        begin:
          type: string
        updated:
          type: string
          format: date-time
        from_date:
          type: string
          format: date
        data:
          type: object
    absenceEntitlements:
      type: object
      title: AbsenceEntitlements (NEW)
      properties:
        user_id:
          type: string
          description: User ID or comma-separated list of user IDs to filter by
        start_date:
          type: string
          format: date
          description: Start date for the date range filter (defaults to Jan 1 of current year)
        end_date:
          type: string
          format: date
          description: End date for the date range filter (defaults to Dec 31 of current year)
        type_id:
          type: integer
          description: Absence type ID to filter results. 1=vacation and 3=other paid leave including
            sick leave subtypes. Does not affect summary KPIs or open requests count.
    absenceInsights:
      type: object
      title: AbsenceInsights (NEW)
      properties:
        user_id:
          type: string
          description: User ID or comma-separated list of user IDs to filter by
        start_date:
          type: string
          format: date
          description: Start date for the date range filter (defaults to Jan 1 of current year)
        end_date:
          type: string
          format: date
          description: End date for the date range filter (defaults to Dec 31 of current year)
        type_id:
          type: integer
          description: Absence type ID to filter results. 1=vacation and 3=other paid leave including
            sick leave subtypes. Does not affect summary KPIs or open requests count.
    absences:
      type: object
      title: Absences
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        type_id:
          type: integer
          description: 'The type of absence. This is the absence_type_id of an absenceTypes entry - NOT
            its id primary key. Reading absenceTypes returns both: id is the row key (1000+) while absence_type_id
            is the value to send here. 1 = holiday 2 = overtime_reduction 3 = other paid leaves'
        subtype_id:
          type: integer
          description: The absence subtype. This is the absence_subtype_id of an absenceTypes entry -
            NOT its id primary key. Defaults to 0 which is the only valid value for types that define
            no subtypes.
        user_id:
          type: integer
          description: The ID of the user this request belongs to. These IDs can be retrieved by “GET
            users/get”.
        replacement_user_id:
          type: integer
        request_user_department_id:
          type: integer
        request_user_role_id:
          type: integer
        created:
          type: string
          format: date-time
        status:
          type: integer
          description: The status of the absence. STATUS_OPEN = 0, STATUS_GRANTED = 1, STATUS_DECLINED
            = 2, STATUS_CANCELED = 3
        eau_doctors_confirmation_checked:
          type: boolean
        granted_user_id:
          type: integer
          description: The ID of the user this request was approved by. These IDs can be retrieved by
            "GET users/get".
        canceled_user_id:
          type: integer
        granted_as_substitute_user_id:
          type: integer
        granted_timestamp:
          type: string
          description: The timestamp the request was granted at.
        request_comment:
          type: string
          description: An optional comment added by the requesting user
        granted_comment:
          type: string
          description: An optional comment added by the user who approved/declined the request.
        from_date:
          type: string
          format: date
          description: The start date of the requested timeframe
        to_date:
          type: string
          format: date
          description: The end date of the requested timeframe
        duration:
          type: number
          description: The requested duration of workdays/time
        request_partial_begin_duration:
          type: number
        request_partial_end_duration:
          type: number
        duration_unit:
          type: string
          description: The unit the duration was measured in d=>days hs=>hours.
        begin:
          type: string
        substitute_enabled:
          type: boolean
        individual_value_1:
          type: string
        is_multistage_request:
          type: boolean
        chain_level:
          type: integer
        updated:
          type: string
          format: date-time
          description: The timestamp the request was edited.
        inherited_user_ids:
          type: string
        assigned_to_me:
          type: boolean
          description: Whether the logged-in user is responsible for deciding this request.
    absenceTypes:
      type: object
      title: AbsenceTypes
      properties:
        id:
          type: integer
        absence_type_id:
          type: integer
          description: The ID of the existing dataset.
        absence_subtype_id:
          type: integer
          description: The ID of the existing dataset.
        absence_group_id:
          type: integer
          description: The ID of the existing dataset.
        sort_order:
          type: integer
          description: Sort order of the leave types in the other paid leave dropdown. Startable other
            paid leaves like "doctors visit i" (is_startable = 1 and is_paid_non_working = 1 in pm_tasks_subprojects)
            MUST be at the end of the drop down
        name_const:
          type: string
          description: A translation constant or the String of the Leave type which should appear in the
            dropdown for applying the other paid leave.
        abbreviation_const:
          type: string
          description: A translation constant or the String of the abbrevation of the Leave type which
            will be used in the timesheet accounting and as a column header in user statistics.
        show_in_selection:
          type: boolean
          description: Entries which should be shown in the drop down of timesheet accounting.
        cost_acc_task_id:
          type: integer
          description: The task_id which will be used to automatically create timestamps based on the
            absence.
        enabled_for_requests:
          type: boolean
          description: Leaves which will show up in the dropdown for applying an other paid leave.
        add_to_working_hours:
          type: boolean
          description: If the leave should be added to working hours, typically every leave should be
            added to working hours.
        allow_tracking_more_then_target_working_hours:
          type: boolean
          description: If 0, the user cannot enter more time of the day of absence as the target working
            hour according to his working time model (e.g. for sickness allow_tracking_more_then_target_working_hours
            should be 1, as by law it is prohibited to work during sickness)
        request_type:
          type: string
          description: 'WORKFLOW: a user needs to apply for the absence and the responsible manager needs
            to handle the request'
        allow_entry_on_non_working_days:
          type: boolean
        public_leave_type:
          type: boolean
          description: 'Whether the type of absence ALWAYS will be shown in the team calendar independently
            of the user setting: "Show type of absence..."'
        comment_is_mandatory:
          type: boolean
          description: Whether the comment field in the application window needs to be filled out by the
            applicant.
        reject_request_comment_is_mandatory:
          type: boolean
        show_day_amount_config:
          type: string
          description: This setting tells which days should be shown in the request window for the duration.
            Defaults are 0.25, 0.50, 0.75 and 1. Amounts can be added, removed or changed. The value needs
            to be a valid JSON string. The durations are percentage digits separated by a comma. (so for
            0.10 add 10)
        duration_unit:
          type: string
        enable_user_limitations:
          type: boolean
          description: We added support to limit the amount of days per period for other paid leaves and
            users. To enable this feature this config needs to be set to 1. But to work as it should,
            the user_limitations_config also needs to be setup. Wenn set to 1, all users get default entries
            into pm_other_paid_leave_user_limitations with default cycle id 0 and max days 0. It will
            not take the settings from user_limitations_config!
        cycle_id:
          type: integer
          description: The id of a workingTimeCycles entry (1 weekly, 2 monthly, 3 quarterly, 4 yearly).
            This is the period the limit applies to.
        cycle_max_days:
          type: integer
          description: The maximum amount of days the user can enter in the cycle.
        user_limitations_config:
          type: string
          description: With enable_user_limitation config combination, this config controls if the user
            can have negative saldo and what are the default limitations for the user. We can separate
            the users based on users attributes (like department_id, internal_user_group etc). The cycle_id
            is the id of a workingTimeCycles entry and tells the period, the cycle_max_days controls the
            amount of days the user can enter.
        enable_for_substitute_mode:
          type: boolean
          description: Whether to enable/disable the substitute mode for the leave type. e.g. usually
            during the absence home office we do not need the substitute to handle all requests.
        send_email_notification_to_responsible_manager:
          type: boolean
          description: If request_type = "USER" and the user enters an absence, a notification email will
            be sent to the responsible manager.
        send_email_notification_to_user_if_entered_by_manager:
          type: boolean
          description: If a manager enters an absence for somebody else, this person will be notified
            by email of this entry.
        color:
          type: string
          description: The HEX code for the color to be shown in the holiday planners.
        icon:
          type: string
          description: A string to represent the icon.
        restrict_for_country:
          type: boolean
          description: 'Deprecated and read-only: the country restriction for other paid leaves is no
            longer supported. The stored value is returned as is but has no effect; values sent on create
            or update are ignored.'
        absence_window_show_replacement:
          type: boolean
          description: If a replacement is needed for this leave.
        individual_value_1:
          type: string
        is_visible_for_edit:
          type: boolean
    annualHoursHistory:
      type: object
      title: AnnualHoursHistory
      properties:
        id:
          type: integer
        user_id:
          type: integer
          description: The ID of the user associated with the change.
        quota_value:
          type: integer
          description: The quota value associated with the change.
        valid_from:
          type: string
          format: date
          description: The date from which the change is valid.
        created_at:
          type: string
          format: date-time
          description: The date of the change.
    automaticBreakTemplates:
      type: object
      title: AutomaticBreakTemplates
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        templateName:
          type: string
        dryRun:
          type: boolean
        active:
          type: boolean
        editable:
          type: boolean
    bookings:
      type: object
      title: Bookings
      properties:
        id:
          type: integer
          description: The ID of the booking entry
        user_id:
          type: integer
          description: The ID of the user
        task_id:
          type: integer
          description: The ID of General Activity task
        project_task_id:
          type: integer
          description: The ID of Project Task
        start_time:
          type: string
          format: date-time
          description: Start date and time
        end_time:
          type: string
          format: date-time
          description: End date and time
        duration:
          type: integer
          description: Duration in seconds
        start_timezone:
          type: string
          description: Timezone for start time
        end_timezone:
          type: string
          description: Timezone for end time
        working:
          type: boolean
          description: Whether this is working time
        break:
          type: boolean
          description: Whether this is a break
        paid:
          type: boolean
          description: Whether this is paid time
        overtime:
          type: boolean
          description: Whether this counts as overtime
        billable:
          type: boolean
          description: Whether this is billable time
        is_inside_target_working_hours:
          type: boolean
          description: Whether this timer is inside target working hours
        is_inside_max_allowed_hours:
          type: boolean
          description: Whether this timer is inside max allowed working hours
        is_inside_allowed_working_times:
          type: boolean
          description: False when the split falls outside the window nominalHours reports as allowed_working_times
            for that day.
    budgets:
      type: object
      title: Budgets
      properties:
        id:
          type: integer
        name:
          type: string
        description:
          type: string
        metric:
          type: string
        target:
          type: integer
        from_date:
          type: string
          format: date
        to_date:
          type: string
          format: date
        interval:
          type: string
        created_by:
          type: integer
    changeLogs:
      type: object
      title: ChangeLogs
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        table_name:
          type: string
        action:
          type: string
        resource_id:
          type: integer
        resource_user_id:
          type: integer
        actor_id:
          type: integer
        row_id:
          type: integer
        column_name:
          type: string
        old_value:
          type: string
        new_value:
          type: string
        timestamp:
          type: string
          format: date-time
        current:
          type: boolean
        public:
          type: boolean
    changeTimeTrackingRequests:
      type: object
      title: ChangeTimeTrackingRequests
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        type:
          type: string
        time_tracking_id:
          type: integer
        request_user_id:
          type: integer
        granted_user_id:
          type: integer
        granted_as_substitute_user_id:
          type: integer
        new_start_time:
          type: string
          format: date-time
        new_end_time:
          type: string
          format: date-time
        old_start_time:
          type: string
          format: date-time
        old_end_time:
          type: string
          format: date-time
        new_start_time_timezone_id:
          type: integer
          description: pm_timezones id the proposed start time is expressed in, taken from the referenced
            timer.
        new_start_timezone:
          type: string
          description: IANA name (continent/city) of new_start_time_timezone_id.
        new_end_time_timezone_id:
          type: integer
          description: pm_timezones id the proposed end time is expressed in. Null while the timer is
            still running.
        new_end_timezone:
          type: string
          description: IANA name (continent/city) of new_end_time_timezone_id.
        old_start_time_timezone_id:
          type: integer
          description: pm_timezones id the current start time is expressed in. Null for type ADD, which
            has no prior state.
        old_start_timezone:
          type: string
          description: IANA name (continent/city) of old_start_time_timezone_id.
        old_end_time_timezone_id:
          type: integer
          description: pm_timezones id the current end time is expressed in. Null for type ADD, and while
            the timer is still running.
        old_end_timezone:
          type: string
          description: IANA name (continent/city) of old_end_time_timezone_id.
        request_timestamp:
          type: string
          format: date-time
        status:
          type: string
        request_user_comment:
          type: string
        granted_user_comment:
          type: string
        data_changed:
          type: string
          format: date-time
          description: Date and time of last change
        inherited_user_ids:
          type: string
        assigned_to_me:
          type: boolean
          description: Whether the logged-in user is responsible for deciding this request.
    departments:
      type: object
      title: Departments (NEW)
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        department_name:
          type: string
          description: The human readable name of the department.
        active:
          type: boolean
          description: If department is visible to the user or not.
        is_default:
          type: boolean
          description: Flag if this is default department
        supervisor_id:
          type: integer
          description: The ID of the user who is supervising this department.
        supervisor_assistant_id:
          type: integer
          description: The ID of the user who is assisting with supervising this department.
        mother_id:
          type: integer
          description: The ID of an optional higher level department in a hierarchical structure.
        sort_order:
          type: integer
        view_order:
          type: number
        node_path:
          type: string
        individual_value_1:
          type: string
        data_changed:
          type: string
          format: date-time
    favouriteTasks:
      type: object
      title: FavouriteTasks
      properties:
        id:
          type: integer
        user_id:
          type: integer
        node_id:
          type: integer
        origin:
          type: string
        _cascade_children:
          type: boolean
          description: when unpinning a project, also unpin its activities that the user had pinned individually.
            Without it only the inherited rows are removed and individual pins survive. No effect on a
            node without children — there is nothing to cascade to.
    features:
      type: object
      title: Features
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        name:
          type: string
          description: The Feature name as displayed in frontend.
        description:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    generalSettingsChangeLog:
      type: object
      title: GeneralSettingsChangeLog
      properties:
        id:
          type: integer
        setting_type:
          type: string
        old_setting_value:
          type: string
        new_setting_value:
          type: string
        changed_by_user_id:
          type: integer
        change_timestamp:
          type: string
          format: date-time
    generalSettings:
      type: object
      title: GeneralSettings
      properties:
        id:
          type: integer
        group_const:
          type: string
        setting_type:
          type: string
        setting_value:
          type: string
        updatable_config:
          type: string
        sort_order:
          type: integer
        datatype:
          type: string
        allowable_values:
          type: string
        updatable:
          type: boolean
        super_user:
          type: boolean
        description:
          type: string
        default_value:
          type: string
        value_range:
          type: string
        text:
          type: string
        type:
          type: integer
        update_value:
          type: string
        update_query:
          type: string
        data_changed:
          type: string
          format: date-time
        user_id:
          type: integer
    geofences:
      type: object
      title: Geofences
      properties:
        task_ids:
          type: object
    geofenceToNodes:
      type: object
      title: GeofenceToNodes
      properties:
        id:
          type: integer
        geofence_id:
          type: integer
        node_id:
          type: integer
        updated:
          type: string
          format: date-time
    holidayAdjustment:
      type: object
      title: HolidayAdjustment
      properties:
        id:
          type: integer
        user_id:
          type: integer
        user_department_id:
          type: integer
        user_role_id:
          type: integer
        date:
          type: string
          format: date
        type:
          type: string
        subtype:
          type: string
        other_paid_leave_id:
          type: integer
        value:
          type: number
        value_unit:
          type: string
        request_id:
          type: integer
        status:
          type: integer
        comment:
          type: string
        begin:
          type: string
        updated:
          type: string
          format: date-time
        from_date:
          type: string
          format: date
        data:
          type: object
    hourTypes:
      type: object
      title: HourTypes (NEW)
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        order_by:
          type: integer
          description: Defines the order in timesheet report. If setting timesheet_accounting_distribute_compensation_time_to_overtime_slots
            is activated for the account, the order_by decides in which descending order the slots excess_work
            and overtime_1 till overtime_6 are deducted.
        slotName:
          type: string
        name:
          type: string
        slotType:
          type: integer
          description: '0: special (begin_time, end_time, break, user_defined_text_X), 1: totals, 2: working
            time, 3: overtime, 4: special days'
        usableForTimesheetTemplates:
          type: boolean
          description: If 1, the slot can be configured in FE to be used in timesheet template definitions.
        includeInDailyBalance:
          type: boolean
          description: If 1, time affects the daily_balance and total_working_time_balance.
        additionPercentage:
          type: number
          format: float
          description: Defines the automatically calculated additions for the slot. Additions are not
            included in daily balance, but included in working_time_total_balance.
        abbreviation:
          type: string
        tooltip:
          type: string
        legend:
          type: string
        sageAbsenceKey:
          type: string
          description: Absence key for Sage export.
        sageWageTypeId:
          type: integer
          description: Wage type for Sage Export. Slot is only considered in the sage export when wage
            type is set.
        bmdAbsenceTypeId:
          type: integer
          description: Absence type identification given by BMD for export.
        bmdWageTypeId:
          type: integer
          description: Wage type for BMD Export. Slot is only considered in the BMD export when wage type
            is set.
        brzWageTypeId:
          type: integer
          description: Wage type for BRZ Export. Slot is only considered in the BRZ export when wage type
            is set.
        addisonWageTypeId:
          type: integer
          description: Wage type for Addison Export. Slot is only considered in the Addison export when
            wage type is set.
        individualValue1:
          type: string
          description: Arbitrary data for slots.
        showInWorkingOverview:
          type: boolean
          description: If 1, column will be displayed in timesheet report.
        showInUserStatistics:
          type: boolean
          description: If 1, column will be shown in user statistics report, summed up for the selected
            timeframe.
        showInDepartmentStatistics:
          type: boolean
          description: If 1, column will be shown in department statistics report, summed up for the selected
            timeframe.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    jobQueueExecutionLogs:
      type: object
      title: JobQueueExecutionLogs
      properties:
        id:
          type: integer
          description: The unique ID of the job execution log entry.
        job_queue_id:
          type: integer
          description: Original job_queue.id (no FK enforced).
        job_name:
          type: string
          description: Human-readable name of the job.
        status:
          type: string
          description: Final status of the job (waiting, scheduled, success, failed, partial).
        started_at:
          type: string
          format: date-time
          description: When job started processing.
        completed_at:
          type: string
          format: date-time
          description: When job completed (success or fail).
        added_by_user_id:
          type: integer
          description: User who triggered the job, if applicable.
        job_params:
          type: object
          description: Serialized input parameters of the job.
        report:
          type: string
          description: Human-readable result log (e.g., success messages, counts).
        file_info:
          type: string
          description: metadata regarding generated files.
        source:
          type: string
          description: Source of the job (manual, frontend, system).
        created_at:
          type: string
          format: date-time
          description: When this log entry was created.
        updated_at:
          type: string
          format: date-time
          description: When this log entry was last modified.
    languages:
      type: object
      title: Languages
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        name:
          type: string
          description: The key for translation, as it is now displayed in frontend.
        code:
          type: string
          description: The string representation of a timezone in format (continent/city)
        sort_order:
          type: integer
          description: Sort order of languages
        language:
          type: string
          description: Translated language
    nfcTransponders:
      type: object
      title: NfcTransponders (NEW)
      properties:
        id:
          type: integer
          description: A unique identifier of the transponder. Automatically assigned by the API when
            the transponder is created.
        mode_id:
          type: integer
          description: The type of transponder. One of 2 = assigned to a user 3 = assigned to a task 4
            = assigned to a project. No other value is accepted.
        unique_id:
          type: string
        user_id:
          type: integer
        task_id:
          type: integer
        start_task_afterwards:
          type: integer
        project_id:
          type: integer
        checkpoint_id:
          type: integer
        skill_id:
          type: integer
        client_unique_id:
          type: string
        created:
          type: string
          format: date-time
        data_changed:
          type: string
          format: date-time
    nominalHours:
      type: object
      title: NominalHours
      properties:
        id:
          type: integer
        user_id:
          type: integer
        start_date:
          type: string
          format: date
        end_date:
          type: string
          format: date
        date:
          type: string
          format: date
        allowed_working_times:
          type: string
        core_hours:
          type: string
        non_working_times:
          type: string
    notifications:
      type: object
      title: Notifications
      properties:
        id:
          type: integer
        user_id:
          type: integer
        notification_type:
          type: integer
        is_response:
          type: boolean
        notification_timestamp:
          type: string
          format: date-time
        status:
          type: integer
        assoc_id:
          type: integer
        user_id_sender:
          type: integer
        user_id_responder:
          type: integer
        processed:
          type: boolean
        email_send_status:
          type: integer
        email_send_timestamp:
          type: string
          format: date-time
        executable_1_id:
          type: integer
        executable_2_id:
          type: integer
        data_changed:
          type: string
          format: date-time
        inherited_user_ids:
          type: string
        seen:
          type: boolean
        _skip_old_processed:
          type: boolean
    oAuthClients:
      type: object
      title: OAuthClients
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        client_name:
          type: string
          description: The Client name as displayed in frontend.
        client_id:
          type: string
          description: The client id
        expire_date:
          type: string
          format: date
          description: Expire date of the client secret
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
    otherPaidLeaveLimitations:
      type: object
      title: OtherPaidLeaveLimitations
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        absence_subtype_id:
          type: integer
          description: The other paid absence subtype id
        user_id:
          type: integer
          description: The id of the maped user
        cycle_id:
          type: integer
          description: Monthly or Anually
        cycle_max_days:
          type: integer
          description: number of days in the cycle
    paidBreaksHistory:
      type: object
      title: PaidBreaksHistory
      properties:
        id:
          type: integer
        user_id:
          type: integer
          description: The ID of the user associated with the change.
        quota_value:
          type: integer
          description: The quota value associated with the change.
        valid_from:
          type: string
          format: date
          description: The date from which the change is valid.
        created_at:
          type: string
          format: date-time
          description: The date of the change.
    payrollClientUsers:
      type: object
      title: PayrollClientUsers
      properties:
        id:
          type: integer
        user_id:
          type: integer
          description: The assigned employee.
        payroll_client_id:
          type: integer
          description: The Mandant the employee is assigned to.
        payroll_personnel_number:
          type: string
          description: Personnel number of the employee in this Mandant; NULL while not yet assigned.
        valid_from:
          type: string
          description: Date from which this assignment applies.
        datev_synced_at:
          type: string
          description: When the assignment was last confirmed against the DATEV employee snapshot; NULL
            = not synchronised. Written by the employees read and every assignment write, never by this
            resource.
        department_id:
          type: integer
          description: Current department of the employee, for orientation in the assignment table.
        created_at:
          type: string
        updated_at:
          type: string
    permissionResolveAbsenceTypesAndUsers:
      type: object
      title: PermissionResolveAbsenceTypesAndUsers
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        resolve_question_id:
          type: integer
          description: The ID of the existing dataset.
        subject_user_id:
          type: integer
          description: The ID of the existing dataset.
        resolve_absence_type_id:
          type: integer
          description: The ID of the existing dataset.
        resolve_absence_subtype_id:
          type: integer
          description: The ID of the existing dataset.
        resolve_user_id:
          type: integer
        resolve_absence_type_wildcard:
          type: string
        resolve_absence_subtype_wildcard:
          type: string
        resolve_user_wildcard:
          type: string
          description: The ID of the existing dataset
        inherited_user_ids:
          type: string
    permissionResolveDepartments:
      type: object
      title: PermissionResolveDepartments
      properties:
        id:
          type: integer
        resolve_question_id:
          type: integer
        subject_user_id:
          type: integer
        resolve_department_id:
          type: integer
        resolve_department_wildcard:
          type: string
    permissionResolveEntities:
      type: object
      title: PermissionResolveEntities
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        resolve_question_id:
          type: integer
          description: Question id from pm_acl_tt_resolve_questions
        subject_user_id:
          type: integer
          description: For which user we are resolving question
        resource_id:
          type: integer
          description: For which resource we are resolving question
        resolve_entity_id:
          type: integer
          description: Entity id on which subject_user_id has some permission.
        resolve_entity_wildcard:
          type: string
          description: If subject_user_id have permissions for all entities then we will use wildcard.
            (e.g. * )
    permissionResolveOauthClients:
      type: object
      title: PermissionResolveOauthClients
      properties:
        id:
          type: integer
        resolve_question_id:
          type: integer
        subject_user_id:
          type: integer
        resolve_oauth_client_id:
          type: integer
        resolve_oauth_client_wildcard:
          type: string
    permissionResolveProjectsAndTasks:
      type: object
      title: PermissionResolveProjectsAndTasks
      properties:
        id:
          type: integer
        resolve_question_id:
          type: integer
        subject_user_id:
          type: integer
        resolve_node_id:
          type: integer
        resolve_node_wildcard:
          type: string
    permissionResolveQuestions:
      type: object
      title: PermissionResolveQuestions
      properties:
        id:
          type: integer
          description: Question name.
        question_name:
          type: string
          description: Question name.
        question_description:
          type: string
          description: Question description.
        question_endpoint:
          type: string
    permissionResolveUsers:
      type: object
      title: PermissionResolveUsers
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        resolve_question_id:
          type: integer
          description: The ID of the existing dataset.
        subject_user_id:
          type: integer
          description: The ID of the existing dataset.
        resolve_user_id:
          type: integer
          description: The ID of the existing dataset.
        resolve_user_wildcard:
          type: string
          description: The ID of the existing dataset.
        inherited_user_ids:
          type: string
    permissions:
      type: object
      title: Permissions
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        user_id:
          type: integer
        resource_name:
          type: string
        permission_name:
          type: string
        permission_scope_id:
          type: integer
          description: Permission scope ID.
        permission_scope_data_1:
          type: integer
          description: Permission scope data 1.
        permission_scope_data_2:
          type: integer
          description: Permission scope data 2.
        permission_scope_data_3:
          type: integer
          description: Permission scope data 3.
    permissionScopes:
      type: object
      title: PermissionScopes
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        name:
          type: string
          description: Scope name.
        string_definition:
          type: string
          description: String definition.
    permissionsProjectsAndTasksPermissions:
      type: object
      title: PermissionsProjectsAndTasksPermissions
      properties:
        task_project_id:
          type: integer
        resource_id:
          type: integer
        permission_id:
          type: integer
        permission_scope_id:
          type: integer
        permission_scope_data_1:
          type: string
          format: comma-separated-integers
    projectMembers:
      type: object
      title: ProjectMembers
      properties:
        id:
          type: integer
        project_id:
          type: integer
        user_id:
          type: integer
        data_changed:
          type: string
          format: date-time
    projects:
      type: object
      title: Projects
      properties:
        is_default:
          type: boolean
        billing_mode:
          type: string
        members_can_modify_billable:
          type: boolean
        internal_rate:
          type: number
        external_rate:
          type: number
        tag_ids:
          type: string
          format: comma-separated-integers
    publicHolidays:
      type: object
      title: PublicHolidays
      properties:
        _skipCheckForExistingAbsencesAndApprovedDatesValidator:
          type: boolean
          description: Magic param to ignore CheckForExistingAbsencesAndApprovedDatesValidator
        id:
          type: integer
          description: The ID of the existing dataset.
        template_id:
          type: integer
          description: The ID of the dataset from which it inherits already defined public holidays.
        date:
          type: string
          format: date
          description: Date of public holiday
        name:
          type: string
          description: A human readable name for the template.
        value:
          type: number
          description: Is it full day or half day
        status:
          type: string
          description: Was holiday deleted or edited
    publicHolidayTemplates:
      type: object
      title: PublicHolidayTemplates (NEW)
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        template_name:
          type: string
          description: A human readable name for the template.
        country_id:
          type: integer
          description: The ID of a country for which that template should be available. These IDs can
            be retrieved from "GET countries/get".
        iso_3166:
          type: string
          description: The code for the country.
        is_default:
          type: boolean
          description: False if the template is created by a user.
        source_id:
          type: integer
          description: The id of the dataset this one was copied from.
        active:
          type: boolean
          description: when the value is 0 the PublicHolidayTemplate is not being used
    recentTasks:
      type: object
      title: RecentTasks
      properties:
        id:
          type: integer
        user_id:
          type: integer
        node_id:
          type: integer
        last_started:
          type: string
          format: date-time
    requestCounts:
      type: object
      title: RequestCounts (NEW)
      properties:
        user_id:
          type: string
          description: User ID or comma-separated list of user IDs to filter by
        start_date:
          type: string
          format: date
          description: Start date for the date range filter (defaults to Jan 1 of current year)
        end_date:
          type: string
          format: date
          description: End date for the date range filter (defaults to Dec 31 of current year)
        type_id:
          type: integer
          description: Absence type ID to filter results. 1=vacation and 3=other paid leave including
            sick leave subtypes. Does not affect summary KPIs or open requests count.
    ssoConfig:
      type: object
      title: SsoConfig
      properties:
        id:
          type: integer
        open_id_login:
          type: string
        login_url:
          type: string
        logout_url:
          type: string
        entity_id:
          type: string
        x509_certificate:
          type: string
        send_email_reminders:
          type: boolean
    tags:
      type: object
      title: Tags
      properties:
        id:
          type: integer
        name:
          type: string
        archived:
          type: boolean
        created_at:
          type: string
        updated_at:
          type: string
        source_tag_ids:
          type: string
          format: comma-separated-integers
        target_tag_id:
          type: integer
    tagToActivity:
      type: object
      title: TagToActivity
      properties:
        id:
          type: integer
        tag_id:
          type: integer
        activity_id:
          type: integer
        created_at:
          type: string
    tagToProject:
      type: object
      title: TagToProject
      properties:
        id:
          type: integer
        tag_id:
          type: integer
        project_id:
          type: integer
        created_at:
          type: string
    tagToTimeEntries:
      type: object
      title: TagToTimeEntries
      properties:
        id:
          type: integer
        tag_id:
          type: integer
        time_entry_id:
          type: integer
        created_at:
          type: string
    tasks:
      type: object
      title: Tasks
      properties:
        is_default:
          type: boolean
        geofence_ids:
          type: object
        internal_rate:
          type: number
        external_rate:
          type: number
        tag_ids:
          type: string
          format: comma-separated-integers
        base_activity_id:
          type: integer
          description: The ID of the general activity this task is based on. Must reference an activity
            directly under the default activities project.
    timesheetAccountings:
      type: object
      title: TimesheetAccountings (NEW)
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        user_id:
          type: integer
          description: The ID of the user this timesheet record belongs to. These IDs can be retrieved
            by "GET users/get".
        department_id:
          type: integer
          description: The department id of the user this timesheet record belongs to. These IDs can be
            retrieved by "GET department/get".
        user_role_id:
          type: integer
        date:
          type: string
          format: date
        approved_by_user:
          type: boolean
        approved_by_admin:
          type: boolean
        approved_by_user_1:
          type: boolean
        ordinary_hours:
          type: number
        target_working_hours:
          type: number
        target_annual_hours:
          type: number
        annual_hours_balance:
          type: number
        begin_time:
          type: string
        end_time:
          type: string
        end_day_offset:
          type: integer
          description: Days past `date` on which `end_time` falls; 1 for a shift ending after midnight
        break:
          type: number
        paid_break:
          type: number
        paid_break_details:
          type: string
        unpaid_break:
          type: number
        unpaid_break_details:
          type: string
        flexible_working_time:
          type: number
        core_working_time:
          type: number
        working_time:
          type: number
        working_time_planned:
          type: number
        user_defined_time_1:
          type: number
        user_defined_time_2:
          type: number
        user_defined_time_3:
          type: number
        user_defined_time_4:
          type: number
        user_defined_time_5:
          type: number
        user_defined_time_6:
          type: number
        user_defined_time_7:
          type: number
        user_defined_time_8:
          type: number
        user_defined_time_9:
          type: number
        user_defined_time_10:
          type: number
        user_defined_time_11:
          type: number
        user_defined_time_12:
          type: number
        excess_work:
          type: number
        excess_work_consumption:
          type: number
        excess_work_adjustments:
          type: number
        excess_work_balance:
          type: number
        overtime_1:
          type: number
        overtime_1_consumption:
          type: number
        overtime_1_adjustments:
          type: number
        overtime_1_balance:
          type: number
        overtime_2:
          type: number
        overtime_2_consumption:
          type: number
        overtime_2_adjustments:
          type: number
        overtime_2_balance:
          type: number
        overtime_3:
          type: number
        overtime_3_consumption:
          type: number
        overtime_3_adjustments:
          type: number
        overtime_3_balance:
          type: number
        overtime_4:
          type: number
        overtime_4_consumption:
          type: number
        overtime_4_adjustments:
          type: number
        overtime_4_balance:
          type: number
        overtime_5:
          type: number
        overtime_5_consumption:
          type: number
        overtime_5_adjustments:
          type: number
        overtime_5_balance:
          type: number
        overtime_6:
          type: number
        overtime_6_consumption:
          type: number
        overtime_6_adjustments:
          type: number
        overtime_6_balance:
          type: number
        total_working_time:
          type: number
        paid_nonworking_time:
          type: number
        paid_nonworking_time_set_by_user:
          type: integer
        total_working_time_incl_paid_non_working_time:
          type: number
        working_time_daily_balance:
          type: number
        working_time_daily_balance_incl_standby:
          type: number
        additions:
          type: number
        overtime_allowance:
          type: number
        overtime_paid:
          type: number
        overtime_reduction:
          type: number
        working_time_total_balance:
          type: number
        public_holiday:
          type: number
        holiday:
          type: number
        holiday_adjustments:
          type: number
        holiday_balance:
          type: number
        tmp_holiday_balance:
          type: number
        sick_leave:
          type: number
        sick_leave_adjustments:
          type: number
        sick_leave_balance:
          type: number
        other_paid_leave:
          type: number
        other_paid_leave_id:
          type: integer
        user_defined_day_1:
          type: number
        user_defined_day_1_adjustments:
          type: number
        user_defined_day_1_balance:
          type: number
        user_defined_day_2:
          type: number
        user_defined_day_2_adjustments:
          type: number
        user_defined_day_2_balance:
          type: number
        user_defined_day_3:
          type: number
        user_defined_day_3_adjustments:
          type: number
        user_defined_day_3_balance:
          type: number
        user_defined_day_4:
          type: number
        user_defined_day_5:
          type: number
        user_defined_day_6:
          type: number
        user_defined_day_7:
          type: number
        user_defined_day_8:
          type: number
        user_defined_day_9:
          type: number
        user_defined_day_10:
          type: number
        user_defined_day_11:
          type: number
        user_defined_day_12:
          type: number
        comment:
          type: string
        data_changed:
          type: string
          format: date-time
        break_law_check:
          type: integer
        break_law_violation:
          type: boolean
        workday:
          type: boolean
        weekday:
          type: integer
        year:
          type: integer
        month:
          type: integer
        week:
          type: integer
        law_limit_daily_hours_violation:
          type: boolean
        law_limit_weekly_hours_violation:
          type: boolean
        core_time_violation:
          type: boolean
        rest_period_violation:
          type: boolean
        rest_period_weekly_violation:
          type: boolean
        current_day_working_time_balance:
          type: number
        plausibility_conflict_violation:
          type: boolean
        has_violation:
          type: boolean
    timesheetAccountingsHistory:
      type: object
      title: TimesheetAccountingsHistory
      properties:
        id:
          type: integer
        date:
          type: string
          format: date
          description: The date of the change.
        user_id:
          type: integer
          description: The ID of the user associated with the change.
        approved_by_user_id:
          type: integer
          description: The ID of the user who approved the change.
        approved_at:
          type: string
          format: date-time
          description: The timestamp when the change was approved.
        approved_field:
          type: integer
          description: The type of change that was approved.
        old_value:
          type: integer
          description: The previous value before the change.
        new_value:
          type: integer
          description: The new value after the change.
        current:
          type: integer
          description: Indicates whether the change is currently active.
    timesheetAccountingSummaries:
      type: object
      title: TimesheetAccountingSummaries
      properties:
        user_id:
          type: integer
        start_date:
          type: string
          format: date
          description: The start date
    timesheetActionLogs:
      type: object
      title: TimesheetActionLogs
      properties:
        id:
          type: integer
        user_id:
          type: integer
        user_department_id:
          type: integer
        user_role_id:
          type: integer
        date:
          type: string
          format: date
        type:
          type: string
        subtype:
          type: string
        other_paid_leave_id:
          type: integer
        value:
          type: number
        value_unit:
          type: string
        request_id:
          type: integer
        status:
          type: integer
        comment:
          type: string
        begin:
          type: string
        updated:
          type: string
          format: date-time
    timeTrackingChangelogs:
      type: object
      title: TimeTrackingChangelogs
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        change_timestamp:
          type: string
          format: date-time
          description: The timetracking this entry was edited.
        change_type:
          type: string
          description: The type of change that was made.
        change_reason_id:
          type: integer
          description: 'The reason why the timer was changed: 0: Default 1: Automatic break calculations
            2: Automatic timer rounding'
        change_user_id:
          type: integer
          description: The ID of the user that changed this timetracking. These IDs can be retrieved by
            "GET users/get".
        tracker_id:
          type: integer
          description: The ID of the timestam belongs to. These IDs can be retrieved by "GET timetrackings/get".
        user_id:
          type: integer
          description: The ID of the user this timetracking belongs to. These IDs can be retrieved by
            "GET users/get".
        task_id:
          type: integer
          description: The ID of the task this timetracking belongs to. These IDs can be retrieved by
            "GET tasks/get".
        start_time:
          type: string
          format: date-time
          description: The timetracking the timer started on before the change.
        new_start_time:
          type: string
          format: date-time
        end_time:
          type: string
          format: date-time
          description: The timetracking the timer ended on before the change.
        new_end_time:
          type: string
          format: date-time
          description: The timetracking the timer ended on after the change.
        duration:
          type: integer
          description: The duration of the timer
        utc_start_time:
          type: string
          format: date-time
          description: The instant start_time denotes, as an ISO-8601 UTC instant.
        new_utc_start_time:
          type: string
          format: date-time
          description: The instant new_start_time denotes, as an ISO-8601 UTC instant. Null on a row written
            before the column existed, where the new side was never recorded as an instant.
        utc_end_time:
          type: string
          format: date-time
          description: The instant end_time denotes, as an ISO-8601 UTC instant. Null when the logged
            entry had no end yet (a timer still running at the time of the change).
        new_utc_end_time:
          type: string
          format: date-time
          description: 'The instant new_end_time denotes, as an ISO-8601 UTC instant. Null when the entry
            still has no end after the change, and on a row written before the column existed. Independent
            of utc_end_time: a stop gives the entry an end the logged row did not have before it.'
        start_timezone:
          type: string
          description: IANA name (continent/city) of the timezone start_time is expressed in.
        new_start_timezone:
          type: string
          description: 'IANA name (continent/city) of the timezone new_start_time is expressed in. Null
            where no after-side zone was recorded: a row written before the column existed, or a delete.'
        end_timezone:
          type: string
          description: IANA name (continent/city) of the timezone end_time is expressed in. Null when
            the logged entry had no end yet (a timer still running at the time of the change, see ORA-166).
        new_end_timezone:
          type: string
          description: 'IANA name (continent/city) of the timezone new_end_time is expressed in. Null
            when the entry still has no end after the change, and where no after-side zone was recorded:
            a row written before the column existed, or a delete. Independent of end_timezone: a stop
            gives the entry an end the logged row did not have before it.'
    timeTrackings:
      type: object
      title: TimeTrackings (NEW)
      properties:
        id:
          type: integer
          description: The ID of the existing dataset. approve and reject additionally require a pending
            change request on that time tracking - given an ID with nothing pending they answer 422 Entity
            does not exist even though the time tracking itself exists.
        user_id:
          type: integer
          description: The ID of the user this timer belongs to. These IDs can be retrieved by "GET users/get"
        department_id:
          type: integer
        department_role_id:
          type: integer
        task_id:
          type: integer
          description: The ID of the task/project the timetrackings belongs to. These IDs can be retrieved
            by "GET projects/get" or "GET tasks/get"
        project_task_id:
          type: integer
          description: The ID of the project task the timetrackings belongs to. These IDs can be retrieved
            by "GET projectTasks/get"
        start_time:
          type: string
          format: date-time
          description: The date and time at which the timer should start. Leave it empty to emulate a
            leaving booking (type = 2)
        end_time:
          type: string
          format: date-time
          description: The date and time at which the timer should end. Leave it empty to emulate a leaving
            booking (type = 2)
        start_time_timezone:
          type: string
        end_time_timezone:
          type: string
        timezone:
          type: string
        is_start_live:
          type: boolean
        is_end_live:
          type: boolean
        time:
          type: string
          format: date-time
        duration:
          type: integer
        status:
          type: integer
          description: 'A flag which marks the status of a timetracking: 1 = still running 2 = ended'
        start_ip:
          type: string
        end_ip:
          type: string
        is_statistic_countable:
          type: boolean
        max_hours_alert:
          type: boolean
        is_billable:
          type: boolean
        internal_cost_user:
          type: number
        internal_cost_task:
          type: number
        external_cost_user:
          type: number
        external_cost_task:
          type: number
        external_rate_user:
          type: number
        external_rate_task:
          type: number
        internal_rate_user:
          type: number
        internal_rate_task:
          type: number
        rate_source:
          type: string
        notes:
          type: string
        input_type:
          type: integer
          description: 'Marks from which input device a timetracking originated: 1 = web app live 2 =
            mobile app 3 = subsequent post 4 = system generated 5 = RFID Terminal 6 = TimeTac API'
        t_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        is_nonworking:
          type: boolean
          description: Defines a non working timestamp if it is set to TRUE (read-only)
        approved_by_admin:
          type: boolean
          description: Whether the admin has approved time tracking entry (no further changes possible).
        status_invoicing:
          type: integer
          description: 'The status id of the invoice: 14: Not billed 15: Ready for billing 16: Billed
            19: Paid'
        invoice_id:
          type: integer
          description: The ID of the associated invoice in TimeTac
        geo_start_lat:
          type: number
          description: The latitude is of type Double.
        geo_start_long:
          type: number
          description: The longitude is of type Double.
        geo_start_accuracy:
          type: number
        geo_end_lat:
          type: number
          description: The latitude is of type Double.
        geo_end_long:
          type: number
          description: The longitude is of type Double.
        geo_end_accuracy:
          type: number
        geo_lat:
          type: number
        geo_long:
          type: number
        geo_accuracy:
          type: number
        created_at:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
        last_change_time_tracking_request_id:
          type: integer
        client_unique_id:
          type: string
        start_type_id:
          type: integer
        end_type_id:
          type: integer
        is_paid_non_working:
          type: boolean
        inherited_user_ids:
          type: string
        _granted_user_comment:
          type: string
        _request_user_comment:
          type: string
        _is_offline_live_tracking:
          type: boolean
        _insert_into_conflicting:
          type: boolean
        _entity_to_create:
          type: string
        _write_permission_type:
          type: string
        start_oauth_client_id:
          type: string
        end_oauth_client_id:
          type: string
        absence_request_id:
          type: integer
        start_timezone:
          type: string
        end_timezone:
          type: string
        _return_editable_flag:
          type: boolean
          description: if this parameter would be sent, we do some extra processes to see if this record
            is editable or not and return a flag accordingly
        from:
          type: string
          format: date-time
          description: 'billableTimeSummary: first start_time (inclusive) of the aggregated period, Y-m-d
            H:i:s in account time'
        to:
          type: string
          format: date-time
          description: 'billableTimeSummary: last start_time (inclusive) of the aggregated period, Y-m-d
            H:i:s in account time'
    timezones:
      type: object
      title: Timezones
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        timezone:
          type: string
          description: The string representation of a timezone in format (continent/city)
    translations:
      type: object
      title: Translations
      properties:
        translation_key:
          type: string
        value:
          type: string
        language_id:
          type: integer
    userHistory:
      type: object
      title: UserHistory
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        user_id:
          type: integer
          description: The ID of the user
        change_user_id:
          type: integer
          description: The ID of the user who made the change
        change_date:
          type: string
          description: The date and time of the change
        change_type:
          type: string
          description: The type of change
        old_value:
          type: string
          description: The old value before the change
        new_value:
          type: string
          description: The new value after the change
    userPreferences:
      type: object
      title: UserPreferences
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        user_id:
          type: integer
          description: The ID of the existing dataset
        oauth_client_id:
          type: integer
          description: The ID of the existing dataset
        name:
          type: string
          description: The preference name as displayed in frontend.
        value:
          type: string
          description: value of preference; null removes the stored preference
        description:
          type: string
        data:
          type: object
        _shared:
          type: boolean
          description: Indicates if preference is shared for all oauth clients of user, setting oauth_client_id
            to null
    usersArchiveHistory:
      type: object
      title: UsersArchiveHistory
      properties:
        user_id:
          type: integer
          description: The ID of the user associated with the change.
        active:
          type: integer
          description: Represents the active status of user after the change.
        valid_from:
          type: string
          format: date
          description: The date from which active value is valid from.
        valid_to:
          type: string
          format: date
          description: The date to which active value is valid to.
        created_at:
          type: string
          format: date-time
          description: The date when change was made.
    users:
      type: object
      title: Users (NEW)
      properties:
        id:
          type: integer
        internal_user_group:
          type: integer
          description: The group this user belongs (1 = Administrator, 2 = Employee, 3 = Client, 4 = Multiuser).
        active:
          type: boolean
        hr_manager:
          type: boolean
        department_id:
          type: integer
          description: ID of the Department.
        department_id_valid_from:
          type: string
          format: date
          description: Department ID valid since.
        role_id:
          type: integer
        start_task_at_login:
          type: integer
        username:
          type: string
        personnel_number:
          type: string
        title:
          type: string
        lastname:
          type: string
        firstname:
          type: string
        middlename:
          type: string
        fullname:
          type: string
        abbrevation:
          type: string
        restrict_to_ip:
          type: boolean
        permission_change_own_timers:
          type: boolean
        permission_show_tt_ex_post_one_employees:
          type: boolean
        permission_show_assign_favourites:
          type: boolean
        permission_show_assign_todos:
          type: boolean
        internal_cost_per_hour:
          type: number
        revenue_per_hour:
          type: number
        password_is_set:
          type: boolean
        email_address:
          type: string
        language_id:
          type: integer
          description: 1 = English, 2 = German
        phone:
          type: string
        skype:
          type: string
        profile_picture:
          type: string
        u_iv_1:
          type: string
          description: 'A custom field which application can be defined on a per account basis. '
        u_iv_1_valid_from:
          type: string
          format: date
        u_iv_2:
          type: string
          description: 'A custom field which application can be defined on a per account basis. '
        u_iv_2_valid_from:
          type: string
          format: date
        u_iv_3:
          type: string
          description: 'A custom field which application can be defined on a per account basis. '
        u_iv_3_valid_from:
          type: string
          format: date
        u_iv_4:
          type: string
          description: 'A custom field which application can be defined on a per account basis. '
        u_iv_4_valid_from:
          type: string
          format: date
        u_iv_5:
          type: string
          description: 'A custom field which application can be defined on a per account basis. '
        u_iv_5_valid_from:
          type: string
          format: date
        u_iv_6:
          type: string
          description: A custom field which application can be defined on a per account basis.
        u_iv_6_valid_from:
          type: string
          format: date
        mobile_allowed:
          type: boolean
        mobile_allow_live_timetracking:
          type: boolean
        country_id:
          type: integer
          description: The ID of a country. These IDs can be retrieved from "GET countries/get".
        allowed_ips:
          type: string
        payroll_accounting_starts_at:
          type: string
          format: date
          description: The date at which the accounting for this user should start. If left empty on a
            create request, the system will default to the current date.
        payroll_accounting_initial_value_working_time_total_balance:
          type: number
          description: The initial value for the working time balance
        public_holiday_template_id:
          type: integer
          description: The ID of a public holiday template. These IDs can be retrieved from "GET publicHolidayTemplates/get".
        public_holiday_template_id_valid_from:
          type: string
          format: date
        paid_break_day_quota_in_minutes:
          type: integer
          description: Paid break quota for day in minutes
        paid_break_day_quota_valid_from:
          type: string
          format: date
          description: Date from when paid break quota is valid
        annual_hours_per_year:
          type: integer
          description: Annual hours per year
        annual_hours_valid_from:
          type: string
          format: date
          description: Date from when annual hours are valid
        manual_timetracking:
          type: boolean
        automatic_tracker_writing_task_id:
          type: integer
        cost_acc_non_working_task_id:
          type: integer
        phone_1:
          type: string
        phone_2:
          type: string
        birthday:
          type: string
          format: date
        entry_date:
          type: string
          format: date
        exit_date:
          type: string
          format: date
        social_security_number:
          type: string
        address_1:
          type: string
        address_2:
          type: string
        zip:
          type: string
        permission_show_edit_user_user_settings:
          type: boolean
        terminal_transponder_nr:
          type: string
          description: The ID of a RFID transponder used for remote terminal timetracking.
        external_id:
          type: string
          description: 'The ID given if a user is managed by an external system. '
        company_name:
          type: string
        timesheet_template_id:
          type: integer
          description: Working hours timesheet model
        timesheet_template_id_valid_starting_from:
          type: string
          format: date
          description: The date the working hours timesheet model starts to count
        timesheet_holiday_calc_yearly_amount:
          type: number
        timesheet_holiday_calc_starting_from:
          type: string
          format: date
        timesheet_holiday_calc_interval_mode:
          type: string
        working_time_balance_rule:
          type: integer
        working_time_balance_rule_valid_from:
          type: string
          format: date
        overtime_allowance_included_overtime_hours_per_cycle:
          type: number
        payroll_accounting_initial_value_holiday:
          type: number
        enable_module_employee_timetracking:
          type: boolean
        enable_module_project_timetracking:
          type: boolean
        enable_module_leave_management:
          type: boolean
        enable_module_shift_planning:
          type: boolean
        leave_note:
          type: string
          description: Leave note.
        request_substitute_user_id:
          type: integer
        time_tracking_ex_post_earliest_working_time:
          type: string
        exclude_from_sync:
          type: boolean
        human:
          type: boolean
        user_role_ids:
          type: object
          description: Get all assigned roles
        renew_password:
          type: boolean
          description: Automatic break template id which is used to automatically insert breaks.
        automatic_break_template_valid_starting_from:
          type: string
          format: date
          description: Since when the user has this automatic break template.
        authentication_blocked:
          type: boolean
        working_time_balance_rule_cycle_id:
          type: integer
        overtime_allowance_is_all_in:
          type: boolean
        overtime_allowance_is_all_in_valid_starting_from:
          type: string
          format: date
        overtime_all_inc_ov_hours_per_cycle_valid_starting_from:
          type: string
          format: date
        overtime_allowance_clear_working_time_saldo_valid_starting_from:
          type: string
          format: date
        overtime_allowance_clear_working_time_saldo:
          type: boolean
    userStatusOverview:
      type: object
      title: UserStatusOverview
      properties:
        user_id:
          type: integer
        time_tracking_id:
          type: integer
        time_tracking_start_time:
          type: string
          format: date-time
        time_tracking_start_time_timezone_id:
          type: string
        time_tracking_utc_start_time:
          type: string
          format: date-time
        time_tracking_task_id:
          type: integer
        time_tracking_project_id:
          type: integer
        time_tracking_is_nonworking:
          type: boolean
        core_time_violation:
          type: boolean
        core_time_start:
          type: string
        updated:
          type: string
          format: date-time
        is_running:
          type: boolean
        current_absence_ids:
          type: string
        status:
          type: integer
        version:
          type: integer
        user_fullname:
          type: string
        email_address:
          type: string
        phone:
          type: string
        skype:
          type: string
        department_id:
          type: integer
        department_name:
          type: string
        leave_note:
          type: string
        max_time_exceeded:
          type: boolean
        translate_task_name:
          type: integer
    userTemplateHistory:
      type: object
      title: UserTemplateHistory
      properties:
        id:
          type: integer
        user_id:
          type: integer
        template_id:
          type: integer
        template_hours:
          type: number
        valid_from:
          type: string
          format: date
        rule_name:
          type: string
        change_type:
          type: string
        created_at:
          type: string
          format: date-time
        overtime_allowance_hours:
          type: number
        timesheet_template_name:
          type: string
        public_holiday_template_name:
          type: string
    userToOauthClients:
      type: object
      title: UserToOauthClients
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        user_id:
          type: integer
          description: The ID of the existing dataset
        oauth_client_id:
          type: integer
          description: The ID of the existing dataset
        allowed:
          type: boolean
          description: is client allowed
    workingHourSlotGroups:
      type: object
      title: WorkingHourSlotGroups
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        name:
          type: string
          description: Internal name for
        properties:
          type: object
          description: any extra properties for example predefined color tokens mapped to colors in FE
        order_number:
          type: integer
          description: we show groups in the FE based on this order number
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    workingTimeBalanceRules:
      type: object
      title: WorkingTimeBalanceRules
      properties:
        id:
          type: integer
        name:
          type: string
        sort_order:
          type: integer
        show:
          type: boolean
    workScheduleDayDefinitions:
      type: object
      title: WorkScheduleDayDefinitions
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        timesheet_template_id:
          type: integer
        weekday_id:
          type: integer
        slot_id:
          type: integer
        start:
          type: string
          format: time-format-00:00:00--24:00:00
        end:
          type: string
          format: time-format-00:00:00--24:00:00
        valid_for_task_id:
          type: integer
        valid_for_skill_id:
          type: integer
        updated_at:
          type: string
          format: date-time
    workScheduleDays:
      type: object
      title: WorkScheduleDays
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        timesheet_template_id:
          type: integer
        weekday_id:
          type: integer
        workday:
          type: boolean
          description: Shows that this day is a working day or not.
        half_holiday:
          type: boolean
          description: Shows that this day is half-holiday or not.
        hours:
          type: number
          description: Planned hours for this day.
        core_time_start:
          type: string
          format: time-format-00:00:00--24:00:00
        core_time_end:
          type: string
          format: time-format-00:00:00--24:00:00
        core_time_start_tolerance:
          type: integer
          description: core time start tolerance in seconds.
        core_time_end_tolerance:
          type: integer
          description: core time end tolerance in seconds.
        updated_at:
          type: string
          format: date-time
        editable:
          type: boolean
          description: True if working_time_overview with this template is approved for >= 1 user, false
            if not
        deletable:
          type: boolean
          description: True if template is assigned to any active user, false if not
    workSchedules:
      type: object
      title: WorkSchedules
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        name:
          type: string
          description: Work schedule name.
        automatic_break_template_id:
          type: integer
        display:
          type: integer
        individual_value_1:
          type: string
        individual_value_2:
          type: string
        note:
          type: string
        updated_at:
          type: string
          format: date-time
        editable:
          type: boolean
          description: True if working_time_overview with this template is approved for >= 1 user, false
            if not
        deletable:
          type: boolean
          description: True if template is assigned to any active user, false if not
        archived:
          type: integer
          description: Flag tells if Work schedule is archived.
        status:
          type: boolean
          description: True if template is assigned to any active user, false if not
        law_limit_daily_hours:
          type: number
          description: Max allowed daily hours
        law_limit_weekly_hours:
          type: number
          description: Max allowed weekly hours
        law_rest_period_minimum_hours:
          type: number
        law_rest_period_minimum_weekly_hours:
          type: number
          description: Minimum rest period within a week
        active:
          type: boolean
          description: when the value is 0 the workSchedule has been archived and is not being used
        is_default:
          type: boolean
          description: Flag that tels us if this is a default template.
        minijobber_always_deduct_overtime:
          type: boolean
        minijobber_deduction_hours:
          type: number
        minijobber_deduction_cycle:
          type: string
        type:
          type: string
        minijobber_absence_credit:
          type: number
        source_id:
          type: integer
        overtime_allowance_always_deduct:
          type: boolean
    absenceDays_addHolidayAdjustment:
      type: object
      title: absenceDays_addHolidayAdjustment
      required:
      - user_id
      - date
      - value
      properties:
        user_id:
          type: integer
          description: ''
        date:
          type: string
          format: date
          description: ''
        subtype:
          type: string
          description: ''
        value:
          type: number
          description: ''
        comment:
          type: string
          description: ''
    absenceDays_read:
      type: object
      title: absenceDays_read
      properties:
        id:
          type: integer
          description: ''
        user_id:
          type: integer
          description: ''
        user_department_id:
          type: integer
          description: ''
        user_role_id:
          type: integer
          description: ''
        date:
          type: string
          format: date
          description: ''
        type:
          type: string
          description: ''
        subtype:
          type: string
          description: ''
        other_paid_leave_id:
          type: integer
          description: ''
        value:
          type: number
          description: ''
        value_unit:
          type: string
          description: ''
        request_id:
          type: integer
          description: ''
        status:
          type: integer
          description: ''
        comment:
          type: string
          description: ''
        begin:
          type: string
          description: ''
        updated:
          type: string
          format: date-time
          description: ''
        paid:
          type: boolean
          description: ''
    absenceDays_removeHolidayAdjustment:
      type: object
      title: absenceDays_removeHolidayAdjustment
      required:
      - user_id
      - date
      properties:
        user_id:
          type: integer
          description: ''
        date:
          type: string
          format: date
          description: ''
    absenceDays_set:
      type: object
      title: absenceDays_set
      required:
      - user_id
      - data
      properties:
        user_id:
          type: integer
          description: ''
        date:
          type: string
          format: date
          description: ''
        subtype:
          type: string
          description: ''
        value:
          type: number
          description: ''
        comment:
          type: string
          description: ''
        from_date:
          type: string
          format: date
          description: ''
        data:
          type: object
          description: ''
    absenceEntitlements_read:
      type: object
      title: absenceEntitlements_read
      properties:
        user_id:
          type: string
          description: User ID or comma-separated list of user IDs to filter by
        start_date:
          type: string
          format: date
          description: Start date for the date range filter (defaults to Jan 1 of current year)
        end_date:
          type: string
          format: date
          description: End date for the date range filter (defaults to Dec 31 of current year)
        type_id:
          type: integer
          description: Absence type ID to filter results. 1=vacation and 3=other paid leave including
            sick leave subtypes. Does not affect summary KPIs or open requests count.
        offset:
          type: integer
          description: Pagination offset for entitlements list (defaults to 0)
        limit:
          type: integer
          description: Pagination limit for entitlements list (defaults to 100; max 100)
    absenceInsights_read:
      type: object
      title: absenceInsights_read
      properties:
        user_id:
          type: string
          description: User ID or comma-separated list of user IDs to filter by
        start_date:
          type: string
          format: date
          description: Start date for the date range filter (defaults to Jan 1 of current year)
        end_date:
          type: string
          format: date
          description: End date for the date range filter (defaults to Dec 31 of current year)
        type_id:
          type: integer
          description: Absence type ID to filter results. 1=vacation and 3=other paid leave including
            sick leave subtypes. Does not affect summary KPIs or open requests count.
    absences_read:
      type: object
      title: absences_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        type_id:
          type: integer
          description: 'The type of absence. This is the absence_type_id of an absenceTypes entry - NOT
            its id primary key. Reading absenceTypes returns both: id is the row key (1000+) while absence_type_id
            is the value to send here. 1 = holiday 2 = overtime_reduction 3 = other paid leaves'
        subtype_id:
          type: integer
          description: The absence subtype. This is the absence_subtype_id of an absenceTypes entry -
            NOT its id primary key. Defaults to 0 which is the only valid value for types that define
            no subtypes.
        user_id:
          type: integer
          description: The ID of the user this request belongs to. These IDs can be retrieved by “GET
            users/get”.
        replacement_user_id:
          type: integer
          description: ''
        request_user_department_id:
          type: integer
          description: ''
        request_user_role_id:
          type: integer
          description: ''
        created:
          type: string
          format: date-time
          description: ''
        status:
          type: integer
          description: The status of the absence. STATUS_OPEN = 0, STATUS_GRANTED = 1, STATUS_DECLINED
            = 2, STATUS_CANCELED = 3
        eau_doctors_confirmation_checked:
          type: boolean
          description: ''
        granted_user_id:
          type: integer
          description: The ID of the user this request was approved by. These IDs can be retrieved by
            "GET users/get".
        canceled_user_id:
          type: integer
          description: ''
        granted_as_substitute_user_id:
          type: integer
          description: ''
        granted_timestamp:
          type: string
          description: The timestamp the request was granted at.
        request_comment:
          type: string
          description: An optional comment added by the requesting user
        granted_comment:
          type: string
          description: An optional comment added by the user who approved/declined the request.
        from_date:
          type: string
          format: date
          description: The start date of the requested timeframe
        to_date:
          type: string
          format: date
          description: The end date of the requested timeframe
        duration:
          type: number
          description: The requested duration of workdays/time
        request_partial_begin_duration:
          type: number
          description: ''
        request_partial_end_duration:
          type: number
          description: ''
        duration_unit:
          type: string
          description: The unit the duration was measured in d=>days hs=>hours.
        begin:
          type: string
          description: ''
        substitute_enabled:
          type: boolean
          description: ''
        individual_value_1:
          type: string
          description: ''
        is_multistage_request:
          type: boolean
          description: ''
        chain_level:
          type: integer
          description: ''
        updated:
          type: string
          format: date-time
          description: The timestamp the request was edited.
        inherited_user_ids:
          type: string
          description: ''
        assigned_to_me:
          type: boolean
          description: Whether the logged-in user is responsible for deciding this request.
    absenceTypes_create:
      type: object
      title: absenceTypes_create
      required:
      - name_const
      - abbreviation_const
      properties:
        sort_order:
          type: integer
          description: Sort order of the leave types in the other paid leave dropdown. Startable other
            paid leaves like "doctors visit i" (is_startable = 1 and is_paid_non_working = 1 in pm_tasks_subprojects)
            MUST be at the end of the drop down
        name_const:
          type: string
          description: A translation constant or the String of the Leave type which should appear in the
            dropdown for applying the other paid leave.
        abbreviation_const:
          type: string
          description: A translation constant or the String of the abbrevation of the Leave type which
            will be used in the timesheet accounting and as a column header in user statistics.
        show_in_selection:
          type: boolean
          description: Entries which should be shown in the drop down of timesheet accounting.
        enabled_for_requests:
          type: boolean
          description: Leaves which will show up in the dropdown for applying an other paid leave.
        add_to_working_hours:
          type: boolean
          description: If the leave should be added to working hours, typically every leave should be
            added to working hours.
        allow_tracking_more_then_target_working_hours:
          type: boolean
          description: If 0, the user cannot enter more time of the day of absence as the target working
            hour according to his working time model (e.g. for sickness allow_tracking_more_then_target_working_hours
            should be 1, as by law it is prohibited to work during sickness)
        request_type:
          type: string
          description: 'WORKFLOW: a user needs to apply for the absence and the responsible manager needs
            to handle the request'
        allow_entry_on_non_working_days:
          type: boolean
          description: ''
        public_leave_type:
          type: boolean
          description: 'Whether the type of absence ALWAYS will be shown in the team calendar independently
            of the user setting: "Show type of absence..."'
        comment_is_mandatory:
          type: boolean
          description: Whether the comment field in the application window needs to be filled out by the
            applicant.
        reject_request_comment_is_mandatory:
          type: boolean
          description: ''
        show_day_amount_config:
          type: string
          description: This setting tells which days should be shown in the request window for the duration.
            Defaults are 0.25, 0.50, 0.75 and 1. Amounts can be added, removed or changed. The value needs
            to be a valid JSON string. The durations are percentage digits separated by a comma. (so for
            0.10 add 10)
        enable_user_limitations:
          type: boolean
          description: We added support to limit the amount of days per period for other paid leaves and
            users. To enable this feature this config needs to be set to 1. But to work as it should,
            the user_limitations_config also needs to be setup. Wenn set to 1, all users get default entries
            into pm_other_paid_leave_user_limitations with default cycle id 0 and max days 0. It will
            not take the settings from user_limitations_config!
        cycle_id:
          type: integer
          description: The id of a workingTimeCycles entry (1 weekly, 2 monthly, 3 quarterly, 4 yearly).
            This is the period the limit applies to.
        cycle_max_days:
          type: integer
          description: The maximum amount of days the user can enter in the cycle.
        user_limitations_config:
          type: string
          description: With enable_user_limitation config combination, this config controls if the user
            can have negative saldo and what are the default limitations for the user. We can separate
            the users based on users attributes (like department_id, internal_user_group etc). The cycle_id
            is the id of a workingTimeCycles entry and tells the period, the cycle_max_days controls the
            amount of days the user can enter.
        enable_for_substitute_mode:
          type: boolean
          description: Whether to enable/disable the substitute mode for the leave type. e.g. usually
            during the absence home office we do not need the substitute to handle all requests.
        send_email_notification_to_responsible_manager:
          type: boolean
          description: If request_type = "USER" and the user enters an absence, a notification email will
            be sent to the responsible manager.
        send_email_notification_to_user_if_entered_by_manager:
          type: boolean
          description: If a manager enters an absence for somebody else, this person will be notified
            by email of this entry.
        color:
          type: string
          description: The HEX code for the color to be shown in the holiday planners.
        icon:
          type: string
          description: A string to represent the icon.
        absence_window_show_replacement:
          type: boolean
          description: If a replacement is needed for this leave.
        individual_value_1:
          type: string
          description: ''
        is_visible_for_edit:
          type: boolean
          description: ''
    absenceTypes_read:
      type: object
      title: absenceTypes_read
      properties:
        id:
          type: integer
          description: ''
        absence_type_id:
          type: integer
          description: The ID of the existing dataset.
        absence_subtype_id:
          type: integer
          description: The ID of the existing dataset.
        absence_group_id:
          type: integer
          description: The ID of the existing dataset.
        sort_order:
          type: integer
          description: Sort order of the leave types in the other paid leave dropdown. Startable other
            paid leaves like "doctors visit i" (is_startable = 1 and is_paid_non_working = 1 in pm_tasks_subprojects)
            MUST be at the end of the drop down
        name_const:
          type: string
          description: A translation constant or the String of the Leave type which should appear in the
            dropdown for applying the other paid leave.
        abbreviation_const:
          type: string
          description: A translation constant or the String of the abbrevation of the Leave type which
            will be used in the timesheet accounting and as a column header in user statistics.
        show_in_selection:
          type: boolean
          description: Entries which should be shown in the drop down of timesheet accounting.
        cost_acc_task_id:
          type: integer
          description: The task_id which will be used to automatically create timestamps based on the
            absence.
        enabled_for_requests:
          type: boolean
          description: Leaves which will show up in the dropdown for applying an other paid leave.
        add_to_working_hours:
          type: boolean
          description: If the leave should be added to working hours, typically every leave should be
            added to working hours.
        allow_tracking_more_then_target_working_hours:
          type: boolean
          description: If 0, the user cannot enter more time of the day of absence as the target working
            hour according to his working time model (e.g. for sickness allow_tracking_more_then_target_working_hours
            should be 1, as by law it is prohibited to work during sickness)
        request_type:
          type: string
          description: 'WORKFLOW: a user needs to apply for the absence and the responsible manager needs
            to handle the request'
        allow_entry_on_non_working_days:
          type: boolean
          description: ''
        public_leave_type:
          type: boolean
          description: 'Whether the type of absence ALWAYS will be shown in the team calendar independently
            of the user setting: "Show type of absence..."'
        comment_is_mandatory:
          type: boolean
          description: Whether the comment field in the application window needs to be filled out by the
            applicant.
        reject_request_comment_is_mandatory:
          type: boolean
          description: ''
        show_day_amount_config:
          type: string
          description: This setting tells which days should be shown in the request window for the duration.
            Defaults are 0.25, 0.50, 0.75 and 1. Amounts can be added, removed or changed. The value needs
            to be a valid JSON string. The durations are percentage digits separated by a comma. (so for
            0.10 add 10)
        duration_unit:
          type: string
          description: ''
        enable_user_limitations:
          type: boolean
          description: We added support to limit the amount of days per period for other paid leaves and
            users. To enable this feature this config needs to be set to 1. But to work as it should,
            the user_limitations_config also needs to be setup. Wenn set to 1, all users get default entries
            into pm_other_paid_leave_user_limitations with default cycle id 0 and max days 0. It will
            not take the settings from user_limitations_config!
        user_limitations_config:
          type: string
          description: With enable_user_limitation config combination, this config controls if the user
            can have negative saldo and what are the default limitations for the user. We can separate
            the users based on users attributes (like department_id, internal_user_group etc). The cycle_id
            is the id of a workingTimeCycles entry and tells the period, the cycle_max_days controls the
            amount of days the user can enter.
        enable_for_substitute_mode:
          type: boolean
          description: Whether to enable/disable the substitute mode for the leave type. e.g. usually
            during the absence home office we do not need the substitute to handle all requests.
        send_email_notification_to_responsible_manager:
          type: boolean
          description: If request_type = "USER" and the user enters an absence, a notification email will
            be sent to the responsible manager.
        send_email_notification_to_user_if_entered_by_manager:
          type: boolean
          description: If a manager enters an absence for somebody else, this person will be notified
            by email of this entry.
        color:
          type: string
          description: The HEX code for the color to be shown in the holiday planners.
        icon:
          type: string
          description: A string to represent the icon.
        restrict_for_country:
          type: boolean
          description: 'Deprecated and read-only: the country restriction for other paid leaves is no
            longer supported. The stored value is returned as is but has no effect; values sent on create
            or update are ignored.'
        absence_window_show_replacement:
          type: boolean
          description: If a replacement is needed for this leave.
        individual_value_1:
          type: string
          description: ''
        is_visible_for_edit:
          type: boolean
          description: ''
    absenceTypes_update:
      type: object
      title: absenceTypes_update
      required:
      - id
      properties:
        id:
          type: integer
          description: ''
        sort_order:
          type: integer
          description: Sort order of the leave types in the other paid leave dropdown. Startable other
            paid leaves like "doctors visit i" (is_startable = 1 and is_paid_non_working = 1 in pm_tasks_subprojects)
            MUST be at the end of the drop down
        name_const:
          type: string
          description: A translation constant or the String of the Leave type which should appear in the
            dropdown for applying the other paid leave.
        abbreviation_const:
          type: string
          description: A translation constant or the String of the abbrevation of the Leave type which
            will be used in the timesheet accounting and as a column header in user statistics.
        show_in_selection:
          type: boolean
          description: Entries which should be shown in the drop down of timesheet accounting.
        enabled_for_requests:
          type: boolean
          description: Leaves which will show up in the dropdown for applying an other paid leave.
        add_to_working_hours:
          type: boolean
          description: If the leave should be added to working hours, typically every leave should be
            added to working hours.
        allow_tracking_more_then_target_working_hours:
          type: boolean
          description: If 0, the user cannot enter more time of the day of absence as the target working
            hour according to his working time model (e.g. for sickness allow_tracking_more_then_target_working_hours
            should be 1, as by law it is prohibited to work during sickness)
        request_type:
          type: string
          description: 'WORKFLOW: a user needs to apply for the absence and the responsible manager needs
            to handle the request'
        allow_entry_on_non_working_days:
          type: boolean
          description: ''
        public_leave_type:
          type: boolean
          description: 'Whether the type of absence ALWAYS will be shown in the team calendar independently
            of the user setting: "Show type of absence..."'
        comment_is_mandatory:
          type: boolean
          description: Whether the comment field in the application window needs to be filled out by the
            applicant.
        reject_request_comment_is_mandatory:
          type: boolean
          description: ''
        show_day_amount_config:
          type: string
          description: This setting tells which days should be shown in the request window for the duration.
            Defaults are 0.25, 0.50, 0.75 and 1. Amounts can be added, removed or changed. The value needs
            to be a valid JSON string. The durations are percentage digits separated by a comma. (so for
            0.10 add 10)
        enable_user_limitations:
          type: boolean
          description: We added support to limit the amount of days per period for other paid leaves and
            users. To enable this feature this config needs to be set to 1. But to work as it should,
            the user_limitations_config also needs to be setup. Wenn set to 1, all users get default entries
            into pm_other_paid_leave_user_limitations with default cycle id 0 and max days 0. It will
            not take the settings from user_limitations_config!
        cycle_id:
          type: integer
          description: The id of a workingTimeCycles entry (1 weekly, 2 monthly, 3 quarterly, 4 yearly).
            This is the period the limit applies to.
        cycle_max_days:
          type: integer
          description: The maximum amount of days the user can enter in the cycle.
        user_limitations_config:
          type: string
          description: With enable_user_limitation config combination, this config controls if the user
            can have negative saldo and what are the default limitations for the user. We can separate
            the users based on users attributes (like department_id, internal_user_group etc). The cycle_id
            is the id of a workingTimeCycles entry and tells the period, the cycle_max_days controls the
            amount of days the user can enter.
        enable_for_substitute_mode:
          type: boolean
          description: Whether to enable/disable the substitute mode for the leave type. e.g. usually
            during the absence home office we do not need the substitute to handle all requests.
        send_email_notification_to_responsible_manager:
          type: boolean
          description: If request_type = "USER" and the user enters an absence, a notification email will
            be sent to the responsible manager.
        send_email_notification_to_user_if_entered_by_manager:
          type: boolean
          description: If a manager enters an absence for somebody else, this person will be notified
            by email of this entry.
        color:
          type: string
          description: The HEX code for the color to be shown in the holiday planners.
        icon:
          type: string
          description: A string to represent the icon.
        absence_window_show_replacement:
          type: boolean
          description: If a replacement is needed for this leave.
        individual_value_1:
          type: string
          description: ''
    annualHoursHistory_read:
      type: object
      title: annualHoursHistory_read
      properties:
        id:
          type: integer
          description: ''
        user_id:
          type: integer
          description: The ID of the user associated with the change.
        quota_value:
          type: integer
          description: The quota value associated with the change.
        valid_from:
          type: string
          format: date
          description: The date from which the change is valid.
        created_at:
          type: string
          format: date-time
          description: The date of the change.
    automaticBreakTemplates_read:
      type: object
      title: automaticBreakTemplates_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        templateName:
          type: string
          description: ''
        dryRun:
          type: boolean
          description: ''
        active:
          type: boolean
          description: ''
        editable:
          type: boolean
          description: ''
    bookings_read:
      type: object
      title: bookings_read
      properties:
        id:
          type: integer
          description: The ID of the booking entry
        user_id:
          type: integer
          description: The ID of the user
        task_id:
          type: integer
          description: The ID of General Activity task
        project_task_id:
          type: integer
          description: The ID of Project Task
        start_time:
          type: string
          format: date-time
          description: Start date and time
        end_time:
          type: string
          format: date-time
          description: End date and time
        duration:
          type: integer
          description: Duration in seconds
        start_timezone:
          type: string
          description: Timezone for start time
        end_timezone:
          type: string
          description: Timezone for end time
        working:
          type: boolean
          description: Whether this is working time
        break:
          type: boolean
          description: Whether this is a break
        paid:
          type: boolean
          description: Whether this is paid time
        overtime:
          type: boolean
          description: Whether this counts as overtime
        billable:
          type: boolean
          description: Whether this is billable time
        is_inside_target_working_hours:
          type: boolean
          description: Whether this timer is inside target working hours
        is_inside_max_allowed_hours:
          type: boolean
          description: Whether this timer is inside max allowed working hours
        is_inside_allowed_working_times:
          type: boolean
          description: False when the split falls outside the window nominalHours reports as allowed_working_times
            for that day.
    budgets_read:
      type: object
      title: budgets_read
      properties:
        id:
          type: integer
          description: ''
        name:
          type: string
          description: ''
        description:
          type: string
          description: ''
        metric:
          type: string
          description: ''
        target:
          type: integer
          description: ''
        from_date:
          type: string
          format: date
          description: ''
        to_date:
          type: string
          format: date
          description: ''
        interval:
          type: string
          description: ''
        created_by:
          type: integer
          description: ''
    changeLogs_read:
      type: object
      title: changeLogs_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        table_name:
          type: string
          description: ''
        action:
          type: string
          description: ''
        resource_id:
          type: integer
          description: ''
        resource_user_id:
          type: integer
          description: ''
        actor_id:
          type: integer
          description: ''
        row_id:
          type: integer
          description: ''
        column_name:
          type: string
          description: ''
        old_value:
          type: string
          description: ''
        new_value:
          type: string
          description: ''
        timestamp:
          type: string
          format: date-time
          description: ''
        current:
          type: boolean
          description: ''
        public:
          type: boolean
          description: ''
    changeTimeTrackingRequests_read:
      type: object
      title: changeTimeTrackingRequests_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        type:
          type: string
          description: ''
        time_tracking_id:
          type: integer
          description: ''
        request_user_id:
          type: integer
          description: ''
        granted_user_id:
          type: integer
          description: ''
        granted_as_substitute_user_id:
          type: integer
          description: ''
        new_start_time:
          type: string
          format: date-time
          description: ''
        new_end_time:
          type: string
          format: date-time
          description: ''
        old_start_time:
          type: string
          format: date-time
          description: ''
        old_end_time:
          type: string
          format: date-time
          description: ''
        new_start_time_timezone_id:
          type: integer
          description: pm_timezones id the proposed start time is expressed in, taken from the referenced
            timer.
        new_start_timezone:
          type: string
          description: IANA name (continent/city) of new_start_time_timezone_id.
        new_end_time_timezone_id:
          type: integer
          description: pm_timezones id the proposed end time is expressed in. Null while the timer is
            still running.
        new_end_timezone:
          type: string
          description: IANA name (continent/city) of new_end_time_timezone_id.
        old_start_time_timezone_id:
          type: integer
          description: pm_timezones id the current start time is expressed in. Null for type ADD, which
            has no prior state.
        old_start_timezone:
          type: string
          description: IANA name (continent/city) of old_start_time_timezone_id.
        old_end_time_timezone_id:
          type: integer
          description: pm_timezones id the current end time is expressed in. Null for type ADD, and while
            the timer is still running.
        old_end_timezone:
          type: string
          description: IANA name (continent/city) of old_end_time_timezone_id.
        request_timestamp:
          type: string
          format: date-time
          description: ''
        status:
          type: string
          description: ''
        request_user_comment:
          type: string
          description: ''
        granted_user_comment:
          type: string
          description: ''
        data_changed:
          type: string
          format: date-time
          description: Date and time of last change
        inherited_user_ids:
          type: string
          description: ''
        assigned_to_me:
          type: boolean
          description: Whether the logged-in user is responsible for deciding this request.
    departments_read:
      type: object
      title: departments_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        department_name:
          type: string
          description: The human readable name of the department.
        active:
          type: boolean
          description: If department is visible to the user or not.
        is_default:
          type: boolean
          description: Flag if this is default department
        supervisor_id:
          type: integer
          description: The ID of the user who is supervising this department.
        supervisor_assistant_id:
          type: integer
          description: The ID of the user who is assisting with supervising this department.
        mother_id:
          type: integer
          description: The ID of an optional higher level department in a hierarchical structure.
        sort_order:
          type: integer
          description: ''
        view_order:
          type: number
          description: ''
        node_path:
          type: string
          description: ''
        individual_value_1:
          type: string
          description: ''
        data_changed:
          type: string
          format: date-time
          description: ''
    favouriteTasks_create:
      type: object
      title: favouriteTasks_create
      required:
      - user_id
      - node_id
      properties:
        user_id:
          type: integer
          description: ''
        node_id:
          type: integer
          description: ''
    favouriteTasks_read:
      type: object
      title: favouriteTasks_read
      properties:
        id:
          type: integer
          description: ''
        user_id:
          type: integer
          description: ''
        node_id:
          type: integer
          description: ''
        origin:
          type: string
          description: ''
    features_read:
      type: object
      title: features_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        name:
          type: string
          description: The Feature name as displayed in frontend.
        description:
          type: string
          description: ''
        created_at:
          type: string
          format: date-time
          description: ''
        updated_at:
          type: string
          format: date-time
          description: ''
    generalSettings_read:
      type: object
      title: generalSettings_read
      properties:
        id:
          type: integer
          description: ''
        group_const:
          type: string
          description: ''
        setting_type:
          type: string
          description: ''
        setting_value:
          type: string
          description: ''
        updatable_config:
          type: string
          description: ''
        sort_order:
          type: integer
          description: ''
        datatype:
          type: string
          description: ''
        allowable_values:
          type: string
          description: ''
        updatable:
          type: boolean
          description: ''
        super_user:
          type: boolean
          description: ''
        description:
          type: string
          description: ''
        default_value:
          type: string
          description: ''
        value_range:
          type: string
          description: ''
        text:
          type: string
          description: ''
        type:
          type: integer
          description: ''
        update_value:
          type: string
          description: ''
        update_query:
          type: string
          description: ''
        data_changed:
          type: string
          format: date-time
          description: ''
        user_id:
          type: integer
          description: ''
    generalSettings_update:
      type: object
      title: generalSettings_update
      required:
      - id
      properties:
        id:
          type: integer
          description: ''
        setting_value:
          type: string
          description: ''
    generalSettingsChangeLog_read:
      type: object
      title: generalSettingsChangeLog_read
      properties:
        id:
          type: integer
          description: ''
        setting_type:
          type: string
          description: ''
        old_setting_value:
          type: string
          description: ''
        new_setting_value:
          type: string
          description: ''
        changed_by_user_id:
          type: integer
          description: ''
        change_timestamp:
          type: string
          format: date-time
          description: ''
    geofences_create:
      type: object
      title: geofences_create
      properties:
        task_ids:
          type: object
          description: ''
    geofences_read:
      type: object
      title: geofences_read
      properties:
        task_ids:
          type: object
          description: ''
    geofences_update:
      type: object
      title: geofences_update
      properties:
        task_ids:
          type: object
          description: ''
    geofenceToNodes_create:
      type: object
      title: geofenceToNodes_create
      required:
      - geofence_id
      - node_id
      properties:
        geofence_id:
          type: integer
          description: ''
        node_id:
          type: integer
          description: ''
        updated:
          type: string
          format: date-time
          description: ''
    geofenceToNodes_read:
      type: object
      title: geofenceToNodes_read
      properties:
        id:
          type: integer
          description: ''
        geofence_id:
          type: integer
          description: ''
        node_id:
          type: integer
          description: ''
        updated:
          type: string
          format: date-time
          description: ''
    geofenceToNodes_update:
      type: object
      title: geofenceToNodes_update
      required:
      - id
      properties:
        id:
          type: integer
          description: ''
        node_id:
          type: integer
          description: ''
        updated:
          type: string
          format: date-time
          description: ''
    holidayAdjustment_add:
      type: object
      title: holidayAdjustment_add
      required:
      - user_id
      - date
      - value
      properties:
        user_id:
          type: integer
          description: ''
        date:
          type: string
          format: date
          description: ''
        subtype:
          type: string
          description: ''
        value:
          type: number
          description: ''
        comment:
          type: string
          description: ''
    holidayAdjustment_read:
      type: object
      title: holidayAdjustment_read
      properties:
        id:
          type: integer
          description: ''
        user_id:
          type: integer
          description: ''
        user_department_id:
          type: integer
          description: ''
        user_role_id:
          type: integer
          description: ''
        date:
          type: string
          format: date
          description: ''
        type:
          type: string
          description: ''
        subtype:
          type: string
          description: ''
        other_paid_leave_id:
          type: integer
          description: ''
        value:
          type: number
          description: ''
        value_unit:
          type: string
          description: ''
        request_id:
          type: integer
          description: ''
        status:
          type: integer
          description: ''
        comment:
          type: string
          description: ''
        begin:
          type: string
          description: ''
        updated:
          type: string
          format: date-time
          description: ''
    holidayAdjustment_set:
      type: object
      title: holidayAdjustment_set
      required:
      - user_id
      - data
      properties:
        user_id:
          type: integer
          description: ''
        date:
          type: string
          format: date
          description: ''
        subtype:
          type: string
          description: ''
        value:
          type: number
          description: ''
        comment:
          type: string
          description: ''
        from_date:
          type: string
          format: date
          description: ''
        data:
          type: object
          description: ''
    hourTypes_create:
      type: object
      title: hourTypes_create
      properties:
        group_id:
          type: integer
          description: refers to the group to which this slot belongs, the id of a workingHourSlotGroups
            entry (0 = not assigned).
    hourTypes_read:
      type: object
      title: hourTypes_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        order_by:
          type: integer
          description: Defines the order in timesheet report. If setting timesheet_accounting_distribute_compensation_time_to_overtime_slots
            is activated for the account, the order_by decides in which descending order the slots excess_work
            and overtime_1 till overtime_6 are deducted.
        slotName:
          type: string
          description: ''
        name:
          type: string
          description: ''
        slotType:
          type: integer
          description: '0: special (begin_time, end_time, break, user_defined_text_X), 1: totals, 2: working
            time, 3: overtime, 4: special days'
        usableForTimesheetTemplates:
          type: boolean
          description: If 1, the slot can be configured in FE to be used in timesheet template definitions.
        includeInDailyBalance:
          type: boolean
          description: If 1, time affects the daily_balance and total_working_time_balance.
        additionPercentage:
          type: number
          format: float
          description: Defines the automatically calculated additions for the slot. Additions are not
            included in daily balance, but included in working_time_total_balance.
        abbreviation:
          type: string
          description: ''
        tooltip:
          type: string
          description: ''
        legend:
          type: string
          description: ''
        sageAbsenceKey:
          type: string
          description: Absence key for Sage export.
        sageWageTypeId:
          type: integer
          description: Wage type for Sage Export. Slot is only considered in the sage export when wage
            type is set.
        bmdAbsenceTypeId:
          type: integer
          description: Absence type identification given by BMD for export.
        bmdWageTypeId:
          type: integer
          description: Wage type for BMD Export. Slot is only considered in the BMD export when wage type
            is set.
        brzWageTypeId:
          type: integer
          description: Wage type for BRZ Export. Slot is only considered in the BRZ export when wage type
            is set.
        addisonWageTypeId:
          type: integer
          description: Wage type for Addison Export. Slot is only considered in the Addison export when
            wage type is set.
        individualValue1:
          type: string
          description: Arbitrary data for slots.
        showInWorkingOverview:
          type: boolean
          description: If 1, column will be displayed in timesheet report.
        showInUserStatistics:
          type: boolean
          description: If 1, column will be shown in user statistics report, summed up for the selected
            timeframe.
        showInDepartmentStatistics:
          type: boolean
          description: If 1, column will be shown in department statistics report, summed up for the selected
            timeframe.
        created_at:
          type: string
          format: date-time
          description: ''
        updated_at:
          type: string
          format: date-time
          description: ''
        renderType:
          type: string
          description: Describes the type of data present in the slot (percentage,string,boolean,decimal,hour,day,timestamp,date)
        renderEmptyIfZero:
          type: boolean
          description: If 1, no data will be rendered if the value is zero.
        extGroupingSummary:
          type: boolean
          description: If 1, column will be summed up and shown in total time frame line in timesheet
            report.
        group_id:
          type: integer
          description: refers to the group to which this slot belongs, the id of a workingHourSlotGroups
            entry (0 = not assigned).
        properties:
          type: object
          description: any extra properties such as color tokens for FE mappings, returns null if there
            are no properties
        userAllowedToEdit:
          type: boolean
          description: user is allowed to edit the slot in frontend
        managerAllowedToEdit:
          type: boolean
          description: manager is allowed to edit the slot in frontend
    hourTypes_update:
      type: object
      title: hourTypes_update
      required:
      - id
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        name:
          type: string
          description: ''
        includeInDailyBalance:
          type: boolean
          description: If 1, time affects the daily_balance and total_working_time_balance.
        additionPercentage:
          type: number
          format: float
          description: Defines the automatically calculated additions for the slot. Additions are not
            included in daily balance, but included in working_time_total_balance.
        abbreviation:
          type: string
          description: ''
        tooltip:
          type: string
          description: ''
        legend:
          type: string
          description: ''
        sageAbsenceKey:
          type: string
          description: Absence key for Sage export.
        sageWageTypeId:
          type: integer
          description: Wage type for Sage Export. Slot is only considered in the sage export when wage
            type is set.
        bmdAbsenceTypeId:
          type: integer
          description: Absence type identification given by BMD for export.
        bmdWageTypeId:
          type: integer
          description: Wage type for BMD Export. Slot is only considered in the BMD export when wage type
            is set.
        brzWageTypeId:
          type: integer
          description: Wage type for BRZ Export. Slot is only considered in the BRZ export when wage type
            is set.
        addisonWageTypeId:
          type: integer
          description: Wage type for Addison Export. Slot is only considered in the Addison export when
            wage type is set.
        individualValue1:
          type: string
          description: Arbitrary data for slots.
        showInWorkingOverview:
          type: boolean
          description: If 1, column will be displayed in timesheet report.
        showInUserStatistics:
          type: boolean
          description: If 1, column will be shown in user statistics report, summed up for the selected
            timeframe.
        showInDepartmentStatistics:
          type: boolean
          description: If 1, column will be shown in department statistics report, summed up for the selected
            timeframe.
        group_id:
          type: integer
          description: refers to the group to which this slot belongs, the id of a workingHourSlotGroups
            entry (0 = not assigned).
    jobQueueExecutionLogs_read:
      type: object
      title: jobQueueExecutionLogs_read
      properties:
        id:
          type: integer
          description: The unique ID of the job execution log entry.
        job_queue_id:
          type: integer
          description: Original job_queue.id (no FK enforced).
        job_name:
          type: string
          description: Human-readable name of the job.
        status:
          type: string
          description: Final status of the job (waiting, scheduled, success, failed, partial).
        started_at:
          type: string
          format: date-time
          description: When job started processing.
        completed_at:
          type: string
          format: date-time
          description: When job completed (success or fail).
        added_by_user_id:
          type: integer
          description: User who triggered the job, if applicable.
        job_params:
          type: object
          description: Serialized input parameters of the job.
        report:
          type: string
          description: Human-readable result log (e.g., success messages, counts).
        file_info:
          type: string
          description: metadata regarding generated files.
        source:
          type: string
          description: Source of the job (manual, frontend, system).
        created_at:
          type: string
          format: date-time
          description: When this log entry was created.
        updated_at:
          type: string
          format: date-time
          description: When this log entry was last modified.
    languages_read:
      type: object
      title: languages_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        name:
          type: string
          description: The key for translation, as it is now displayed in frontend.
        code:
          type: string
          description: The string representation of a timezone in format (continent/city)
        sort_order:
          type: integer
          description: Sort order of languages
        language:
          type: string
          description: Translated language
    nfcTransponders_create:
      type: object
      title: nfcTransponders_create
      required:
      - mode_id
      properties:
        mode_id:
          type: integer
          description: The type of transponder. One of 2 = assigned to a user 3 = assigned to a task 4
            = assigned to a project. No other value is accepted.
        unique_id:
          type: string
          description: ''
        user_id:
          type: integer
          description: ''
        task_id:
          type: integer
          description: ''
        start_task_afterwards:
          type: integer
          description: ''
        project_id:
          type: integer
          description: ''
        checkpoint_id:
          type: integer
          description: ''
        skill_id:
          type: integer
          description: ''
        client_unique_id:
          type: string
          description: ''
        name:
          type: string
          description: ''
        location:
          type: string
          description: ''
        status:
          type: boolean
          description: ''
    nfcTransponders_read:
      type: object
      title: nfcTransponders_read
      properties:
        id:
          type: integer
          description: A unique identifier of the transponder. Automatically assigned by the API when
            the transponder is created.
        mode_id:
          type: integer
          description: The type of transponder. One of 2 = assigned to a user 3 = assigned to a task 4
            = assigned to a project. No other value is accepted.
        unique_id:
          type: string
          description: ''
        user_id:
          type: integer
          description: ''
        task_id:
          type: integer
          description: ''
        start_task_afterwards:
          type: integer
          description: ''
        project_id:
          type: integer
          description: ''
        checkpoint_id:
          type: integer
          description: ''
        skill_id:
          type: integer
          description: ''
        client_unique_id:
          type: string
          description: ''
        created:
          type: string
          format: date-time
          description: ''
        data_changed:
          type: string
          format: date-time
          description: ''
        name:
          type: string
          description: ''
        location:
          type: string
          description: ''
        status:
          type: boolean
          description: ''
    nfcTransponders_update:
      type: object
      title: nfcTransponders_update
      required:
      - id
      properties:
        id:
          type: integer
          description: A unique identifier of the transponder. Automatically assigned by the API when
            the transponder is created.
        mode_id:
          type: integer
          description: The type of transponder. One of 2 = assigned to a user 3 = assigned to a task 4
            = assigned to a project. No other value is accepted.
        unique_id:
          type: string
          description: ''
        user_id:
          type: integer
          description: ''
        task_id:
          type: integer
          description: ''
        start_task_afterwards:
          type: integer
          description: ''
        project_id:
          type: integer
          description: ''
        checkpoint_id:
          type: integer
          description: ''
        skill_id:
          type: integer
          description: ''
        name:
          type: string
          description: ''
        location:
          type: string
          description: ''
        status:
          type: boolean
          description: ''
    nominalHours_read:
      type: object
      title: nominalHours_read
      properties:
        id:
          type: integer
          description: ''
        user_id:
          type: integer
          description: ''
        start_date:
          type: string
          format: date
          description: ''
        end_date:
          type: string
          format: date
          description: ''
        date:
          type: string
          format: date
          description: ''
        allowed_working_times:
          type: string
          description: ''
        core_hours:
          type: string
          description: ''
        non_working_times:
          type: string
          description: ''
    notifications_read:
      type: object
      title: notifications_read
      properties:
        id:
          type: integer
          description: ''
        user_id:
          type: integer
          description: ''
        notification_type:
          type: integer
          description: ''
        is_response:
          type: boolean
          description: ''
        notification_timestamp:
          type: string
          format: date-time
          description: ''
        status:
          type: integer
          description: ''
        assoc_id:
          type: integer
          description: ''
        user_id_sender:
          type: integer
          description: ''
        user_id_responder:
          type: integer
          description: ''
        processed:
          type: boolean
          description: ''
        email_send_status:
          type: integer
          description: ''
        email_send_timestamp:
          type: string
          format: date-time
          description: ''
        executable_1_id:
          type: integer
          description: ''
        executable_2_id:
          type: integer
          description: ''
        data_changed:
          type: string
          format: date-time
          description: ''
        inherited_user_ids:
          type: string
          description: ''
        seen:
          type: boolean
          description: ''
        _skip_old_processed:
          type: boolean
          description: ''
    notifications_update:
      type: object
      title: notifications_update
      required:
      - id
      properties:
        id:
          type: integer
          description: ''
        processed:
          type: boolean
          description: ''
        seen:
          type: boolean
          description: ''
    oAuthClients_create:
      type: object
      title: oAuthClients_create
      required:
      - client_name
      - expire_date
      properties:
        client_name:
          type: string
          description: The Client name as displayed in frontend.
        expire_date:
          type: string
          format: date
          description: Expire date of the client secret
    oAuthClients_read:
      type: object
      title: oAuthClients_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        client_name:
          type: string
          description: The Client name as displayed in frontend.
        client_id:
          type: string
          description: The client id
        expire_date:
          type: string
          format: date
          description: Expire date of the client secret
        created:
          type: string
          format: date-time
          description: ''
        updated:
          type: string
          format: date-time
          description: ''
    oAuthClients_update:
      type: object
      title: oAuthClients_update
      required:
      - id
      - expire_date
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        expire_date:
          type: string
          format: date
          description: Expire date of the client secret
    otherPaidLeaveLimitations_read:
      type: object
      title: otherPaidLeaveLimitations_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        absence_subtype_id:
          type: integer
          description: The other paid absence subtype id
        user_id:
          type: integer
          description: The id of the maped user
        cycle_id:
          type: integer
          description: Monthly or Anually
        cycle_max_days:
          type: integer
          description: number of days in the cycle
    otherPaidLeaveLimitations_update:
      type: object
      title: otherPaidLeaveLimitations_update
      required:
      - id
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        absence_subtype_id:
          type: integer
          description: The other paid absence subtype id
        cycle_id:
          type: integer
          description: Monthly or Anually
        cycle_max_days:
          type: integer
          description: number of days in the cycle
    paidBreaksHistory_read:
      type: object
      title: paidBreaksHistory_read
      properties:
        id:
          type: integer
          description: ''
        user_id:
          type: integer
          description: The ID of the user associated with the change.
        quota_value:
          type: integer
          description: The quota value associated with the change.
        valid_from:
          type: string
          format: date
          description: The date from which the change is valid.
        created_at:
          type: string
          format: date-time
          description: The date of the change.
    payrollClientUsers_read:
      type: object
      title: payrollClientUsers_read
      properties:
        id:
          type: integer
          description: ''
        user_id:
          type: integer
          description: The assigned employee.
        payroll_client_id:
          type: integer
          description: The Mandant the employee is assigned to.
        payroll_personnel_number:
          type: string
          description: Personnel number of the employee in this Mandant; NULL while not yet assigned.
        valid_from:
          type: string
          description: Date from which this assignment applies.
        datev_synced_at:
          type: string
          description: When the assignment was last confirmed against the DATEV employee snapshot; NULL
            = not synchronised. Written by the employees read and every assignment write, never by this
            resource.
        department_id:
          type: integer
          description: Current department of the employee, for orientation in the assignment table.
        created_at:
          type: string
          description: ''
        updated_at:
          type: string
          description: ''
    permissionResolveAbsenceTypesAndUsers_read:
      type: object
      title: permissionResolveAbsenceTypesAndUsers_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        resolve_question_id:
          type: integer
          description: The ID of the existing dataset.
        subject_user_id:
          type: integer
          description: The ID of the existing dataset.
        resolve_absence_type_id:
          type: integer
          description: The ID of the existing dataset.
        resolve_absence_subtype_id:
          type: integer
          description: The ID of the existing dataset.
        resolve_user_id:
          type: integer
          description: ''
        resolve_absence_type_wildcard:
          type: string
          description: ''
        resolve_absence_subtype_wildcard:
          type: string
          description: ''
        resolve_user_wildcard:
          type: string
          description: The ID of the existing dataset
        inherited_user_ids:
          type: string
          description: ''
    permissionResolveDepartments_read:
      type: object
      title: permissionResolveDepartments_read
      properties:
        id:
          type: integer
          description: ''
        resolve_question_id:
          type: integer
          description: ''
        subject_user_id:
          type: integer
          description: ''
        resolve_department_id:
          type: integer
          description: ''
        resolve_department_wildcard:
          type: string
          description: ''
    permissionResolveEntities_read:
      type: object
      title: permissionResolveEntities_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        resolve_question_id:
          type: integer
          description: Question id from pm_acl_tt_resolve_questions
        subject_user_id:
          type: integer
          description: For which user we are resolving question
        resource_id:
          type: integer
          description: For which resource we are resolving question
        resolve_entity_id:
          type: integer
          description: Entity id on which subject_user_id has some permission.
        resolve_entity_wildcard:
          type: string
          description: If subject_user_id have permissions for all entities then we will use wildcard.
            (e.g. * )
    permissionResolveOauthClients_read:
      type: object
      title: permissionResolveOauthClients_read
      properties:
        id:
          type: integer
          description: ''
        resolve_question_id:
          type: integer
          description: ''
        subject_user_id:
          type: integer
          description: ''
        resolve_oauth_client_id:
          type: integer
          description: ''
        resolve_oauth_client_wildcard:
          type: string
          description: ''
    permissionResolveProjectsAndTasks_read:
      type: object
      title: permissionResolveProjectsAndTasks_read
      properties:
        id:
          type: integer
          description: ''
        resolve_question_id:
          type: integer
          description: ''
        subject_user_id:
          type: integer
          description: ''
        resolve_node_id:
          type: integer
          description: ''
        resolve_node_wildcard:
          type: string
          description: ''
    permissionResolveQuestions_read:
      type: object
      title: permissionResolveQuestions_read
      properties:
        id:
          type: integer
          description: Question name.
        question_name:
          type: string
          description: Question name.
        question_description:
          type: string
          description: Question description.
        question_endpoint:
          type: string
          description: ''
    permissionResolveUsers_read:
      type: object
      title: permissionResolveUsers_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        resolve_question_id:
          type: integer
          description: The ID of the existing dataset.
        subject_user_id:
          type: integer
          description: The ID of the existing dataset.
        resolve_user_id:
          type: integer
          description: The ID of the existing dataset.
        resolve_user_wildcard:
          type: string
          description: The ID of the existing dataset.
        inherited_user_ids:
          type: string
          description: ''
    permissions_read:
      type: object
      title: permissions_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        user_id:
          type: integer
          description: ''
        resource_name:
          type: string
          description: ''
        permission_name:
          type: string
          description: ''
        permission_scope_id:
          type: integer
          description: Permission scope ID.
        permission_scope_data_1:
          type: integer
          description: Permission scope data 1.
        permission_scope_data_2:
          type: integer
          description: Permission scope data 2.
        permission_scope_data_3:
          type: integer
          description: Permission scope data 3.
    permissionScopes_read:
      type: object
      title: permissionScopes_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        name:
          type: string
          description: Scope name.
        string_definition:
          type: string
          description: String definition.
    permissionsProjectsAndTasksPermissions_create:
      type: object
      title: permissionsProjectsAndTasksPermissions_create
      required:
      - task_project_id
      - resource_id
      - permission_id
      - permission_scope_id
      - permission_scope_data_1
      properties:
        task_project_id:
          type: integer
          description: ''
        resource_id:
          type: integer
          description: ''
        permission_id:
          type: integer
          description: ''
        permission_scope_id:
          type: integer
          description: ''
        permission_scope_data_1:
          type: string
          format: comma-separated-integers
          description: ''
    permissionsProjectsAndTasksPermissions_read:
      type: object
      title: permissionsProjectsAndTasksPermissions_read
      properties:
        task_project_id:
          type: integer
          description: ''
        resource_id:
          type: integer
          description: ''
        permission_id:
          type: integer
          description: ''
        permission_scope_id:
          type: integer
          description: ''
        permission_scope_data_1:
          type: string
          format: comma-separated-integers
          description: ''
    permissionsProjectsAndTasksPermissions_set:
      type: object
      title: permissionsProjectsAndTasksPermissions_set
      required:
      - task_project_id
      - resource_id
      - permission_id
      - permission_scope_id
      - permission_scope_data_1
      properties:
        task_project_id:
          type: integer
          description: ''
        resource_id:
          type: integer
          description: ''
        permission_id:
          type: integer
          description: ''
        permission_scope_id:
          type: integer
          description: ''
        permission_scope_data_1:
          type: string
          format: comma-separated-integers
          description: ''
    projectMembers_create:
      type: object
      title: projectMembers_create
      required:
      - project_id
      - user_id
      properties:
        project_id:
          type: integer
          description: ''
        user_id:
          type: integer
          description: ''
    projectMembers_read:
      type: object
      title: projectMembers_read
      properties:
        id:
          type: integer
          description: ''
        project_id:
          type: integer
          description: ''
        user_id:
          type: integer
          description: ''
        data_changed:
          type: string
          format: date-time
          description: ''
    projects_create:
      type: object
      title: projects_create
      properties:
        billing_mode:
          type: string
          description: ''
        members_can_modify_billable:
          type: boolean
          description: ''
        internal_rate:
          type: number
          description: ''
        external_rate:
          type: number
          description: ''
        tag_ids:
          type: string
          format: comma-separated-integers
          description: ''
    projects_read:
      type: object
      title: projects_read
      properties:
        is_default:
          type: boolean
          description: ''
        billing_mode:
          type: string
          description: ''
        members_can_modify_billable:
          type: boolean
          description: ''
        internal_rate:
          type: number
          description: ''
        external_rate:
          type: number
          description: ''
        tag_ids:
          type: string
          format: comma-separated-integers
          description: ''
    projects_update:
      type: object
      title: projects_update
      properties:
        billing_mode:
          type: string
          description: ''
        members_can_modify_billable:
          type: boolean
          description: ''
        internal_rate:
          type: number
          description: ''
        external_rate:
          type: number
          description: ''
        tag_ids:
          type: string
          format: comma-separated-integers
          description: ''
    publicHolidays_create:
      type: object
      title: publicHolidays_create
      required:
      - template_id
      - date
      - name
      - value
      properties:
        _skipCheckForExistingAbsencesAndApprovedDatesValidator:
          type: boolean
          description: Magic param to ignore CheckForExistingAbsencesAndApprovedDatesValidator
        template_id:
          type: integer
          description: The ID of the dataset from which it inherits already defined public holidays.
        date:
          type: string
          format: date
          description: Date of public holiday
        name:
          type: string
          description: A human readable name for the template.
        value:
          type: number
          description: Is it full day or half day
    publicHolidays_read:
      type: object
      title: publicHolidays_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        template_id:
          type: integer
          description: The ID of the dataset from which it inherits already defined public holidays.
        date:
          type: string
          format: date
          description: Date of public holiday
        name:
          type: string
          description: A human readable name for the template.
        value:
          type: number
          description: Is it full day or half day
        status:
          type: string
          description: Was holiday deleted or edited
    publicHolidays_update:
      type: object
      title: publicHolidays_update
      required:
      - id
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        date:
          type: string
          format: date
          description: Date of public holiday
        name:
          type: string
          description: A human readable name for the template.
        value:
          type: number
          description: Is it full day or half day
    publicHolidayTemplates_copy:
      type: object
      title: publicHolidayTemplates_copy
      required:
      - id
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        template_name:
          type: string
          description: A human readable name for the template.
    publicHolidayTemplates_create:
      type: object
      title: publicHolidayTemplates_create
      properties:
        template_name:
          type: string
          description: A human readable name for the template.
        country_id:
          type: integer
          description: The ID of a country for which that template should be available. These IDs can
            be retrieved from "GET countries/get".
        iso_3166:
          type: string
          description: The code for the country.
    publicHolidayTemplates_read:
      type: object
      title: publicHolidayTemplates_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        template_name:
          type: string
          description: A human readable name for the template.
        country_id:
          type: integer
          description: The ID of a country for which that template should be available. These IDs can
            be retrieved from "GET countries/get".
        iso_3166:
          type: string
          description: The code for the country.
        is_default:
          type: boolean
          description: False if the template is created by a user.
        source_id:
          type: integer
          description: The id of the dataset this one was copied from.
        active:
          type: boolean
          description: when the value is 0 the PublicHolidayTemplate is not being used
    publicHolidayTemplates_update:
      type: object
      title: publicHolidayTemplates_update
      required:
      - id
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        template_name:
          type: string
          description: A human readable name for the template.
        country_id:
          type: integer
          description: The ID of a country for which that template should be available. These IDs can
            be retrieved from "GET countries/get".
        active:
          type: boolean
          description: when the value is 0 the PublicHolidayTemplate is not being used
    recentTasks_read:
      type: object
      title: recentTasks_read
      properties:
        id:
          type: integer
          description: ''
        user_id:
          type: integer
          description: ''
        node_id:
          type: integer
          description: ''
        last_started:
          type: string
          format: date-time
          description: ''
    requestCounts_read:
      type: object
      title: requestCounts_read
      properties:
        user_id:
          type: string
          description: User ID or comma-separated list of user IDs to filter by
        start_date:
          type: string
          format: date
          description: Start date for the date range filter (defaults to Jan 1 of current year)
        end_date:
          type: string
          format: date
          description: End date for the date range filter (defaults to Dec 31 of current year)
        type_id:
          type: integer
          description: Absence type ID to filter results. 1=vacation and 3=other paid leave including
            sick leave subtypes. Does not affect summary KPIs or open requests count.
    ssoConfig_create:
      type: object
      title: ssoConfig_create
      required:
      - open_id_login
      - login_url
      - logout_url
      - entity_id
      - x509_certificate
      properties:
        open_id_login:
          type: string
          description: ''
        login_url:
          type: string
          description: ''
        logout_url:
          type: string
          description: ''
        entity_id:
          type: string
          description: ''
        x509_certificate:
          type: string
          description: ''
        send_email_reminders:
          type: boolean
          description: ''
    ssoConfig_read:
      type: object
      title: ssoConfig_read
      properties:
        id:
          type: integer
          description: ''
        open_id_login:
          type: string
          description: ''
        login_url:
          type: string
          description: ''
        logout_url:
          type: string
          description: ''
        entity_id:
          type: string
          description: ''
        send_email_reminders:
          type: boolean
          description: ''
    ssoConfig_update:
      type: object
      title: ssoConfig_update
      required:
      - id
      properties:
        id:
          type: integer
          description: ''
        open_id_login:
          type: string
          description: ''
        login_url:
          type: string
          description: ''
        logout_url:
          type: string
          description: ''
        entity_id:
          type: string
          description: ''
        x509_certificate:
          type: string
          description: ''
        send_email_reminders:
          type: boolean
          description: ''
    tags_create:
      type: object
      title: tags_create
      required:
      - name
      properties:
        name:
          type: string
          description: ''
    tags_merge:
      type: object
      title: tags_merge
      required:
      - source_tag_ids
      - target_tag_id
      properties:
        source_tag_ids:
          type: string
          format: comma-separated-integers
          description: ''
        target_tag_id:
          type: integer
          description: ''
    tags_read:
      type: object
      title: tags_read
      properties:
        id:
          type: integer
          description: ''
        name:
          type: string
          description: ''
        archived:
          type: boolean
          description: ''
        created_at:
          type: string
          description: ''
        updated_at:
          type: string
          description: ''
    tags_update:
      type: object
      title: tags_update
      required:
      - id
      properties:
        id:
          type: integer
          description: ''
        name:
          type: string
          description: ''
        archived:
          type: boolean
          description: ''
    tagToActivity_create:
      type: object
      title: tagToActivity_create
      required:
      - tag_id
      - activity_id
      properties:
        tag_id:
          type: integer
          description: ''
        activity_id:
          type: integer
          description: ''
    tagToActivity_read:
      type: object
      title: tagToActivity_read
      properties:
        id:
          type: integer
          description: ''
        tag_id:
          type: integer
          description: ''
        activity_id:
          type: integer
          description: ''
        created_at:
          type: string
          description: ''
    tagToProject_create:
      type: object
      title: tagToProject_create
      required:
      - tag_id
      - project_id
      properties:
        tag_id:
          type: integer
          description: ''
        project_id:
          type: integer
          description: ''
    tagToProject_read:
      type: object
      title: tagToProject_read
      properties:
        id:
          type: integer
          description: ''
        tag_id:
          type: integer
          description: ''
        project_id:
          type: integer
          description: ''
        created_at:
          type: string
          description: ''
    tagToTimeEntries_create:
      type: object
      title: tagToTimeEntries_create
      required:
      - tag_id
      - time_entry_id
      properties:
        tag_id:
          type: integer
          description: ''
        time_entry_id:
          type: integer
          description: ''
    tagToTimeEntries_read:
      type: object
      title: tagToTimeEntries_read
      properties:
        id:
          type: integer
          description: ''
        tag_id:
          type: integer
          description: ''
        time_entry_id:
          type: integer
          description: ''
        created_at:
          type: string
          description: ''
    tasks_create:
      type: object
      title: tasks_create
      properties:
        geofence_ids:
          type: object
          description: ''
        internal_rate:
          type: number
          description: ''
        external_rate:
          type: number
          description: ''
        tag_ids:
          type: string
          format: comma-separated-integers
          description: ''
        base_activity_id:
          type: integer
          description: The ID of the general activity this task is based on. Must reference an activity
            directly under the default activities project.
    tasks_read:
      type: object
      title: tasks_read
      properties:
        is_default:
          type: boolean
          description: ''
        geofence_ids:
          type: object
          description: ''
        internal_rate:
          type: number
          description: ''
        external_rate:
          type: number
          description: ''
        tag_ids:
          type: string
          format: comma-separated-integers
          description: ''
        base_activity_id:
          type: integer
          description: The ID of the general activity this task is based on. Must reference an activity
            directly under the default activities project.
    tasks_update:
      type: object
      title: tasks_update
      properties:
        geofence_ids:
          type: object
          description: ''
        internal_rate:
          type: number
          description: ''
        external_rate:
          type: number
          description: ''
        tag_ids:
          type: string
          format: comma-separated-integers
          description: ''
    timesheetAccountings_approve:
      type: object
      title: timesheetAccountings_approve
      required:
      - user_id
      - date
      properties:
        user_id:
          type: integer
          description: The ID of the user this timesheet record belongs to. These IDs can be retrieved
            by "GET users/get".
        date:
          type: string
          format: date
          description: ''
        approved_by_user:
          type: boolean
          description: ''
        approved_by_admin:
          type: boolean
          description: ''
        approved_by_user_1:
          type: boolean
          description: ''
    timesheetAccountings_read:
      type: object
      title: timesheetAccountings_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        user_id:
          type: integer
          description: The ID of the user this timesheet record belongs to. These IDs can be retrieved
            by "GET users/get".
        department_id:
          type: integer
          description: The department id of the user this timesheet record belongs to. These IDs can be
            retrieved by "GET department/get".
        user_role_id:
          type: integer
          description: ''
        date:
          type: string
          format: date
          description: ''
        approved_by_user:
          type: boolean
          description: ''
        approved_by_admin:
          type: boolean
          description: ''
        approved_by_user_1:
          type: boolean
          description: ''
        ordinary_hours:
          type: number
          description: ''
        target_working_hours:
          type: number
          description: ''
        target_annual_hours:
          type: number
          description: ''
        annual_hours_balance:
          type: number
          description: ''
        begin_time:
          type: string
          description: ''
        end_time:
          type: string
          description: ''
        end_day_offset:
          type: integer
          description: Days past `date` on which `end_time` falls; 1 for a shift ending after midnight
        break:
          type: number
          description: ''
        paid_break:
          type: number
          description: ''
        paid_break_details:
          type: string
          description: ''
        unpaid_break:
          type: number
          description: ''
        unpaid_break_details:
          type: string
          description: ''
        flexible_working_time:
          type: number
          description: ''
        core_working_time:
          type: number
          description: ''
        working_time:
          type: number
          description: ''
        working_time_planned:
          type: number
          description: ''
        user_defined_time_1:
          type: number
          description: ''
        user_defined_time_2:
          type: number
          description: ''
        user_defined_time_3:
          type: number
          description: ''
        user_defined_time_4:
          type: number
          description: ''
        user_defined_time_5:
          type: number
          description: ''
        user_defined_time_6:
          type: number
          description: ''
        user_defined_time_7:
          type: number
          description: ''
        user_defined_time_8:
          type: number
          description: ''
        user_defined_time_9:
          type: number
          description: ''
        user_defined_time_10:
          type: number
          description: ''
        user_defined_time_11:
          type: number
          description: ''
        user_defined_time_12:
          type: number
          description: ''
        excess_work:
          type: number
          description: ''
        excess_work_consumption:
          type: number
          description: ''
        excess_work_adjustments:
          type: number
          description: ''
        excess_work_balance:
          type: number
          description: ''
        overtime_1:
          type: number
          description: ''
        overtime_1_consumption:
          type: number
          description: ''
        overtime_1_adjustments:
          type: number
          description: ''
        overtime_1_balance:
          type: number
          description: ''
        overtime_2:
          type: number
          description: ''
        overtime_2_consumption:
          type: number
          description: ''
        overtime_2_adjustments:
          type: number
          description: ''
        overtime_2_balance:
          type: number
          description: ''
        overtime_3:
          type: number
          description: ''
        overtime_3_consumption:
          type: number
          description: ''
        overtime_3_adjustments:
          type: number
          description: ''
        overtime_3_balance:
          type: number
          description: ''
        overtime_4:
          type: number
          description: ''
        overtime_4_consumption:
          type: number
          description: ''
        overtime_4_adjustments:
          type: number
          description: ''
        overtime_4_balance:
          type: number
          description: ''
        overtime_5:
          type: number
          description: ''
        overtime_5_consumption:
          type: number
          description: ''
        overtime_5_adjustments:
          type: number
          description: ''
        overtime_5_balance:
          type: number
          description: ''
        overtime_6:
          type: number
          description: ''
        overtime_6_consumption:
          type: number
          description: ''
        overtime_6_adjustments:
          type: number
          description: ''
        overtime_6_balance:
          type: number
          description: ''
        total_working_time:
          type: number
          description: ''
        paid_nonworking_time:
          type: number
          description: ''
        paid_nonworking_time_set_by_user:
          type: integer
          description: ''
        total_working_time_incl_paid_non_working_time:
          type: number
          description: ''
        working_time_daily_balance:
          type: number
          description: ''
        working_time_daily_balance_incl_standby:
          type: number
          description: ''
        additions:
          type: number
          description: ''
        overtime_allowance:
          type: number
          description: ''
        overtime_paid:
          type: number
          description: ''
        overtime_reduction:
          type: number
          description: ''
        working_time_total_balance:
          type: number
          description: ''
        public_holiday:
          type: number
          description: ''
        holiday:
          type: number
          description: ''
        holiday_adjustments:
          type: number
          description: ''
        holiday_balance:
          type: number
          description: ''
        tmp_holiday_balance:
          type: number
          description: ''
        sick_leave:
          type: number
          description: ''
        sick_leave_adjustments:
          type: number
          description: ''
        sick_leave_balance:
          type: number
          description: ''
        other_paid_leave:
          type: number
          description: ''
        other_paid_leave_id:
          type: integer
          description: ''
        user_defined_day_1:
          type: number
          description: ''
        user_defined_day_1_adjustments:
          type: number
          description: ''
        user_defined_day_1_balance:
          type: number
          description: ''
        user_defined_day_2:
          type: number
          description: ''
        user_defined_day_2_adjustments:
          type: number
          description: ''
        user_defined_day_2_balance:
          type: number
          description: ''
        user_defined_day_3:
          type: number
          description: ''
        user_defined_day_3_adjustments:
          type: number
          description: ''
        user_defined_day_3_balance:
          type: number
          description: ''
        user_defined_day_4:
          type: number
          description: ''
        user_defined_day_5:
          type: number
          description: ''
        user_defined_day_6:
          type: number
          description: ''
        user_defined_day_7:
          type: number
          description: ''
        user_defined_day_8:
          type: number
          description: ''
        user_defined_day_9:
          type: number
          description: ''
        user_defined_day_10:
          type: number
          description: ''
        user_defined_day_11:
          type: number
          description: ''
        user_defined_day_12:
          type: number
          description: ''
        comment:
          type: string
          description: ''
        data_changed:
          type: string
          format: date-time
          description: ''
        break_law_check:
          type: integer
          description: ''
        break_law_violation:
          type: boolean
          description: ''
        workday:
          type: boolean
          description: ''
        weekday:
          type: integer
          description: ''
        year:
          type: integer
          description: ''
        month:
          type: integer
          description: ''
        week:
          type: integer
          description: ''
        law_limit_daily_hours_violation:
          type: boolean
          description: ''
        law_limit_weekly_hours_violation:
          type: boolean
          description: ''
        core_time_violation:
          type: boolean
          description: ''
        rest_period_violation:
          type: boolean
          description: ''
        rest_period_weekly_violation:
          type: boolean
          description: ''
        current_day_working_time_balance:
          type: number
          description: ''
        plausibility_conflict_violation:
          type: boolean
          description: ''
        has_violation:
          type: boolean
          description: ''
        show_status:
          type: boolean
          description: ''
        user_defined_percent_2:
          type: number
          description: ''
        user_defined_percent_3:
          type: number
          description: ''
        user_defined_text_1:
          type: string
          description: ''
        user_defined_text_2:
          type: string
          description: ''
        user_defined_text_3:
          type: string
          description: ''
        user_defined_text_4:
          type: string
          description: ''
        user_defined_text_5:
          type: string
          description: ''
        user_defined_text_6:
          type: string
          description: ''
        user_defined_timestamp_1:
          type: string
          format: time-format-00:00:00--24:00:00
          description: Timestamp slot 1 as HH:MM:SS. \00:00:00\ when the slot is unset.
        user_defined_timestamp_2:
          type: string
          format: time-format-00:00:00--24:00:00
          description: Timestamp slot 2 as HH:MM:SS. \00:00:00\ when the slot is unset.
        user_defined_timestamp_3:
          type: string
          format: time-format-00:00:00--24:00:00
          description: Timestamp slot 3 as HH:MM:SS. \00:00:00\ when the slot is unset.
        time_zone_difference:
          type: number
          description: ''
        outside_allowed_working_time:
          type: number
          description: ''
        begin_timezone:
          type: string
          description: IANA name of the time zone begin_time was booked in. Null on a day with no bookings.
        end_timezone:
          type: string
          description: IANA name of the time zone end_time was booked in. Null on a day with no bookings,
            and while the day\s last timer is still running.
        begin_datetime_utc:
          type: string
          format: date-time
          description: begin_time as an ISO-8601 UTC instant. Prefer it over begin_time for ordering and
            for comparisons across time zones. Null on a day with no bookings.
        end_datetime_utc:
          type: string
          format: date-time
          description: end_time as an ISO-8601 UTC instant. Null on a day with no bookings, and while
            the day\s last timer is still running.
        approved_by_user_at:
          type: string
          format: date-time
          description: ''
        approved_by_manager_at:
          type: string
          format: date-time
          description: ''
        approved_by_payroll_at:
          type: string
          format: date-time
          description: ''
        approved_by_manager_user_id:
          type: integer
          description: ''
        approved_by_user_user_id:
          type: integer
          description: ''
        approved_by_payroll_user_id:
          type: integer
          description: ''
    timesheetAccountings_unapprove:
      type: object
      title: timesheetAccountings_unapprove
      required:
      - user_id
      - date
      properties:
        user_id:
          type: integer
          description: The ID of the user this timesheet record belongs to. These IDs can be retrieved
            by "GET users/get".
        date:
          type: string
          format: date
          description: ''
        approved_by_user:
          type: boolean
          description: ''
        approved_by_admin:
          type: boolean
          description: ''
        approved_by_user_1:
          type: boolean
          description: ''
    timesheetAccountings_update:
      type: object
      title: timesheetAccountings_update
      required:
      - user_id
      - date
      properties:
        user_id:
          type: integer
          description: The ID of the user this timesheet record belongs to. These IDs can be retrieved
            by "GET users/get".
        date:
          type: string
          format: date
          description: ''
        user_defined_time_1:
          type: number
          description: ''
        user_defined_time_2:
          type: number
          description: ''
        user_defined_time_3:
          type: number
          description: ''
        user_defined_time_4:
          type: number
          description: ''
        user_defined_time_5:
          type: number
          description: ''
        user_defined_time_6:
          type: number
          description: ''
        user_defined_time_7:
          type: number
          description: ''
        user_defined_time_8:
          type: number
          description: ''
        user_defined_time_9:
          type: number
          description: ''
        user_defined_time_10:
          type: number
          description: ''
        user_defined_time_11:
          type: number
          description: ''
        user_defined_time_12:
          type: number
          description: ''
        overtime_paid:
          type: number
          description: ''
        user_defined_day_1:
          type: number
          description: ''
        user_defined_day_2:
          type: number
          description: ''
        user_defined_day_3:
          type: number
          description: ''
        user_defined_day_4:
          type: number
          description: ''
        user_defined_day_5:
          type: number
          description: ''
        user_defined_day_6:
          type: number
          description: ''
        user_defined_day_7:
          type: number
          description: ''
        user_defined_day_8:
          type: number
          description: ''
        user_defined_day_9:
          type: number
          description: ''
        user_defined_day_10:
          type: number
          description: ''
        user_defined_day_11:
          type: number
          description: ''
        user_defined_day_12:
          type: number
          description: ''
    timesheetAccountingsHistory_read:
      type: object
      title: timesheetAccountingsHistory_read
      properties:
        id:
          type: integer
          description: ''
        date:
          type: string
          format: date
          description: The date of the change.
        user_id:
          type: integer
          description: The ID of the user associated with the change.
        approved_by_user_id:
          type: integer
          description: The ID of the user who approved the change.
        approved_at:
          type: string
          format: date-time
          description: The timestamp when the change was approved.
        approved_field:
          type: integer
          description: The type of change that was approved.
        old_value:
          type: integer
          description: The previous value before the change.
        new_value:
          type: integer
          description: The new value after the change.
        current:
          type: integer
          description: Indicates whether the change is currently active.
    timesheetAccountingSummaries_read:
      type: object
      title: timesheetAccountingSummaries_read
      required:
      - user_id
      properties:
        user_id:
          type: integer
          description: ''
        start_date:
          type: string
          format: date
          description: The start date
    timesheetActionLogs_read:
      type: object
      title: timesheetActionLogs_read
      properties:
        id:
          type: integer
          description: ''
        user_id:
          type: integer
          description: ''
        user_department_id:
          type: integer
          description: ''
        user_role_id:
          type: integer
          description: ''
        date:
          type: string
          format: date
          description: ''
        type:
          type: string
          description: ''
        subtype:
          type: string
          description: ''
        other_paid_leave_id:
          type: integer
          description: ''
        value:
          type: number
          description: ''
        value_unit:
          type: string
          description: ''
        request_id:
          type: integer
          description: ''
        status:
          type: integer
          description: ''
        comment:
          type: string
          description: ''
        begin:
          type: string
          description: ''
        updated:
          type: string
          format: date-time
          description: ''
    timeTrackingChangelogs_read:
      type: object
      title: timeTrackingChangelogs_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        change_timestamp:
          type: string
          format: date-time
          description: The timetracking this entry was edited.
        change_type:
          type: string
          description: The type of change that was made.
        change_reason_id:
          type: integer
          description: 'The reason why the timer was changed: 0: Default 1: Automatic break calculations
            2: Automatic timer rounding'
        change_user_id:
          type: integer
          description: The ID of the user that changed this timetracking. These IDs can be retrieved by
            "GET users/get".
        tracker_id:
          type: integer
          description: The ID of the timestam belongs to. These IDs can be retrieved by "GET timetrackings/get".
        user_id:
          type: integer
          description: The ID of the user this timetracking belongs to. These IDs can be retrieved by
            "GET users/get".
        task_id:
          type: integer
          description: The ID of the task this timetracking belongs to. These IDs can be retrieved by
            "GET tasks/get".
        start_time:
          type: string
          format: date-time
          description: The timetracking the timer started on before the change.
        new_start_time:
          type: string
          format: date-time
          description: ''
        end_time:
          type: string
          format: date-time
          description: The timetracking the timer ended on before the change.
        new_end_time:
          type: string
          format: date-time
          description: The timetracking the timer ended on after the change.
        duration:
          type: integer
          description: The duration of the timer
        utc_start_time:
          type: string
          format: date-time
          description: The instant start_time denotes, as an ISO-8601 UTC instant.
        new_utc_start_time:
          type: string
          format: date-time
          description: The instant new_start_time denotes, as an ISO-8601 UTC instant. Null on a row written
            before the column existed, where the new side was never recorded as an instant.
        utc_end_time:
          type: string
          format: date-time
          description: The instant end_time denotes, as an ISO-8601 UTC instant. Null when the logged
            entry had no end yet (a timer still running at the time of the change).
        new_utc_end_time:
          type: string
          format: date-time
          description: 'The instant new_end_time denotes, as an ISO-8601 UTC instant. Null when the entry
            still has no end after the change, and on a row written before the column existed. Independent
            of utc_end_time: a stop gives the entry an end the logged row did not have before it.'
        start_timezone:
          type: string
          description: IANA name (continent/city) of the timezone start_time is expressed in.
        new_start_timezone:
          type: string
          description: 'IANA name (continent/city) of the timezone new_start_time is expressed in. Null
            where no after-side zone was recorded: a row written before the column existed, or a delete.'
        end_timezone:
          type: string
          description: IANA name (continent/city) of the timezone end_time is expressed in. Null when
            the logged entry had no end yet (a timer still running at the time of the change, see ORA-166).
        new_end_timezone:
          type: string
          description: 'IANA name (continent/city) of the timezone new_end_time is expressed in. Null
            when the entry still has no end after the change, and where no after-side zone was recorded:
            a row written before the column existed, or a delete. Independent of end_timezone: a stop
            gives the entry an end the logged row did not have before it.'
    timeTrackings_approve:
      type: object
      title: timeTrackings_approve
      required:
      - id
      properties:
        id:
          type: integer
          description: The ID of the existing dataset. approve and reject additionally require a pending
            change request on that time tracking - given an ID with nothing pending they answer 422 Entity
            does not exist even though the time tracking itself exists.
        _granted_user_comment:
          type: string
          description: ''
    timeTrackings_billableTimeSummary:
      type: object
      title: timeTrackings_billableTimeSummary
      required:
      - from
      - to
      properties:
        from:
          type: string
          format: date-time
          description: 'billableTimeSummary: first start_time (inclusive) of the aggregated period, Y-m-d
            H:i:s in account time'
        to:
          type: string
          format: date-time
          description: 'billableTimeSummary: last start_time (inclusive) of the aggregated period, Y-m-d
            H:i:s in account time'
    timeTrackings_cancel:
      type: object
      title: timeTrackings_cancel
      required:
      - id
      properties:
        id:
          type: integer
          description: The ID of the existing dataset. approve and reject additionally require a pending
            change request on that time tracking - given an ID with nothing pending they answer 422 Entity
            does not exist even though the time tracking itself exists.
    timeTrackings_create:
      type: object
      title: timeTrackings_create
      required:
      - user_id
      - task_id
      - start_time
      - end_time
      - start_time_timezone
      - end_time_timezone
      properties:
        user_id:
          type: integer
          description: The ID of the user this timer belongs to. These IDs can be retrieved by "GET users/get"
        task_id:
          type: integer
          description: The ID of the task/project the timetrackings belongs to. These IDs can be retrieved
            by "GET projects/get" or "GET tasks/get"
        project_task_id:
          type: integer
          description: The ID of the project task the timetrackings belongs to. Auto-populated from task
            base_activity_id when the task has one.
        start_time:
          type: string
          format: date-time
          description: The date and time at which the timer should start. Leave it empty to emulate a
            leaving booking (type = 2)
        end_time:
          type: string
          format: date-time
          description: The date and time at which the timer should end. Leave it empty to emulate a leaving
            booking (type = 2)
        start_time_timezone:
          type: string
          description: ''
        end_time_timezone:
          type: string
          description: ''
        max_hours_alert:
          type: boolean
          description: ''
        is_billable:
          type: boolean
          description: ''
        notes:
          type: string
          description: ''
        input_type:
          type: integer
          description: ''
        t_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        approved_by_admin:
          type: boolean
          description: Whether the admin has approved time tracking entry (no further changes possible).
        geo_start_lat:
          type: number
          description: The latitude is of type Double.
        geo_start_long:
          type: number
          description: The longitude is of type Double.
        geo_start_accuracy:
          type: number
          description: ''
        geo_end_lat:
          type: number
          description: The latitude is of type Double.
        geo_end_long:
          type: number
          description: The longitude is of type Double.
        geo_end_accuracy:
          type: number
          description: ''
        client_unique_id:
          type: string
          description: ''
        start_type_id:
          type: integer
          description: ''
        end_type_id:
          type: integer
          description: ''
        _request_user_comment:
          type: string
          description: ''
        _is_offline_live_tracking:
          type: boolean
          description: ''
        _insert_into_conflicting:
          type: boolean
          description: ''
        _write_permission_type:
          type: string
          description: ''
        start_timezone:
          type: string
          description: ''
        end_timezone:
          type: string
          description: ''
        tag_ids:
          type: string
          format: comma-separated-integers
          description: ''
    timeTrackings_current:
      type: object
      title: timeTrackings_current
      properties:
        id:
          type: integer
          description: The ID of the existing dataset. approve and reject additionally require a pending
            change request on that time tracking - given an ID with nothing pending they answer 422 Entity
            does not exist even though the time tracking itself exists.
        user_id:
          type: integer
          description: The ID of the user this timer belongs to. These IDs can be retrieved by "GET users/get"
        task_id:
          type: integer
          description: The ID of the task/project the timetrackings belongs to. These IDs can be retrieved
            by "GET projects/get" or "GET tasks/get"
        start_time:
          type: string
          format: date-time
          description: The date and time at which the timer should start. Leave it empty to emulate a
            leaving booking (type = 2)
        end_time:
          type: string
          format: date-time
          description: The date and time at which the timer should end. Leave it empty to emulate a leaving
            booking (type = 2)
        start_time_timezone:
          type: string
          description: ''
        end_time_timezone:
          type: string
          description: ''
        duration:
          type: integer
          description: ''
        status:
          type: integer
          description: 'A flag which marks the status of a timetracking: 1 = still running 2 = ended'
        start_ip:
          type: string
          description: ''
        end_ip:
          type: string
          description: ''
        max_hours_alert:
          type: boolean
          description: ''
        is_billable:
          type: boolean
          description: ''
        notes:
          type: string
          description: ''
        input_type:
          type: integer
          description: ''
        t_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        approved_by_admin:
          type: boolean
          description: Whether the admin has approved time tracking entry (no further changes possible).
        status_invoicing:
          type: integer
          description: 'The status id of the invoice: 14: Not billed 15: Ready for billing 16: Billed
            19: Paid'
        invoice_id:
          type: integer
          description: The ID of the associated invoice in TimeTac
        geo_start_lat:
          type: number
          description: The latitude is of type Double.
        geo_start_long:
          type: number
          description: The longitude is of type Double.
        geo_start_accuracy:
          type: number
          description: ''
        geo_end_lat:
          type: number
          description: The latitude is of type Double.
        geo_end_long:
          type: number
          description: The longitude is of type Double.
        geo_end_accuracy:
          type: number
          description: ''
        created_at:
          type: string
          format: date-time
          description: ''
        updated:
          type: string
          format: date-time
          description: ''
        start_type_id:
          type: integer
          description: ''
        end_type_id:
          type: integer
          description: ''
        start_timezone:
          type: string
          description: ''
        end_timezone:
          type: string
          description: ''
        billable_time:
          type: object
          description: 'Grouped billing fields: is_billable, costs, rates. Computed from individual billing
            columns.'
        time_block_id:
          type: integer
          description: The shift (time block) this booking belongs to. Bookings resuming within the maximum
            break length share a block, across midnight. Null for rows written before blocks existed.
        time_block_start_date:
          type: string
          format: date
          description: 'The calendar day the whole shift is attributed to: the day the shift started.
            A booking after midnight carries the previous day here while its start_time is already on
            the next one. Filter on it to get every booking of a shift day. Null when the booking has
            no block.'
    timeTrackings_read:
      type: object
      title: timeTrackings_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset. approve and reject additionally require a pending
            change request on that time tracking - given an ID with nothing pending they answer 422 Entity
            does not exist even though the time tracking itself exists.
        user_id:
          type: integer
          description: The ID of the user this timer belongs to. These IDs can be retrieved by "GET users/get"
        department_id:
          type: integer
          description: ''
        department_role_id:
          type: integer
          description: ''
        task_id:
          type: integer
          description: The ID of the task/project the timetrackings belongs to. These IDs can be retrieved
            by "GET projects/get" or "GET tasks/get"
        project_task_id:
          type: integer
          description: The ID of the project task the timetrackings belongs to. Auto-populated from task
            base_activity_id when the task has one.
        start_time:
          type: string
          format: date-time
          description: The date and time at which the timer should start. Leave it empty to emulate a
            leaving booking (type = 2)
        end_time:
          type: string
          format: date-time
          description: The date and time at which the timer should end. Leave it empty to emulate a leaving
            booking (type = 2)
        start_time_timezone:
          type: string
          description: ''
        end_time_timezone:
          type: string
          description: ''
        is_start_live:
          type: boolean
          description: ''
        is_end_live:
          type: boolean
          description: ''
        duration:
          type: integer
          description: ''
        status:
          type: integer
          description: 'A flag which marks the status of a timetracking: 1 = still running 2 = ended'
        start_ip:
          type: string
          description: ''
        end_ip:
          type: string
          description: ''
        is_statistic_countable:
          type: boolean
          description: ''
        max_hours_alert:
          type: boolean
          description: ''
        is_billable:
          type: boolean
          description: ''
        internal_cost_user:
          type: number
          description: ''
        internal_cost_task:
          type: number
          description: ''
        external_cost_user:
          type: number
          description: ''
        external_cost_task:
          type: number
          description: ''
        external_rate_user:
          type: number
          description: ''
        external_rate_task:
          type: number
          description: ''
        internal_rate_user:
          type: number
          description: ''
        internal_rate_task:
          type: number
          description: ''
        rate_source:
          type: string
          description: ''
        notes:
          type: string
          description: ''
        input_type:
          type: integer
          description: ''
        t_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        is_nonworking:
          type: boolean
          description: Defines a non working timestamp if it is set to TRUE (read-only)
        approved_by_admin:
          type: boolean
          description: Whether the admin has approved time tracking entry (no further changes possible).
        status_invoicing:
          type: integer
          description: 'The status id of the invoice: 14: Not billed 15: Ready for billing 16: Billed
            19: Paid'
        invoice_id:
          type: integer
          description: The ID of the associated invoice in TimeTac
        geo_start_lat:
          type: number
          description: The latitude is of type Double.
        geo_start_long:
          type: number
          description: The longitude is of type Double.
        geo_start_accuracy:
          type: number
          description: ''
        geo_end_lat:
          type: number
          description: The latitude is of type Double.
        geo_end_long:
          type: number
          description: The longitude is of type Double.
        geo_end_accuracy:
          type: number
          description: ''
        created_at:
          type: string
          format: date-time
          description: ''
        updated:
          type: string
          format: date-time
          description: ''
        last_change_time_tracking_request_id:
          type: integer
          description: ''
        client_unique_id:
          type: string
          description: ''
        start_type_id:
          type: integer
          description: ''
        end_type_id:
          type: integer
          description: ''
        is_paid_non_working:
          type: boolean
          description: ''
        inherited_user_ids:
          type: string
          description: ''
        start_oauth_client_id:
          type: string
          description: ''
        end_oauth_client_id:
          type: string
          description: ''
        absence_request_id:
          type: integer
          description: ''
        start_timezone:
          type: string
          description: ''
        end_timezone:
          type: string
          description: ''
        _return_editable_flag:
          type: boolean
          description: if this parameter would be sent, we do some extra processes to see if this record
            is editable or not and return a flag accordingly
        billable_time:
          type: object
          description: 'Grouped billing fields: is_billable, costs, rates. Computed from individual billing
            columns.'
        has_recorded_changes:
          type: boolean
          description: True when the entry has at least one change recorded after its creation. False
            for an entry that was never changed, and for one whose creation was not recorded at all.
        utc_start_time:
          type: string
          format: date-time
          description: The timer start as an ISO-8601 UTC instant. Derived server-side from start_time
            and its recorded timezone. Prefer it over start_time for ordering and for comparisons across
            timezones.
        utc_end_time:
          type: string
          format: date-time
          description: The timer end as an ISO-8601 UTC instant. Derived server-side from end_time and
            its recorded timezone. Null while the timer is running.
        time_block_id:
          type: integer
          description: The shift (time block) this booking belongs to. Bookings resuming within the maximum
            break length share a block, across midnight. Null for rows written before blocks existed.
        time_block_start_date:
          type: string
          format: date
          description: 'The calendar day the whole shift is attributed to: the day the shift started.
            A booking after midnight carries the previous day here while its start_time is already on
            the next one. Filter on it to get every booking of a shift day. Null when the booking has
            no block.'
        tag_ids:
          type: string
          format: comma-separated-integers
          description: ''
    timeTrackings_reject:
      type: object
      title: timeTrackings_reject
      required:
      - id
      properties:
        id:
          type: integer
          description: The ID of the existing dataset. approve and reject additionally require a pending
            change request on that time tracking - given an ID with nothing pending they answer 422 Entity
            does not exist even though the time tracking itself exists.
        _granted_user_comment:
          type: string
          description: ''
    timeTrackings_split:
      type: object
      title: timeTrackings_split
      required:
      - id
      - timezone
      - time
      properties:
        id:
          type: integer
          description: The ID of the existing dataset. approve and reject additionally require a pending
            change request on that time tracking - given an ID with nothing pending they answer 422 Entity
            does not exist even though the time tracking itself exists.
        task_id:
          type: integer
          description: The ID of the task/project the timetrackings belongs to. These IDs can be retrieved
            by "GET projects/get" or "GET tasks/get"
        project_task_id:
          type: integer
          description: The ID of the project task the timetrackings belongs to. Auto-populated from task
            base_activity_id when the task has one.
        timezone:
          type: string
          description: ''
        time:
          type: string
          format: date-time
          description: ''
        max_hours_alert:
          type: boolean
          description: ''
        is_billable:
          type: boolean
          description: ''
        notes:
          type: string
          description: ''
        t_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        geo_lat:
          type: number
          description: ''
        geo_long:
          type: number
          description: ''
        geo_accuracy:
          type: number
          description: ''
        _request_user_comment:
          type: string
          description: ''
        _is_offline_live_tracking:
          type: boolean
          description: ''
        _insert_into_conflicting:
          type: boolean
          description: ''
        _entity_to_create:
          type: string
          description: ''
        _write_permission_type:
          type: string
          description: ''
    timeTrackings_start:
      type: object
      title: timeTrackings_start
      required:
      - user_id
      properties:
        user_id:
          type: integer
          description: The ID of the user this timer belongs to. These IDs can be retrieved by "GET users/get"
        task_id:
          type: integer
          description: The ID of the task/project the timetrackings belongs to. These IDs can be retrieved
            by "GET projects/get" or "GET tasks/get"
        project_task_id:
          type: integer
          description: The ID of the project task the timetrackings belongs to. Auto-populated from task
            base_activity_id when the task has one.
        start_time:
          type: string
          format: date-time
          description: The date and time at which the timer should start. Leave it empty to emulate a
            leaving booking (type = 2)
        start_time_timezone:
          type: string
          description: ''
        is_billable:
          type: boolean
          description: ''
        notes:
          type: string
          description: ''
        input_type:
          type: integer
          description: ''
        t_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        geo_start_lat:
          type: number
          description: The latitude is of type Double.
        geo_start_long:
          type: number
          description: The longitude is of type Double.
        geo_start_accuracy:
          type: number
          description: ''
        client_unique_id:
          type: string
          description: ''
        start_type_id:
          type: integer
          description: ''
        end_type_id:
          type: integer
          description: ''
        _request_user_comment:
          type: string
          description: ''
        _is_offline_live_tracking:
          type: boolean
          description: ''
        _insert_into_conflicting:
          type: boolean
          description: ''
        _write_permission_type:
          type: string
          description: ''
        start_timezone:
          type: string
          description: ''
        end_timezone:
          type: string
          description: ''
    timeTrackings_stop:
      type: object
      title: timeTrackings_stop
      required:
      - user_id
      - end_time_timezone
      properties:
        user_id:
          type: integer
          description: The ID of the user this timer belongs to. These IDs can be retrieved by "GET users/get"
        end_time:
          type: string
          format: date-time
          description: The date and time at which the timer should end. Leave it empty to emulate a leaving
            booking (type = 2)
        end_time_timezone:
          type: string
          description: ''
        notes:
          type: string
          description: ''
        input_type:
          type: integer
          description: ''
        t_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        geo_end_lat:
          type: number
          description: The latitude is of type Double.
        geo_end_long:
          type: number
          description: The longitude is of type Double.
        geo_end_accuracy:
          type: number
          description: ''
        start_type_id:
          type: integer
          description: ''
        end_type_id:
          type: integer
          description: ''
        _request_user_comment:
          type: string
          description: ''
        _is_offline_live_tracking:
          type: boolean
          description: ''
        _insert_into_conflicting:
          type: boolean
          description: ''
        _write_permission_type:
          type: string
          description: ''
        start_timezone:
          type: string
          description: ''
        end_timezone:
          type: string
          description: ''
    timeTrackings_update:
      type: object
      title: timeTrackings_update
      required:
      - id
      properties:
        id:
          type: integer
          description: The ID of the existing dataset. approve and reject additionally require a pending
            change request on that time tracking - given an ID with nothing pending they answer 422 Entity
            does not exist even though the time tracking itself exists.
        task_id:
          type: integer
          description: The ID of the task/project the timetrackings belongs to. These IDs can be retrieved
            by "GET projects/get" or "GET tasks/get"
        project_task_id:
          type: integer
          description: The ID of the project task the timetrackings belongs to. Auto-populated from task
            base_activity_id when the task has one.
        start_time:
          type: string
          format: date-time
          description: The date and time at which the timer should start. Leave it empty to emulate a
            leaving booking (type = 2)
        end_time:
          type: string
          format: date-time
          description: The date and time at which the timer should end. Leave it empty to emulate a leaving
            booking (type = 2)
        start_time_timezone:
          type: string
          description: ''
        end_time_timezone:
          type: string
          description: ''
        max_hours_alert:
          type: boolean
          description: ''
        is_billable:
          type: boolean
          description: ''
        notes:
          type: string
          description: ''
        t_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        t_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_1:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_2:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_3:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_4:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_5:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        u_iv_6:
          type: string
          description: 'A custom field on user level which application can be defined on a per account
            basis. '
        approved_by_admin:
          type: boolean
          description: Whether the admin has approved time tracking entry (no further changes possible).
        geo_start_lat:
          type: number
          description: The latitude is of type Double.
        geo_start_long:
          type: number
          description: The longitude is of type Double.
        geo_start_accuracy:
          type: number
          description: ''
        geo_end_lat:
          type: number
          description: The latitude is of type Double.
        geo_end_long:
          type: number
          description: The longitude is of type Double.
        geo_end_accuracy:
          type: number
          description: ''
        start_type_id:
          type: integer
          description: ''
        end_type_id:
          type: integer
          description: ''
        _request_user_comment:
          type: string
          description: ''
        _is_offline_live_tracking:
          type: boolean
          description: ''
        _insert_into_conflicting:
          type: boolean
          description: ''
        _write_permission_type:
          type: string
          description: ''
        start_timezone:
          type: string
          description: ''
        end_timezone:
          type: string
          description: ''
        tag_ids:
          type: string
          format: comma-separated-integers
          description: ''
    timezones_read:
      type: object
      title: timezones_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        timezone:
          type: string
          description: The string representation of a timezone in format (continent/city)
    translations_read:
      type: object
      title: translations_read
      properties:
        translation_key:
          type: string
          description: ''
        value:
          type: string
          description: ''
        language_id:
          type: integer
          description: ''
    userHistory_read:
      type: object
      title: userHistory_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        user_id:
          type: integer
          description: The ID of the user
        change_user_id:
          type: integer
          description: The ID of the user who made the change
        change_date:
          type: string
          description: The date and time of the change
        change_type:
          type: string
          description: The type of change
        old_value:
          type: string
          description: The old value before the change
        new_value:
          type: string
          description: The new value after the change
    userPreferences_read:
      type: object
      title: userPreferences_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        user_id:
          type: integer
          description: The ID of the existing dataset
        oauth_client_id:
          type: integer
          description: The ID of the existing dataset
        name:
          type: string
          description: The preference name as displayed in frontend.
        value:
          type: string
          description: value of preference; null removes the stored preference
        description:
          type: string
          description: ''
    userPreferences_set:
      type: object
      title: userPreferences_set
      required:
      - data
      properties:
        data:
          type: object
          description: ''
    userPreferences_update:
      type: object
      title: userPreferences_update
      required:
      - name
      - value
      properties:
        name:
          type: string
          description: The preference name as displayed in frontend.
        value:
          type: string
          description: value of preference; null removes the stored preference
        _shared:
          type: boolean
          description: Indicates if preference is shared for all oauth clients of user, setting oauth_client_id
            to null
    users_createLoginLink:
      type: object
      title: users_createLoginLink
      required:
      - id
      properties:
        id:
          type: integer
          description: ''
    users_generatePassword:
      type: object
      title: users_generatePassword
      properties:
        count:
          type: integer
          description: How many passwords to generate for the generatePassword action (1..100, default
            1).
    users_me:
      type: object
      title: users_me
      properties:
        password_is_set:
          type: boolean
          description: ''
        seat_type_ids:
          type: object
          description: Active seat-type ids held by the user (NX-1251). Read-only — modify via /seatAssignments/set/.
        enabled_seat_features:
          type: object
          description: Names of the seat-gated features enabled for THIS user, resolved from the seats
            they hold (NX-3655), sorted alphabetically. Read-only, and not filterable or sortable. Features
            that are not seat-gated are omitted because they apply account-wide - read those from /features/read,
            where a feature with an empty seat_type_ids is ungated. Omit from _fields to skip computing
            it.
    users_read:
      type: object
      title: users_read
      properties:
        id:
          type: integer
          description: ''
        internal_user_group:
          type: integer
          description: The group this user belongs (1 = Administrator, 2 = Employee, 3 = Client, 4 = Multiuser).
        active:
          type: boolean
          description: ''
        hr_manager:
          type: boolean
          description: ''
        department_id:
          type: integer
          description: ID of the Department.
        department_id_valid_from:
          type: string
          format: date
          description: Department ID valid since.
        role_id:
          type: integer
          description: ''
        start_task_at_login:
          type: integer
          description: ''
        username:
          type: string
          description: ''
        personnel_number:
          type: string
          description: ''
        title:
          type: string
          description: ''
        lastname:
          type: string
          description: ''
        firstname:
          type: string
          description: ''
        middlename:
          type: string
          description: ''
        fullname:
          type: string
          description: ''
        abbrevation:
          type: string
          description: ''
        restrict_to_ip:
          type: boolean
          description: ''
        permission_change_own_timers:
          type: boolean
          description: ''
        permission_show_tt_ex_post_one_employees:
          type: boolean
          description: ''
        permission_show_assign_favourites:
          type: boolean
          description: ''
        permission_show_assign_todos:
          type: boolean
          description: ''
        internal_cost_per_hour:
          type: number
          description: ''
        revenue_per_hour:
          type: number
          description: ''
        email_address:
          type: string
          description: ''
        language_id:
          type: integer
          description: 1 = English, 2 = German
        phone:
          type: string
          description: ''
        skype:
          type: string
          description: ''
        profile_picture:
          type: string
          description: ''
        u_iv_1:
          type: string
          description: 'A custom field which application can be defined on a per account basis. '
        u_iv_1_valid_from:
          type: string
          format: date
          description: ''
        u_iv_2:
          type: string
          description: 'A custom field which application can be defined on a per account basis. '
        u_iv_2_valid_from:
          type: string
          format: date
          description: ''
        u_iv_3:
          type: string
          description: 'A custom field which application can be defined on a per account basis. '
        u_iv_3_valid_from:
          type: string
          format: date
          description: ''
        u_iv_4:
          type: string
          description: 'A custom field which application can be defined on a per account basis. '
        u_iv_4_valid_from:
          type: string
          format: date
          description: ''
        u_iv_5:
          type: string
          description: 'A custom field which application can be defined on a per account basis. '
        u_iv_5_valid_from:
          type: string
          format: date
          description: ''
        u_iv_6:
          type: string
          description: A custom field which application can be defined on a per account basis.
        u_iv_6_valid_from:
          type: string
          format: date
          description: ''
        mobile_allowed:
          type: boolean
          description: ''
        mobile_allow_live_timetracking:
          type: boolean
          description: ''
        country_id:
          type: integer
          description: The ID of a country. These IDs can be retrieved from "GET countries/get".
        allowed_ips:
          type: string
          description: ''
        payroll_accounting_starts_at:
          type: string
          format: date
          description: The date at which the accounting for this user should start. If left empty on a
            create request, the system will default to the current date.
        payroll_accounting_initial_value_working_time_total_balance:
          type: number
          description: The initial value for the working time balance
        public_holiday_template_id:
          type: integer
          description: The ID of a public holiday template. These IDs can be retrieved from "GET publicHolidayTemplates/get".
        public_holiday_template_id_valid_from:
          type: string
          format: date
          description: ''
        paid_break_day_quota_in_minutes:
          type: integer
          description: Paid break quota for day in minutes
        paid_break_day_quota_valid_from:
          type: string
          format: date
          description: Date from when paid break quota is valid
        annual_hours_per_year:
          type: integer
          description: Annual hours per year
        annual_hours_valid_from:
          type: string
          format: date
          description: Date from when annual hours are valid
        manual_timetracking:
          type: boolean
          description: ''
        automatic_tracker_writing_task_id:
          type: integer
          description: ''
        cost_acc_non_working_task_id:
          type: integer
          description: ''
        phone_1:
          type: string
          description: ''
        phone_2:
          type: string
          description: ''
        birthday:
          type: string
          format: date
          description: ''
        entry_date:
          type: string
          format: date
          description: ''
        exit_date:
          type: string
          format: date
          description: ''
        social_security_number:
          type: string
          description: ''
        address_1:
          type: string
          description: ''
        address_2:
          type: string
          description: ''
        zip:
          type: string
          description: ''
        permission_show_edit_user_user_settings:
          type: boolean
          description: ''
        terminal_transponder_nr:
          type: string
          description: The ID of a RFID transponder used for remote terminal timetracking.
        external_id:
          type: string
          description: 'The ID given if a user is managed by an external system. '
        company_name:
          type: string
          description: ''
        timesheet_template_id:
          type: integer
          description: Working hours timesheet model
        timesheet_template_id_valid_starting_from:
          type: string
          format: date
          description: The date the working hours timesheet model starts to count
        timesheet_holiday_calc_yearly_amount:
          type: number
          description: ''
        timesheet_holiday_calc_starting_from:
          type: string
          format: date
          description: ''
        timesheet_holiday_calc_interval_mode:
          type: string
          description: ''
        working_time_balance_rule:
          type: integer
          description: ''
        working_time_balance_rule_valid_from:
          type: string
          format: date
          description: ''
        overtime_allowance_included_overtime_hours_per_cycle:
          type: number
          description: ''
        payroll_accounting_initial_value_holiday:
          type: number
          description: ''
        enable_module_employee_timetracking:
          type: boolean
          description: ''
        enable_module_project_timetracking:
          type: boolean
          description: ''
        enable_module_leave_management:
          type: boolean
          description: ''
        enable_module_shift_planning:
          type: boolean
          description: ''
        leave_note:
          type: string
          description: Leave note.
        request_substitute_user_id:
          type: integer
          description: ''
        time_tracking_ex_post_earliest_working_time:
          type: string
          description: ''
        exclude_from_sync:
          type: boolean
          description: ''
        human:
          type: boolean
          description: ''
        user_role_ids:
          type: object
          description: Get all assigned roles
        renew_password:
          type: boolean
          description: Automatic break template id which is used to automatically insert breaks.
        automatic_break_template_valid_starting_from:
          type: string
          format: date
          description: Since when the user has this automatic break template.
        authentication_blocked:
          type: boolean
          description: ''
        working_time_balance_rule_cycle_id:
          type: integer
          description: ''
        overtime_allowance_is_all_in:
          type: boolean
          description: ''
        overtime_allowance_is_all_in_valid_starting_from:
          type: string
          format: date
          description: ''
        overtime_all_inc_ov_hours_per_cycle_valid_starting_from:
          type: string
          format: date
          description: ''
        overtime_allowance_clear_working_time_saldo_valid_starting_from:
          type: string
          format: date
          description: ''
        overtime_allowance_clear_working_time_saldo:
          type: boolean
          description: ''
        seat_type_ids:
          type: object
          description: Active seat-type ids held by the user (NX-1251). Read-only — modify via /seatAssignments/set/.
        enabled_seat_features:
          type: object
          description: Names of the seat-gated features enabled for THIS user, resolved from the seats
            they hold (NX-3655), sorted alphabetically. Read-only, and not filterable or sortable. Features
            that are not seat-gated are omitted because they apply account-wide - read those from /features/read,
            where a feature with an empty seat_type_ids is ungated. Omit from _fields to skip computing
            it.
        invitation_pending:
          type: boolean
          description: True while the user was created without sending the invitation email (LIL-18).
            Cleared by /users/sendInvitation/. Read-only, and not filterable or sortable.
    usersArchiveHistory_read:
      type: object
      title: usersArchiveHistory_read
      properties:
        user_id:
          type: integer
          description: The ID of the user associated with the change.
        active:
          type: integer
          description: Represents the active status of user after the change.
        valid_from:
          type: string
          format: date
          description: The date from which active value is valid from.
        valid_to:
          type: string
          format: date
          description: The date to which active value is valid to.
        created_at:
          type: string
          format: date-time
          description: The date when change was made.
    userStatusOverview_read:
      type: object
      title: userStatusOverview_read
      properties:
        user_id:
          type: integer
          description: ''
        time_tracking_id:
          type: integer
          description: ''
        time_tracking_start_time:
          type: string
          format: date-time
          description: ''
        time_tracking_start_time_timezone_id:
          type: string
          description: ''
        time_tracking_utc_start_time:
          type: string
          format: date-time
          description: ''
        time_tracking_task_id:
          type: integer
          description: ''
        time_tracking_project_id:
          type: integer
          description: ''
        time_tracking_is_nonworking:
          type: boolean
          description: ''
        core_time_violation:
          type: boolean
          description: ''
        core_time_start:
          type: string
          description: ''
        updated:
          type: string
          format: date-time
          description: ''
        is_running:
          type: boolean
          description: ''
        current_absence_ids:
          type: string
          description: ''
        status:
          type: integer
          description: ''
        version:
          type: integer
          description: ''
        user_fullname:
          type: string
          description: ''
        email_address:
          type: string
          description: ''
        phone:
          type: string
          description: ''
        skype:
          type: string
          description: ''
        department_id:
          type: integer
          description: ''
        department_name:
          type: string
          description: ''
        leave_note:
          type: string
          description: ''
        max_time_exceeded:
          type: boolean
          description: ''
        translate_task_name:
          type: integer
          description: ''
    userTemplateHistory_read:
      type: object
      title: userTemplateHistory_read
      properties:
        id:
          type: integer
          description: ''
        user_id:
          type: integer
          description: ''
        template_id:
          type: integer
          description: ''
        template_hours:
          type: number
          description: ''
        valid_from:
          type: string
          format: date
          description: ''
        change_type:
          type: string
          description: ''
        created_at:
          type: string
          format: date-time
          description: ''
    userTemplateHistory_view:
      type: object
      title: userTemplateHistory_view
      required:
      - user_id
      properties:
        id:
          type: integer
          description: ''
        user_id:
          type: integer
          description: ''
        template_id:
          type: integer
          description: ''
        template_hours:
          type: number
          description: ''
        valid_from:
          type: string
          format: date
          description: ''
        rule_name:
          type: string
          description: ''
        change_type:
          type: string
          description: ''
        created_at:
          type: string
          format: date-time
          description: ''
        overtime_allowance_hours:
          type: number
          description: ''
        timesheet_template_name:
          type: string
          description: ''
        public_holiday_template_name:
          type: string
          description: ''
    userToOauthClients_read:
      type: object
      title: userToOauthClients_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        user_id:
          type: integer
          description: The ID of the existing dataset
        oauth_client_id:
          type: integer
          description: The ID of the existing dataset
        allowed:
          type: boolean
          description: is client allowed
    userToOauthClients_update:
      type: object
      title: userToOauthClients_update
      required:
      - id
      - allowed
      properties:
        id:
          type: integer
          description: The ID of the existing dataset
        allowed:
          type: boolean
          description: is client allowed
    workingHourSlotGroups_create:
      type: object
      title: workingHourSlotGroups_create
      required:
      - name
      properties:
        name:
          type: string
          description: Internal name for
        properties:
          type: object
          description: any extra properties for example predefined color tokens mapped to colors in FE
        order_number:
          type: integer
          description: we show groups in the FE based on this order number
    workingHourSlotGroups_read:
      type: object
      title: workingHourSlotGroups_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        name:
          type: string
          description: Internal name for
        properties:
          type: object
          description: any extra properties for example predefined color tokens mapped to colors in FE
        order_number:
          type: integer
          description: we show groups in the FE based on this order number
        created_at:
          type: string
          format: date-time
          description: ''
        updated_at:
          type: string
          format: date-time
          description: ''
    workingHourSlotGroups_update:
      type: object
      title: workingHourSlotGroups_update
      required:
      - id
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        name:
          type: string
          description: Internal name for
        properties:
          type: object
          description: any extra properties for example predefined color tokens mapped to colors in FE
        order_number:
          type: integer
          description: we show groups in the FE based on this order number
    workingTimeBalanceRules_read:
      type: object
      title: workingTimeBalanceRules_read
      properties:
        id:
          type: integer
          description: ''
        name:
          type: string
          description: ''
        sort_order:
          type: integer
          description: ''
        show:
          type: boolean
          description: ''
    workScheduleDayDefinitions_create:
      type: object
      title: workScheduleDayDefinitions_create
      required:
      - timesheet_template_id
      - weekday_id
      - slot_id
      - start
      - end
      - valid_for_task_id
      properties:
        timesheet_template_id:
          type: integer
          description: ''
        weekday_id:
          type: integer
          description: ''
        slot_id:
          type: integer
          description: ''
        start:
          type: string
          format: time-format-00:00:00--24:00:00
          description: ''
        end:
          type: string
          format: time-format-00:00:00--24:00:00
          description: ''
        valid_for_task_id:
          type: integer
          description: ''
        valid_for_skill_id:
          type: integer
          description: ''
    workScheduleDayDefinitions_read:
      type: object
      title: workScheduleDayDefinitions_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        timesheet_template_id:
          type: integer
          description: ''
        weekday_id:
          type: integer
          description: ''
        slot_id:
          type: integer
          description: ''
        start:
          type: string
          format: time-format-00:00:00--24:00:00
          description: ''
        end:
          type: string
          format: time-format-00:00:00--24:00:00
          description: ''
        valid_for_task_id:
          type: integer
          description: ''
        valid_for_skill_id:
          type: integer
          description: ''
        updated_at:
          type: string
          format: date-time
          description: ''
    workScheduleDayDefinitions_update:
      type: object
      title: workScheduleDayDefinitions_update
      required:
      - id
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        slot_id:
          type: integer
          description: ''
        start:
          type: string
          format: time-format-00:00:00--24:00:00
          description: ''
        end:
          type: string
          format: time-format-00:00:00--24:00:00
          description: ''
        valid_for_task_id:
          type: integer
          description: ''
        valid_for_skill_id:
          type: integer
          description: ''
    workScheduleDays_read:
      type: object
      title: workScheduleDays_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        timesheet_template_id:
          type: integer
          description: ''
        weekday_id:
          type: integer
          description: ''
        workday:
          type: boolean
          description: Shows that this day is a working day or not.
        half_holiday:
          type: boolean
          description: Shows that this day is half-holiday or not.
        hours:
          type: number
          description: Planned hours for this day.
        core_time_start:
          type: string
          format: time-format-00:00:00--24:00:00
          description: ''
        core_time_end:
          type: string
          format: time-format-00:00:00--24:00:00
          description: ''
        core_time_start_tolerance:
          type: integer
          description: core time start tolerance in seconds.
        core_time_end_tolerance:
          type: integer
          description: core time end tolerance in seconds.
        updated_at:
          type: string
          format: date-time
          description: ''
        editable:
          type: boolean
          description: True if working_time_overview with this template is approved for >= 1 user, false
            if not
        deletable:
          type: boolean
          description: True if template is assigned to any active user, false if not
    workScheduleDays_update:
      type: object
      title: workScheduleDays_update
      required:
      - id
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        workday:
          type: boolean
          description: Shows that this day is a working day or not.
        half_holiday:
          type: boolean
          description: Shows that this day is half-holiday or not.
        hours:
          type: number
          description: Planned hours for this day.
        core_time_start:
          type: string
          format: time-format-00:00:00--24:00:00
          description: ''
        core_time_end:
          type: string
          format: time-format-00:00:00--24:00:00
          description: ''
        core_time_start_tolerance:
          type: integer
          description: core time start tolerance in seconds.
        core_time_end_tolerance:
          type: integer
          description: core time end tolerance in seconds.
    workSchedules_copy:
      type: object
      title: workSchedules_copy
      required:
      - id
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
    workSchedules_create:
      type: object
      title: workSchedules_create
      required:
      - name
      properties:
        name:
          type: string
          description: Work schedule name.
        individual_value_1:
          type: string
          description: ''
        individual_value_2:
          type: string
          description: ''
        note:
          type: string
          description: ''
        minijobber_always_deduct_overtime:
          type: boolean
          description: ''
        minijobber_deduction_hours:
          type: number
          description: ''
        minijobber_deduction_cycle:
          type: string
          description: ''
        type:
          type: string
          description: ''
        minijobber_absence_credit:
          type: number
          description: ''
    workSchedules_read:
      type: object
      title: workSchedules_read
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        name:
          type: string
          description: Work schedule name.
        automatic_break_template_id:
          type: integer
          description: ''
        display:
          type: integer
          description: ''
        individual_value_1:
          type: string
          description: ''
        individual_value_2:
          type: string
          description: ''
        note:
          type: string
          description: ''
        updated_at:
          type: string
          format: date-time
          description: ''
        editable:
          type: boolean
          description: True if working_time_overview with this template is approved for >= 1 user, false
            if not
        deletable:
          type: boolean
          description: True if template is assigned to any active user, false if not
        archived:
          type: integer
          description: Flag tells if Work schedule is archived.
        status:
          type: boolean
          description: True if template is assigned to any active user, false if not
        law_limit_daily_hours:
          type: number
          description: Max allowed daily hours
        law_limit_weekly_hours:
          type: number
          description: Max allowed weekly hours
        law_rest_period_minimum_hours:
          type: number
          description: ''
        law_rest_period_minimum_weekly_hours:
          type: number
          description: Minimum rest period within a week
        active:
          type: boolean
          description: when the value is 0 the workSchedule has been archived and is not being used
        is_default:
          type: boolean
          description: Flag that tels us if this is a default template.
        minijobber_always_deduct_overtime:
          type: boolean
          description: ''
        minijobber_deduction_hours:
          type: number
          description: ''
        minijobber_deduction_cycle:
          type: string
          description: ''
        type:
          type: string
          description: ''
        minijobber_absence_credit:
          type: number
          description: ''
        source_id:
          type: integer
          description: ''
        overtime_allowance_always_deduct:
          type: boolean
          description: ''
    workSchedules_update:
      type: object
      title: workSchedules_update
      required:
      - id
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        name:
          type: string
          description: Work schedule name.
        automatic_break_template_id:
          type: integer
          description: ''
        individual_value_1:
          type: string
          description: ''
        individual_value_2:
          type: string
          description: ''
        note:
          type: string
          description: ''
        law_limit_daily_hours:
          type: number
          description: Max allowed daily hours
        law_limit_weekly_hours:
          type: number
          description: Max allowed weekly hours
        law_rest_period_minimum_hours:
          type: number
          description: ''
        law_rest_period_minimum_weekly_hours:
          type: number
          description: Minimum rest period within a week
        active:
          type: boolean
          description: when the value is 0 the workSchedule has been archived and is not being used
        minijobber_always_deduct_overtime:
          type: boolean
          description: ''
        minijobber_deduction_hours:
          type: number
          description: ''
        minijobber_deduction_cycle:
          type: string
          description: ''
        type:
          type: string
          description: ''
        minijobber_absence_credit:
          type: number
          description: ''
        overtime_allowance_always_deduct:
          type: boolean
          description: ''
    error401:
      type: object
      title: ResponseError401
      properties:
        error_description:
          type: string
        error:
          type: string
    error403:
      type: object
      title: ResponseError403
      properties:
        Host:
          type: string
        Success:
          type: boolean
        SuccessNested:
          type: boolean
        ResourceName:
          type: string
        RequestStartTime:
          type: string
          format: date
        RequestEndTime:
          type: string
          format: date
        ServerTimeZone:
          type: string
        Error:
          type: integer
        ErrorMessage:
          type: string
        ErrorInternal:
          type: string
    error410:
      type: object
      title: ResponseError410
      properties:
        Success:
          type: boolean
        ErrorMessage:
          type: string
        Error:
          type: integer
    error497:
      type: object
      title: ResponseError497
      properties:
        error_description:
          type: string
        error:
          type: string
    absences_approve:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        granted_comment:
          type: string
          description: An optional comment added by the user who approved/declined the request.
        substitute_enabled:
          type: boolean
      required:
      - id
    absences_cancel:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
      required:
      - id
    absences_create:
      type: object
      properties:
        user_id:
          type: integer
          description: The ID of the user this request belongs to. These IDs can be retrieved by “GET
            users/get”.
        type_id:
          type: integer
          description: 'The type of absence. This is the absence_type_id of an absenceTypes entry - NOT
            its id primary key. Reading absenceTypes returns both: id is the row key (1000+) while absence_type_id
            is the value to send here. 1 = holiday 2 = overtime_reduction 3 = other paid leaves'
        from_date:
          type: string
          description: The start date of the requested timeframe
        to_date:
          type: string
          description: The end date of the requested timeframe
        subtype_id:
          type: integer
          description: The absence subtype. This is the absence_subtype_id of an absenceTypes entry -
            NOT its id primary key. Defaults to 0 which is the only valid value for types that define
            no subtypes.
        duration:
          type: number
          format: float
          description: The requested duration of workdays/time
        duration_unit:
          type: string
          description: The unit the duration was measured in d=>days hs=>hours.
        begin:
          type: string
        substitute_enabled:
          type: boolean
        replacement_user_id:
          type: integer
        request_comment:
          type: string
          description: An optional comment added by the requesting user
        individual_value_1:
          type: string
        _writePermissionType:
          type: string
        request_partial_begin_duration:
          type: number
          format: float
        request_partial_end_duration:
          type: number
          format: float
        eau_doctors_confirmation_checked:
          type: boolean
      required:
      - user_id
      - type_id
      - from_date
      - to_date
    absences_reject:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        granted_comment:
          type: string
          description: An optional comment added by the user who approved/declined the request.
        substitute_enabled:
          type: boolean
      required:
      - id
    absences_update:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        request_comment:
          type: string
          description: An optional comment added by the requesting user
        substitute_enabled:
          type: boolean
        individual_value_1:
          type: string
        eau_doctors_confirmation_checked:
          type: boolean
      required:
      - id
    budgets_create:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        metric:
          type: string
        target:
          type: integer
        interval:
          type: string
        from_date:
          type: string
        to_date:
          type: string
        project_ids:
          type: array
        task_ids:
          type: array
        user_ids:
          type: array
        tag_ids:
          type: array
      required:
      - name
      - description
      - metric
      - target
      - interval
      - from_date
      - to_date
    budgets_update:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        metric:
          type: string
        target:
          type: integer
        interval:
          type: string
        from_date:
          type: string
        to_date:
          type: string
        project_ids:
          type: array
        task_ids:
          type: array
        user_ids:
          type: array
        tag_ids:
          type: array
    departments_create:
      type: object
      properties:
        department_name:
          type: string
          description: The human readable name of the department.
        mother_id:
          type: integer
          description: The ID of an optional higher level department in a hierarchical structure.
        supervisor_id:
          type: integer
          description: The ID of the user who is supervising this department.
        supervisor_assistant_id:
          type: integer
          description: The ID of the user who is assisting with supervising this department.
        individual_value_1:
          type: string
        department_active:
          type: boolean
        active:
          type: boolean
          description: If department is visible to the user or not.
      required:
      - department_name
      - mother_id
    departments_update:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the existing dataset.
        department_name:
          type: string
          description: The human readable name of the department.
        department_active:
          type: boolean
        active:
          type: boolean
          description: If department is visible to the user or not.
        supervisor_id:
          type: integer
          description: The ID of the user who is supervising this department.
        supervisor_assistant_id:
          type: integer
          description: The ID of the user who is assisting with supervising this department.
        mother_id:
          type: integer
          description: The ID of an optional higher level department in a hierarchical structure.
        sort_order:
          type: integer
        individual_value_1:
          type: string
      required:
      - id
    users_activate:
      type: object
      properties:
        id:
          type: integer
        administrators_id:
          type: integer
      required:
      - id
    users_forgotPassword:
      type: object
      properties:
        username:
          type: string
        administrators_username:
          type: string
        email_address:
          type: string
        client_id:
          type: string
    users_resetPassword:
      type: object
      properties:
        username:
          type: string
        administrators_username:
          type: string
        email_address:
          type: string
        client_id:
          type: string
    users_sendWelcomeEmail:
      type: object
      properties:
        id:
          type: integer
        administrators_id:
          type: integer
      required:
      - id
    users_setInitialPassword:
      type: object
      properties:
        administrators_password:
          type: string
        password:
          type: string
      required:
      - administrators_password
    users_setPassword:
      type: object
      properties:
        temporary_token:
          type: string
        password:
          type: string
        administrators_password:
          type: string
      required:
      - temporary_token
      - password
    users_updatePassword:
      type: object
      properties:
        id:
          type: integer
        administrators_id:
          type: integer
        administrators_password:
          type: string
        password:
          type: string
        old_password:
          type: string
        revoke_access:
          type: boolean
        _skip_email:
          type: boolean
        skipEmail:
          type: boolean
      required:
      - id
    employeeDocuments_read:
      type: object
      properties:
        id:
          type: integer
        user_id:
          type: integer
          description: The employee this document is filed for.
        category_id:
          type: integer
          description: Id of an `employeeDocuments/categories` row.
        title:
          type: string
        original_filename:
          type: string
          description: File name as supplied at upload, with any directory part stripped.
        mime_type:
          type: string
          enum:
          - application/pdf
          - image/png
          - image/jpeg
          description: Detected from the stored bytes at confirm, never taken from the client.
        file_size:
          type: integer
          description: Size of the stored file in bytes.
        state:
          type: string
          enum:
          - available
          - pending
          - rejected
          description: Whether the bytes may be served. Always `available` today; the other states are
            reserved.
        issue_date:
          type: string
          format: date
          nullable: true
          description: Date the document was issued.
        valid_from:
          type: string
          format: date
          nullable: true
          description: First day the document is valid.
        valid_until:
          type: string
          format: date
          nullable: true
          description: Last day the document is valid.
        period_start:
          type: string
          format: date
          nullable: true
          description: First day of the period the document covers, derived from `period`.
        period_end:
          type: string
          format: date
          nullable: true
          description: Last day of that period.
        uploaded_by_user_id:
          type: integer
        archived_at:
          type: string
          format: date-time
          nullable: true
        archived_by_user_id:
          type: integer
          nullable: true
        is_archived:
          type: boolean
    employeeDocuments_category:
      type: object
      properties:
        id:
          type: integer
        key:
          type: string
          description: 'Stable identifier of the category: `contract`, `payslip`, `certificate_license`,
            `id_permit` or `other`. The labels shown to users are translated on the client.'
        date_fields:
          type: object
          description: Per date field, whether this category hides, allows or requires it. Render the
            upload form from this rather than hard-coding which fields a category takes.
          additionalProperties:
            type: string
            enum:
            - hidden
            - optional
            - required
          example:
            issue_date: optional
            valid_from: optional
            valid_until: optional
            period: optional
        can_upload:
          type: boolean
          description: Whether the authenticated user may file a document in this category. Categories
            are listed either way, so their labels and filters keep working for everyone.
        sort_order:
          type: integer
    employeeDocuments_uploadUrl:
      type: object
      required:
      - category_id
      - files
      properties:
        category_id:
          type: integer
          description: Category every file in this request is filed under. Must be one the caller may
            upload to (`can_upload`).
        files:
          type: array
          minItems: 1
          description: One entry per file. The response comes back in the same order, so each URL can
            be matched to the file it belongs to.
          items:
            type: object
            required:
            - filename
            - content_type
            - size
            properties:
              user_id:
                type: integer
                description: The employee to file this document for. Defaults to the authenticated user
                  when omitted; an invalid value is rejected rather than quietly treated as the caller.
                  Checked against the caller's scope per file, so one request may cover several employees.
              filename:
                type: string
                maxLength: 255
                description: Original file name. Any directory part is stripped.
              content_type:
                type: string
                description: Declared media type. Recorded for error reporting only — the stored bytes
                  decide the document's type at confirm.
              size:
                type: integer
                description: Declared size in bytes, at most 20971520. Also only a claim; the stored object's
                  real size is what is checked at confirm.
    employeeDocuments_preparedUpload:
      type: object
      properties:
        pending_upload_id:
          type: integer
          description: The only handle to this upload. Pass it to the confirm call — storage keys are
            never exposed and never accepted.
        upload_url:
          type: string
          description: Presigned URL to `PUT` the file's bytes to. It carries its own authorisation; do
            not send your bearer token with it.
        required_headers:
          type: object
          additionalProperties:
            type: string
          description: Headers that must be replayed verbatim on the `PUT`. The URL was signed with them,
            and storage refuses the upload without them.
        expires_at:
          type: string
          format: date-time
          description: When the URL stops working.
    employeeDocuments_confirm:
      type: object
      required:
      - pending_upload_id
      - title
      properties:
        pending_upload_id:
          type: integer
          description: From the `uploadUrl` response, for a file whose bytes have been uploaded.
        title:
          type: string
          maxLength: 255
        issue_date:
          type: string
          format: date
          nullable: true
          description: Only if the category allows it, and required if the category requires it.
        valid_from:
          type: string
          format: date
          nullable: true
          description: Only if the category allows it, and required if the category requires it.
        valid_until:
          type: string
          format: date
          nullable: true
          description: Only if the category allows it, and required if the category requires it.
        period:
          type: string
          nullable: true
          pattern: ^\d{4}-\d{2}$
          example: 2026-03
          description: Month the document covers, as `YYYY-MM`. Stored as the `period_start` / `period_end`
            pair. Only if the category allows it, and required if the category requires it.
    employeeDocuments_delete:
      type: object
      properties:
        id:
          type: integer
          description: Id of the document that was deleted.
    employeeDocuments_update:
      type: object
      required:
      - category_id
      - title
      properties:
        category_id:
          type: integer
        title:
          type: string
          maxLength: 255
        issue_date:
          type: string
          format: date
          nullable: true
          description: Omit the key to keep the stored value; send it as `null` to clear it.
        valid_from:
          type: string
          format: date
          nullable: true
          description: Omit the key to keep the stored value; send it as `null` to clear it.
        valid_until:
          type: string
          format: date
          nullable: true
          description: Omit the key to keep the stored value; send it as `null` to clear it.
        period:
          type: string
          nullable: true
          pattern: ^\d{4}-\d{2}$
          example: 2026-03
          description: Month the document covers, as `YYYY-MM`. Omit the key to keep the stored value;
            send it as `null` to clear it.
  parameters:
    _limit:
      name: _limit
      description: 'Limits the amount entries in the result. Default value: 100'
      in: query
      required: false
      schema:
        type: integer
        format: int32
    _offset:
      name: _offset
      description: If there are more results than can be displayed in one response (> limit), offset will
        skip this many entries and returns the next page of the resultset.
      in: query
      required: false
      schema:
        type: integer
        format: int32
    _order_by:
      name: _order_by
      description: Any of the supported parameters name. This will sort the resultset by the specified
        field in the proper order.
      in: query
      required: false
      schema:
        type: string
    _since:
      name: _since
      description: Get all entries that were modified since the input date and time, If the provided date
        is less than 3 months ago. Otherwise, it will fetch everything.
      in: query
      required: false
      schema:
        type: string
        format: date-time
    _sort_direction:
      name: _sort_direction
      description: If set to "ASC", the resultset will be sorted in the proper order. If set to "DESC",
        the resultset will be sorted in reversed order.
      in: query
      required: false
      schema:
        type: string
    absenceDays_V6_id_delete:
      name: id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
    absenceTypes_V1_id_delete:
      name: id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
    favouriteTasks_V1_id_delete:
      name: id
      description: ''
      in: query
      required: false
      schema:
        type: integer
      example: null
    favouriteTasks_V1_user_id_delete:
      name: user_id
      description: ''
      in: query
      required: false
      schema:
        type: integer
      example: null
    favouriteTasks_V1_node_id_delete:
      name: node_id
      description: ''
      in: query
      required: false
      schema:
        type: integer
      example: null
    favouriteTasks_V1__cascade_children_delete:
      name: _cascade_children
      description: when unpinning a project, also unpin its activities that the user had pinned individually.
        Without it only the inherited rows are removed and individual pins survive. No effect on a node
        without children — there is nothing to cascade to.
      in: query
      required: false
      schema:
        type: boolean
      example: null
    geofenceToNodes_V3_id_delete:
      name: id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
    nfcTransponders_V6_id_delete:
      name: id
      description: A unique identifier of the transponder. Automatically assigned by the API when the
        transponder is created.
      in: query
      required: true
      schema:
        type: integer
      example: null
    oAuthClients_V4_id_delete:
      name: id
      description: The ID of the existing dataset
      in: query
      required: true
      schema:
        type: integer
      example: null
    permissionsProjectsAndTasksPermissions_V1_task_project_id_delete:
      name: task_project_id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
    permissionsProjectsAndTasksPermissions_V1_resource_id_delete:
      name: resource_id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
    permissionsProjectsAndTasksPermissions_V1_permission_id_delete:
      name: permission_id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
    permissionsProjectsAndTasksPermissions_V1_permission_scope_id_delete:
      name: permission_scope_id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
    permissionsProjectsAndTasksPermissions_V1_permission_scope_data_1_delete:
      name: permission_scope_data_1
      description: ''
      in: query
      required: true
      schema:
        type: string
      example: null
    projectMembers_V6_id_delete:
      name: id
      description: ''
      in: query
      required: false
      schema:
        type: integer
      example: null
    projectMembers_V6_task_project_id_delete:
      name: project_id
      description: ''
      in: query
      required: false
      schema:
        type: integer
      example: null
    projectMembers_V6_permission_scope_data_1_delete:
      name: user_id
      description: ''
      in: query
      required: false
      schema:
        type: integer
      example: null
    publicHolidays_V1_id_delete:
      name: id
      description: The ID of the existing dataset.
      in: query
      required: true
      schema:
        type: integer
      example: null
    publicHolidayTemplates_V6_id_delete:
      name: id
      description: The ID of the existing dataset.
      in: query
      required: true
      schema:
        type: integer
      example: null
    ssoConfig_V1_id_delete:
      name: id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
    tags_V6_id_delete:
      name: id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
    tagToActivity_V6_id_delete:
      name: id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
    tagToProject_V6_id_delete:
      name: id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
    tagToTimeEntries_V6_id_delete:
      name: id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
    timesheetActionLogs_V1_id_delete:
      name: id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
    timeTrackings_V6_id_delete:
      name: id
      description: The ID of the existing dataset. approve and reject additionally require a pending change
        request on that time tracking - given an ID with nothing pending they answer 422 Entity does not
        exist even though the time tracking itself exists.
      in: query
      required: true
      schema:
        type: integer
      example: null
    workingHourSlotGroups_V6_id_delete:
      name: id
      description: The ID of the existing dataset.
      in: query
      required: true
      schema:
        type: integer
      example: null
    workScheduleDayDefinitions_V1_id_delete:
      name: id
      description: The ID of the existing dataset.
      in: query
      required: true
      schema:
        type: integer
      example: null
    workSchedules_V1_id_delete:
      name: id
      description: The ID of the existing dataset.
      in: query
      required: true
      schema:
        type: integer
      example: null
    timesheetAccountingSummaries_V3_id_read:
      name: user_id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
    timeTrackings_V6_from_billableTimeSummary:
      name: from
      description: 'billableTimeSummary: first start_time (inclusive) of the aggregated period, Y-m-d
        H:i:s in account time'
      in: query
      required: true
      schema:
        type: string
      example: null
    timeTrackings_V6_to_billableTimeSummary:
      name: to
      description: 'billableTimeSummary: last start_time (inclusive) of the aggregated period, Y-m-d H:i:s
        in account time'
      in: query
      required: true
      schema:
        type: string
      example: null
    userTemplateHistory_V3_user_id_view:
      name: user_id
      description: ''
      in: query
      required: true
      schema:
        type: integer
      example: null
