---
title: "Install a Pack"
method: POST
path: "/packs"
tags: ["packs"]
---

# Install a Pack

`POST /packs`

Install a Pack.<br><br>To install an uploaded Pack, provide the <code>source</code> value from the <code>PUT /packs</code> response as the <code>source</code> parameter in the request body.<br><br>To install a Pack by importing from a URL, provide the direct URL location of the <code>.crbl</code> file for the Pack as the <code>source</code> parameter in the request body.<br><br>To install a Pack by importing from a Git repository, provide <code>git+<repo-url></code> as the <code>source</code> parameter in the request body.<br><br>If you do not include the <code>source</code> parameter in the request body, an empty Pack is created.

## Request body

- union
  - object
    - `id` string, required
    - `spec` string
    - `version` string
    - `minLogStreamVersion` string
    - `displayName` string
    - `author` string
    - `description` string
    - `source` string — The source of the pack. If not present, an empty pack will be created
    - `tags` TagsTypePackInstallInfo
      - `dataType` string[]
      - `domain` string[]
      - `streamtags` string[]
      - `technology` string[]
    - `allowCustomFunctions` boolean
    - `force` boolean
  - object
    - `id` string
    - `spec` string
    - `version` string
    - `minLogStreamVersion` string
    - `displayName` string
    - `author` string
    - `description` string
    - `source` string, required — The source of the pack. If not present, an empty pack will be created
    - `tags` TagsTypePackInstallInfo
      - `dataType` string[]
      - `domain` string[]
      - `streamtags` string[]
      - `technology` string[]
    - `allowCustomFunctions` boolean
    - `force` boolean

## Response `200`

a list of PackInstallInfo objects

- CountedPackInstallInfo
  - `count` integer — number of items present in the items array
  - `items` PackInstallInfo[]
    - `author` string
    - `collectors` number
    - `dependencies` object
    - `description` string
    - `displayName` string
    - `exports` string[]
    - `id` string, required
    - `inputs` number
    - `isDisabled` boolean
    - `minLogStreamVersion` string
    - `outputs` number
    - `settings` object
    - `source` string, required
    - `spec` string
    - `tags` TagsTypePackInstallInfo
      - `dataType` string[]
      - `domain` string[]
      - `streamtags` string[]
      - `technology` string[]
    - `version` string
    - `warnings` string[]

## Other responses

- `401` — Unauthorized
- `500` — Unexpected error

## Changes

- **2026-03-06** `11df16b26c1d` — 1 info
  - added the optional property `items/items/collectors` to the response with the `200` status
- **2025-11-14** `72b542d3fe49` — 2 breaking, 1 info
  - the response property `items/items/tags/dataType` became optional for the status `200`
  - the response property `items/items/tags/technology` became optional for the status `200`
  - added the optional property `items/items/dependencies` to the response with the `200` status
- **2025-09-03** `d9defa6e35ec` — 1 breaking
  - the response property `items/items/warnings` became optional for the status `200`
- **2025-09-03** `9c006bed7bb7` — 1 breaking
  - the `items/items/warnings` response's property type/format changed from ``/`` to `array`/`` for status `200`
- **2025-08-26** `72f306103a82` — 2 breaking
  - the response property `items/items/tags/domain` became optional for the status `200`
  - the response property `items/items/tags/streamtags` became optional for the status `200`

[Change history](https://skmtc.dev/criblio/apis/cribl-api-reference/changes/packs/post.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/11df16b26c1d/schema)
