Deputy Agreed Hour API

The Agreed Hour API from Deputy — 17 operation(s) for agreed hour.

Operations 18

POST /management/v2/agreed_hour/employee/{employeeId} Get an Employee's Agreed Hours by Version #
GET /management/v2/agreed_hour/{employeeId} Get an Employee's Agreed Hours #
POST /management/v2/agreed_hour/{employeeId} Set an Employee's Agreed Hours #
GET /management/v2/agreed_hour/{employeeId}/{version} Get an Employee's Agreed Hours by Version #
POST /management/v2/agreed_hour:batchUpdate Set multiple Employees' Agreed Hours #
POST /management/v2/agreed_hour:listCommonAreas Get Common Areas by Employee Ids #
POST /management/v2/agreed_hours Search for Employees' Agreed Hours in particular status #
POST /management/v2/agreed_hours/archive/{employeeId}/{version} Archive an Employee's Agreed Hours version with reason #
POST /management/v2/agreed_hours/audit/{employeeId} Audit for an Employee's Agreed Hours for a time period #
POST /management/v2/agreed_hours/configuration/employee_approval/{employeeId} Check if an Employee's Agreed Hours needs approval #
GET /management/v2/agreed_hours/configuration/general/{employeeId} Get an Employee's Agreed Hours configuration #
GET /management/v2/agreed_hours/consent-records/{recordId} Get an Employee's Agreed Hours Consent Records by RecordId #
POST /management/v2/agreed_hours/consent/{employeeId}/{version} Consent to Agreed Hours for an Employee #
GET /management/v2/agreed_hours/diff/{employeeId}/{baseVersion}/{targetVersion} Diff Agreed Hours for an Employee #
POST /management/v2/agreed_hours/migrate/step-two/{locationId} Second migration step for Employees' Agreed Hours in the given location #
POST /management/v2/agreed_hours/notify/{employeeId}/{version} Notify an Employee of their Agreed Hours #
POST /management/v2/agreed_hours/{employeeId} Search for an Employee's Agreed Hours for a time period #
DELETE /management/v2/agreed_hours/{employeeId}/{version} Deletes/Archives Agreed Hours for an Employee #

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-addanemployee-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-createa-department-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-addleaveforaemployee-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-createamemo-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-add-new-workplace-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-setawardforemployee-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-custom-field-data-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-timesheet-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-employee-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-pay-rules-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-roster-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-employee-agreement-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-tenanttimesheetv2model-timesheet-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-pay-comparison-submit-report-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-v2model-leave-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-v2model-employment-contracts-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-copy-request-copy-request-data-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-v2model-area-profile-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-searchfor-employment-contract-leave-rules-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-searchforan-employee-agreement-history-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-searchforan-employee-availability-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-searchforacustomfielddataentry-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-searchforan-employment-condition-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-searchforan-employment-contract-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-hr-export-export-hr-bulk-data-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-user-info-get-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-hr-export-export-hr-data-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/json-schema/deputy-hr-export-export-hr-pay-details-data-response-schema.json

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/deputy:deputy-agreed-hour-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

deputy-agreed-hour-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Deputy V2 Agreed Hour API
  version: '1.0'
  description: Filtered to publicly-authenticated routes only (APIAuthenticator). Scoped-OAuth routes and internal JWT routes are excluded — see the separate "Deputy V2 Scoped API" spec for scoped endpoints.
servers:
- url: https://{subdomain}.{region}.deputy.com/api
  description: Deputy tenant
  variables:
    subdomain:
      default: your-subdomain
      description: Your Deputy tenant subdomain
    region:
      default: deputy
      enum:
      - au
      - eu
      - na
      - deputy
      description: 'Deputy region: au, eu, na, or deputy (AU default)'
