> ## Documentation Index
> Fetch the complete documentation index at: https://docs.checkfu.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Respond to an ActionApproval

> Records a human approve or deny decision on one ActionApproval.



## OpenAPI

````yaml /openapi.json post /v1/action-approvals/{id}/responses
openapi: 3.1.0
info:
  title: Checkfu API
  version: '2026-08-31'
  description: >-
    Authentication is declared per operation: API-key, runtime, or connector
    bearer; Automation signature; or credential-free pairing redemption. Every
    general Checkfu REST request requires the dated `Checkfu-Version` header
    (one of: 2026-08-31); the three MCP JSON-RPC transports use
    `MCP-Protocol-Version`, A2A uses `A2A-Version`, and the provider OAuth
    callback carries neither Checkfu header. API keys resolve one Workspace
    without a request selector; authenticated responses identify it with
    `Checkfu-Workspace-Id`.
servers:
  - url: https://api.checkfu.com
security:
  - bearerAuth: []
tags:
  - name: organizations
  - name: sourceRepositories
  - name: tenants
  - name: workspaces
  - name: principals
  - name: principalGroups
  - name: principalAccessCredentials
  - name: apiKeys
  - name: agents
  - name: harnessRuntime
  - name: permissionAssignments
  - name: actionPolicies
  - name: files
  - name: memoryStores
  - name: modelCredentials
  - name: modelRoutingProfiles
  - name: toolSources
  - name: skills
  - name: skillSources
  - name: agentBlueprints
  - name: skillProposals
  - name: instructionProposals
  - name: catalog
  - name: managedTools
  - name: concepts
  - name: support
  - name: connections
  - name: connectionVaults
  - name: connectionAssignments
  - name: connectedRuntimes
  - name: fileTrees
  - name: collaboration
  - name: automationGraphs
  - name: automations
  - name: actionApprovals
  - name: standingApprovals
  - name: workloadReviewPolicies
  - name: usage
  - name: models
  - name: outcomes
  - name: budgets
  - name: billing
  - name: sessions
  - name: audit
  - name: sessionExports
  - name: runs
  - name: runnerPools
  - name: transcripts
  - name: sessionWatches
  - name: sessionCapsules
  - name: sessionTrajectories
  - name: webhookEndpoints
  - name: integrationGateway
  - name: workEnvironments
  - name: computers
  - name: computerScreens
  - name: computerBrowserObservations
  - name: computerBrowserActions
  - name: environments
  - name: computerHeadlessOperations
  - name: vaults
  - name: apiMcp
  - name: a2a
