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

# List integrations

> Retrieve available integrations and their authentication methods.



## OpenAPI

````yaml /openapi.json get /api/integration
openapi: 3.1.0
info:
  title: opencode HttpApi
  version: 0.0.1
  description: Experimental HttpApi surface for selected instance routes.
servers: []
security: []
tags:
  - name: health
  - name: server
  - name: location
  - name: agent
  - name: plugin
    description: Experimental plugin routes.
  - name: session
    description: Experimental session routes.
  - name: session
    description: Experimental message routes.
  - name: model
    description: Experimental model routes.
  - name: generate
    description: Experimental one-shot generation routes.
  - name: provider
    description: Experimental provider routes.
  - name: integration
    description: Integration discovery and authentication routes.
  - name: mcp
    description: MCP server and resource routes.
  - name: credential
  - name: project
    description: Location-scoped project routes.
  - name: form
    description: Session form routes.
  - name: permission
    description: Experimental permission routes.
  - name: filesystem
    description: Experimental location-scoped filesystem routes.
  - name: command
    description: Experimental command routes.
  - name: skill
    description: Experimental skill routes.
  - name: event
    description: Experimental event stream routes.
  - name: pty
    description: Experimental location-scoped PTY routes.
  - name: shell
    description: Experimental location-scoped shell command routes.
  - name: question
    description: Experimental session question routes.
  - name: reference
    description: Location-scoped project references.
  - name: projectCopy
    description: Project copy management routes.
  - name: vcs
    description: Location-scoped version control routes.
  - name: debug
paths:
  /api/integration:
    get:
      tags:
        - integration
      summary: List integrations
      description: Retrieve available integrations and their authentication methods.
      operationId: v2.integration.list
      parameters:
        - name: location
          in: query
          schema:
            anyOf:
              - type: object
                properties:
                  directory:
                    anyOf:
                      - type: string
                      - type: 'null'
                  workspace:
                    anyOf:
                      - type: string
                      - type: 'null'
                additionalProperties: false
              - type: 'null'
          required: false
          style: deepObject
          explode: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  location:
                    $ref: '#/components/schemas/Location.Info'
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Integration.Info'
                required:
                  - location
                  - data
                additionalProperties: false
        '400':
          description: InvalidRequestError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestError'
        '401':
          description: UnauthorizedError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
      security: []
components:
  schemas:
    Location.Info:
      type: object
      properties:
        directory:
          type: string
        workspaceID:
          type: string
          allOf:
            - pattern: ^wrk
        project:
          type: object
          properties:
            id:
              type: string
            directory:
              type: string
          required:
            - id
            - directory
          additionalProperties: false
      required:
        - directory
        - project
      additionalProperties: false
    Integration.Info:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        methods:
          type: array
          items:
            $ref: '#/components/schemas/Integration.Method'
        connections:
          type: array
          items:
            $ref: '#/components/schemas/Connection.Info'
      required:
        - id
        - name
        - methods
        - connections
      additionalProperties: false
    InvalidRequestError:
      type: object
      properties:
        _tag:
          type: string
          enum:
            - InvalidRequestError
        message:
          type: string
        kind:
          anyOf:
            - type: string
            - type: 'null'
        field:
          anyOf:
            - type: string
            - type: 'null'
      required:
        - _tag
        - message
      additionalProperties: false
    UnauthorizedError:
      type: object
      properties:
        _tag:
          type: string
          enum:
            - UnauthorizedError
        message:
          type: string
      required:
        - _tag
        - message
      additionalProperties: false
    Integration.Method:
      anyOf:
        - $ref: '#/components/schemas/Integration.OAuthMethod'
        - $ref: '#/components/schemas/Integration.KeyMethod'
        - $ref: '#/components/schemas/Integration.EnvMethod'
    Connection.Info:
      anyOf:
        - $ref: '#/components/schemas/Connection.CredentialInfo'
        - $ref: '#/components/schemas/Connection.EnvInfo'
    Integration.OAuthMethod:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
            - oauth
        label:
          type: string
        prompts:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/Integration.TextPrompt'
              - $ref: '#/components/schemas/Integration.SelectPrompt'
      required:
        - id
        - type
        - label
      additionalProperties: false
    Integration.KeyMethod:
      type: object
      properties:
        type:
          type: string
          enum:
            - key
        label:
          type: string
      required:
        - type
      additionalProperties: false
    Integration.EnvMethod:
      type: object
      properties:
        type:
          type: string
          enum:
            - env
        names:
          type: array
          items:
            type: string
      required:
        - type
        - names
      additionalProperties: false
    Connection.CredentialInfo:
      type: object
      properties:
        type:
          type: string
          enum:
            - credential
        id:
          type: string
        label:
          type: string
      required:
        - type
        - id
        - label
      additionalProperties: false
    Connection.EnvInfo:
      type: object
      properties:
        type:
          type: string
          enum:
            - env
        name:
          type: string
      required:
        - type
        - name
      additionalProperties: false
    Integration.TextPrompt:
      type: object
      properties:
        type:
          type: string
          enum:
            - text
        key:
          type: string
        message:
          type: string
        placeholder:
          type: string
        when:
          $ref: '#/components/schemas/Integration.When'
      required:
        - type
        - key
        - message
      additionalProperties: false
    Integration.SelectPrompt:
      type: object
      properties:
        type:
          type: string
          enum:
            - select
        key:
          type: string
        message:
          type: string
        options:
          type: array
          items:
            type: object
            properties:
              label:
                type: string
              value:
                type: string
              hint:
                type: string
            required:
              - label
              - value
            additionalProperties: false
        when:
          $ref: '#/components/schemas/Integration.When'
      required:
        - type
        - key
        - message
        - options
      additionalProperties: false
    Integration.When:
      type: object
      properties:
        key:
          type: string
        op:
          type: string
          enum:
            - eq
            - neq
        value:
          type: string
      required:
        - key
        - op
        - value
      additionalProperties: false

````