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

# Update Application AI Configuration

> Patch this application's AI lane overrides and answer with the freshly resolved configuration. Lanes the body does not mention are left untouched. A lane sent with override false is removed from the application's override so it follows the organisation again; a lane sent with override true stores whichever of enabled and settings the body carries. Overrides are stored on the ai-gateway's per-repository binding profile, the same rows that gate the webhook events. A browser session twin is mounted at the same path without the /api/v1 prefix (cookie authentication plus the X-Ankra-CSRF header).



## OpenAPI

````yaml https://platform.ankra.app/openapi.json put /api/v1/org/applications/{application_id}/ai-config
openapi: 3.1.0
info:
  title: FastAPI
  version: 0.1.0
servers:
  - url: https://platform.ankra.app
security: []
paths:
  /api/v1/org/applications/{application_id}/ai-config:
    put:
      tags:
        - Applications API
      summary: Update Application AI Configuration
      description: >-
        Patch this application's AI lane overrides and answer with the freshly
        resolved configuration. Lanes the body does not mention are left
        untouched. A lane sent with override false is removed from the
        application's override so it follows the organisation again; a lane sent
        with override true stores whichever of enabled and settings the body
        carries. Overrides are stored on the ai-gateway's per-repository binding
        profile, the same rows that gate the webhook events. A browser session
        twin is mounted at the same path without the /api/v1 prefix (cookie
        authentication plus the X-Ankra-CSRF header).
      operationId: >-
        update_application_ai_config_api_v1_org_applications__application_id__ai_config_put
      parameters:
        - in: path
          name: application_id
          required: true
          schema:
            title: Application Id
            type: string
        - in: header
          name: authorization
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Authorization
        - in: header
          name: x-ankra-organisation-id
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: X-Ankra-Organisation-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateApplicationAIConfigRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationAIConfig'
          description: Successful Response
        '401':
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DemoDetailError'
          description: Not found ("Application not found")
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DemoDetailError'
          description: The application has no connected source-control binding to configure
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
components:
  schemas:
    UpdateApplicationAIConfigRequest:
      description: >-
        Patches a subset of AI lanes; a lane the request does not mention keeps
        whatever it had.
      properties:
        lanes:
          items:
            $ref: '#/components/schemas/ApplicationAILanePatch'
          title: Lanes
          type: array
      required:
        - lanes
      title: UpdateApplicationAIConfigRequest
      type: object
    ApplicationAIConfig:
      description: >-
        The per-application AI configuration read model backing the application
        detail page's AI tab.
      properties:
        binding:
          $ref: '#/components/schemas/ApplicationAIBinding'
        lanes:
          items:
            $ref: '#/components/schemas/ApplicationAILane'
          title: Lanes
          type: array
      required:
        - binding
        - lanes
      title: ApplicationAIConfig
      type: object
    DemoDetailError:
      description: >-
        The FastAPI-style detail envelope the demo routes use for
        400/403/404/409/502 responses.
      properties:
        detail:
          type: string
      required:
        - detail
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    ApplicationAILanePatch:
      description: >-
        One lane's requested change. override false clears this application's
        override and returns the lane to the organisation default.
      properties:
        lane:
          enum:
            - pull_request
            - code
            - actions
            - skills
            - previews
          title: Lane
          type: string
        override:
          title: Override
          type: boolean
        enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Enabled
        settings:
          anyOf:
            - $ref: '#/components/schemas/AILaneSetting'
            - type: 'null'
      required:
        - lane
        - override
      title: ApplicationAILanePatch
      type: object
    ApplicationAIBinding:
      description: >-
        The source-control binding the application's AI lanes are configured on.
        connected is false when there is nothing to configure and reason says
        why.
      properties:
        connected:
          title: Connected
          type: boolean
        provider:
          title: Provider
          type: string
        binding_external_id:
          title: Binding External Id
          type: string
        repo_full_name:
          title: Repo Full Name
          type: string
        reason:
          title: Reason
          type: string
      required:
        - connected
        - provider
        - binding_external_id
        - repo_full_name
        - reason
      title: ApplicationAIBinding
      type: object
    ApplicationAILane:
      description: >-
        One AI lane's state for this application: whether it runs, whether that
        came from the organisation or this application, the settings it runs
        with, and the organisation default behind them.
      properties:
        lane:
          enum:
            - pull_request
            - code
            - actions
            - skills
            - previews
          title: Lane
          type: string
        capability:
          title: Capability
          type: string
        enabled:
          title: Enabled
          type: boolean
        organisation_enabled:
          title: Organisation Enabled
          type: boolean
        source:
          enum:
            - organisation
            - application
          title: Source
          type: string
        effective:
          $ref: '#/components/schemas/ResolvedAILane'
        organisation_default:
          $ref: '#/components/schemas/ResolvedAILane'
        overridden_for_application:
          title: Overridden For Application
          type: boolean
      required:
        - lane
        - capability
        - enabled
        - organisation_enabled
        - source
        - effective
        - organisation_default
        - overridden_for_application
      title: ApplicationAILane
      type: object
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
    AILaneSetting:
      description: >-
        One lane's stored settings. Every field is optional: an absent field
        inherits the organisation default for that lane.
      properties:
        model:
          anyOf:
            - type: string
            - type: 'null'
          title: Model
        autonomy:
          anyOf:
            - enum:
                - comment
                - propose_fix
              type: string
            - type: 'null'
          title: Autonomy
        branches:
          anyOf:
            - items:
                type: string
              title: Branches
              type: array
            - type: 'null'
          title: Branches
        ignore_paths:
          anyOf:
            - items:
                type: string
              title: Ignore Paths
              type: array
            - type: 'null'
          title: Ignore Paths
        skip_drafts:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Skip Drafts
        skill_ids:
          anyOf:
            - items:
                type: string
              title: Skill Ids
              type: array
            - type: 'null'
          title: Skill Ids
        budget:
          anyOf:
            - $ref: '#/components/schemas/AILaneBudget'
            - type: 'null'
      title: AILaneSetting
      type: object
    ResolvedAILane:
      description: >-
        A lane's fully resolved settings, with every inheritance step already
        applied.
      properties:
        model:
          title: Model
          type: string
        autonomy:
          enum:
            - comment
            - propose_fix
          title: Autonomy
          type: string
        branches:
          items:
            type: string
          title: Branches
          type: array
        ignore_paths:
          items:
            type: string
          title: Ignore Paths
          type: array
        skip_drafts:
          title: Skip Drafts
          type: boolean
        skill_ids:
          items:
            type: string
          title: Skill Ids
          type: array
        max_runs_per_day:
          title: Max Runs Per Day
          type: integer
        max_input_characters:
          title: Max Input Characters
          type: integer
      required:
        - model
        - autonomy
        - branches
        - ignore_paths
        - skip_drafts
        - skill_ids
        - max_runs_per_day
        - max_input_characters
      title: ResolvedAILane
      type: object
    AILaneBudget:
      properties:
        max_runs_per_day:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Runs Per Day
        max_input_characters:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Input Characters
      title: AILaneBudget
      type: object

````