security:
- ApiToken: []
tags:
- name: Agreed Hour
paths:
  /management/v2/agreed_hour/employee/{employeeId}:
    post:
      summary: Get an Employee's Agreed Hours by Version
      operationId: AgreedHourServiceV2Controller_getCurrentAgreedHour
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourGetResponse'
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      tags:
      - Agreed Hour
      description: Get an Employee's Agreed Hours by Version.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgreedHourCurrentRequestData'
  /management/v2/agreed_hour/{employeeId}:
    get:
      summary: Get an Employee's Agreed Hours
      operationId: AgreedHourServiceV2Controller_getAgreedHour
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourGetResponse'
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      tags:
      - Agreed Hour
      description: Get an Employee's Agreed Hours.
    post:
      summary: Set an Employee's Agreed Hours
      description: Note that agreedHour.details.weeks is required but can be an empty array
      operationId: AgreedHourServiceV2Controller_createAgreedHour
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourPostResponse'
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      tags:
      - Agreed Hour
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgreedHourPostRequest'
  /management/v2/agreed_hour/{employeeId}/{version}:
    get:
      summary: Get an Employee's Agreed Hours by Version
      operationId: AgreedHourServiceV2Controller_getAgreedHourVersion
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourGetResponse'
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        required: true
        schema:
          type: string
      tags:
      - Agreed Hour
      description: Get an Employee's Agreed Hours by Version.
  /management/v2/agreed_hour:batchUpdate:
    post:
      summary: Set multiple Employees' Agreed Hours
      description: Set one Agreed Hour for multiple Employees. Note that agreedHour.details.weeks is required but can be an empty array
      operationId: AgreedHourServiceV2Controller_batchUpdateAgreedHour
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourBatchUpdateResponse'
      tags:
      - Agreed Hour
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgreedHourBatchUpdateRequest'
  /management/v2/agreed_hour:listCommonAreas:
    post:
      summary: Get Common Areas by Employee Ids
      description: 'Get all common areas of the given Employees by Ids NOTE: Will only returned shared areas'
      operationId: AgreedHourServiceV2Controller_getAreasByEmployees
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourGetAreasResponse'
      tags:
      - Agreed Hour
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgreedHourGetAreasRequest'
  /management/v2/agreed_hours:
    post:
      summary: Search for Employees' Agreed Hours in particular status
      operationId: AgreedHourServiceV2Controller_getAgreedHoursByStatus
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourSearchResponse'
      tags:
      - Agreed Hour
      description: Search for Employees' Agreed Hours in particular status.
  /management/v2/agreed_hours/archive/{employeeId}/{version}:
    post:
      summary: Archive an Employee's Agreed Hours version with reason
      operationId: AgreedHourServiceV2Controller_archiveAgreedHourVersionWithReason
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourArchiveResponse'
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        required: true
        schema:
          type: string
      tags:
      - Agreed Hour
      description: Archive an Employee's Agreed Hours version with reason.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgreedHourArchiveWithReasonRequestData'
  /management/v2/agreed_hours/audit/{employeeId}:
    post:
      summary: Audit for an Employee's Agreed Hours for a time period
      operationId: AgreedHourServiceV2Controller_auditAgreedHours
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourAuditResponse'
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      tags:
      - Agreed Hour
      description: Audit for an Employee's Agreed Hours for a time period.
  /management/v2/agreed_hours/configuration/employee_approval/{employeeId}:
    post:
      summary: Check if an Employee's Agreed Hours needs approval
      operationId: AgreedHourServiceV2Controller_getAgreedHoursEmployeeApprovalConfiguration
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourEmployeeApprovalConfigurationResponse'
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      tags:
      - Agreed Hour
      description: Check if an Employee's Agreed Hours needs approval.
  /management/v2/agreed_hours/configuration/general/{employeeId}:
    get:
      summary: Get an Employee's Agreed Hours configuration
      operationId: AgreedHourServiceV2Controller_getAgreedHoursGeneralConfiguration
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourGetConfigurationResponse'
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      tags:
      - Agreed Hour
      description: Get an Employee's Agreed Hours configuration.
  /management/v2/agreed_hours/consent-records/{recordId}:
    get:
      summary: Get an Employee's Agreed Hours Consent Records by RecordId
      operationId: AgreedHourServiceV2Controller_getConsentRecords
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourConsentRecordsResponse'
      parameters:
      - name: recordId
        in: path
        required: true
        schema:
          type: string
      tags:
      - Agreed Hour
      description: Get an Employee's Agreed Hours Consent Records by RecordId.
  /management/v2/agreed_hours/consent/{employeeId}/{version}:
    post:
      summary: Consent to Agreed Hours for an Employee
      operationId: AgreedHourServiceV2Controller_consentEmployeeAgreedHours
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourConsentResponse'
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        required: true
        schema:
          type: string
      tags:
      - Agreed Hour
      description: Consent to Agreed Hours for an Employee.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgreedHourConsentRequestData'
  /management/v2/agreed_hours/diff/{employeeId}/{baseVersion}/{targetVersion}:
    get:
      summary: Diff Agreed Hours for an Employee
      operationId: AgreedHourServiceV2Controller_diffEmployeeAgreedHours
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourDiffResponse'
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      - name: baseVersion
        in: path
        required: true
        schema:
          type: string
      - name: targetVersion
        in: path
        required: true
        schema:
          type: string
      tags:
      - Agreed Hour
      description: Diff Agreed Hours for an Employee.
  /management/v2/agreed_hours/migrate/step-two/{locationId}:
    post:
      summary: Second migration step for Employees' Agreed Hours in the given location
      operationId: AgreedHourServiceV2Controller_migrateAgreedHoursStepTwo
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourMigrateStepTwoResponse'
      parameters:
      - name: locationId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      tags:
      - Agreed Hour
      description: Second migration step for Employees' Agreed Hours in the given location.
  /management/v2/agreed_hours/notify/{employeeId}/{version}:
    post:
      summary: Notify an Employee of their Agreed Hours
      operationId: AgreedHourServiceV2Controller_notifyEmployeeAgreedHours
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourEmployeeNotificationResponse'
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        required: true
        schema:
          type: string
      tags:
      - Agreed Hour
      description: Notify an Employee of their Agreed Hours.
  /management/v2/agreed_hours/{employeeId}:
    post:
      summary: Search for an Employee's Agreed Hours for a time period
      operationId: AgreedHourServiceV2Controller_searchAgreedHours
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourSearchResponse'
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      tags:
      - Agreed Hour
      description: Search for an Employee's Agreed Hours for a time period.
  /management/v2/agreed_hours/{employeeId}/{version}:
    delete:
      summary: Deletes/Archives Agreed Hours for an Employee
      operationId: AgreedHourServiceV2Controller_deleteEmployeeAgreedHours
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreedHourDeleteResponse'
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        required: true
        schema:
          type: string
      tags:
      - Agreed Hour
      description: Deletes/Archives Agreed Hours for an Employee.
