Clockify Agentic Access
Clockify exposes 166 API operations that an AI agent could call, of which 116 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: 50 read, 99 write, 15 physical, and 2 safety-critical.
2 operations are classed safety-critical and should require human-in-the-loop approval at runtime.
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.
By consequence
Highest-consequence actions
The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.
| Method | Path | Consequence | Human-in-loop |
|---|---|---|---|
| POST | /v1/workspaces/{workspaceId}/projects/{projectId}/memberships | safety-critical | required |
| PATCH | /v1/workspaces/{workspaceId}/user/{userId}/time-entries | safety-critical | required |
| POST | /v1/workspaces/{workspaceId}/approval-requests/users/{userId}/resubmit-entries-for-approval | physical | conditional |
| POST | /v1/workspaces/{workspaceId}/invoices | physical | conditional |
| POST | /v1/workspaces/{workspaceId}/invoices/info | physical | conditional |
| PUT | /v1/workspaces/{workspaceId}/invoices/settings | physical | conditional |
| DELETE | /v1/workspaces/{workspaceId}/invoices/{invoiceId} | physical | conditional |
| PUT | /v1/workspaces/{workspaceId}/invoices/{invoiceId} | physical | conditional |
| POST | /v1/workspaces/{workspaceId}/invoices/{invoiceId}/duplicate | physical | conditional |
| POST | /v1/workspaces/{workspaceId}/invoices/{invoiceId}/items | physical | conditional |
| POST | /v1/workspaces/{workspaceId}/invoices/{invoiceId}/items/import | physical | conditional |
| DELETE | /v1/workspaces/{workspaceId}/invoices/{invoiceId}/items/{order} | physical | conditional |
| POST | /v1/workspaces/{workspaceId}/invoices/{invoiceId}/payments | physical | conditional |
| DELETE | /v1/workspaces/{workspaceId}/invoices/{invoiceId}/payments/{paymentId} | physical | conditional |
| PATCH | /v1/workspaces/{workspaceId}/invoices/{invoiceId}/status | physical | conditional |
| PATCH | /v1/workspaces/{workspaceId}/projects/{projectId}/memberships | physical | conditional |
| PATCH | /v1/workspaces/{workspaceId}/time-entries/invoiced | physical | conditional |
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/clockify-openapi.json
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: 166
by_action_class:
acting: 116
connected: 50
by_consequence:
write: 99
read: 50
physical: 15
safety-critical: 2
human_in_the_loop_required: 2
operations:
- path: /v1/file/image
method: post
operationId: uploadImage
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: /v1/user
method: get
operationId: getLoggedUser
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces
method: get
operationId: getWorkspacesOfUser
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces
method: post
operationId: createWorkspace
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: /v1/workspaces/{workspaceId}
method: get
operationId: getWorkspaceOfUser
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/addons/{addonId}/webhooks
method: get
operationId: getAddonWebhooks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/approval-requests
method: get
operationId: getApprovalRequests
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/approval-requests
method: post
operationId: createApprrovalRequest
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: /v1/workspaces/{workspaceId}/approval-requests/resubmit-entries-for-approval
method: post
operationId: resubmitApprovalRequest
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: /v1/workspaces/{workspaceId}/approval-requests/users/{userId}
method: post
operationId: createApprovalForOther
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: /v1/workspaces/{workspaceId}/approval-requests/users/{userId}/resubmit-entries-for-approval
method: post
operationId: resubmitApprovalRequestForOther
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: /v1/workspaces/{workspaceId}/approval-requests/{approvalRequestId}
method: patch
operationId: updateApprovalStatus
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: /v1/workspaces/{workspaceId}/clients
method: get
operationId: getClients
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/clients
method: post
operationId: createClient
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: /v1/workspaces/{workspaceId}/clients/{id}
method: delete
operationId: deleteClient
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: /v1/workspaces/{workspaceId}/clients/{id}
method: get
operationId: getClient
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/clients/{id}
method: put
operationId: updateClient
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: /v1/workspaces/{workspaceId}/cost-rate
method: put
operationId: setWorkspaceCostRate
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: /v1/workspaces/{workspaceId}/custom-fields
method: get
operationId: ofWorkspace
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/custom-fields
method: post
operationId: create
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: /v1/workspaces/{workspaceId}/custom-fields/{customFieldId}
method: delete
operationId: delete
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: /v1/workspaces/{workspaceId}/custom-fields/{customFieldId}
method: put
operationId: editCustomField
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: /v1/workspaces/{workspaceId}/entities/created
method: get
operationId: getCreatedEntityInfo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/entities/deleted
method: get
operationId: getDeletedEntityInfo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/entities/updated
method: get
operationId: getUpdatedEntityInfo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/expenses
method: get
operationId: getExpenses
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/expenses
method: post
operationId: createExpense
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: /v1/workspaces/{workspaceId}/expenses/categories
method: get
operationId: getCategories
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/expenses/categories
method: post
operationId: createExpenseCategory
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: /v1/workspaces/{workspaceId}/expenses/categories/{categoryId}
method: delete
operationId: deleteCategory
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: /v1/workspaces/{workspaceId}/expenses/categories/{categoryId}
method: put
operationId: updateCategory
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: /v1/workspaces/{workspaceId}/expenses/categories/{categoryId}/status
method: patch
operationId: updateExpenseCategoryStatus
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: /v1/workspaces/{workspaceId}/expenses/{expenseId}
method: delete
operationId: deleteExpense
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: /v1/workspaces/{workspaceId}/expenses/{expenseId}
method: get
operationId: getExpense
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/expenses/{expenseId}
method: put
operationId: updateExpense
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: /v1/workspaces/{workspaceId}/expenses/{expenseId}/files/{fileId}
method: get
operationId: downloadFile
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/holidays
method: get
operationId: getHolidays
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/holidays
method: post
operationId: createHoliday
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: /v1/workspaces/{workspaceId}/holidays/in-period
method: get
operationId: getHolidaysInPeriod
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/holidays/{holidayId}
method: delete
operationId: deleteHoliday
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: /v1/workspaces/{workspaceId}/holidays/{holidayId}
method: put
operationId: updateHoliday
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: /v1/workspaces/{workspaceId}/hourly-rate
method: put
operationId: setWorkspaceHourlyRate
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: /v1/workspaces/{workspaceId}/invoices
method: get
operationId: getInvoices
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/invoices
method: post
operationId: createInvoice
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: /v1/workspaces/{workspaceId}/invoices/info
method: post
operationId: getInvoicesInfo
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: /v1/workspaces/{workspaceId}/invoices/settings
method: get
operationId: getInvoiceSettings
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/invoices/settings
method: put
operationId: updateInvoiceSettings
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: /v1/workspaces/{workspaceId}/invoices/{invoiceId}
method: delete
operationId: deleteInvoice
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: /v1/workspaces/{workspaceId}/invoices/{invoiceId}
method: get
operationId: getInvoice
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/invoices/{invoiceId}
method: put
operationId: updateInvoice
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: /v1/workspaces/{workspaceId}/invoices/{invoiceId}/duplicate
method: post
operationId: duplicateInvoice
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: /v1/workspaces/{workspaceId}/invoices/{invoiceId}/export
method: get
operationId: exportInvoice
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/invoices/{invoiceId}/items
method: post
operationId: addInvoiceItem
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: /v1/workspaces/{workspaceId}/invoices/{invoiceId}/items/import
method: post
operationId: importTimeEntriesAndExpenses
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: /v1/workspaces/{workspaceId}/invoices/{invoiceId}/items/{order}
method: delete
operationId: removeInvoiceItem
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: /v1/workspaces/{workspaceId}/invoices/{invoiceId}/payments
method: get
operationId: getPaymentsForInvoice
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/invoices/{invoiceId}/payments
method: post
operationId: createInvoicePayment
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: /v1/workspaces/{workspaceId}/invoices/{invoiceId}/payments/{paymentId}
method: delete
operationId: deletePaymentById
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: /v1/workspaces/{workspaceId}/invoices/{invoiceId}/status
method: patch
operationId: changeInvoiceStatus
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: /v1/workspaces/{workspaceId}/member-profile/{userId}
method: get
operationId: getMemberProfile
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/member-profile/{userId}
method: patch
operationId: updateMemberProfileWithAdditionalData
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: /v1/workspaces/{workspaceId}/projects
method: get
operationId: getProjects
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/projects
method: post
operationId: createNewProject
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: /v1/workspaces/{workspaceId}/projects/from-template
method: post
operationId: createProjectFromTemplate
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: /v1/workspaces/{workspaceId}/projects/{projectId}
method: delete
operationId: deleteProject
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: /v1/workspaces/{workspaceId}/projects/{projectId}
method: get
operationId: getProject
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/projects/{projectId}
method: put
operationId: updateProject
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: /v1/workspaces/{workspaceId}/projects/{projectId}/custom-fields
method: get
operationId: getCustomFieldsOfProject
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/projects/{projectId}/custom-fields/{customFieldId}
method: delete
operationId: removeDefaultValueOfProject
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: /v1/workspaces/{workspaceId}/projects/{projectId}/custom-fields/{customFieldId}
method: patch
operationId: editProjectCustomFieldDefaultValue
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: /v1/workspaces/{workspaceId}/projects/{projectId}/estimate
method: patch
operationId: updateEstimate
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: /v1/workspaces/{workspaceId}/projects/{projectId}/memberships
method: patch
operationId: updateMemberships
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: /v1/workspaces/{workspaceId}/projects/{projectId}/memberships
method: post
operationId: addUsersToProject
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: /v1/workspaces/{workspaceId}/projects/{projectId}/tasks
method: get
operationId: getTasks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/projects/{projectId}/tasks
method: post
operationId: 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: /v1/workspaces/{workspaceId}/projects/{projectId}/tasks/{id}/cost-rate
method: put
operationId: setTaskCostRate
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: /v1/workspaces/{workspaceId}/projects/{projectId}/tasks/{id}/hourly-rate
method: put
operationId: setTaskHourlyRate
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: /v1/workspaces/{workspaceId}/projects/{projectId}/tasks/{taskId}
method: delete
operationId: deleteTask
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: /v1/workspaces/{workspaceId}/projects/{projectId}/tasks/{taskId}
method: get
operationId: getTask
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/projects/{projectId}/tasks/{taskId}
method: put
operationId: updateTask
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: /v1/workspaces/{workspaceId}/projects/{projectId}/template
method: patch
operationId: updateIsProjectTemplate
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: /v1/workspaces/{workspaceId}/projects/{projectId}/users/{userId}/cost-rate
method: put
operationId: addUsersCostRate
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: /v1/workspaces/{workspaceId}/projects/{projectId}/users/{userId}/hourly-rate
method: put
operationId: addUsersHourlyRate
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: /v1/workspaces/{workspaceId}/scheduling/assignments/all
method: get
operationId: getAllAssignments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/scheduling/assignments/projects/totals
method: get
operationId: getProjectTotals
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/scheduling/assignments/projects/totals
method: post
operationId: getFilteredProjectTotals
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: /v1/workspaces/{workspaceId}/scheduling/assignments/projects/totals/{projectId}
method: get
operationId: getProjectTotalsForSingleProject
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/scheduling/assignments/publish
method: put
operationId: publishAssignments
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: /v1/workspaces/{workspaceId}/scheduling/assignments/recurring
method: post
operationId: createRecurring
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: /v1/workspaces/{workspaceId}/scheduling/assignments/recurring/{assignmentId}
method: delete
operationId: deleteRRecurringAssignment
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: /v1/workspaces/{workspaceId}/scheduling/assignments/recurring/{assignmentId}
method: patch
operationId: editRecurring
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: /v1/workspaces/{workspaceId}/scheduling/assignments/series/{assignmentId}
method: put
operationId: editRecurringPeriod
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: /v1/workspaces/{workspaceId}/scheduling/assignments/user-filter/totals
method: post
operationId: getUserTotals
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: /v1/workspaces/{workspaceId}/scheduling/assignments/users/{userId}/totals
method: get
operationId: getUserTotalsForSingleUser
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/workspaces/{workspaceId}/scheduling/assignments/{assignmentId}/copy
method: post
operationId: copyAssignment
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
trigg
# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/clockify/refs/heads/main/agentic-access/clockify-agentic-access.yml