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

# Update project integration

> Change the scope, allowed tools, configuration or execution mode of a project integration by sending only the fields to change, so that an omitted field keeps its stored value; returns the updated project integration. Requires project.integrations.configure.



## OpenAPI

````yaml /cloud/rest/openapi.json patch /projects/{project_reference}/integrations/{name}
openapi: 3.1.0
info:
  title: Veryfront REST API reference
  version: 1.0.0
  description: |-
    ## Explore the API

    | Domain | Use it to |
    | --- | --- |
    | [Projects](#tag/projects) | Manage projects and files. |
    | [Agents](#tag/agents) | Manage agent primitives. |
    | [Orchestration](#tag/execution) | Manage conversations and runs. |
    | [Evaluations](#tag/evaluations) | Manage evaluations and results. |
    | [AI Gateway](#tag/ai-gateway) | Access models and inference. |
    | [MCP](#tag/mcp) | Discover tools and authorization. |
    | [Integrations](#tag/integrations) | Manage connections and integrations. |
    | [Knowledge](#tag/knowledge) | Manage documents and search. |
    | [Deployments](#tag/deployments) | Manage releases and deployments. |
    | [Runtime](#tag/runtime) | Manage environments and infrastructure. |
    | [Observability](#tag/observability) | Monitor activity and performance. |
    | [Identity & Access](#tag/identity-access) | Manage identity and access. |
    | [Billing & Usage](#tag/billing-usage) | Manage billing and usage. |
    | [Other](#tag/platform) | Inspect health and API metadata. |

    [OpenAPI specification (JSON)](/openapi.json)
  contact:
    name: Veryfront API Support
    url: https://veryfront.com/docs
    email: support@veryfront.com
  x-api-id: 5f1f0b8a-6b0e-4c1a-9b35-0f3a1e6d84c7
  x-audience: external-public
servers:
  - url: https://api.veryfront.com
security:
  - bearerAuth: []
  - apiKeyAuth: []
tags:
  - name: projects
    description: Manage projects and files.
  - name: agents
    description: Manage agent primitives.
  - name: execution
    description: Manage conversations and runs.
  - name: evaluations
    description: Manage evaluations and results.
  - name: ai-gateway
    description: Access models and inference.
  - name: mcp
    description: Discover tools and authorization.
  - name: integrations
    description: Manage connections and integrations.
  - name: knowledge
    description: Manage documents and search.
  - name: deployments
    description: Manage releases and deployments.
  - name: runtime
    description: Manage environments and infrastructure.
  - name: observability
    description: Monitor activity and performance.
  - name: identity-access
    description: Manage identity and access.
  - name: billing-usage
    description: Manage billing and usage.
  - name: platform
    description: Inspect health and API metadata.
  - name: projects/Projects
  - name: projects/Projects/Favorites
  - name: projects/Projects/Account Projects
  - name: projects/Projects/Projects
  - name: projects/Projects/Project Labels
  - name: projects/Projects/Project templates
  - name: projects/Files
  - name: projects/Files/Files
  - name: projects/Files/File Chunks
  - name: projects/Files/Branch File Versions
  - name: projects/Files/Branch Files
  - name: projects/Files/Environment Files
  - name: projects/Files/File Versions
  - name: projects/Files/Branch File Drafts
  - name: projects/Files/Release Files
  - name: projects/Files/Sandbox Files
  - name: projects/Files/File Search
  - name: projects/Branches
  - name: projects/Branches/Branches
  - name: projects/Branches/Branch Policies
  - name: projects/Branches/Branch Approvals
  - name: projects/Branches/Branch Status Checks
  - name: projects/Branches/Project Commits
  - name: projects/Branches/Branch Merges
  - name: projects/Uploads
  - name: projects/Uploads/Upload Folders
  - name: projects/Uploads/Upload Grants
  - name: projects/Uploads/Project Uploads
  - name: projects/Uploads/Upload Visibility
  - name: agents/Agents
  - name: agents/Agents/Agents
  - name: agents/Agents/Agent Labels
  - name: agents/Agents/Agent templates
  - name: agents/Agents/Agent Tool References
  - name: agents/Agents/Agent Avatars
  - name: agents/Agents/Agent Capabilities
  - name: agents/Agents/Agent Installation
  - name: agents/Prompts
  - name: agents/Prompts/Project prompts
  - name: agents/Tools
  - name: agents/Tools/Project tools
  - name: agents/Skills
  - name: agents/Skills/Project skills
  - name: agents/Resources
  - name: agents/Resources/Project resources
  - name: agents/Tasks
  - name: agents/Tasks/Tasks
  - name: agents/Workflows
  - name: agents/Workflows/Workflows
  - name: execution/Conversations
  - name: execution/Conversations/Conversations
  - name: execution/Conversations/Conversation messages
  - name: execution/Conversations/Conversation participants
  - name: execution/Conversations/Conversation read state
  - name: execution/Triggers
  - name: execution/Triggers/Project schedules
  - name: execution/Triggers/Webhooks
  - name: execution/Triggers/Webhook events
  - name: execution/Runs
  - name: execution/Runs/Run Input Requests
  - name: execution/Runs/Runs
  - name: execution/Runs/Runtime
  - name: execution/Runs/Child Runs
  - name: execution/Runs/Conversation Runs
  - name: execution/Runs/Project Runs
  - name: execution/Runs/Webhook Runs
  - name: execution/Runs/Run Events
  - name: execution/Runs/Run Actions
  - name: execution/Runs/Run Artifacts
  - name: execution/Executors
  - name: execution/Executors/Connected agents
  - name: execution/Executors/Agent workers
  - name: evaluations/Evaluations
  - name: evaluations/Evaluations/Evaluations
  - name: evaluations/Evaluations/Evaluation Runs
  - name: ai-gateway/Models
  - name: ai-gateway/Models/Model discovery
  - name: ai-gateway/Models/Inference Models
  - name: ai-gateway/Models/Project inference policy
  - name: ai-gateway/Models/Account inference policy
  - name: ai-gateway/Inference
  - name: ai-gateway/Inference/OpenAI Chat Completions
  - name: ai-gateway/Inference/Embeddings
  - name: ai-gateway/Inference/OpenAI Responses
  - name: ai-gateway/Inference/Proxy metadata
  - name: ai-gateway/Inference/Anthropic Messages
  - name: ai-gateway/Inference/Provider gateway
  - name: ai-gateway/Inference/Gemini inference
  - name: ai-gateway/Inference/Image generation
  - name: mcp/Tools
  - name: mcp/Tools/MCP discovery
  - name: mcp/Authorization
  - name: mcp/Authorization/Protected resource discovery
  - name: integrations/Integrations
  - name: integrations/Integrations/Integration tools
  - name: integrations/Integrations/Integration catalog
  - name: integrations/Integrations/Project integrations
  - name: integrations/Connections
  - name: integrations/Connections/Connections
  - name: integrations/Channels
  - name: integrations/Channels/Channels
  - name: integrations/Channels/Setup lookups
  - name: integrations/External storage
  - name: integrations/External storage/External Files
  - name: knowledge/Documents
  - name: knowledge/Documents/Project knowledge
  - name: knowledge/Documents/Retrieval documents
  - name: knowledge/Search
  - name: knowledge/Search/Search
  - name: knowledge/Embeddings
  - name: knowledge/Embeddings/Project embeddings
  - name: deployments/Releases
  - name: deployments/Releases/Releases
  - name: deployments/Releases/Release Versions
  - name: deployments/Releases/Release Source Manifests
  - name: deployments/Deployments
  - name: deployments/Deployments/Project deployments
  - name: deployments/Artifacts
  - name: deployments/Artifacts/Dependencies
  - name: deployments/Artifacts/Release Asset Manifests
  - name: deployments/Artifacts/Style artifacts
  - name: runtime/Environments
  - name: runtime/Environments/Environments
  - name: runtime/Environments/Environment Domains
  - name: runtime/Environments/Environment variables
  - name: runtime/Environments/Project Domains
  - name: runtime/Environments/Environment Variable Keys
  - name: runtime/Servers
  - name: runtime/Servers/Environment Servers
  - name: runtime/Servers/Project servers
  - name: runtime/Sandboxes
  - name: runtime/Sandboxes/Sandbox Lifecycle
  - name: runtime/Sandboxes/Sandbox Commands
  - name: runtime/Sandboxes/Sandbox Environment
  - name: runtime/Sandboxes/Sandbox Health
  - name: runtime/Sandboxes/Sandbox Terminal
  - name: runtime/Cache
  - name: runtime/Cache/Project Cache
  - name: runtime/Cache/User Cache
  - name: observability/Logs
  - name: observability/Logs/Log entries
  - name: observability/Traces
  - name: observability/Traces/Trace spans
  - name: observability/Traces/Project traces
  - name: observability/Traces/Trace Search
  - name: observability/Metrics
  - name: observability/Metrics/Metric series
  - name: observability/Alerts
  - name: observability/Alerts/Project alerts
  - name: observability/Error types
  - name: observability/Error types/Error types
  - name: identity-access/Users
  - name: identity-access/Users/Account users
  - name: identity-access/Users/Project users
  - name: identity-access/Users/Current user
  - name: identity-access/Accounts
  - name: identity-access/Accounts/Accounts
  - name: identity-access/Invitations
  - name: identity-access/Invitations/Invitations
  - name: identity-access/Permissions
  - name: identity-access/Permissions/Feature gates
  - name: identity-access/Permissions/Project Ownership
  - name: identity-access/API keys
  - name: identity-access/API keys/API keys
  - name: identity-access/Authentication
  - name: identity-access/Authentication/Sign-in
  - name: identity-access/Authentication/Tokens
  - name: identity-access/Authorization
  - name: identity-access/Authorization/Authorized apps
  - name: identity-access/Authorization/General OAuth
  - name: identity-access/Authorization/Consent
  - name: billing-usage/Subscriptions
  - name: billing-usage/Subscriptions/Subscriptions
  - name: billing-usage/Subscriptions/Seats
  - name: billing-usage/Billing
  - name: billing-usage/Billing/Invoices
  - name: billing-usage/Billing/Payments
  - name: billing-usage/Billing/Payment Methods
  - name: billing-usage/Billing/Billing Details
  - name: billing-usage/Billing/Account billing
  - name: billing-usage/Credits
  - name: billing-usage/Credits/Credits
  - name: billing-usage/Budgets
  - name: billing-usage/Budgets/Budgets
  - name: billing-usage/Usage
  - name: billing-usage/Usage/API key usage
  - name: billing-usage/Usage/Account usage
  - name: billing-usage/Usage/Project usage
  - name: billing-usage/Analytics
  - name: billing-usage/Analytics/Conversation Analytics
  - name: billing-usage/Analytics/Run Analytics
  - name: platform/Other
  - name: platform/Other/API metadata
paths:
  /projects/{project_reference}/integrations/{name}:
    patch:
      tags:
        - integrations/Integrations/Project integrations
      summary: Update project integration
      description: >-
        Change the scope, allowed tools, configuration or execution mode of a
        project integration by sending only the fields to change, so that an
        omitted field keeps its stored value; returns the updated project
        integration. Requires project.integrations.configure.
      operationId: updateProjectIntegration
      parameters:
        - $ref: '#/components/parameters/ProjectReference'
        - schema:
            type: string
          required: true
          name: name
          in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                scope:
                  type: string
                  enum:
                    - project
                    - user
                    - endUser
                    - end_user
                  description: >-
                    Credential scope the integration uses. Omit to keep the
                    stored value. The legacy end_user and endUser inputs are
                    aliases of user; responses return user.
                  example: project
                allowed_tools:
                  type:
                    - array
                    - 'null'
                  items:
                    type: string
                  description: >-
                    Unprefixed tool IDs the project allows. Null allows all
                    tools. Omit to keep the stored list. Each entry must exist
                    in the catalog of the effective execution mode.
                  example:
                    - list-repos
                config:
                  type: object
                  additionalProperties: {}
                  description: >-
                    Integration-specific configuration that must match
                    config_schema. Omit to keep the stored configuration.
                execution_mode:
                  type: string
                  enum:
                    - real
                    - mock
                  description: Execution mode. Omit to keep the stored value.
                  example: real
      responses:
        '200':
          description: The updated project integration.
          content:
            application/json:
              schema:
                type: object
                properties:
                  configured:
                    type: boolean
                  created_at:
                    type:
                      - string
                      - 'null'
                    format: date-time
                  updated_at:
                    type:
                      - string
                      - 'null'
                    format: date-time
                  name:
                    type: string
                  display_name:
                    type: string
                  icon:
                    type: string
                  description:
                    type: string
                  auth_type:
                    type: string
                    enum:
                      - oauth2
                      - oauth1
                      - api-key
                      - basic
                  tool_count:
                    type: integer
                    minimum: 0
                  prompt_count:
                    type: integer
                    minimum: 0
                  connected_for_project:
                    type: boolean
                  scope:
                    type: string
                    enum:
                      - project
                      - user
                  allowed_tools:
                    type:
                      - array
                      - 'null'
                    items:
                      type: string
                  config:
                    type: object
                    additionalProperties: {}
                  execution_mode:
                    type: string
                    enum:
                      - real
                      - mock
                  config_schema:
                    type:
                      - object
                      - 'null'
                    properties:
                      version:
                        type: number
                        enum:
                          - 1
                      fields:
                        type: array
                        items:
                          oneOf:
                            - type: object
                              properties:
                                key:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - select
                                label:
                                  type: string
                                description:
                                  type: string
                                default:
                                  type: string
                                options:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      value:
                                        type: string
                                      label:
                                        type: string
                                      description:
                                        type: string
                                    required:
                                      - value
                                      - label
                              required:
                                - key
                                - type
                                - label
                                - options
                            - type: object
                              properties:
                                key:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - multiselect
                                label:
                                  type: string
                                description:
                                  type: string
                                default:
                                  type: array
                                  items:
                                    type: string
                                options:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      value:
                                        type: string
                                      label:
                                        type: string
                                      description:
                                        type: string
                                    required:
                                      - value
                                      - label
                              required:
                                - key
                                - type
                                - label
                                - options
                            - type: object
                              properties:
                                key:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - boolean
                                label:
                                  type: string
                                description:
                                  type: string
                                default:
                                  type: boolean
                              required:
                                - key
                                - type
                                - label
                            - type: object
                              properties:
                                key:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - number
                                label:
                                  type: string
                                description:
                                  type: string
                                default:
                                  type: number
                                min:
                                  type: number
                                max:
                                  type: number
                                step:
                                  type: number
                              required:
                                - key
                                - type
                                - label
                    required:
                      - version
                      - fields
                    description: >-
                      The project configuration schema of the integration that
                      config must match, or null when it declares none.
                  project_connections:
                    type: object
                    properties:
                      connected:
                        type: integer
                        minimum: 0
                      expired:
                        type: integer
                        minimum: 0
                      disconnected:
                        type: integer
                        minimum: 0
                    required:
                      - connected
                      - expired
                      - disconnected
                  project_user_connections:
                    type: object
                    properties:
                      connected:
                        type: integer
                        minimum: 0
                      expired:
                        type: integer
                        minimum: 0
                      disconnected:
                        type: integer
                        minimum: 0
                    required:
                      - connected
                      - expired
                      - disconnected
                    description: >-
                      Private connections belonging to the interactive viewer in
                      this project. Zero for API keys and service credentials.
                  resolution:
                    type: object
                    properties:
                      catalog_available:
                        type: boolean
                      catalog_state:
                        type: string
                        enum:
                          - available
                          - removed
                      policy:
                        type: object
                        properties:
                          state:
                            type: string
                            enum:
                              - absent
                              - allowed
                              - restricted
                          scope:
                            type: string
                            enum:
                              - project
                              - user
                          allowed_tools:
                            type:
                              - array
                              - 'null'
                            items:
                              type: string
                          execution_mode:
                            type: string
                            enum:
                              - real
                              - mock
                        required:
                          - state
                          - scope
                          - allowed_tools
                          - execution_mode
                      credential_requirement:
                        type: object
                        properties:
                          mode:
                            type: string
                            enum:
                              - oauth_connection
                              - project_credentials
                              - none
                          managed_oauth:
                            type: boolean
                          byo_oauth_app_override:
                            type: object
                            properties:
                              supported:
                                type: boolean
                              required:
                                type: boolean
                              client_id_env_var:
                                type:
                                  - string
                                  - 'null'
                              client_secret_env_var:
                                type:
                                  - string
                                  - 'null'
                            required:
                              - supported
                              - required
                              - client_id_env_var
                              - client_secret_env_var
                          mandatory_env_vars:
                            type: array
                            items:
                              type: string
                        required:
                          - mode
                          - managed_oauth
                          - byo_oauth_app_override
                          - mandatory_env_vars
                      connection_readiness:
                        type: object
                        properties:
                          status:
                            type: string
                            enum:
                              - ready
                              - required
                              - not_applicable
                              - unknown
                          scope:
                            type:
                              - string
                              - 'null'
                            enum:
                              - project
                              - user
                              - null
                          connected_count:
                            type:
                              - integer
                              - 'null'
                            minimum: 0
                        required:
                          - status
                          - scope
                          - connected_count
                    required:
                      - catalog_available
                      - catalog_state
                      - policy
                      - credential_requirement
                      - connection_readiness
                required:
                  - configured
                  - created_at
                  - updated_at
                  - name
                  - display_name
                  - icon
                  - description
                  - auth_type
                  - tool_count
                  - prompt_count
                  - connected_for_project
                  - scope
                  - allowed_tools
                  - config
                  - execution_mode
                  - config_schema
                  - project_connections
                  - project_user_connections
                  - resolution
        '400':
          description: >-
            invalid_input: a field is invalid, allowed_tools names a tool
            outside the catalog of the effective execution mode, or config does
            not match config_schema. errors lists the fields.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '401':
          description: 'unauthenticated: no valid credential was sent.'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '403':
          description: 'forbidden: the credential lacks project.integrations.configure.'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: >-
            not_found: the project or the integration does not exist or is not
            accessible.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: 'internal: the update failed unexpectedly.'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '502':
          description: >-
            internal: the mock integration service did not return its catalog,
            which allowed_tools is checked against in mock execution mode.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '503':
          description: >-
            internal: authentication state is temporarily unavailable and the
            request was not processed; retry shortly.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
components:
  parameters:
    ProjectReference:
      schema:
        $ref: '#/components/schemas/ProjectReference'
      required: true
      description: Project slug, UUID, or domain that identifies the project.
      name: project_reference
      in: path
  schemas:
    Problem:
      type: object
      properties:
        cause:
          type: string
          enum:
            - schedule_concurrency_forbidden
            - schedule_fire_in_progress
            - schedule_run_limit_reached
          description: Schedule admission refusal.
        idempotency:
          type: object
          properties:
            state:
              type: string
              enum:
                - in_progress
                - payload_mismatch
                - outcome_unknown
            operation:
              type: string
              minLength: 1
            retryable:
              type: boolean
            retry_after_seconds:
              type:
                - integer
                - 'null'
              minimum: 0
            expires_at:
              type:
                - string
                - 'null'
            recovery:
              type: object
              properties:
                available:
                  type: boolean
                description:
                  type: string
                resource_url:
                  type: string
              required:
                - available
                - description
          required:
            - state
            - operation
            - retryable
            - retry_after_seconds
            - expires_at
          description: Replay status, retry timing, and recovery lookup.
        type:
          type: string
          description: URI reference identifying the problem type
          example: https://api.veryfront.com/errors/validation-failed
        title:
          type: string
          description: Short human-readable summary of the problem
          example: Validation Failed
        status:
          type: integer
          minimum: 100
          maximum: 599
          description: HTTP status code
          example: 400
        code:
          type: string
          description: Stable machine-readable error code
          example: RUN_INVALID_INPUT
        detail:
          type: string
          description: Human-readable explanation specific to this occurrence
          example: The 'email' field must be a valid email address
        instance:
          type: string
          description: URI reference identifying the specific occurrence
          example: /projects/my-project/members
        slug:
          type: string
          description: Stable identifier for the problem type
          example: validation-failed
        category:
          type: string
          enum:
            - AUTH
            - RESOURCE
            - VALIDATION
            - DATABASE
            - SUBSCRIPTION
            - INTEGRATION
            - INTERNAL
          description: API error category
          example: VALIDATION
        suggestion:
          type: string
          description: Suggested action to resolve the problem
          example: >-
            Check the request body and query parameters against the API
            documentation.
        errors:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
                description: Field path that caused the error
                example: email
              message:
                type: string
                description: Error message for this field
                example: Invalid email format
              code:
                type: string
                description: Error code for this field
                example: INVALID_FORMAT
            required:
              - field
              - message
          description: Detailed field-level errors for validation failures
      required:
        - type
        - title
        - status
    ProjectReference:
      type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT or API Key
      description: >-
        Use a JWT bearer token or a Veryfront API key in the `Authorization`
        header.
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Alternative API key header for `vf_<prefix>_<secret>` tokens.

````

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