components:
  schemas:
    WorkPeriodCycle:
      type: string
      enum:
      - WEEKLY
      - TWO_WEEK
      - FOUR_WEEK
      default: WEEKLY
    modelConsent:
      type: object
      properties:
        id:
          type: string
        recordId:
          type: string
        recordType:
          $ref: '#/components/schemas/ConsentConsentRecordType'
        transactionId:
          type: string
        employeeId:
          type: integer
          format: int32
        status:
          $ref: '#/components/schemas/ConsentConsentStatus'
        description:
          type: string
        metadata:
          $ref: '#/components/schemas/modelShiftTypeConsentMetadata'
        creator:
          type: integer
          format: int32
        createdAt:
          type: string
          format: date-time
    modelShiftTypeConsentMetadata:
      type: object
      properties:
        comment:
          type: string
        extras:
          type: object
          additionalProperties:
            type: string
    AgreedHourGetConfigurationResponse:
      type: object
      properties:
        configuration:
          $ref: '#/components/schemas/tenantagreed_hoursv2modelConfiguration'
        error:
          type: string
    AgreedHourConsentRecordsResponse:
      type: object
      properties:
        consentRecords:
          type: array
          items:
            $ref: '#/components/schemas/modelConsent'
        error:
          type: string
    AgreedHourBatchUpdateRequest:
      type: object
      properties:
        employeeIds:
          type: array
          items:
            type: integer
            format: int32
          description: One or more numeric employee IDs
        agreedHour:
          $ref: '#/components/schemas/v2modelAgreedHour'
    AgreedHourPostRequest:
      type: object
      properties:
        employeeId:
          type: string
        agreedHour:
          $ref: '#/components/schemas/v2modelAgreedHour'
    AgreedHourEmployeeApprovalConfigurationResponse:
      type: object
      properties:
        needsApproval:
          type: boolean
        error:
          type: string
        details:
          type: string
    v2modelAgreedHour:
      type: object
      properties:
        threshold:
          type: number
          format: float
          title: ''
        applyThreshold:
          type: boolean
          title: ''
        workPeriod:
          $ref: '#/components/schemas/modelWorkPeriod'
          title: ''
        details:
          $ref: '#/components/schemas/modelAgreedHourDetails'
          title: ''
        workingDaysPerCycle:
          type: number
          format: float
          title: ''
        status:
          $ref: '#/components/schemas/modelAgreedHourStatus'
          title: ''
        statusDate:
          type: string
          format: date-time
          title: ''
        statusChangedById:
          type: integer
          format: int32
          title: ''
          readOnly: true
        comment:
          type: string
          title: ''
        version:
          type: string
          title: ''
          readOnly: true
        createdAt:
          type: string
          format: date-time
          title: ''
          readOnly: true
        archivedAt:
          type: string
          format: date-time
          title: ''
          readOnly: true
        recordId:
          type: string
          title: ''
          readOnly: true
        creatorEmployeeProfileId:
          type: string
          title: ''
          readOnly: true
        creatorEmployeeDisplayName:
          type: string
          title: ''
          readOnly: true
        creatorEmployeeProfilePic:
          type: string
          title: ''
          readOnly: true
        effectiveDate:
          type: string
          title: ''
    modelWorkPeriodDayOfWeek:
      type: string
      enum:
      - SUNDAY
      - MONDAY
      - TUESDAY
      - WEDNESDAY
      - THURSDAY
      - FRIDAY
      - SATURDAY
      default: SUNDAY
    AgreedHourSearchResponse:
      type: object
      properties:
        agreedHour:
          type: array
          items:
            $ref: '#/components/schemas/v2modelAgreedHour'
        error:
          type: string
        currentVersion:
          type: string
    modelAgreedHourShift:
      type: object
      properties:
        startTime:
          type: string
          title: ''
        endTime:
          type: string
          title: ''
        breaks:
          type: array
          items:
            $ref: '#/components/schemas/modelBreakTime'
          title: ''
        location:
          type: integer
          format: int32
          title: ''
        area:
          type: integer
          format: int32
          title: ''
        totalHours:
          type: number
          format: float
          title: ''
        changeDetails:
          type: string
          readOnly: true
    AgreedHourConsentRequestData:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/modelAgreedHourStatus'
        comment:
          type: string
    AgreedHourPostResponse:
      type: object
      properties:
        success:
          type: boolean
        agreedHour:
          $ref: '#/components/schemas/v2modelAgreedHour'
        error:
          type: string
    AgreedHourDiffResponse:
      type: object
      properties:
        success:
          type: boolean
        agreedHour:
          $ref: '#/components/schemas/v2modelAgreedHour'
        error:
          type: string
    AgreedHourDeleteResponse:
      type: object
      properties:
        success:
          type: boolean
        error:
          type: string
    ConfigurationNeedsEmployeeApproval:
      type: string
      enum:
      - NEVER
      - ALWAYS
      - CONDITIONAL
      default: NEVER
    ConfigurationBehaviour:
      type: string
      enum:
      - AGREED_HOURS
      - FWW_REGULAR_BASELINE
      - FWW_MEDIAN_HOURS
      - VERSIONED_AGREED_HOURS
      default: AGREED_HOURS
    modelAgreedHourStatus:
      type: string
      enum:
      - UNKNOWN
      - PENDING
      - ACCEPTED
      - DECLINED
      - FORCED
      default: UNKNOWN
    modelAgreedHourDay:
      type: object
      properties:
        day:
          type: integer
          format: int32
          title: ''
        shifts:
          type: array
          items:
            $ref: '#/components/schemas/modelAgreedHourShift'
          title: ''
    AgreedHourArea:
      type: object
      properties:
        id:
          type: integer
          format: int32
        operationalUnitName:
          type: string
        company:
          type: integer
          format: int32
        companyName:
          type: string
        trainingModuleIds:
          type: array
          items:
            type: integer
            format: int32
    AgreedHourArchiveResponse:
      type: object
      properties:
        success:
          type: boolean
        error:
          type: string
    modelAgreedHourWeek:
      type: object
      properties:
        week:
          $ref: '#/components/schemas/AgreedHourWeekWeekIndex'
          title: ' `json:"week"`'
        days:
          type: array
          items:
            $ref: '#/components/schemas/modelAgreedHourDay'
          title: ''
    modelBreakTime:
      type: object
      properties:
        breakType:
          $ref: '#/components/schemas/modelBreakTimeBreakType'
          title: ''
        breakDuration:
          type: string
          description: e.g. `00:30` for a 30 minute break, `01:05` for a 1 hour 5 minute break.
          title: ''
        startBreakTime:
          type: string
          description: Formatted 24-hour time e.g. `10:00` or `14:30`
          title: ''
        endBreakTime:
          type: string
          description: Formatted 24-hour time e.g. `10:00` or `14:30`
          title: ''
        changeDetails:
          type: string
          readOnly: true
    AgreedHourGetAreasRequest:
      type: object
      properties:
        employeeIds:
          type: array
          items:
            type: integer
            format: int32
    modelBreakTimeBreakType:
      type: string
      enum:
      - NO_BREAK
      - MEAL
      - REST
      default: NO_BREAK
    AgreedHourWeekWeekIndex:
      type: string
      enum:
      - UNSPECIFIED
      - ONE
      - TWO
      - THREE
      - FOUR
      default: UNSPECIFIED
    modelWorkPeriod:
      type: object
      properties:
        cycle:
          $ref: '#/components/schemas/WorkPeriodCycle'
          title: ''
        dayOfWeek:
          $ref: '#/components/schemas/modelWorkPeriodDayOfWeek'
          title: ''
        startDate:
          type: string
          format: date-time
          description: Must refer to a day of the week matching `dayOfWeek`, otherwise an error occurs.
          title: ''
        startCycleDate:
          type: string
          format: date-time
          title: ''
        endCycleDate:
          type: string
          format: date-time
          title: ''
        endDate:
          type: string
          format: date-time
          title: ''
        baselineDate:
          type: string
          format: date-time
          title: ''
        baselineComment:
          type: string
          title: ''
        changesReason:
          $ref: '#/components/schemas/WorkPeriodChangesReason'
          title: ''
        metadata:
          type: string
          title: ''
      title: WorkPeriod model
    ConsentConsentRecordType:
      type: string
      enum:
      - SHIFT
      - TIMESHEET
      - REGULAR_SCHEDULE
      default: SHIFT
    AgreedHourCurrentRequestData:
      type: object
      properties:
        isBaseline:
          type: boolean
        date:
          type: string
          format: date-time
    AuditResponseAgreedHourWithConsentRecords:
      type: object
      properties:
        agreedHour:
          $ref: '#/components/schemas/v2modelAgreedHour'
        consentRecords:
          type: array
          items:
            $ref: '#/components/schemas/modelConsent'
    AgreedHourMigrateStepTwoResponse:
      type: object
      properties:
        success:
          type: boolean
        error:
          type: string
    AgreedHourGetAreasResponse:
      type: object
      properties:
        areas:
          type: array
          items:
            $ref: '#/components/schemas/AgreedHourArea'
        error:
          type: string
    AgreedHourConsentResponse:
      type: object
      properties:
        success:
          type: boolean
        error:
          type: string
    AgreedHourBatchUpdateResponse:
      type: object
      properties:
        success:
          type: boolean
        successfulEmployeeIds:
          type: array
          items:
            type: integer
            format: int64
        failedEmployeeIds:
          type: array
          items:
            type: integer
            format: int64
    AgreedHourAuditResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/AuditResponseAgreedHourWithConsentRecords'
        error:
          type: string
    AgreedHourArchiveWithReasonRequestData:
      type: object
      properties:
        changesReason:
          $ref: '#/components/schemas/WorkPeriodChangesReason'
        comment:
          type: string
    WorkPeriodChangesReason:
      type: string
      enum:
      - UNDEFINED
      - REQUESTED_BY_EMPLOYEE
      - BONA_FIDE
      - OTHER
      default: UNDEFINED
    AgreedHourEmployeeNotificationResponse:
      type: object
      properties:
        success:
          type: boolean
        error:
          type: string
    ConsentConsentStatus:
      type: string
      enum:
      - PENDING
      - ACCEPTED
      - DECLINED
      - CANCELLED
      - OVERRIDDEN_ACCEPTED
      default: PENDING
    AgreedHourGetResponse:
      type: object
      properties:
        agreedHour:
          $ref: '#/components/schemas/v2modelAgreedHour'
        error:
          type: string
    tenantagreed_hoursv2modelConfiguration:
      type: object
      properties:
        behaviour:
          $ref: '#/components/schemas/ConfigurationBehaviour'
          title: Which legislation to use
        needsEmployeeApproval:
          $ref: '#/components/schemas/ConfigurationNeedsEmployeeApproval'
          title: Do we need to send new Agreed Hours/Regular schedule for employees approval
    modelAgreedHourDetails:
      type: object
      properties:
        weeks:
          type: array
          items:
            $ref: '#/components/schemas/modelAgreedHourWeek'
          title: ''
  securitySchemes:
    ApiToken:
      type: apiKey
      in: header
      name: OAuth
