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

# Publish a ComputerProfileRevision

> Atomically publishes the next immutable complete ComputerProfileRevision and advances its head under expected_resource_version. The payload must carry canonically normalized Computer-class requirements, exact optional SandboxProfileRevision and OCI coordinates, presentation-matched screen policy, bounded lifecycle policy, and the Principal author; the server computes and returns the canonical content digest. Existing Computers retain their pinned revision. No provider is selected, allocated, or contacted.

Checkfu support posture: alpha; hosted. No release evidence journey applies to this operation.



## OpenAPI

````yaml /openapi.json post /v1/computer-profiles/{id}/revisions
openapi: 3.1.0
info:
  title: Checkfu API
  version: '2026-08-27'
  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-27); 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: harnesses
  - name: harnessRuntime
  - name: computerProfiles
  - name: permissionAssignments
  - name: actionPolicies
  - name: files
  - name: memoryStores
  - name: dreams
  - name: modelCredentials
  - name: modelRoutingProfiles
  - name: blueprintInstallations
  - name: toolSources
  - name: skills
  - name: skillSources
  - name: agentSources
  - name: skillProposals
  - name: instructionProposals
  - name: catalog
  - name: concepts
  - name: support
  - name: connections
  - name: connectionVaults
  - name: connectionAssignments
  - name: connectedRuntimes
  - name: projects
  - name: collaboration
  - name: automationGraphs
  - name: automations
  - name: actionApprovals
  - name: standingApprovals
  - 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: sessionHandoffs
  - name: sessionCapsules
  - name: sessionTrajectories
  - name: webhookEndpoints
  - name: integrationGateway
  - name: agentDeployments
  - name: workEnvironments
  - name: computers
  - name: computerScreens
  - name: computerBrowserObservations
  - name: computerBrowserActions
  - name: environments
  - name: vaults
  - name: apiMcp
  - name: a2a
paths:
  /v1/computer-profiles/{id}/revisions:
    post:
      tags:
        - computerProfiles
      summary: Publish a ComputerProfileRevision
      description: >-
        Atomically publishes the next immutable complete ComputerProfileRevision
        and advances its head under expected_resource_version. The payload must
        carry canonically normalized Computer-class requirements, exact optional
        SandboxProfileRevision and OCI coordinates, presentation-matched screen
        policy, bounded lifecycle policy, and the Principal author; the server
        computes and returns the canonical content digest. Existing Computers
        retain their pinned revision. No provider is selected, allocated, or
        contacted.


        Checkfu support posture: alpha; hosted. No release evidence journey
        applies to this operation.
      operationId: computerProfiles.publishComputerProfileRevision
      parameters:
        - name: id
          in: path
          schema:
            $ref: '#/components/schemas/ComputerProfileId'
          required: true
        - name: checkfu-version
          in: header
          schema:
            type: string
            enum:
              - '2026-08-27'
          required: true
        - name: idempotency-key
          in: header
          schema:
            type: string
            allOf:
              - maxLength: 255
          required: false
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                expected_resource_version:
                  type: integer
                  allOf:
                    - exclusiveMinimum: 0
                created_by_principal_id:
                  $ref: '#/components/schemas/PrincipalId'
                requirements_schema_version:
                  type: number
                  enum:
                    - 1
                normalized_requirements:
                  $ref: '#/components/schemas/WorkEnvironmentRequirements'
                sandbox_profile_revision:
                  $ref: '#/components/schemas/Union_91'
                platform:
                  $ref: '#/components/schemas/Objects_42'
                image:
                  $ref: '#/components/schemas/Union_92'
                screen_policy:
                  $ref: '#/components/schemas/Union_93'
                lifecycle:
                  $ref: '#/components/schemas/Objects_44'
              required:
                - expected_resource_version
                - created_by_principal_id
                - requirements_schema_version
                - normalized_requirements
                - sandbox_profile_revision
                - platform
                - image
                - screen_policy
                - lifecycle
              additionalProperties: false
        required: true
      responses:
        '201':
          description: >-
            An immutable complete provider-neutral Computer profile revision
            bound to its canonical content digest.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComputerProfileRevision'
          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'
        '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'
      security:
        - bearerAuth: []
