Skip to content
LogoLogo

{/* Generated by scripts/generate-api-endpoints.mjs. Do not edit by hand. */}

Endpoint index

421 operations from the public contract, Assign API 1.0.0-rc.9. Paths are relative to https://api.assign.so.

  • OpenAPI document: openapi.yaml (OpenAPI 3.1). Use it to generate a client, import into Postman or Insomnia, or browse it in any OpenAPI viewer. It is the authoritative source for request and response schemas.
  • Auth: Session browser session, Token personal API token, CLI developer-client token, Mobile native token, Public no credential. See Authentication.

HomeWork Upcoming

Opt-in composed Home and My Work baselines. Upcoming; not deployed.

OperationSummaryAuth
GET /api/v1/me/home-work-baselineRead an opt-in Home/Work composed baselineSession, Mobile, Token, CLI
GET /api/v1/workspaces/{workspace_id}/home-work-baselineRead an opt-in Home/Work composed baselineSession, Mobile, Token, CLI

Realtime

Browser application WebSocket admission and authorized replay custody. Upcoming; not deployed.

OperationSummaryAuth
GET /api/v1/realtimeUpgrade an authenticated application socketSession, Mobile, CLI
GET /api/v1/realtime/baselineCapture authorized realtime routing custody or a domain pageSession, Mobile, CLI

Authentication

Browser-session and native OAuth credential lifecycle operations.

Guide: Authentication

OperationSummaryAuth
GET /api/v1/auth/continuations/{kind}Capture an authentication link in API-host HttpOnly custodyPublic
GET /api/v1/auth/csrfRead the current session-bound CSRF tokenSession
POST /api/v1/auth/email/resend-verificationSend a new verification messagePublic
POST /api/v1/auth/email/verifyVerify an email addressPublic
POST /api/v1/auth/loginSign in with an email address and passwordPublic
POST /api/v1/auth/logoutLog out the current browser sessionSession
POST /api/v1/auth/mfa/recovery-codes/regenerateReplace the account's recovery codesSession
DELETE /api/v1/auth/mfa/totpRemove the time-based one-time password factorSession
POST /api/v1/auth/mfa/totp/confirmEnable the time-based one-time password factorSession
POST /api/v1/auth/mfa/totp/setupBegin enrolling a time-based one-time password factorSession
POST /api/v1/auth/mfa/verifyComplete a sign-in with a second factorPublic
GET /api/v1/auth/passkeysList the current account's passkeysSession
PATCH /api/v1/auth/passkeys/{passkey_id}Rename a passkeySession
DELETE /api/v1/auth/passkeys/{passkey_id}Remove a passkeySession
POST /api/v1/auth/passkeys/login/optionsStart a passkey sign-inPublic
POST /api/v1/auth/passkeys/login/verifyComplete a passkey sign-inPublic
POST /api/v1/auth/passkeys/register/optionsStart registering a passkeySession
POST /api/v1/auth/passkeys/register/verifyFinish registering a passkeySession
POST /api/v1/auth/password/changeChange the current user's passwordSession
POST /api/v1/auth/password/forgotRequest a password resetPublic
POST /api/v1/auth/password/resetReset a password with a tokenPublic
GET /api/v1/auth/providers/{provider}/authorizeStart provider sign-inPublic
GET /api/v1/auth/providers/{provider}/callbackComplete a provider ceremony (redirect callback)Public
POST /api/v1/auth/providers/{provider}/callbackComplete a provider ceremony (form_post callback)Public
POST /api/v1/auth/registerCreate an accountPublic
PUT /api/v1/auth/session/workspaceSwitch the current session's WorkspaceSession
GET /api/v1/dev/oauth/authorizeAuthorize a registered first-party developer clientSession
POST /api/v1/dev/oauth/revokeRevoke the calling interactive developer-client credentialCLI
POST /api/v1/dev/oauth/tokenExchange a developer-client authorization code or refresh tokenPublic
POST /api/v1/mobile/auth/loginLog in from the native password screenPublic
POST /api/v1/mobile/auth/mfa/verifyComplete installation-bound native MFAPublic
POST /api/v1/mobile/auth/registerRegister from the native account screenPublic
GET /api/v1/mobile/oauth/authorizeStart or continue native mobile OAuth authorizationPublic
POST /api/v1/mobile/oauth/revokeRevoke the calling native mobile credentialMobile
POST /api/v1/mobile/oauth/tokenExchange a native authorization code or refresh tokenPublic

Account

The current user and their Workspace memberships.

Guide: Account

