---
title: "Write a file into a briq (base64, max 1 MB)"
method: POST
path: "/v1/briqs/{id}/files"
tags: ["briqs"]
---

# Write a file into a briq (base64, max 1 MB)

`POST /v1/briqs/{id}/files`

## Request

- Base URL: `https://api.briq.cloud`
- URL: `https://api.briq.cloud/v1/briqs/{id}/files`
- Auth: HTTP bearer

Creates parent directories. Writing one of the briq's boot files answers with a `warning`: the spec writes it again at the next start.

## Path parameters

- `id` string, required

## Request body

- object
  - `path` string, required
  - `contentBase64` string, required

## Response `200`

ok

- object
  - `path` string, required
  - `bytes` number, required
  - `sha256` string, required: SHA-256 of the bytes written, hex
  - `verified` boolean, required: True when the briq computed the same SHA-256 from the file on its disk; false when its image has no sha256sum to check with
  - `warning` string: Set when the path is a boot file: the spec writes it again at the next start

## Other responses

- `400`: validation
- `401`: unauthorized
- `402`: policy_violation or quota_exceeded (the key's policy), or payment_required (no credits: retrying cannot help)
- `403`: forbidden, or plan_limit (the team's plan does not allow it)
- `404`: not found
- `409`: invalid_state: not possible in the briq's current state; the message says why
- `413`: validation: the body, the command or its output is too large
- `429`: rate limited: retry after the `retry-after` header
- `502`: provider_error: the infrastructure refused the change
- `503`: provider_error: the infrastructure did not answer; retry in a moment

---

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