---
title: "Create a new catalog bundle"
method: POST
path: "/catalog/bundles"
tags: ["Bundles"]
---

# Create a new catalog bundle

`POST /catalog/bundles`

Uploads a .tar.gz archive and creates a new bundle. id, type, and version are read from metadata.yaml inside the archive.

## Response `201`

Created

- GithubComProjectAiServicesAiServicesInternalPkgCatalogApiserverServicesBundleBundleResponse
  - `catalog_id` string
  - `catalog_type` string
  - `created_at` string
  - `created_by` string
  - `id` string
  - `name` string
  - `size_bytes` integer
  - `status` string
  - `updated_at` string
  - `version` string

## Other responses

- `400` — Missing file, wrong content-type, exceeds size limit, or metadata.yaml malformed
- `401` — Unauthorized
- `403` — Forbidden — admin role required
- `409` — Conflict — bundle with same catalog_id already exists
- `422` — Unprocessable Entity — validation failed

## Changes

- **2026-08-19** `f6f3add5afaf` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/ibm/apis/ai-services-catalog-api/changes/catalog/bundles/post.md)

---

[API](https://skmtc.dev/ibm/apis/ai-services-catalog-api.md) · [All operations](https://skmtc.dev/ibm/apis/ai-services-catalog-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ibm/ai-services-catalog-api/revisions/d0ce82043e56/schema)