OperationSummaryAuth
PATCH /api/v1/inbox-items/{inbox_item_id}Mark one Inbox item read or unreadSession, Mobile
GET /api/v1/meRead the current user and WorkspaceSession, Mobile
PATCH /api/v1/meUpdate the current user's profileSession, Mobile
GET /api/v1/me/api-tokensList personal API tokens for the current WorkspaceSession
POST /api/v1/me/api-tokensCreate a personal API token for the current WorkspaceSession
DELETE /api/v1/me/api-tokens/{token_id}Revoke a personal API tokenSession
GET /api/v1/me/current-workRead the current user's account-global current taskSession
PUT /api/v1/me/current-workSelect the current user's current taskSession
DELETE /api/v1/me/current-workClear the current user's current taskSession
GET /api/v1/me/current-work/candidatesList tasks eligible to become the current taskSession
POST /api/v1/me/email-changeStart a verified email-address changeSession
POST /api/v1/me/email-change/verifyVerify and apply an email-address changeSession
GET /api/v1/me/identitiesList linked external identitiesSession
POST /api/v1/me/identitiesStart linking an external identitySession
DELETE /api/v1/me/identities/{identity_id}Unlink an external identitySession
PUT /api/v1/me/interface-language/sessionReport current device language preferencesSession, Mobile
GET /api/v1/me/mcp/grantsList connected MCP clientsSession
DELETE /api/v1/me/mcp/grants/{grant_id}Disconnect an MCP clientSession
GET /api/v1/me/mobile-credentialsList active native mobile credentialsSession
DELETE /api/v1/me/mobile-credentialsRevoke every native mobile credentialSession
DELETE /api/v1/me/mobile-credentials/{credential_id}Revoke one native mobile credentialSession
PUT /api/v1/me/mobile-credentials/current/push-deviceCreate or renew the calling credential's push-device registrationMobile
DELETE /api/v1/me/mobile-credentials/current/push-deviceRemove the calling credential's push-device registrationMobile
POST /api/v1/me/profile-pictureAssociate a cropped S3-hosted profile pictureSession, Mobile
DELETE /api/v1/me/profile-pictureRemove the current profile picture and retire its stored objectSession, Mobile
GET /api/v1/me/profile-picture/contentRedirect to a short-lived inline S3 URL for the current profile pictureSession, Mobile
PUT /api/v1/me/push-endpoints/browserRegister or reconfirm this browser session's push subscriptionSession
DELETE /api/v1/me/push-endpoints/browserDelete this browser session's push subscriptionSession
GET /api/v1/me/push-endpoints/browser/configGet browser push registration configurationSession
GET /api/v1/me/sessionsList the current user's sessionsSession
DELETE /api/v1/me/sessionsSign out every other sessionSession
DELETE /api/v1/me/sessions/{session_id}Revoke one of the current user's sessionsSession
GET /api/v1/workspacesList current-user WorkspacesSession, Mobile
GET /api/v1/workspaces/{workspace_id}/inboxList the current user's Inbox for a WorkspaceSession, Mobile
POST /api/v1/workspaces/{workspace_id}/inbox/read-stateConverge Inbox seen or read state through a cutoffSession, Mobile
GET /api/v1/workspaces/{workspace_id}/membersList Workspace membersSession, Mobile
GET /api/v1/workspaces/{workspace_id}/notification-preferencesList effective notification preferencesSession, Mobile
PATCH /api/v1/workspaces/{workspace_id}/notification-preferences/{category}Update one typed notification preferenceSession, Mobile
GET /api/v1/workspaces/{workspace_id}/project-display-preferencesRead private Project display preferences for one WorkspaceSession
PUT /api/v1/workspaces/{workspace_id}/project-display-preferencesSave private Project display preferences for one WorkspaceSession
GET /api/v1/workspaces/{workspace_id}/project-shortcutsRead the current user's Project shortcuts for one WorkspaceSession
PUT /api/v1/workspaces/{workspace_id}/project-shortcutsReplace the current user's Project shortcuts for one WorkspaceSession

Workspaces

Workspace lifecycle, membership, and invitations.

Guide: Workspaces

OperationSummaryAuth
POST /api/v1/invitations/acceptAccept an invitationSession
GET /api/v1/lifecycle-behaviorsList the typed lifecycle behavior registrySession
GET /api/v1/mobile/workspace-creation-optionsGet native account Workspace-creation optionsMobile
POST /api/v1/mobile/workspacesCreate a Free Workspace with a native accountMobile
POST /api/v1/mobile/workspaces/bootstrapCreate the native caller's first WorkspaceMobile
GET /api/v1/workspace-creation-optionsGet account Workspace-creation optionsSession
POST /api/v1/workspacesCreate a WorkspaceSession
GET /api/v1/workspaces/{workspace_id}Read a WorkspaceSession, Mobile
PATCH /api/v1/workspaces/{workspace_id}Rename, change the URL, or restore a WorkspaceSession
DELETE /api/v1/workspaces/{workspace_id}Archive a WorkspaceSession
GET /api/v1/workspaces/{workspace_id}/activityList access-filtered Workspace activitySession
GET /api/v1/workspaces/{workspace_id}/ai-access-policyGet the Workspace AI access policySession
PUT /api/v1/workspaces/{workspace_id}/ai-access-policyUpdate the Workspace AI access policySession
POST /api/v1/workspaces/{workspace_id}/iconAssociate a cropped S3-hosted Workspace iconSession
DELETE /api/v1/workspaces/{workspace_id}/iconRemove the Workspace icon and retire its stored objectSession
GET /api/v1/workspaces/{workspace_id}/icon/contentRedirect to a short-lived inline S3 URL for the Workspace iconSession
GET /api/v1/workspaces/{workspace_id}/invitationsList invitationsSession
POST /api/v1/workspaces/{workspace_id}/invitationsInvite someone to the WorkspaceSession
DELETE /api/v1/workspaces/{workspace_id}/invitations/{invitation_id}Revoke an invitationSession
POST /api/v1/workspaces/{workspace_id}/invitations/{invitation_id}/resendResend an invitationSession
GET /api/v1/workspaces/{workspace_id}/knowledge-settingsRead Workspace Knowledge indexing settings and lifecycle stateSession
PATCH /api/v1/workspaces/{workspace_id}/knowledge-settingsUpdate desired Workspace Knowledge indexing settingsSession
GET /api/v1/workspaces/{workspace_id}/lifecycle-completion-targetsResolve the status that completes an entity of a kindSession
GET /api/v1/workspaces/{workspace_id}/lifecycle-definitionsList lifecycle definitions with stages, policies and statusesSession
POST /api/v1/workspaces/{workspace_id}/lifecycle-definitions/{definition_id}/mapping-applicationsApply a previewed status mapping as a durable migration jobSession
POST /api/v1/workspaces/{workspace_id}/lifecycle-definitions/{definition_id}/mapping-previewsPreview moving statuses of a lifecycle definitionSession
GET /api/v1/workspaces/{workspace_id}/lifecycle-migrations/{job_id}Read a lifecycle migration jobSession
POST /api/v1/workspaces/{workspace_id}/lifecycle-migrations/{job_id}/retryResume a failed lifecycle migration jobSession
GET /api/v1/workspaces/{workspace_id}/mcp-service-credentialsList Workspace MCP service credentialsSession
POST /api/v1/workspaces/{workspace_id}/mcp-service-credentialsCreate a Workspace MCP service credentialSession
DELETE /api/v1/workspaces/{workspace_id}/mcp-service-credentials/{credential_id}Revoke a Workspace MCP service credentialSession
POST /api/v1/workspaces/{workspace_id}/membersRestore a former memberSession
PATCH /api/v1/workspaces/{workspace_id}/members/{member_id}Change a member's role or stateSession
DELETE /api/v1/workspaces/{workspace_id}/members/{member_id}Remove a memberSession
GET /api/v1/workspaces/{workspace_id}/milestone-lifecycleRead configured Milestone stagesSession
PUT /api/v1/workspaces/{workspace_id}/milestone-lifecycleConfigure Milestone stagesSession
GET /api/v1/workspaces/{workspace_id}/settingsRead shared Workspace defaultsSession, Mobile
PATCH /api/v1/workspaces/{workspace_id}/settingsUpdate shared Workspace defaultsSession
GET /api/v1/workspaces/{workspace_id}/statusesList Workspace-wide workflow StatusesSession
POST /api/v1/workspaces/{workspace_id}/statusesCreate a Workspace-wide workflow StatusSession
POST /api/v1/workspaces/bootstrapCreate the caller's first WorkspaceSession

