---
title: "Upload a Pack file"
method: PUT
path: "/packs"
tags: ["packs"]
---

# Upload a Pack file

`PUT /packs`

Upload a Pack file. Returns the <code>source</code> ID needed to install the Pack with <code>POST /packs</code>, which you must call separately.

## Query parameters

- `filename` string, required

## Response `200`

Pack file uploaded successfully.

- UploadPackResponse
  - `source` string, required — Unique staging source identifier for the uploaded Pack file. Pass this value as the <code>source</code> parameter in a subsequent <code>POST /packs</code> request to install the Pack.

## Other responses

- `401` — Authentication failed (missing or invalid credentials or Bearer token).
- `500` — Unexpected server error.

## Changes

- **2026-08-14** `f24e21d4ad84` — 1 breaking
  - the request body contentMediaType changed from `` to `application/octet-stream`
- **2026-07-21** `e9bef570d106` — 4 info
  - added the media type `application/json` for the response with the status `401`
  - added the optional property `details` to the response with the `500` status
  - the response property `message` became required for the status `500`
  - added the required property `status` to the response with the `500` status
- **2025-11-14** `72b542d3fe49` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/criblio/apis/cribl-api-reference/changes/packs/put.md)

---

[API](https://skmtc.dev/criblio/apis/cribl-api-reference.md) · [All operations](https://skmtc.dev/criblio/apis/cribl-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/criblio/cribl-api-reference/revisions/56cb25079271/schema)
