---
title: "Select repository for Boxes"
method: POST
path: "/repos"
tags: ["Box"]
---

# Select repository for Boxes

`POST /repos`

Idempotently selects one repository for the Box environment. Use `databaseId` from `GET /repos` as `repositoryId`; selecting an already-selected repository updates its `baseBranch`.

## Request body

- RepoSelectionRequest — Idempotently selects a repository for future Boxes. If the repository is already selected, the API updates its base branch instead of returning a conflict.
  - `repositoryId` string, required — Internal repository `databaseId` returned by `GET /repos`.
  - `baseBranch` string

## Response `200`

Updated repository selection.

- RepoSelectionResponse
  - `ok` boolean, required
  - `type` string, required — Stable success envelope discriminator added by v1.
  - `success` boolean, required
  - `environmentId` string, required
  - `selectedRepositories` SelectedRepository[], required
    - `id` integer — GitHub repository id.
    - `databaseId` string — Internal repository id used when selecting repositories.
    - `name` string
    - `fullName` string
    - `private` boolean
    - `permissions` string
    - `pushedAt` string, date-time, nullable
    - `baseBranch` string
    - `setupRoutineId` string, nullable
    - `setupScript` string
    - `setupBlocking` boolean
    - `preCommitHooks` object[]
      - `id` string
      - `script` string
      - `blocking` boolean

## Other responses

- `400` — Invalid request body or parameters.
- `401` — Missing or invalid bearer token.
- `409` — Request conflicts with current account or box state.

---

[API](https://skmtc.dev/ascii/apis/box-public-api-v1.md) · [All operations](https://skmtc.dev/ascii/apis/box-public-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ascii/box-public-api-v1/revisions/82d576f82046/schema)