Projects

Workspace Projects and their workflow Statuses.

Guide: Projects

OperationSummaryAuth
GET /api/v1/milestones/{milestone_id}Read a milestone with computed progressSession, Mobile
PATCH /api/v1/milestones/{milestone_id}Update a milestoneSession
DELETE /api/v1/milestones/{milestone_id}Archive a milestoneSession
PATCH /api/v1/project-states/{state_id}Rename or restore a Project stateSession
DELETE /api/v1/project-states/{state_id}Archive an unused Project stateSession
POST /api/v1/project-states/{state_id}/archive-and-replaceReplace an in-use Project state and archive itSession
POST /api/v1/project-states/{state_id}/moveMove a Project stateSession
GET /api/v1/projects/{project_id}Read a ProjectSession, Mobile, Token, CLI
PATCH /api/v1/projects/{project_id}Update Project metadata, planning dates, path, visual identity, or visibilitySession
DELETE /api/v1/projects/{project_id}Archive a ProjectSession
GET /api/v1/projects/{project_id}/activityList access-filtered Project activitySession, Mobile
GET /api/v1/projects/{project_id}/attachmentsList Project attachmentsSession, Mobile
POST /api/v1/projects/{project_id}/attachmentsAttach a completed upload to a ProjectSession
GET /api/v1/projects/{project_id}/completion-policyRead a Project's completion policySession
PUT /api/v1/projects/{project_id}/completion-policyConfigure whether completion requires reviewSession
GET /api/v1/projects/{project_id}/membersList the Project's explicit membersSession, Mobile
POST /api/v1/projects/{project_id}/membersAdd an active Workspace member to the ProjectSession
PATCH /api/v1/projects/{project_id}/members/{actor_id}Change a Project member's roleSession
DELETE /api/v1/projects/{project_id}/members/{actor_id}Remove a Project memberSession
GET /api/v1/projects/{project_id}/milestonesList Project milestonesSession, Mobile
POST /api/v1/projects/{project_id}/milestonesCreate a Project milestoneSession
GET /api/v1/projects/{project_id}/milestones/by-code/{milestone_code}Resolve a Milestone code within an authorized ProjectSession, Mobile
POST /api/v1/projects/{project_id}/moveMove a Project in the Workspace's shared manual orderSession
GET /api/v1/projects/{project_id}/overviewRead the bounded Project overview projectionSession
GET /api/v1/projects/{project_id}/statusesList Project StatusesSession, Mobile, Token, CLI
POST /api/v1/projects/{project_id}/statusesCreate a Project workflow StatusSession
GET /api/v1/projects/{project_id}/task-attachmentsList attachments of the Project's TasksSession, Mobile
GET /api/v1/public/projects/{public_id}Read a published Project statusPublic
GET /api/v1/statuses/{status_id}Read a workflow StatusSession
PATCH /api/v1/statuses/{status_id}Update or restore a workflow StatusSession
DELETE /api/v1/statuses/{status_id}Archive a workflow StatusSession
POST /api/v1/statuses/{status_id}/archive-and-replaceArchive a workflow Status and replace its live TasksSession
GET /api/v1/statuses/{status_id}/lifecycle-previewPreview a Status lifecycle migrationSession
POST /api/v1/statuses/{status_id}/moveMove a Status in its workflow orderSession
GET /api/v1/workspaces/{workspace_id}/project-lifecycleRead the optional Project lifecycle policySession
PATCH /api/v1/workspaces/{workspace_id}/project-lifecycleEnable or disable Project lifecycle statesSession
GET /api/v1/workspaces/{workspace_id}/project-statesList Workspace Project statesSession
POST /api/v1/workspaces/{workspace_id}/project-statesCreate a Project stateSession
GET /api/v1/workspaces/{workspace_id}/projectsList Workspace ProjectsSession, Mobile, Token, CLI
POST /api/v1/workspaces/{workspace_id}/projectsCreate a ProjectSession, Mobile

Tasks

Project Tasks.

Guide: Tasks

