generated: '2026-07-15' method: generated source: openapi/sage-hr-openapi.yml description: Recommended x-agentic-access execution contracts, classified heuristically from the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind audience per deployment. See research/curity/agentic-governance/. summary: operations: 53 by_action_class: connected: 28 acting: 25 by_consequence: read: 28 write: 13 safety-critical: 2 physical: 10 human_in_the_loop_required: 2 operations: - path: /employees method: get operationId: Employee_listActiveEmployees x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /employees method: post operationId: Employee_createNewEmployee x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /employees/{id} method: get operationId: Employee_getById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /employees/{id} method: put operationId: Employee_updateById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /employees/{id}/custom-fields method: get operationId: Employee_getCustomFields x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /employees/{id}/custom-fields/{custom_field_id} method: put operationId: Employee_updateCustomField x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /employees/{id}/terminations method: post operationId: Employee_terminateEmployee x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /terminated-employees method: get operationId: Employee_listTerminatedEmployees x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /terminated-employees/{id} method: get operationId: Employee_getTerminatedEmployee x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /leave-management/policies method: get operationId: LeaveManagement_listTimeOffPolicies x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /leave-management/policies/{id} method: get operationId: LeaveManagement_getTimeOffPolicyById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /leave-management/policies/{id} method: patch operationId: LeaveManagement_updateKitDaysConfiguration x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /leave-management/kit-days method: get operationId: LeaveManagement_getKitDays x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /leave-management/kit-days method: post operationId: LeaveManagement_createKitDay x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /leave-management/kit-days/{id} method: patch operationId: LeaveManagement_processKitDay x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /leave-management/reports/individual-allowances method: get operationId: LeaveManagement_getIndividualAllowances x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /employees/{id}/leave-management/balances method: get operationId: LeaveManagement_getTimeOffBalances x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /leave-management/requests method: get operationId: LeaveManagement_listTimeOffRequests x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /leave-management/requests method: post operationId: LeaveManagement_newTimeOffRequest x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /leave-management/out-of-office-today method: get operationId: LeaveManagement_listEmployeesOutToday x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /documents/categories method: get operationId: Documents_listCategories x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /documents method: post operationId: Documents_createNewDocument x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /positions method: get operationId: Positions_listCompanyPositions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /teams method: get operationId: Teams_listInCompany x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /performance/goals/quarterly-progress/overall method: get operationId: Performance_overviewQuarterlyProgress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /performance/goals/quarterly-progress/company-goals method: get operationId: Performance_getQuarterlyCompanyGoals x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /performance/goals/quarterly-progress/team-goals method: get operationId: Performance_getQuarterlyTeamGoals x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /performance/goals/quarterly-progress/individual-goals method: get operationId: Performance_getQuarterlyIndividualGoals x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /employees/{id}/compensations method: get operationId: Employee_getCompensations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /recruitment/positions method: get operationId: Recruitment_listPositions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /recruitment/positions/{id} method: get operationId: Recruitment_getPositionDetails x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /recruitment/positions/{id}/applicants method: get operationId: Recruitment_listApplicants x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /recruitment/positions/{id}/applicants method: post operationId: Recruitment_createApplicantWithReferral x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /recruitment/applicants/{id} method: get operationId: Recruitment_getApplicantDetails x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /recruitment/applicants/{id}/actions method: get operationId: Recruitment_listApplicantActions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /timesheets/clock-in method: post operationId: Timesheets_clockInOut x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /termination-reasons method: get operationId: TerminationsReasons_listInCompany x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /onboarding/categories method: get operationId: Onboarding_listTaskCategories x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /onboarding/tasks method: post operationId: Onboarding_createNewTask x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /offboarding/categories method: get operationId: Offboarding_listCategories x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /offboarding/tasks method: post operationId: Offboarding_createTask x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /vikarina/job-positions method: post operationId: Integrations_transferJobPositionFromSageToVikarina x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /vikarina/organization-structure method: post operationId: Integrations_transferOrganizationalStructureFromSageToVikarina x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /vikarina/newstarter-employees method: post operationId: Integrations_importNewStartersList x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /vikarina/contract-information method: post operationId: Integrations_transferContractInformationToVikarina x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /vikarina/appointments method: post operationId: Integrations_transferAppointmentInfo x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /vikarina/salaries method: post operationId: Integrations_transferSalaryInformation x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /vikarina/bank-accounts method: post operationId: Integrations_transferBankAccountInfo x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /vikarina/terminated-employees method: post operationId: Integrations_transferTerminationInfoToVikarina x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /vikarina/unused-days method: post operationId: Integrations_transferUnusedVacationDaysToVikarina x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /vikarina/leave-types method: post operationId: Integrations_transferLeaveInformationToVikarina x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /vikarina/timesheets method: post operationId: Integrations_transferTimeScheduleInformation x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /vikarina/bonuses method: post operationId: Integrations_sendBonusesToVikarina x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required