---
title: "Update mutable settings for a plain repo."
method: PATCH
path: "/v1/repos/{repo_id}"
tags: ["repos"]
---

# Update mutable settings for a plain repo.

`PATCH /v1/repos/{repo_id}`

## Request

- Base URL: `https://api.kody.codes`
- URL: `https://api.kody.codes/v1/repos/{repo_id}`
- Auth: HTTP bearer

Update mutable settings for a plain repo. Visibility is a repo setting, not package.json#private. Making a repo public makes default-branch HEAD world-readable and forkable. Making it private 404s public URLs (forks keep their copies) — pass confirm_name matching the repo slug after the owner typed that name.

Org permission: `package:write`.

## Path parameters

- `repo_id` string, required

## Request body

- object
  - `name` string
  - `changes` object, required
    - `visibility` 'public' | 'private', required: Repo visibility. Public means default-branch HEAD is world-readable and forkable. Private is owner-only. Changing to private 404s public URLs; existing forks keep their copies.
  - `confirm_name` string: Required when changes.visibility is private. Must equal the repo slug (URL name). Confirm with the user first: going private 404s public URLs; existing forks keep their copies.

## Response `200`

Success.

- object
  - `ok` true, required
  - `repo_id` string, required
  - `name` string, required
  - `visibility` 'public' | 'private', required

## Other responses

- `400`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `401`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `403`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `404`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `409`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `413`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `429`: Too many requests (edge IP/token limit) or an entitlement / plan-cap limit. Wait at least `Retry-After` seconds before retrying.
- `500`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `503`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `default`: Error envelope `{ "error": { "code", "message", "details"? } }`.

---

[API](https://skmtc.dev/kody/apis/kody-api.md) · [All operations](https://skmtc.dev/kody/apis/kody-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kody/apis/kody-api/revisions/a020ecedb82b?raw)