OperationSummaryAuth
GET /api/v1/projects/{project_id}/tasksList Project TasksSession, Mobile, Token, CLI
POST /api/v1/projects/{project_id}/tasksCreate a TaskSession, Mobile, Token, CLI
PATCH /api/v1/task-relations/{relation_id}Change a Task relation typeSession
DELETE /api/v1/task-relations/{relation_id}Delete a Task relationSession
GET /api/v1/tasks/{task_id}Read a TaskSession, Mobile, Token, CLI
PATCH /api/v1/tasks/{task_id}Update a TaskSession, Mobile, Token, CLI
DELETE /api/v1/tasks/{task_id}Archive a TaskSession
GET /api/v1/tasks/{task_id}/activityList access-filtered Task activitySession
GET /api/v1/tasks/{task_id}/assignmentsList a Task's assignment historySession, Mobile
GET /api/v1/tasks/{task_id}/attachmentsList Task attachmentsSession, Mobile
POST /api/v1/tasks/{task_id}/attachmentsAttach a completed upload to a TaskSession, Mobile
POST /api/v1/tasks/{task_id}/collaboration-sessionsAdmit an independent Task collaboration-presence leaseSession
DELETE /api/v1/tasks/{task_id}/collaboration-sessions/{session_id}End the caller's Task collaboration-presence leaseSession
GET /api/v1/tasks/{task_id}/description-revisionsList Task description revisionsSession
POST /api/v1/tasks/{task_id}/description-revisions/{revision}/restoreRestore a Task description revisionSession
POST /api/v1/tasks/{task_id}/duplicateDuplicate a TaskSession
POST /api/v1/tasks/{task_id}/moveAtomically move a Task in workflow orderSession
GET /api/v1/tasks/{task_id}/participantsList factual Task participantsSession, Mobile
GET /api/v1/tasks/{task_id}/relationsList Task relationsSession
POST /api/v1/tasks/{task_id}/relationsCreate a Task relationSession
POST /api/v1/tasks/{task_id}/restoreRestore an archived or trashed TaskSession
POST /api/v1/tasks/{task_id}/startStart and assign a Task to the calling ActorSession, Mobile, Token, CLI
GET /api/v1/tasks/{task_id}/subscribersList current Task followersSession
GET /api/v1/tasks/{task_id}/subscriptionGet the current user's Task subscriptionSession
PUT /api/v1/tasks/{task_id}/subscriptionFollow a TaskSession
DELETE /api/v1/tasks/{task_id}/subscriptionUnfollow a TaskSession
PUT /api/v1/tasks/{task_id}/subscription/muteMute a TaskSession
DELETE /api/v1/tasks/{task_id}/subscription/muteUnmute a TaskSession
POST /api/v1/tasks/{task_id}/trashMove a Task to trashSession
POST /api/v1/workspaces/{workspace_id}/change-setsPropose bounded versioned changesSession
GET /api/v1/workspaces/{workspace_id}/change-sets/{id}Read an exact proposal and accessible outcomesSession
POST /api/v1/workspaces/{workspace_id}/change-sets/{id}/reviewApprove or reject an exact proposal as its initiating humanSession
POST /api/v1/workspaces/{workspace_id}/change-sets/applyApply an exact reviewed proposalSession
POST /api/v1/workspaces/{workspace_id}/document-patchesCreate or edit a versioned Document draftSession
GET /api/v1/workspaces/{workspace_id}/document-patches/{id}Read an exact Document draft versionSession
GET /api/v1/workspaces/{workspace_id}/members/resolveResolve an exact member identity with ambiguity preservedSession
GET /api/v1/workspaces/{workspace_id}/operation-receipts/{id}Resolve a committed operation under current authoritySession
POST /api/v1/workspaces/{workspace_id}/operation-receipts/undoConditionally compensate an initiating member operationSession
GET /api/v1/workspaces/{workspace_id}/subscribed-tasksRead the caller's actively followed TasksSession, Mobile, Token, CLI
POST /api/v1/workspaces/{workspace_id}/task-result-setsCapture or explicitly refresh a checked Task result setSession
GET /api/v1/workspaces/{workspace_id}/task-result-sets/{id}Read an exact Task result-set versionSession
GET /api/v1/workspaces/{workspace_id}/task-result-sets/{id}/hydrateHydrate up to 100 exact result-set targets with current compact Task previewsSession
GET /api/v1/workspaces/{workspace_id}/task-saved-viewsList personal Task queriesSession
POST /api/v1/workspaces/{workspace_id}/task-saved-viewsCreate or revision-check a personal Task querySession
POST /api/v1/workspaces/{workspace_id}/task-saved-views/deleteDelete an exact personal Task-query revisionSession
POST /api/v1/workspaces/{workspace_id}/task-selectionsSelect exact result-set Task identitiesSession
GET /api/v1/workspaces/{workspace_id}/task-selections/{id}Read a frozen Task selectionSession
GET /api/v1/workspaces/{workspace_id}/task-selections/{id}/hydrateReauthorize up to100 selected Task identitiesSession
GET /api/v1/workspaces/{workspace_id}/tasksList bounded Workspace TasksSession, Mobile, Token, CLI
GET /api/v1/workspaces/{workspace_id}/tasks/{id}/contextRead bounded canonical Task contextSession
GET /api/v1/workspaces/{workspace_id}/tasks/{task_code}Resolve a Task's canonical Workspace URLSession, Mobile, Token, CLI
GET /api/v1/workspaces/{workspace_id}/tasks/{task_id}/related-contextRead bounded Workspace Knowledge context related to a TaskSession
POST /api/v1/workspaces/{workspace_id}/tasks/{task_id}/suggestion-feedbackConfirm or discard one Suggestions-tab findingSession
POST /api/v1/workspaces/{workspace_id}/tasks/bulkUpdate up to 100 explicitly selected TasksSession
GET /api/v1/workspaces/{workspace_id}/workRead the caller's bounded My Work viewSession, Mobile, Token, CLI

Integrations

Provider catalog metadata and live external entities linked to Assign resources.

Guide: Integrations

