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

# Connect GitHub for CI

> Get the link that installs the boat CI GitHub App on an organization or account.



## OpenAPI

````yaml openapi/boat-v1.yaml POST /ci/connect
openapi: 3.1.0
info:
  title: Boat Public API v1
  version: 1.0.0
  description: >
    Public JSON API for creating, operating, prompting, observing, and exposing
    sandboxes from backend services, CI jobs, hosted workers, and Boat
    automation products.


    The v1 reference intentionally documents the developer integration surface
    only. Dashboard billing actions are not part of v1.
servers:
  - url: https://boat.dev/api/v1
security:
  - BoatBearerAuth: []
tags:
  - name: Boat
    description: >-
      Unified Boat account, setup, lifecycle, prompting, event history, desktop
      access, and SSH operations.
paths:
  /ci/connect:
    post:
      tags:
        - Boat
      summary: Connect GitHub for CI
      description: >-
        Returns the GitHub page that installs the boat CI app on an organization
        or account. When the person who opens it installs the app, its `runs-on
        boat` jobs start running on sandboxes billed to `org` (or the wallet in
        scope). Boat links the installation only after GitHub confirms that this
        person can manage it. Needs an API key with `account.admin`.
      operationId: connectCiGithub
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CiConnectRequest'
      responses:
        '200':
          description: The install link.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CiConnectResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    CiConnectRequest:
      type: object
      properties:
        org:
          type: string
          description: >-
            The organization whose wallet pays for the jobs. Omit for the wallet
            in scope.
    CiConnectResponse:
      allOf:
        - $ref: '#/components/schemas/SuccessBase'
        - type: object
          required:
            - installUrl
          properties:
            type:
              type: string
              const: ci.connect
            installUrl:
              type: string
              description: >-
                Open it in a browser to install the boat CI GitHub App. Valid 30
                minutes.
    SuccessBase:
      type: object
      required:
        - ok
        - type
      properties:
        ok:
          type: boolean
          examples:
            - true
        type:
          type: string
          description: Stable success envelope discriminator added by v1.
    ErrorEnvelope:
      type: object
      required:
        - ok
        - type
        - status
        - code
        - message
        - error
        - requestId
      properties:
        ok:
          type: boolean
          examples:
            - false
        type:
          type: string
          examples:
            - sandbox.error
        status:
          type: integer
          examples:
            - 409
        code:
          type: string
          examples:
            - provider_not_configured
        message:
          type: string
          examples:
            - Prompting is locked until Codex is configured on the Agents page.
        requestId:
          type: string
          examples:
            - req_01HX...
        error:
          type: object
          required:
            - code
            - message
            - status
          properties:
            code:
              type: string
            message:
              type: string
            status:
              type: integer
            details:
              type: object
              additionalProperties: true
  responses:
    Unauthorized:
      description: Missing or invalid bearer token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          examples:
            unauthorized:
              value:
                ok: false
                type: sandbox.error
                status: 401
                code: unauthorized
                message: Unauthorized
                error:
                  code: unauthorized
                  message: Unauthorized
                  status: 401
                requestId: req_01HX...
  securitySchemes:
    BoatBearerAuth:
      type: http
      scheme: bearer
      bearerFormat: sandbox_api_key
      description: >-
        Boat bearer token in the form `boat_...`. Service API keys authenticate
        sandbox operations.

````

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