paths:
  /v1/action-approvals/{id}/responses:
    post:
      tags:
        - actionApprovals
      summary: Respond to an ActionApproval
      description: >-
        Records a human `approve` or `deny` decision on one ActionApproval. The
        target determines how the caller continues the action; the decision
        alone does not prove result delivery. `expected_version` must match the
        ActionApproval's current `version`, optional `instructions` are carried
        to the harness and recorded in `action_approval.resolved`, and an
        `Idempotency-Key` lets an exact retry replay the captured response. The
        workspace approval-responder roles (root/admin) authorize a caller that
        asserts no responder. Alternatively a control-plane human-asserter
        caller (a root/admin/developer key, never an execution-plane runner) may
        assert the responding end-user Principal via `acted_as`: the response is
        then authorized only when that Principal holds an active `approve`
        PermissionAssignment surviving the full ActionPolicy ladder (a deny
        ActionPolicy dominates) on the ActionApproval's subject resource — its
        CollaborationSpace or Connection for a CapabilityGateway ActionApproval,
        its Agent or CollaborationSpace for a Custom tool (automation-step
        ActionApprovals route to no PermissionAssignment and stay role-only).
        The asserted Principal is recorded as the responder and the asserting
        key is audited; `acted_as` is never ignored — if present it must satisfy
        that PermissionAssignment path or the response is refused. An approved
        ToolInvocation returns a single-use, time-bounded proof token that this
        response is the only place to read; a Custom-tool approval instead emits
        `run.action_authorized` and the same Run stays parked until the
        application posts the matching `user.custom_tool_result`. For a parked
        Custom tool, posting its matching result completes the parked Run and
        starts a fresh continuation Run. A denial refuses the action; read the
        Session ledger for the resulting continuation rather than assuming the
        original Run resumed.


        Checkfu support posture: alpha; hosted. Required evidence journey:
        capability-gateway. Deployment-specific readiness and the latest proven
        release are available from GET /v1/support/capabilities.
      operationId: actionApprovals.decideActionApproval
      parameters:
        - name: id
          in: path
          schema:
            $ref: '#/components/schemas/ActionApprovalId'
          required: true
        - name: checkfu-version
          in: header
          schema:
            type: string
            enum:
              - '2026-08-31'
          required: true
        - name: idempotency-key
          in: header
          schema:
            type: string
            allOf:
              - maxLength: 255
          required: false
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                expected_version:
                  type: integer
                  exclusiveMinimum: 0
                decision:
                  type: string
                  enum:
                    - approve
                    - deny
                instructions:
                  type: string
                  allOf:
                    - maxLength: 8192
                acted_as:
                  $ref: '#/components/schemas/PrincipalId'
                standing:
                  type: object
                  properties:
                    ttl_seconds:
                      type: integer
                      allOf:
                        - minimum: 60
                          maximum: 2592000
                    scope:
                      type: string
                      enum:
                        - exact_arguments
                        - tool_on_connection
                  required:
                    - ttl_seconds
                    - scope
                  additionalProperties: false
              required:
                - expected_version
                - decision
              additionalProperties: false
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      decision:
                        type: string
                        enum:
                          - approve
                      approval:
                        $ref: '#/components/schemas/Objects_145'
                      proof:
                        type: object
                        properties:
                          action_approval_id:
                            $ref: '#/components/schemas/NonBrowserActionApprovalId'
                          token:
                            type: string
                            allOf:
                              - minLength: 1
                              - maxLength: 8192
                        required:
                          - action_approval_id
                          - token
                        additionalProperties: false
                    required:
                      - decision
                      - approval
                      - proof
                    additionalProperties: false
                  - type: object
                    properties:
                      decision:
                        type: string
                        enum:
                          - approve
                      approval:
                        $ref: '#/components/schemas/Objects_146'
                    required:
                      - decision
                      - approval
                    additionalProperties: false
                  - type: object
                    properties:
                      decision:
                        type: string
                        enum:
                          - approve
                      approval:
                        $ref: >-
                          #/components/schemas/ManagedToolApprovalPublicPriceAndExpiry
                    required:
                      - decision
                      - approval
                    additionalProperties: false
                  - type: object
                    properties:
                      decision:
                        type: string
                        enum:
                          - approve
                      approval:
                        $ref: '#/components/schemas/Objects_147'
                    required:
                      - decision
                      - approval
                    additionalProperties: false
                  - type: object
                    properties:
                      decision:
                        type: string
                        enum:
                          - approve
                      approval:
                        $ref: '#/components/schemas/Objects_148'
                    required:
                      - decision
                      - approval
                    additionalProperties: false
                  - type: object
                    properties:
                      decision:
                        type: string
                        enum:
                          - approve
                      approval:
                        $ref: '#/components/schemas/Objects_149'
                    required:
                      - decision
                      - approval
                    additionalProperties: false
                  - type: object
                    properties:
                      decision:
                        type: string
                        enum:
                          - deny
                      approval:
                        $ref: '#/components/schemas/Union_293'
                    required:
                      - decision
                      - approval
                    additionalProperties: false
          headers:
            checkfu-workspace-id:
              description: The Workspace resolved from the authenticated bearer credential.
              required: true
              schema:
                $ref: '#/components/schemas/WorkspaceId'
        '400':
          description: Typed Checkfu wire error
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - validation.malformed
                      message:
                        type: string
                      more:
                        type: string
                        enum:
                          - >-
                            https://docs.checkfu.com/reference/errors#validation-malformed
                        description: >-
                          Stable public documentation and remedy for this error
                          type.
                    required:
                      - type
                      - message
                      - more
                    additionalProperties: false
                additionalProperties: false
        '401':
          description: Typed Checkfu wire error
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: object
                    required:
                      - type
                      - message
                      - more
                    properties:
                      type:
                        type: string
                        enum:
                          - auth.invalid_key
                      message:
                        type: string
                      more:
                        type: string
                        enum:
                          - >-
                            https://docs.checkfu.com/reference/errors#auth-invalid-key
                        description: >-
                          Stable public documentation and remedy for this error
                          type.
                    additionalProperties: false
                additionalProperties: false
        '403':
          description: >-
            The organization, tenant, or workspace backing this key is
            administratively disabled. | Deployment governance or retention
            policy denied the request.
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    required:
                      - error
                    properties:
                      error:
                        type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - auth.disabled_tenancy
                          message:
                            type: string
                          more:
                            type: string
                            enum:
                              - >-
                                https://docs.checkfu.com/reference/errors#auth-disabled-tenancy
                            description: >-
                              Stable public documentation and remedy for this
                              error type.
                        required:
                          - type
                          - message
                          - more
                        additionalProperties: false
                    additionalProperties: false
                  - $ref: '#/components/schemas/PolicyDeniedError'
        '404':
          description: >-
            The requested resource does not exist in the resolved deployment
            boundary.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationNotFoundError'
        '409':
          description: >-
            The request conflicts with the resource's current state. | An
            idempotent mutation conflicts with a completed or in-progress
            request for the same key.
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ValidationConflictError'
                  - $ref: '#/components/schemas/IdempotencyConflictError'
        '422':
          description: >-
            The harness does not satisfy the required protocol or capability
            set.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RuntimeHarnessIncompatibleError'
        '429':
          description: Typed Checkfu wire error
          headers:
            retry-after:
              description: >-
                Delay in seconds for rate limits or deployment quotas with a
                known release or UTC reset boundary
              required: false
              schema:
                type: integer
                minimum: 1
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: object
                    required:
                      - type
                      - message
                      - more
                    properties:
                      type:
                        type: string
                        enum:
                          - budget.exceeded
                      message:
                        type: string
                      more:
                        type: string
                        enum:
                          - >-
                            https://docs.checkfu.com/reference/errors#budget-exceeded
                        description: >-
                          Stable public documentation and remedy for this error
                          type.
                    additionalProperties: false
                additionalProperties: false
        '500':
          description: >-
            An unexpected internal failure occurred; the message contains an
            opaque incident reference.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RuntimeInternalError'
        '503':
          description: Authorization could not be evaluated. Retry the same request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationUnavailableError'
      security:
        - bearerAuth: []