OperationSummaryAuth
POST /api/v1/integration-actionsRequest an idempotent typed remote actionSession
GET /api/v1/integration-actions/{action_id}Read durable remote-action statusSession
GET /api/v1/integration-authorizations/callbackComplete a provider authorization callbackPublic
DELETE /api/v1/integration-bindings/{binding_id}Disconnect a Project integration bindingSession
POST /api/v1/integration-bindings/{binding_id}/sentry-readinessVerify a Sentry Project bindingSession
GET /api/v1/integration-bindings/{binding_id}/subscriptionsList configured behavior for one bindingSession
POST /api/v1/integration-bindings/{binding_id}/subscriptionsConfigure explicit ongoing integration behaviorSession
GET /api/v1/integration-catalogList Assign integration providersSession
GET /api/v1/integration-installations/{installation_id}Read one current Workspace integration installationSession
DELETE /api/v1/integration-installations/{installation_id}Disconnect an integration installationSession
GET /api/v1/integration-installations/{installation_id}/actionsList typed actions supported by an installationSession
POST /api/v1/integration-installations/{installation_id}/management-linkCreate a provider installation-management handoffSession
GET /api/v1/integration-installations/{installation_id}/resourcesList persisted remote resourcesSession
POST /api/v1/integration-installations/{installation_id}/resources/refreshRefresh one bounded page of provider resourcesSession
PATCH /api/v1/integration-subscriptions/{subscription_id}Update, pause, resume, or disable integration behaviorSession
POST /api/v1/integrations/sentry/alert-actionValidate an Assign Sentry alert actionPublic
POST /api/v1/integrations/sentry/issues/createCreate and link an Assign Task from SentryPublic
POST /api/v1/integrations/sentry/issues/linkLink a Sentry issue to an Assign TaskPublic
GET /api/v1/integrations/sentry/options/bindingsList Sentry-native Assign Project binding optionsPublic
GET /api/v1/integrations/sentry/options/tasksList Sentry-native Assign Task optionsPublic
GET /api/v1/me/integration-identitiesList personal integration identitiesSession
DELETE /api/v1/me/integration-identities/{identity_id}Disconnect the current User's delegated provider identitySession
GET /api/v1/projects/{project_id}/integration-bindingsList current integration bindings for a ProjectSession, Mobile
POST /api/v1/projects/{project_id}/integration-bindingsBind a discovered remote resource to a ProjectSession
GET /api/v1/tasks/{task_id}/rich-entitiesList live external entities linked to a TaskSession, Mobile
POST /api/v1/webhooks/integrations/{provider_key}Verify and route a provider-global webhookPublic
POST /api/v1/webhooks/integrations/{provider_key}/{installation_id}Verify and durably enqueue a provider webhookPublic
POST /api/v1/workspaces/{workspace_id}/integration-authorizationsBegin an installation or personal provider authorizationSession
POST /api/v1/workspaces/{workspace_id}/integration-authorizations/credentialComplete a provider authorization with a user-supplied credentialSession
GET /api/v1/workspaces/{workspace_id}/integration-installationsList current Workspace integration installationsSession
POST /api/v1/workspaces/{workspace_id}/integration-private-connectorsEnroll an outbound private-network integration connectorSession
POST /api/v1/workspaces/{workspace_id}/integration-requestsRequest an integration providerSession

Comments

Task discussion.

OperationSummaryAuth
GET /api/v1/comments/{comment_id}Read a commentSession, Token, CLI, Mobile
PATCH /api/v1/comments/{comment_id}Edit a commentSession, Token, CLI, Mobile
DELETE /api/v1/comments/{comment_id}Delete a commentSession, Token, CLI, Mobile
PUT /api/v1/comments/{comment_id}/reactions/{reaction}Add the caller's reaction to a commentSession, Token, CLI, Mobile
DELETE /api/v1/comments/{comment_id}/reactions/{reaction}Remove the caller's reaction from a commentSession, Token, CLI, Mobile
GET /api/v1/tasks/{task_id}/commentsList Task commentsSession, Token, CLI, Mobile
POST /api/v1/tasks/{task_id}/commentsAdd a comment to a TaskSession, Token, CLI, Mobile

Documents

Workspace rich-text Documents and their versioned content.

Guide: Documents

OperationSummaryAuth
GET /api/v1/documents/{document_id}Read Document metadataSession, Mobile
PATCH /api/v1/documents/{document_id}Update Document metadataSession
DELETE /api/v1/documents/{document_id}Archive a DocumentSession
GET /api/v1/documents/{document_id}/attachmentsList Document attachmentsSession, Mobile
POST /api/v1/documents/{document_id}/attachmentsAttach a completed upload to a DocumentSession
GET /api/v1/documents/{document_id}/childrenList direct child DocumentsSession, Mobile
POST /api/v1/documents/{document_id}/collaboration-sessionsAdmit an independent Document collaboration-presence leaseSession
DELETE /api/v1/documents/{document_id}/collaboration-sessions/{session_id}End the caller's Document collaboration-presence leaseSession
GET /api/v1/documents/{document_id}/contentRead versioned Document contentSession, Mobile
PUT /api/v1/documents/{document_id}/contentReplace versioned Document contentSession
GET /api/v1/documents/{document_id}/linksList Document work linksSession
POST /api/v1/documents/{document_id}/links/{target_kind}/{target_id}Link a Document to a Task or MilestoneSession
DELETE /api/v1/documents/{document_id}/links/{target_kind}/{target_id}Remove a Document work linkSession
GET /api/v1/documents/{document_id}/markdownExport current or historical Document content as MarkdownSession
PUT /api/v1/documents/{document_id}/markdownReplace Document content from MarkdownSession
DELETE /api/v1/documents/{document_id}/permanentPermanently delete a DocumentSession
POST /api/v1/documents/{document_id}/restoreRestore an archived DocumentSession
GET /api/v1/documents/{document_id}/revisionsList immutable Document revisionsSession
GET /api/v1/documents/{document_id}/revisions/{revision}Read one immutable Document revisionSession
POST /api/v1/documents/{document_id}/revisions/{revision}/restoreRestore a historical snapshot as a new active revisionSession
GET /api/v1/documents/{document_id}/revisions/compareCompare two immutable Document revisionsSession
GET /api/v1/milestones/{milestone_id}/documentsList Milestone DocumentsSession
GET /api/v1/public/documents/{public_id}Read a published DocumentPublic
POST /api/v1/public/documents/{public_id}/attachments/{attachment_id}/downloadAuthorize a published Document attachment downloadPublic
POST /api/v1/public/documents/{public_id}/attachments/{attachment_id}/previewAuthorize a published Document attachment previewPublic
GET /api/v1/tasks/{task_id}/documentsList Task DocumentsSession
GET /api/v1/workspaces/{workspace_id}/documentsList Workspace DocumentsSession, Mobile
POST /api/v1/workspaces/{workspace_id}/documentsCreate a DocumentSession
GET /api/v1/workspaces/{workspace_id}/documents/by-path/{document_path}Resolve active Document metadata by Workspace pathSession, Mobile
GET /api/v1/workspaces/{workspace_id}/knowledge-repositoryRead the Workspace Git-backed Documents repositorySession
PUT /api/v1/workspaces/{workspace_id}/knowledge-repositoryValidate and connect one existing documentation repositorySession
PATCH /api/v1/workspaces/{workspace_id}/knowledge-repositoryPause, resume, or disconnect Git-backed DocumentsSession
GET /api/v1/workspaces/{workspace_id}/knowledge-repository/conflictsList open revision-bound synchronization conflictsSession
POST /api/v1/workspaces/{workspace_id}/knowledge-repository/conflicts/{conflict_id}/resolveApply a revision-bound explicit conflict decisionSession
POST /api/v1/workspaces/{workspace_id}/knowledge-repository/importImport bounded Markdown content from the connected repositorySession
GET /api/v1/workspaces/{workspace_id}/knowledge-repository/runsList bounded repository synchronization historySession
POST /api/v1/workspaces/{workspace_id}/knowledge-repository/syncSynchronize pending Assign and Git changes nowSession
GET /api/v1/workspaces/{workspace_id}/reference-optionsQuery bounded editor reference and mention candidatesSession, Token, CLI, Mobile