components:
  schemas:
    ComputerProfileId:
      type: string
      allOf:
        - pattern: ^cprof_[0-9a-f]{32}$
    PrincipalId:
      type: string
      allOf:
        - pattern: ^prin_[0-9a-f]{32}$
    WorkEnvironmentRequirements:
      type: object
      properties:
        schema_version:
          type: number
          enum:
            - 1
        execution:
          $ref: '#/components/schemas/Arrays_15'
        lifetime:
          type: string
          enum:
            - run
            - session
            - durable
        presentation:
          type: string
          enum:
            - none
            - browser
            - desktop
        human_access:
          type: string
          enum:
            - none
            - observe
            - exclusive_takeover
        placement:
          $ref: '#/components/schemas/Arrays_16'
        isolation:
          type: object
          properties:
            filesystem:
              $ref: '#/components/schemas/Union_88'
            browser_profile:
              $ref: '#/components/schemas/Union_88'
            process_namespace:
              $ref: '#/components/schemas/Union_88'
            credentials:
              type: string
              enum:
                - grant_bound
                - profile_shared
            clipboard:
              type: string
              enum:
                - disabled
                - attachment
                - scope_shared
            downloads:
              $ref: '#/components/schemas/Union_88'
          required:
            - filesystem
            - browser_profile
            - process_namespace
            - credentials
            - clipboard
            - downloads
          additionalProperties: false
        recovery:
          $ref: '#/components/schemas/Union_89'
        retention:
          $ref: '#/components/schemas/WorkEnvironmentRetention'
        network:
          $ref: '#/components/schemas/WorkEnvironmentNetwork'
        locality:
          $ref: '#/components/schemas/WorkEnvironmentLocality'
        resources:
          $ref: '#/components/schemas/WorkEnvironmentResources'
      required:
        - schema_version
        - execution
        - lifetime
        - presentation
        - human_access
        - placement
        - isolation
        - recovery
        - retention
        - network
        - locality
        - resources
      additionalProperties: false
    Union_91:
      anyOf:
        - $ref: '#/components/schemas/Objects_41'
        - type: 'null'
    Objects_42:
      type: object
      properties:
        os_family:
          anyOf:
            - type: string
              allOf:
                - minLength: 1
                - maxLength: 64
                - pattern: ^[a-z0-9][a-z0-9._-]*$
            - type: 'null'
        architecture:
          anyOf:
            - type: string
              allOf:
                - minLength: 1
                - maxLength: 64
                - pattern: ^[a-z0-9][a-z0-9._-]*$
            - type: 'null'
      required:
        - os_family
        - architecture
      additionalProperties: false
    Union_92:
      anyOf:
        - $ref: '#/components/schemas/Objects_43'
        - type: 'null'
    Union_93:
      anyOf:
        - type: object
          properties:
            maximum_screens:
              type: integer
              allOf:
                - exclusiveMinimum: 0
                - maximum: 16
            default_width:
              type: integer
              allOf:
                - exclusiveMinimum: 0
                - maximum: 16384
            default_height:
              type: integer
              allOf:
                - exclusiveMinimum: 0
                - maximum: 16384
            maximum_viewers_per_screen:
              type: integer
              allOf:
                - exclusiveMinimum: 0
                - maximum: 64
          required:
            - maximum_screens
            - default_width
            - default_height
            - maximum_viewers_per_screen
          additionalProperties: false
        - type: 'null'
    Objects_44:
      type: object
      properties:
        idle_sleep_seconds:
          anyOf:
            - type: integer
              allOf:
                - exclusiveMinimum: 0
                - maximum: 315360000
            - type: 'null'
        maximum_active_seconds:
          anyOf:
            - type: integer
              allOf:
                - exclusiveMinimum: 0
                - maximum: 315360000
            - type: 'null'
      required:
        - idle_sleep_seconds
        - maximum_active_seconds
      additionalProperties: false
    ComputerProfileRevision:
      type: object
      properties:
        profile_id:
          $ref: '#/components/schemas/ComputerProfileId'
        workspace_id:
          $ref: '#/components/schemas/WorkspaceId'
        revision_number:
          type: integer
          allOf:
            - exclusiveMinimum: 0
        requirements_schema_version:
          type: number
          enum:
            - 1
        normalized_requirements:
          $ref: '#/components/schemas/WorkEnvironmentRequirements'
        sandbox_profile_revision:
          $ref: '#/components/schemas/Union_91'
        platform:
          $ref: '#/components/schemas/Objects_42'
        image:
          $ref: '#/components/schemas/Union_92'
        screen_policy:
          $ref: '#/components/schemas/Union_93'
        lifecycle:
          $ref: '#/components/schemas/Objects_44'
        content_sha256:
          type: string
          allOf:
            - pattern: ^sha256:[0-9a-f]{64}$
        created_by_principal_id:
          $ref: '#/components/schemas/PrincipalId'
        created_at:
          $ref: '#/components/schemas/CurrentTimestamp'
      required:
        - profile_id
        - workspace_id
        - revision_number
        - requirements_schema_version
        - normalized_requirements
        - sandbox_profile_revision
        - platform
        - image
        - screen_policy
        - lifecycle
        - content_sha256
        - created_by_principal_id
        - created_at
      additionalProperties: false
    WorkspaceId:
      type: string
      allOf:
        - 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.
    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.
    Arrays_15:
      type: array
      items:
        type: string
        enum:
          - shell
          - filesystem
          - network_server
          - browser_dom
          - browser_visual
          - desktop_gui
      allOf:
        - maxItems: 6
    Arrays_16:
      type: array
      items:
        type: string
        enum:
          - managed
          - local
          - connected
      allOf:
        - maxItems: 3
    Union_88:
      type: string
      enum:
        - attachment
        - application
        - scope_shared
    Union_89:
      type: string
      enum:
        - none
        - filesystem
        - browser_profile
        - full_instance
    WorkEnvironmentRetention:
      type: object
      properties:
        mode:
          type: string
          enum:
            - ephemeral_zdr
            - bounded
            - durable
        maximum_seconds:
          anyOf:
            - type: integer
              allOf:
                - exclusiveMinimum: 0
                - maximum: 315360000
            - type: 'null'
        export:
          type: string
          enum:
            - forbidden
            - allowed
      required:
        - mode
        - maximum_seconds
        - export
      additionalProperties: false
      description: >-
        Retention duration, durability mode, and export policy for a work
        environment.
    WorkEnvironmentNetwork:
      type: object
      properties:
        mode:
          type: string
          enum:
            - none
            - allowlist
            - unrestricted
        policy:
          anyOf:
            - type: object
              properties:
                action_policy_id:
                  $ref: '#/components/schemas/ActionPolicyId'
                action_policy_version:
                  type: integer
                  allOf:
                    - exclusiveMinimum: 0
              required:
                - action_policy_id
                - action_policy_version
              additionalProperties: false
            - type: 'null'
      required:
        - mode
        - policy
      additionalProperties: false
      description: >-
        Network access mode and optional versioned action policy for a work
        environment.
    WorkEnvironmentLocality:
      type: object
      properties:
        regions:
          $ref: '#/components/schemas/Arrays_17'
        residency_required:
          type: boolean
      required:
        - regions
        - residency_required
      additionalProperties: false
      description: >-
        Ordered eligible regions and residency requirement for a work
        environment.
    WorkEnvironmentResources:
      type: object
      properties:
        minimum_vcpu:
          anyOf:
            - type: integer
              allOf:
                - exclusiveMinimum: 0
                - maximum: 1024
            - type: 'null'
        minimum_memory_mib:
          anyOf:
            - type: integer
              allOf:
                - exclusiveMinimum: 0
                - maximum: 4194304
            - type: 'null'
        minimum_disk_mib:
          anyOf:
            - type: integer
              allOf:
                - exclusiveMinimum: 0
                - maximum: 1073741824
            - type: 'null'
        gpu:
          $ref: '#/components/schemas/Union_90'
      required:
        - minimum_vcpu
        - minimum_memory_mib
        - minimum_disk_mib
        - gpu
      additionalProperties: false
      description: >-
        Minimum compute, memory, disk, and GPU requirements for a work
        environment.
    Objects_41:
      type: object
      properties:
        sandbox_profile_id:
          $ref: '#/components/schemas/SandboxProfileId'
        revision_number:
          type: integer
          allOf:
            - exclusiveMinimum: 0
      required:
        - sandbox_profile_id
        - revision_number
      additionalProperties: false
    Objects_43:
      type: object
      properties:
        reference:
          $ref: '#/components/schemas/OciImageReference'
        image_digest:
          type: string
          allOf:
            - pattern: ^sha256:[0-9a-f]{64}$
      required:
        - reference
        - image_digest
      additionalProperties: false
    CurrentTimestamp:
      type: string
      allOf:
        - maxLength: 24
        - pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$
          description: A canonical UTC ISO-8601 timestamp with millisecond precision.
    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.
    ActionPolicyId:
      type: string
      allOf:
        - pattern: ^apol_[0-9a-f]{32}$
    Arrays_17:
      type: array
      items:
        type: string
        allOf:
          - minLength: 1
          - maxLength: 64
          - pattern: ^[a-z0-9][a-z0-9-]*$
      allOf:
        - maxItems: 32
    Union_90:
      type: string
      enum:
        - forbidden
        - optional
        - required
    SandboxProfileId:
      type: string
      allOf:
        - pattern: ^sprof_[0-9a-f]{32}$
    OciImageReference:
      type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````