Hubstaff · Agentic Access
Hubstaff Agentic Access
x-agentic-access
generated
Hubstaff exposes 62 API operations that an AI agent could call, of which 22 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.
By consequence: 40 read and 22 write.
Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.
Time TrackingTimesheetsWorkforce ManagementProductivityEmployee MonitoringProject ManagementPayroll
Operations: 62
Acting: 22
Human-in-the-loop: 0
Method: generated
By consequence
read 40
write 22
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/hubstaff-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: 62
by_action_class:
connected: 40
acting: 22
by_consequence:
read: 40
write: 22
human_in_the_loop_required: 0
operations:
- path: /v2/organizations
method: get
operationId: getV2Organizations
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations
method: post
operationId: postV2Organizations
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
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}
method: get
operationId: getV2OrganizationsOrganizationId
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/seats
method: get
operationId: getV2OrganizationsOrganizationIdSeats
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/members
method: get
operationId: getV2OrganizationsOrganizationIdMembers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/members
method: post
operationId: postV2OrganizationsOrganizationIdMembers
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
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/update_members
method: put
operationId: putV2OrganizationsOrganizationIdUpdateMembers
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
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/invites
method: get
operationId: getV2OrganizationsOrganizationIdInvites
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/invites
method: post
operationId: postV2OrganizationsOrganizationIdInvites
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
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/teams
method: get
operationId: getV2OrganizationsOrganizationIdTeams
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/teams
method: post
operationId: postV2OrganizationsOrganizationIdTeams
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
scope:
- hubstaff:read
- path: /v2/teams/{team_id}
method: get
operationId: getV2TeamsTeamId
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/teams/{team_id}/members
method: get
operationId: getV2TeamsTeamIdMembers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/users/me
method: get
operationId: getV2UsersMe
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/users/{user_id}
method: get
operationId: getV2UsersUserId
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/activities
method: get
operationId: getV2OrganizationsOrganizationIdActivities
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/activities/daily
method: get
operationId: getV2OrganizationsOrganizationIdActivitiesDaily
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/last_activities
method: get
operationId: getV2OrganizationsOrganizationIdLastActivities
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/projects/{project_id}/activities
method: get
operationId: getV2ProjectsProjectIdActivities
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/projects/{project_id}/activities/daily
method: get
operationId: getV2ProjectsProjectIdActivitiesDaily
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/users/{user_id}/time_entries
method: post
operationId: postV2UsersUserIdTimeEntries
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
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/timesheets
method: get
operationId: getV2OrganizationsOrganizationIdTimesheets
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/timesheets/{timesheet_id}
method: put
operationId: putV2TimesheetsTimesheetId
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
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/time_edit_logs
method: get
operationId: getV2OrganizationsOrganizationIdTimeEditLogs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/projects
method: get
operationId: getV2OrganizationsOrganizationIdProjects
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/projects
method: post
operationId: postV2OrganizationsOrganizationIdProjects
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
scope:
- hubstaff:read
- path: /v2/projects/{project_id}
method: get
operationId: getV2ProjectsProjectId
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/projects/{project_id}
method: put
operationId: putV2ProjectsProjectId
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
scope:
- hubstaff:read
- path: /v2/projects/{project_id}/members
method: get
operationId: getV2ProjectsProjectIdMembers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/tasks
method: get
operationId: getV2OrganizationsOrganizationIdTasks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/projects/{project_id}/tasks
method: get
operationId: getV2ProjectsProjectIdTasks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/projects/{project_id}/tasks
method: post
operationId: postV2ProjectsProjectIdTasks
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
scope:
- hubstaff:read
- path: /v2/tasks/{task_id}
method: get
operationId: getV2TasksTaskId
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/tasks/{task_id}
method: put
operationId: putV2TasksTaskId
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
scope:
- hubstaff:read
- path: /v2/tasks/{task_id}
method: delete
operationId: deleteV2TasksTaskId
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
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/clients
method: get
operationId: getV2OrganizationsOrganizationIdClients
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/clients
method: post
operationId: postV2OrganizationsOrganizationIdClients
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
scope:
- hubstaff:read
- path: /v2/clients/{client_id}
method: get
operationId: getV2ClientsClientId
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/clients/{client_id}
method: put
operationId: putV2ClientsClientId
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
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/client_invoices
method: get
operationId: getV2OrganizationsOrganizationIdClientInvoices
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/team_payments
method: get
operationId: getV2OrganizationsOrganizationIdTeamPayments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/time_off_requests
method: get
operationId: getV2OrganizationsOrganizationIdTimeOffRequests
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/time_off_requests
method: post
operationId: postV2OrganizationsOrganizationIdTimeOffRequests
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
scope:
- hubstaff:read
- path: /v2/time_off_requests/{time_off_request_id}
method: get
operationId: getV2TimeOffRequestsTimeOffRequestId
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/time_off_requests/{time_off_request_id}
method: put
operationId: putV2TimeOffRequestsTimeOffRequestId
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
scope:
- hubstaff:read
- path: /v2/time_off_requests/{time_off_request_id}
method: delete
operationId: deleteV2TimeOffRequestsTimeOffRequestId
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
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/time_off_policies
method: get
operationId: getV2OrganizationsOrganizationIdTimeOffPolicies
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/time_off_balances
method: get
operationId: getV2OrganizationsOrganizationIdTimeOffBalances
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/attendance_schedules
method: get
operationId: getV2OrganizationsOrganizationIdAttendanceSchedules
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/attendance_schedules
method: post
operationId: postV2OrganizationsOrganizationIdAttendanceSchedules
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
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/attendance_shifts
method: get
operationId: getV2OrganizationsOrganizationIdAttendanceShifts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/holidays
method: get
operationId: getV2OrganizationsOrganizationIdHolidays
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/screenshots
method: get
operationId: getV2OrganizationsOrganizationIdScreenshots
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/screenshots/{screenshot_id}
method: get
operationId: getV2OrganizationsOrganizationIdScreenshotsScreenshotId
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/tool_usages
method: get
operationId: getV2OrganizationsOrganizationIdToolUsages
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/tool_usages/daily
method: get
operationId: getV2OrganizationsOrganizationIdToolUsagesDaily
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/app_and_url_tracking_settings
method: get
operationId: getV2OrganizationsOrganizationIdAppAndUrlTrackingSettings
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/app_and_url_tracking_settings
method: put
operationId: putV2OrganizationsOrganizationIdAppAndUrlTrackingSettings
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
scope:
- hubstaff:read
- path: /v2/organizations/{organization_id}/webhooks
method: post
operationId: postV2OrganizationsOrganizationIdWebhooks
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
scope:
- hubstaff:read
- path: /v2/webhooks/{webhook_id}
method: get
operationId: getV2WebhooksWebhookId
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- hubstaff:read
- path: /v2/webhooks/{webhook_id}
method: delete
operationId: deleteV2WebhooksWebhookId
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
scope:
- hubstaff:read
- path: /v2/webhooks/{webhook_id}/activate
method: post
operationId: postV2WebhooksWebhookIdActivate
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
scope:
- hubstaff:read