Attachments

Direct-to-object-storage file uploads and downloads.

Guide: Attachments

OperationSummaryAuth
POST /api/v1/attachment-uploadsReserve a direct uploadSession, Mobile
DELETE /api/v1/attachment-uploads/{upload_id}Cancel a reserved uploadSession, Mobile
POST /api/v1/attachment-uploads/{upload_id}/completeComplete a reserved uploadSession, Mobile
GET /api/v1/attachments/{attachment_id}Read attachment metadataSession, Mobile
DELETE /api/v1/attachments/{attachment_id}Delete an attachmentSession, Mobile
POST /api/v1/attachments/{attachment_id}/downloadAuthorize a direct downloadSession, Mobile
POST /api/v1/attachments/{attachment_id}/previewAuthorize an inline attachment previewSession, Mobile

Bounded Workspace-scoped content search.

Guide: Search

OperationSummaryAuth
GET /api/v1/workspaces/{workspace_id}/searchSearch Workspace contentSession, Mobile, Token, CLI

Knowledge

Evidence-backed Workspace Knowledge retrieval projected through Core.

Guide: Knowledge

OperationSummaryAuth
GET /api/v1/workspaces/{workspace_id}/knowledge/answerAnswer a submitted question from bounded Workspace evidenceSession
GET /api/v1/workspaces/{workspace_id}/knowledge/searchSearch Workspace Knowledge for evidenceSession

Discuss

Membership-private persistent conversation with the shared Search Agent.

Guide: Discuss

OperationSummaryAuth
GET /api/v1/workspaces/{workspace_id}/discuss/availabilityResolve the current membership's Discuss access stateSession, Token, CLI
GET /api/v1/workspaces/{workspace_id}/discuss/eventsReplay up to 100 ordered private message changesSession, Token, CLI
GET /api/v1/workspaces/{workspace_id}/discuss/files/{file_id}Read private file metadataSession
DELETE /api/v1/workspaces/{workspace_id}/discuss/files/{file_id}Delete a private file and release its storageSession
POST /api/v1/workspaces/{workspace_id}/discuss/files/{file_id}/downloadAuthorize a private file downloadSession
POST /api/v1/workspaces/{workspace_id}/discuss/files/{file_id}/previewAuthorize a private file previewSession
POST /api/v1/workspaces/{workspace_id}/discuss/interactions/{interaction_id}/decisionResolve one version-fenced private clarification or approvalSession, Token, CLI
GET /api/v1/workspaces/{workspace_id}/discuss/messagesList the current membership's private Discuss messagesSession, Token, CLI
POST /api/v1/workspaces/{workspace_id}/discuss/messagesQueue one private message for the Discuss supervisorSession, Token, CLI
GET /api/v1/workspaces/{workspace_id}/discuss/messages/{message_id}Resolve one exact private messageSession, Token, CLI
POST /api/v1/workspaces/{workspace_id}/discuss/messages/{message_id}/cancelRequest an exact stop for a queued or running responseSession, Token, CLI
GET /api/v1/workspaces/{workspace_id}/discuss/messages/{message_id}/run-eventsList safe activity for one private Discuss responseSession
GET /api/v1/workspaces/{workspace_id}/discuss/messages/searchSearch the current membership's private Discuss historySession
GET /api/v1/workspaces/{workspace_id}/discuss/preferencesRead private Discuss schedule, ceremony, delivery, and wording preferencesSession
PATCH /api/v1/workspaces/{workspace_id}/discuss/preferencesReplace private Discuss preferences at an exact revisionSession
POST /api/v1/workspaces/{workspace_id}/discuss/read-stateAdvance the current membership's Discuss read positionSession
POST /api/v1/workspaces/{workspace_id}/discuss/references/resolveResolve a native reference with current Workspace permissionsSession, Token, CLI
GET /api/v1/workspaces/{workspace_id}/discuss/remindersList the current membership's private work remindersSession
POST /api/v1/workspaces/{workspace_id}/discuss/remindersCreate an explicitly confirmed private work reminderSession
PATCH /api/v1/workspaces/{workspace_id}/discuss/reminders/{reminder_id}Complete, cancel, or snooze one private reminderSession
GET /api/v1/workspaces/{workspace_id}/discuss/specialist-runsList private specialist work linked to DiscussSession
GET /api/v1/workspaces/{workspace_id}/discuss/specialist-runs/{specialist_run_id}Get one private Discuss specialist runSession
POST /api/v1/workspaces/{workspace_id}/discuss/specialist-runs/{specialist_run_id}/cancelRequest cooperative cancellation of specialist workSession
POST /api/v1/workspaces/{workspace_id}/discuss/specialist-runs/{specialist_run_id}/resumeResolve one AG-UI specialist interruptSession
POST /api/v1/workspaces/{workspace_id}/discuss/turnsPersist a private turn for server-owned generationSession, Token, CLI
POST /api/v1/workspaces/{workspace_id}/discuss/uploadsReserve a private file in Workspace storageSession
DELETE /api/v1/workspaces/{workspace_id}/discuss/uploads/{upload_id}Cancel a private upload reservationSession
POST /api/v1/workspaces/{workspace_id}/discuss/uploads/{upload_id}/completeVerify and complete a private uploadSession
POST /api/v1/workspaces/{workspace_id}/discuss/voice/sessionsCreate a private GPT Live WebRTC sessionSession
POST /api/v1/workspaces/{workspace_id}/evidence-collectionsCapture exact private evidence passagesSession
GET /api/v1/workspaces/{workspace_id}/evidence-collections/{id}Read an exact private evidence collectionSession
GET /api/v1/workspaces/{workspace_id}/evidence-collections/{id}/hydrateRead up to twenty currently authorized exact passagesSession
POST /api/v1/workspaces/{workspace_id}/evidence-collections/exclusionsReplace the exclusion set in one investigation versionSession