components:
  schemas:
    ActionApprovalId:
      anyOf:
        - $ref: '#/components/schemas/NonBrowserActionApprovalId'
        - $ref: '#/components/schemas/BrowserActionApprovalId'
      description: >-
        an ActionApprovalId of the form approval_<32 hex chars> or bapproval_<32
        hex chars>
    PrincipalId:
      type: string
      pattern: ^prin_[0-9a-f]{32}$
    Objects_145:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/NonBrowserActionApprovalId'
        workspace_id:
          $ref: '#/components/schemas/WorkspaceId'
        status:
          $ref: '#/components/schemas/Union_294'
        connection_id:
          $ref: '#/components/schemas/ConnectionId'
        tool_source_id:
          $ref: '#/components/schemas/ToolSourceId'
        tool_name:
          type: string
          pattern: ^[a-z0-9](?:[a-z0-9._-]{0,93})$
        arguments_hash:
          type: string
          pattern: ^sha256:[0-9a-f]{64}$
        context_summary:
          type: object
          properties:
            tool_invocation_id:
              $ref: '#/components/schemas/ToolInvocationId'
            session_id:
              $ref: '#/components/schemas/SessionId'
            run_id:
              $ref: '#/components/schemas/RunId'
            agent_id:
              $ref: '#/components/schemas/AgentId'
            agent_version:
              type: integer
              exclusiveMinimum: 0
            agent_placement_id:
              anyOf:
                - $ref: '#/components/schemas/AgentPlacementId'
                - type: 'null'
            collaboration_space_id:
              anyOf:
                - $ref: '#/components/schemas/CollaborationSpaceId'
                - type: 'null'
            connection_version:
              type: integer
              exclusiveMinimum: 0
            tool_version:
              type: integer
              exclusiveMinimum: 0
            tool_schema_hash:
              type: string
              pattern: ^sha256:[0-9a-f]{64}$
            execution_backend:
              $ref: '#/components/schemas/Union_295'
            request:
              anyOf:
                - type: object
                  properties:
                    scheme:
                      type: string
                      enum:
                        - https
                    host:
                      $ref: '#/components/schemas/PublicHostname'
                    port:
                      type: integer
                      allOf:
                        - minimum: 1
                          maximum: 65535
                    method:
                      $ref: '#/components/schemas/HttpMethod'
                    path:
                      $ref: '#/components/schemas/HttpPath'
                  required:
                    - scheme
                    - host
                    - port
                    - method
                    - path
                  additionalProperties: false
                - type: 'null'
          required:
            - tool_invocation_id
            - session_id
            - run_id
            - agent_id
            - agent_version
            - agent_placement_id
            - collaboration_space_id
            - connection_version
            - tool_version
            - tool_schema_hash
            - execution_backend
            - request
          additionalProperties: false
        requested_by:
          $ref: '#/components/schemas/Union_107'
        acted_as:
          $ref: '#/components/schemas/PrincipalId'
        responder:
          anyOf:
            - $ref: '#/components/schemas/Union_138'
            - type: 'null'
        instructions:
          anyOf:
            - type: string
              allOf:
                - maxLength: 8192
            - type: 'null'
        expires_at:
          type: string
        version:
          type: integer
          exclusiveMinimum: 0
        created_at:
          type: string
        updated_at:
          type: string
      required:
        - id
        - workspace_id
        - status
        - connection_id
        - tool_source_id
        - tool_name
        - arguments_hash
        - context_summary
        - requested_by
        - acted_as
        - responder
        - instructions
        - expires_at
        - version
        - created_at
        - updated_at
      additionalProperties: false
    NonBrowserActionApprovalId:
      type: string
      pattern: ^approval_[0-9a-f]{32}$
    Objects_146:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/NonBrowserActionApprovalId'
        workspace_id:
          $ref: '#/components/schemas/WorkspaceId'
        status:
          $ref: '#/components/schemas/Union_294'
        arguments_hash:
          type: string
          pattern: ^sha256:[0-9a-f]{64}$
        requested_by:
          $ref: '#/components/schemas/Union_107'
        acted_as:
          $ref: '#/components/schemas/PrincipalId'
        responder:
          $ref: '#/components/schemas/Union_296'
        instructions:
          $ref: '#/components/schemas/Union_297'
        expires_at:
          type: string
        version:
          type: integer
          exclusiveMinimum: 0
        created_at:
          type: string
        updated_at:
          type: string
        kind:
          type: string
          enum:
            - custom_tool
        agent_id:
          $ref: '#/components/schemas/AgentId'
        tool_name:
          type: string
          pattern: ^[a-z0-9](?:[a-z0-9._-]{0,93})$
        context_summary:
          type: object
          properties:
            kind:
              type: string
              enum:
                - custom_tool
            session_id:
              $ref: '#/components/schemas/SessionId'
            run_id:
              $ref: '#/components/schemas/RunId'
            agent_id:
              $ref: '#/components/schemas/AgentId'
            agent_version:
              type: integer
              exclusiveMinimum: 0
            agent_placement_id:
              anyOf:
                - $ref: '#/components/schemas/AgentPlacementId'
                - type: 'null'
            collaboration_space_id:
              anyOf:
                - $ref: '#/components/schemas/CollaborationSpaceId'
                - type: 'null'
            tool_use_id:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 8192
            tool_name:
              type: string
              pattern: ^[a-z0-9](?:[a-z0-9._-]{0,93})$
          required:
            - kind
            - session_id
            - run_id
            - agent_id
            - agent_version
            - agent_placement_id
            - collaboration_space_id
            - tool_use_id
            - tool_name
          additionalProperties: false
      required:
        - id
        - workspace_id
        - status
        - arguments_hash
        - requested_by
        - acted_as
        - responder
        - instructions
        - expires_at
        - version
        - created_at
        - updated_at
        - kind
        - agent_id
        - tool_name
        - context_summary
      additionalProperties: false
    ManagedToolApprovalPublicPriceAndExpiry:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/NonBrowserActionApprovalId'
        workspace_id:
          $ref: '#/components/schemas/WorkspaceId'
        status:
          $ref: '#/components/schemas/Union_294'
        arguments_hash:
          type: string
          pattern: ^sha256:[0-9a-f]{64}$
        requested_by:
          $ref: '#/components/schemas/Union_107'
        acted_as:
          $ref: '#/components/schemas/PrincipalId'
        responder:
          $ref: '#/components/schemas/Union_296'
        instructions:
          $ref: '#/components/schemas/Union_297'
        expires_at:
          type: string
        version:
          type: integer
          exclusiveMinimum: 0
        created_at:
          type: string
        updated_at:
          type: string
        kind:
          type: string
          enum:
            - managed_tool
        context_summary:
          type: object
          properties:
            kind:
              type: string
              enum:
                - managed_tool
            tool_name:
              type: string
              pattern: ^[a-z0-9](?:[a-z0-9._-]{0,93})$
            tool_invocation_id:
              $ref: '#/components/schemas/ToolInvocationId'
            selection:
              $ref: '#/components/schemas/ManagedToolSelection'
            session_id:
              anyOf:
                - $ref: '#/components/schemas/SessionId'
                - type: 'null'
            run_id:
              anyOf:
                - $ref: '#/components/schemas/RunId'
                - type: 'null'
            agent_id:
              anyOf:
                - $ref: '#/components/schemas/AgentId'
                - type: 'null'
            collaboration_space_id:
              anyOf:
                - $ref: '#/components/schemas/CollaborationSpaceId'
                - type: 'null'
            price:
              $ref: '#/components/schemas/ManagedToolPrice'
            maximum_charge_microusd:
              type: integer
              allOf:
                - minimum: 0
                - maximum: 9007199254740991
            expires_at:
              $ref: '#/components/schemas/CurrentTimestamp'
          required:
            - kind
            - tool_name
            - tool_invocation_id
            - selection
            - session_id
            - run_id
            - agent_id
            - collaboration_space_id
            - price
            - maximum_charge_microusd
            - expires_at
          additionalProperties: false
      required:
        - id
        - workspace_id
        - status
        - arguments_hash
        - requested_by
        - acted_as
        - responder
        - instructions
        - expires_at
        - version
        - created_at
        - updated_at
        - kind
        - context_summary
      additionalProperties: false
    Objects_147:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/BrowserActionApprovalId'
        workspace_id:
          $ref: '#/components/schemas/WorkspaceId'
        status:
          $ref: '#/components/schemas/Union_294'
        arguments_hash:
          type: string
          pattern: ^sha256:[0-9a-f]{64}$
        requested_by:
          $ref: '#/components/schemas/Union_107'
        acted_as:
          $ref: '#/components/schemas/PrincipalId'
        responder:
          $ref: '#/components/schemas/Union_296'
        instructions:
          $ref: '#/components/schemas/Union_297'
        expires_at:
          type: string
        version:
          type: integer
          exclusiveMinimum: 0
        created_at:
          type: string
        updated_at:
          type: string
        kind:
          type: string
          enum:
            - browser_semantic_action
        action_id:
          $ref: '#/components/schemas/BrowserActionId'
        computer_id:
          $ref: '#/components/schemas/ComputerId'
        screen_id:
          $ref: '#/components/schemas/ScreenId'
        agent_id:
          $ref: '#/components/schemas/AgentId'
        context_summary:
          type: object
          properties:
            kind:
              type: string
              enum:
                - browser_semantic_action
            action_id:
              $ref: '#/components/schemas/BrowserActionId'
            computer_id:
              $ref: '#/components/schemas/ComputerId'
            screen_id:
              $ref: '#/components/schemas/ScreenId'
            session_id:
              $ref: '#/components/schemas/SessionId'
            run_id:
              $ref: '#/components/schemas/RunId'
            run_attempt_id:
              $ref: '#/components/schemas/RunAttemptId'
            agent_id:
              $ref: '#/components/schemas/AgentId'
            agent_version:
              type: integer
              exclusiveMinimum: 0
            collaboration_space_id:
              anyOf:
                - $ref: '#/components/schemas/CollaborationSpaceId'
                - type: 'null'
            action_type:
              type: string
              enum:
                - click
                - keypress
                - scroll
                - switch_target
                - close_target
            expires_at:
              $ref: '#/components/schemas/CurrentTimestamp'
          required:
            - kind
            - action_id
            - computer_id
            - screen_id
            - session_id
            - run_id
            - run_attempt_id
            - agent_id
            - agent_version
            - collaboration_space_id
            - action_type
            - expires_at
          additionalProperties: false
      required:
        - id
        - workspace_id
        - status
        - arguments_hash
        - requested_by
        - acted_as
        - responder
        - instructions
        - expires_at
        - version
        - created_at
        - updated_at
        - kind
        - action_id
        - computer_id
        - screen_id
        - agent_id
        - context_summary
      additionalProperties: false
    Objects_148:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/NonBrowserActionApprovalId'
        workspace_id:
          $ref: '#/components/schemas/WorkspaceId'
        status:
          $ref: '#/components/schemas/Union_294'
        arguments_hash:
          type: string
          pattern: ^sha256:[0-9a-f]{64}$
        requested_by:
          $ref: '#/components/schemas/Union_107'
        acting_principal_id:
          $ref: '#/components/schemas/PrincipalId'
        responder:
          anyOf:
            - $ref: '#/components/schemas/Union_138'
            - type: 'null'
        instructions:
          anyOf:
            - type: string
              allOf:
                - maxLength: 8192
            - type: 'null'
        expires_at:
          type: string
        resource_version:
          type: integer
          exclusiveMinimum: 0
        created_at:
          type: string
        updated_at:
          type: string
        action_approval_type:
          type: string
          enum:
            - harness_tool
        agent_id:
          $ref: '#/components/schemas/AgentId'
        tool:
          type: string
          allOf:
            - minLength: 1
            - maxLength: 256
            - pattern: ^harness:\S+$
        provider_tool_name:
          $ref: '#/components/schemas/ProviderToolName'
        context_summary:
          type: object
          properties:
            action_approval_type:
              type: string
              enum:
                - harness_tool
            session_id:
              $ref: '#/components/schemas/SessionId'
            run_id:
              $ref: '#/components/schemas/RunId'
            agent_id:
              $ref: '#/components/schemas/AgentId'
            agent_version_number:
              type: integer
              exclusiveMinimum: 0
            agent_placement_id:
              anyOf:
                - $ref: '#/components/schemas/AgentPlacementId'
                - type: 'null'
            collaboration_space_id:
              anyOf:
                - $ref: '#/components/schemas/CollaborationSpaceId'
                - type: 'null'
            tool_use_id:
              $ref: '#/components/schemas/HarnessToolUseId'
            tool:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 256
                - pattern: ^harness:\S+$
            provider_tool_name:
              $ref: '#/components/schemas/ProviderToolName'
          required:
            - action_approval_type
            - session_id
            - run_id
            - agent_id
            - agent_version_number
            - agent_placement_id
            - collaboration_space_id
            - tool_use_id
            - tool
            - provider_tool_name
          additionalProperties: false
      required:
        - id
        - workspace_id
        - status
        - arguments_hash
        - requested_by
        - acting_principal_id
        - responder
        - instructions
        - expires_at
        - resource_version
        - created_at
        - updated_at
        - action_approval_type
        - agent_id
        - tool
        - provider_tool_name
        - context_summary
      additionalProperties: false
    Objects_149:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/NonBrowserActionApprovalId'
        workspace_id:
          $ref: '#/components/schemas/WorkspaceId'
        status:
          $ref: '#/components/schemas/Union_294'
        arguments_hash:
          type: string
          pattern: ^sha256:[0-9a-f]{64}$
        requested_by:
          $ref: '#/components/schemas/Union_107'
        acted_as:
          $ref: '#/components/schemas/PrincipalId'
        responder:
          $ref: '#/components/schemas/Union_296'
        instructions:
          $ref: '#/components/schemas/Union_297'
        expires_at:
          type: string
        version:
          type: integer
          exclusiveMinimum: 0
        created_at:
          type: string
        updated_at:
          type: string
        kind:
          type: string
          enum:
            - automation_step
        automation_id:
          $ref: '#/components/schemas/AutomationId'
        step_id:
          type: string
          allOf:
            - minLength: 1
            - maxLength: 64
            - pattern: ^[A-Za-z0-9_]+$
        context_summary:
          type: object
          properties:
            kind:
              type: string
              enum:
                - automation_step
            automation_id:
              $ref: '#/components/schemas/AutomationId'
            firing_id:
              $ref: '#/components/schemas/AutomationFiringId'
            step_id:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 64
                - pattern: ^[A-Za-z0-9_]+$
            approver:
              $ref: '#/components/schemas/PrincipalId'
          required:
            - kind
            - automation_id
            - firing_id
            - step_id
            - approver
          additionalProperties: false
      required:
        - id
        - workspace_id
        - status
        - arguments_hash
        - requested_by
        - acted_as
        - responder
        - instructions
        - expires_at
        - version
        - created_at
        - updated_at
        - kind
        - automation_id
        - step_id
        - context_summary
      additionalProperties: false
    Union_293:
      anyOf:
        - $ref: '#/components/schemas/Objects_145'
        - $ref: '#/components/schemas/Objects_146'
        - $ref: '#/components/schemas/ManagedToolApprovalPublicPriceAndExpiry'
        - $ref: '#/components/schemas/Objects_147'
        - $ref: '#/components/schemas/Objects_148'
        - $ref: '#/components/schemas/Objects_149'
    WorkspaceId:
      type: string
      pattern: ^wrkspc_[0-9a-f]{32}$
    PolicyDeniedError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - policy.denied
            message:
              type: string
            more:
              type: string
              enum:
                - https://docs.checkfu.com/reference/errors#policy-denied
              description: Stable public documentation and remedy for this error type.
          required:
            - type
            - message
            - more
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: Deployment governance or retention policy denied the request.
    ValidationNotFoundError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - validation.not_found
            message:
              type: string
            more:
              type: string
              enum:
                - https://docs.checkfu.com/reference/errors#validation-not-found
              description: Stable public documentation and remedy for this error type.
          required:
            - type
            - message
            - more
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: >-
        The requested resource does not exist in the resolved deployment
        boundary.
    ValidationConflictError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - validation.conflict
            message:
              type: string
            more:
              type: string
              enum:
                - https://docs.checkfu.com/reference/errors#validation-conflict
              description: Stable public documentation and remedy for this error type.
          required:
            - type
            - message
            - more
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: The request conflicts with the resource's current state.
    IdempotencyConflictError:
      anyOf:
        - $ref: '#/components/schemas/ValidationIdempotencyConflictError'
        - $ref: '#/components/schemas/ValidationIdempotencyInProgressError'
      description: >-
        An idempotent mutation conflicts with a completed or in-progress request
        for the same key.
    RuntimeHarnessIncompatibleError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - runtime.harness_incompatible
            message:
              type: string
            more:
              type: string
              enum:
                - >-
                  https://docs.checkfu.com/reference/errors#runtime-harness-incompatible
              description: Stable public documentation and remedy for this error type.
          required:
            - type
            - message
            - more
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: The harness does not satisfy the required protocol or capability set.
    RuntimeInternalError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - runtime.internal
            message:
              type: string
            more:
              type: string
              enum:
                - https://docs.checkfu.com/reference/errors#runtime-internal
              description: Stable public documentation and remedy for this error type.
          required:
            - type
            - message
            - more
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: >-
        An unexpected internal failure occurred; the message contains an opaque
        incident reference.
    AuthorizationUnavailableError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - auth.authorization_unavailable
            message:
              type: string
            more:
              type: string
              enum:
                - >-
                  https://docs.checkfu.com/reference/errors#auth-authorization-unavailable
              description: Stable public documentation and remedy for this error type.
          required:
            - type
            - message
            - more
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: Authorization could not be evaluated. Retry the same request.
    BrowserActionApprovalId:
      type: string
      pattern: ^bapproval_[0-9a-f]{32}$
    Union_294:
      type: string
      enum:
        - pending
        - approved
        - denied
        - consumed
        - expired
    ConnectionId:
      type: string
      pattern: ^conn_[0-9a-f]{32}$
    ToolSourceId:
      type: string
      pattern: ^ts_[0-9a-f]{32}$
    ToolInvocationId:
      type: string
      pattern: ^tinv_[0-9a-f]{32}$
    SessionId:
      type: string
      pattern: ^sess_[0-9a-f]{32}$
    RunId:
      type: string
      pattern: ^run_[0-9a-f]{32}$
    AgentId:
      type: string
      pattern: ^agent_[0-9a-f]{32}$
    AgentPlacementId:
      type: string
      pattern: ^aplace_[0-9a-f]{32}$
    CollaborationSpaceId:
      type: string
      pattern: ^cspace_[0-9a-f]{32}$
    Union_295:
      type: string
      enum:
        - builtin
        - executor
        - connector
    PublicHostname:
      type: string
      allOf:
        - minLength: 1
        - maxLength: 253
        - pattern: ^[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$
    HttpMethod:
      type: string
      enum:
        - GET
        - POST
        - PUT
        - PATCH
        - DELETE
        - HEAD
        - OPTIONS
    HttpPath:
      type: string
      allOf:
        - minLength: 1
        - maxLength: 8192
    Union_107:
      anyOf:
        - type: object
          properties:
            kind:
              type: string
              enum:
                - api_key
            api_key:
              $ref: '#/components/schemas/ApiKeyId'
          required:
            - kind
            - api_key
          additionalProperties: false
        - type: object
          properties:
            kind:
              type: string
              enum:
                - principal
            principal:
              $ref: '#/components/schemas/PrincipalId'
          required:
            - kind
            - principal
          additionalProperties: false
        - type: object
          properties:
            kind:
              type: string
              enum:
                - automation
            automation:
              $ref: '#/components/schemas/AutomationId'
          required:
            - kind
            - automation
          additionalProperties: false
        - type: object
          properties:
            kind:
              type: string
              enum:
                - system
            name:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 512
          required:
            - kind
            - name
          additionalProperties: false
    Union_138:
      anyOf:
        - type: object
          properties:
            kind:
              type: string
              enum:
                - system
          required:
            - kind
          additionalProperties: false
        - type: object
          properties:
            kind:
              type: string
              enum:
                - api_key
            id:
              $ref: '#/components/schemas/ApiKeyId'
          required:
            - kind
            - id
          additionalProperties: false
        - type: object
          properties:
            kind:
              type: string
              enum:
                - principal
            id:
              $ref: '#/components/schemas/PrincipalId'
            authenticated_by:
              $ref: '#/components/schemas/ApiKeyId'
          required:
            - kind
            - id
          additionalProperties: false
        - type: object
          properties:
            kind:
              type: string
              enum:
                - console_user
            id:
              type: string
              allOf:
                - minLength: 1
            authenticated_by:
              $ref: '#/components/schemas/ApiKeyId'
          required:
            - kind
            - id
          additionalProperties: false
        - type: object
          properties:
            kind:
              type: string
              enum:
                - operator
            id:
              type: string
              allOf:
                - minLength: 1
          required:
            - kind
            - id
          additionalProperties: false
    Union_296:
      anyOf:
        - $ref: '#/components/schemas/Union_138'
        - type: 'null'
    Union_297:
      anyOf:
        - type: string
          allOf:
            - maxLength: 8192
        - type: 'null'
    ManagedToolSelection:
      type: object
      properties:
        managed_tool_id:
          $ref: '#/components/schemas/ManagedToolId'
        managed_tool_release_id:
          $ref: '#/components/schemas/ManagedToolReleaseId'
      required:
        - managed_tool_id
        - managed_tool_release_id
      additionalProperties: false
    ManagedToolPrice:
      type: object
      properties:
        rate_card_id:
          $ref: '#/components/schemas/BillingRateCardId'
        price_microusd:
          type: integer
          allOf:
            - minimum: 0
            - maximum: 9007199254740991
        billing_basis:
          type: string
          enum:
            - valid_result
            - admitted_dispatch
        valid_empty_result_billable:
          type: boolean
      required:
        - rate_card_id
        - price_microusd
        - billing_basis
        - valid_empty_result_billable
      additionalProperties: false
      description: >-
        One published fixed price per logical invocation; polling and result
        recovery do not add calls.
    CurrentTimestamp:
      type: string
      allOf:
        - maxLength: 24
        - pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$
          x-checkfu-current-timestamp: true
          description: A canonical UTC ISO-8601 timestamp with millisecond precision.
    BrowserActionId:
      type: string
      pattern: ^bact_[0-9a-f]{32}$
    ComputerId:
      type: string
      pattern: ^comp_[0-9a-f]{32}$
    ScreenId:
      type: string
      pattern: ^scrn_[0-9a-f]{32}$
    RunAttemptId:
      type: string
      pattern: ^ratt_[0-9a-f]{32}$
    ProviderToolName:
      type: string
      allOf:
        - minLength: 1
        - maxLength: 256
    HarnessToolUseId:
      type: string
      allOf:
        - minLength: 1
        - maxLength: 256
    AutomationId:
      type: string
      pattern: ^auto_[0-9a-f]{32}$
    AutomationFiringId:
      type: string
      pattern: ^afire_[0-9a-f]{32}$
    ValidationIdempotencyConflictError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - validation.idempotency_conflict
            message:
              type: string
            more:
              type: string
              enum:
                - >-
                  https://docs.checkfu.com/reference/errors#validation-idempotency-conflict
              description: Stable public documentation and remedy for this error type.
          required:
            - type
            - message
            - more
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: The Idempotency-Key is already bound to a different request.
    ValidationIdempotencyInProgressError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - validation.idempotency_in_progress
            message:
              type: string
            more:
              type: string
              enum:
                - >-
                  https://docs.checkfu.com/reference/errors#validation-idempotency-in-progress
              description: Stable public documentation and remedy for this error type.
          required:
            - type
            - message
            - more
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: >-
        An identical idempotent request is still in progress and may be retried
        later.
    ApiKeyId:
      type: string
      pattern: ^akey_[0-9a-f]{32}$
    ManagedToolId:
      type: string
      pattern: ^mtl_[0-9a-f]{32}$
    ManagedToolReleaseId:
      type: string
      pattern: ^mtrel_[0-9a-f]{32}$
    BillingRateCardId:
      type: string
      pattern: ^rate_[0-9a-f]{32}$
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.