x-provenance:
  method: searched
  source: https://developer.deputy.com/reference
  harvested: '2026-10-14'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://developer.deputy.com/reference/accessmanagementv2controller_createrole.md
  - https://developer.deputy.com/reference/accessmanagementv2controller_deleterole.md
  - https://developer.deputy.com/reference/accessmanagementv2controller_getemployeerole.md
  - https://developer.deputy.com/reference/accessmanagementv2controller_getprivilegehierarchy.md
  - https://developer.deputy.com/reference/accessmanagementv2controller_listemployeebyrole.md
  - https://developer.deputy.com/reference/accessmanagementv2controller_listemployeerolehistory.md
  - https://developer.deputy.com/reference/accessmanagementv2controller_listrole.md
  - https://developer.deputy.com/reference/accessmanagementv2controller_updaterole.md
  - https://developer.deputy.com/reference/accountstatsv2controller_getpaycalendarcoverage.md
  - https://developer.deputy.com/reference/accountstatsv2controller_getpayratecoverage.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_archiveagreedhourversionwithreason.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_auditagreedhours.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_batchupdateagreedhour.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_consentemployeeagreedhours.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_createagreedhour.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_deleteemployeeagreedhours.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_diffemployeeagreedhours.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_getagreedhour.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_getagreedhoursbystatus.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_getagreedhoursemployeeapprovalconfiguration.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_getagreedhoursgeneralconfiguration.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_getagreedhourversion.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_getareasbyemployees.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_getconsentrecords.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_getcurrentagreedhour.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_migrateagreedhourssteptwo.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_notifyemployeeagreedhours.md
  - https://developer.deputy.com/reference/agreedhourservicev2controller_searchagreedhours.md
  - https://developer.deputy.com/reference/aiassistantv2controller_getsettings.md
  - https://developer.deputy.com/reference/areamanagementv2controller_listbyemployeeid.md
  - https://developer.deputy.com/reference/areaprofilev2controller_create.md
  - https://developer.deputy.com/reference/areaprofilev2controller_delete.md
  - https://developer.deputy.com/reference/areaprofilev2controller_get.md
  - https://developer.deputy.com/reference/areaprofilev2controller_list.md
  - https://developer.deputy.com/reference/areaprofilev2controller_listareainuse.md
  - https://developer.deputy.com/reference/areaprofilev2controller_listemployeetrained.md
  - https://developer.deputy.com/reference/areaprofilev2controller_update.md
  - https://developer.deputy.com/reference/arearatev2controller_batchsave.md
  - https://developer.deputy.com/reference/arearatev2controller_get.md
  - https://developer.deputy.com/reference/auditpayrecalculationv2controller_create.md
  - https://developer.deputy.com/reference/autobuildv2controller_autobuild.md
  - https://developer.deputy.com/reference/availabilityv2controller_delete.md
  - https://developer.deputy.com/reference/availabilityv2controller_get.md
  - https://developer.deputy.com/reference/availabilityv2controller_list.md
  - https://developer.deputy.com/reference/businesssettingv2controller_getallvisibleemployeeroles.md
  - https://developer.deputy.com/reference/businesssettingv2controller_getallvisibleemployeerolesincludeadvisor.md
  - https://developer.deputy.com/reference/businesssettingv2controller_getemployeeroleidsforprivilegenames.md
  - https://developer.deputy.com/reference/businesssettingv2controller_getemployeeroleidswithtwofaenforced.md
  - https://developer.deputy.com/reference/businesssettingv2controller_getsetting.md
  - https://developer.deputy.com/reference/businesssettingv2controller_gettemplate.md
  - https://developer.deputy.com/reference/businesssettingv2controller_saveconfig.md
  - https://developer.deputy.com/reference/businessv2controller_getdetails.md
  - https://developer.deputy.com/reference/businessv2controller_updatedetails.md
  - https://developer.deputy.com/reference/chatemployeeshiftstatusv2controller_getemployeesshiftstatus.md
  - https://developer.deputy.com/reference/compliancev2controller_associateleaverules.md
  - https://developer.deputy.com/reference/compliancev2controller_batchsavecontractconfigs.md
  - https://developer.deputy.com/reference/compliancev2controller_batchsavepayrules.md
  - https://developer.deputy.com/reference/compliancev2controller_createcontract.md
  - https://developer.deputy.com/reference/compliancev2controller_deletepayrule.md
  - https://developer.deputy.com/reference/compliancev2controller_duplicatecontract.md
  - https://developer.deputy.com/reference/compliancev2controller_exportcontractjson.md
  - https://developer.deputy.com/reference/compliancev2controller_getcalculationtypes.md
  - https://developer.deputy.com/reference/compliancev2controller_getcontract.md


# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/deputy/refs/heads/main/openapi/deputy-agreed-hour-api-openapi.yml