CLI

Bearer-authenticated, code-addressed projections and commands for the Assign CLI.

OperationSummaryAuth
GET /api/v1/cli/documentsList Documents in the credential-bound WorkspaceToken, CLI
GET /api/v1/cli/documents/{document_path}Read a Document by its canonical pathToken, CLI
POST /api/v1/cli/mcp/tokenCreate a short-lived MCP token for the local CLI bridgeToken, CLI
GET /api/v1/cli/milestones/{milestone_code}Read a Milestone by code within the bearer WorkspaceToken, CLI
GET /api/v1/cli/my-workRead the caller's bounded CLI My Work projectionToken, CLI
GET /api/v1/cli/projectsList Projects in the credential-bound WorkspaceToken, CLI
GET /api/v1/cli/projects/{project_code}Read a Project by immutable keyToken, CLI
GET /api/v1/cli/projects/{project_code}/tasksList Tasks in a Project resolved by immutable keyToken, CLI
POST /api/v1/cli/projects/{project_code}/tasksCreate a Task in a Project resolved by immutable keyToken, CLI
GET /api/v1/cli/searchSearch Tasks and Documents in the token-scoped WorkspaceToken, CLI
GET /api/v1/cli/tasks/{task_code}Read a Task by codeToken, CLI
GET /api/v1/cli/tasks/{task_code}/commentsList bounded Task comments by Task codeToken, CLI
POST /api/v1/cli/tasks/{task_code}/commentsAdd a Markdown comment to a Task resolved by codeToken, CLI
GET /api/v1/cli/tasks/{task_code}/contextRead a bounded Task context packetToken, CLI
POST /api/v1/cli/tasks/{task_code}/doneApply the canonical completion action to a TaskToken, CLI
POST /api/v1/cli/tasks/{task_code}/reopenReopen a completed TaskToken, CLI
POST /api/v1/cli/tasks/{task_code}/startStart and assign a Task to the bearer ActorToken, CLI

Developer clients

Shared first-party developer-client authorization and credential-bound Workspace operations.

OperationSummaryAuth
GET /api/v1/dev/workspaceRead the credential-bound current WorkspaceCLI
PUT /api/v1/dev/workspaceRotate an interactive developer credential to another WorkspaceCLI
GET /api/v1/dev/workspacesList Workspaces available to an interactive developer credentialCLI

Time tracking

Manual Task time entries, Workspace rounding policy, and personal timesheets.

Guide: Time tracking

OperationSummaryAuth
GET /api/v1/projects/{project_id}/time-contributor-breakdownList a Project's recorded time grouped by contributorSession
GET /api/v1/projects/{project_id}/time-task-breakdownList a Project's recorded time grouped by TaskSession
GET /api/v1/projects/{project_id}/time-task-entriesList recorded entries for one Task in a Project reportSession
GET /api/v1/projects/{project_id}/time-totalsGet Project time totals for a date rangeSession
GET /api/v1/tasks/{task_id}/time-entriesList live time entries for a Task in a bounded revision-fenced collectionSession
POST /api/v1/tasks/{task_id}/time-entriesLog manual time against a TaskSession
GET /api/v1/tasks/{task_id}/time-totalsGet Task time totalsSession
PATCH /api/v1/time-entries/{entry_id}Correct a time entrySession
DELETE /api/v1/time-entries/{entry_id}Void a time entrySession
GET /api/v1/timesheets/meList the caller's time entries in a date rangeSession
GET /api/v1/timesheets/me/exportExport the caller's time entries as CSVSession
GET /api/v1/workspace/time-trackingRead the Workspace time-tracking policySession
PATCH /api/v1/workspace/time-trackingUpdate the Workspace time-tracking policySession

Billing

Provider-neutral Workspace subscription status and invoice references.

OperationSummaryAuth
GET /api/v1/me/billing-plansRead a bounded cross-Workspace billing and plan overviewSession
POST /api/v1/workspace-checkoutsStart paid Workspace creationSession
GET /api/v1/workspace-checkouts/{checkout_id}Read paid Workspace creation stateSession
POST /api/v1/workspaces/{workspace_id}/billing-portal-sessionsCreate a hosted customer billing portal sessionSession
GET /api/v1/workspaces/{workspace_id}/billing-settingsRead the provider-neutral Workspace subscription and invoice referencesSession
POST /api/v1/workspaces/{workspace_id}/billing/knowledge-credit-top-upsCreate a catalogued Knowledge credit checkoutSession
POST /api/v1/workspaces/{workspace_id}/checkout-sessionsCreate a hosted checkout session for a paid Workspace planSession

Activity

Upcoming versioned grouped Activity companion reads.

