---
title: "Create a catalog"
method: PUT
path: "/catalogs"
tags: ["Catalogs"]
---

# Create a catalog

`PUT /catalogs`

Create a new catalog.

## Query parameters

- `name` string
- `path` string
- `type` 'local' | 'beets' | 'remote' | 'subsonic' | 'seafile' | 'beetsremote'
- `media_type` string
- `file_pattern` string
- `folder_pattern` string
- `username` string
- `password` string

## Request body

- CatalogCreateRequest
  - `name` string, required
  - `path` string, required
  - `type` 'local' | 'beets' | 'remote' | 'subsonic' | 'seafile' | 'beetsremote'
  - `media_type` string
  - `file_pattern` string
  - `folder_pattern` string
  - `username` string
  - `password` string — Deprecated: for privacy, send this in a form or JSON request body instead of the query string (query values land in server/proxy logs and browser history). Query-string support is retained for backward compatibility.

## Response `200`

Catalog object

- CatalogObject
  - `id` string, required
  - `name` string, nullable, required
  - `type` string, nullable, required
  - `gather_types` string, nullable, required
  - `enabled` boolean, required
  - `last_add` integer, required
  - `last_clean` integer, nullable, required
  - `last_update` integer, required
  - `path` string, required
  - `rename_pattern` string, nullable, required
  - `sort_pattern` string, nullable, required

## Other responses

- `400` — HTTP 400 Bad Request (errors 4705, 4710).
- `401` — HTTP 401 Unauthorized (error 4701).
- `403` — HTTP 403 Forbidden (errors 4700, 4703, 4742).
- `500` — HTTP 500 Internal Server Error (error 4702).

---

[API](https://skmtc.net/ampache/apis/ampache-rest-api.md) · [All operations](https://skmtc.net/ampache/apis/ampache-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ampache/ampache-rest-api/revisions/535feee32afb/schema)