OperationSummaryAuth
GET /api/v1/workspaces/{workspace_id}/activity/groupsRead authorized daily Activity groupsSession, Token, CLI
GET /api/v1/workspaces/{workspace_id}/activity/groups/{group_id}/childrenExpand an authorized Activity groupSession, Token, CLI

Agents

Curated Agent definitions and Workspace-owned desired Agent configuration. Execution remains in the private Knowledge service.

Guide: Agents

OperationSummaryAuth
GET /api/v1/workspaces/{workspace_id}/agentsList Workspace-owned Agent instancesSession
POST /api/v1/workspaces/{workspace_id}/agentsHire one curated Agent into a WorkspaceSession
GET /api/v1/workspaces/{workspace_id}/agents/{agent_id}Read one Workspace Agent instanceSession
PATCH /api/v1/workspaces/{workspace_id}/agents/{agent_id}Update one Workspace Agent's bounded configurationSession
DELETE /api/v1/workspaces/{workspace_id}/agents/{agent_id}Soft-remove one Agent and stop all unfinished workSession
POST /api/v1/workspaces/{workspace_id}/agents/{agent_id}/quarantineQuarantine an Agent, cancel unfinished runs, and invalidate pending approvalsSession
POST /api/v1/workspaces/{workspace_id}/agents/{agent_id}/rollbackRestore the prior qualified definition version in paused stateSession
GET /api/v1/workspaces/{workspace_id}/agents/{agent_id}/runsList retained safe run history for one AgentSession
POST /api/v1/workspaces/{workspace_id}/agents/{agent_id}/runsDurably request a manual Agent runSession
GET /api/v1/workspaces/{workspace_id}/agents/{agent_id}/runs/{run_id}Read one safe Agent run projectionSession
GET /api/v1/workspaces/{workspace_id}/agents/{agent_id}/runs/{run_id}/actionsList the run's attributable action and exact approval recordsSession
POST /api/v1/workspaces/{workspace_id}/agents/{agent_id}/runs/{run_id}/actions/{action_id}/approvals/{approval_id}/decisionApprove or reject the exact immutable Agent action proposal onceSession
POST /api/v1/workspaces/{workspace_id}/agents/{agent_id}/runs/{run_id}/cancelRequest cancellation of a non-terminal Agent runSession
GET /api/v1/workspaces/{workspace_id}/agents/{agent_id}/runs/{run_id}/outputsList customer-safe comments, reports, and notifications with full Agent provenanceSession
GET /api/v1/workspaces/{workspace_id}/agents/definitionsList curated Agent definitions available to a WorkspaceSession
GET /api/v1/workspaces/{workspace_id}/agents/studio/definitionsList custom Agent definitions editable by Workspace managersSession
POST /api/v1/workspaces/{workspace_id}/agents/studio/definitionsSave a bounded, versioned custom Agent definitionSession
GET /api/v1/workspaces/{workspace_id}/agents/studio/definitions/{definition_id}Read the current editable custom Agent definitionSession
PATCH /api/v1/workspaces/{workspace_id}/agents/studio/definitions/{definition_id}Save a new immutable revision of a custom Agent definitionSession
POST /api/v1/workspaces/{workspace_id}/agents/studio/definitions/{definition_id}/delegations/{task_id}Add a revision-fenced Agent responsibility overlay to a TaskSession
GET /api/v1/workspaces/{workspace_id}/agents/studio/definitions/{definition_id}/profileRead a member-visible custom Agent profileSession
GET /api/v1/workspaces/{workspace_id}/agents/studio/definitions/{definition_id}/requestsList permission-filtered custom Agent request outcomesSession
POST /api/v1/workspaces/{workspace_id}/agents/studio/definitions/{definition_id}/requestsDurably admit a manual or preview-only test requestSession
GET /api/v1/workspaces/{workspace_id}/agents/studio/definitions/{definition_id}/usageRead settled and pending credit usage for one custom Agent and periodSession

Identity

OperationSummaryAuth
POST /oauth/registerRegister a public native MCP OAuth clientPublic

People

OperationSummaryAuth
GET /api/v1/workspaces/{workspace_id}/people/{user_id}/profile-picture/contentRead a workspace member's uploaded profile pictureSession, Mobile
GET /api/v1/workspaces/{workspace_id}/people/{username}Get a workspace-scoped person profileSession, Mobile
GET /api/v1/workspaces/{workspace_id}/people/{username}/activityList a person's visible workspace activitySession

Commands

OperationSummaryAuth
POST /api/v1/commands/{command_id}/redoRedo a previously undone commandSession
POST /api/v1/commands/{command_id}/undoUndo a reversible commandSession

Labels

OperationSummaryAuth
GET /api/v1/{target_kind}/{target_id}/labelsList a document, project, or task's label IDsSession, Mobile
PUT /api/v1/{target_kind}/{target_id}/labelsReplace a document, project, or task's complete label assignment setSession
GET /api/v1/label-definitions/{label_id}Read one authorized label definitionSession
PATCH /api/v1/label-definitions/{label_id}Rename, recolor, or restore a label definitionSession
DELETE /api/v1/label-definitions/{label_id}Archive a label definitionSession
GET /api/v1/projects/{project_id}/label-definitionsList a Project's local task-label definitionsSession, Mobile
POST /api/v1/projects/{project_id}/label-definitionsCreate a Project-local task-label definitionSession
GET /api/v1/projects/{project_id}/label-overridesList a Project's presentation overrides for Workspace Task labelsSession, Mobile
PUT /api/v1/projects/{project_id}/label-overrides/{label_id}Set this Project's presentation of a Workspace Task labelSession
DELETE /api/v1/projects/{project_id}/label-overrides/{label_id}Restore the Workspace default presentation of a Task label in this ProjectSession
GET /api/v1/workspaces/{workspace_id}/label-definitionsList active Workspace label definitionsSession, Mobile
POST /api/v1/workspaces/{workspace_id}/label-definitionsCreate a Workspace-scoped label definitionSession