# Create a partner-managed catalog (G3-6) **POST /v1/admin/orgs/{org_id}/catalogs** ## Servers - http://api.example.com: http://api.example.com () ## Authentication methods - Http bearer ## Parameters ### Path parameters - **org_id** (string) ### Body: application/json (object) - **slug** (string) - **name** (string) - **description** (string | null) ## Responses ### 201 Successful Response #### Body: application/json (object) - **id** (string) - **slug** (string) - **name** (string) - **description** (string | null) - **org_id** (string | null) - **share_mode** (string) Visibility / ownership semantics for a catalog row. Mirrors the ``catalog_share_mode`` Postgres enum created in the ``d5e8b1f7a3c2`` migration. * ``private`` — owned by ``catalogs.org_id``; only that org's partner apps can bind to it and only that org can mutate it. * ``public_demo`` — readable by every org (used for the seeded ``thankly-demo`` catalog and for legacy seed-script catalogs that pre-date the ownership model). Writes are rejected by the admin product-upsert and facet endpoints. - **product_count** (integer) - **created_at** (string(date-time)) - **updated_at** (string(date-time)) ### 422 Validation Error #### Body: application/json (object) - **detail** (array[object]) [Powered by Bump.sh](https://bump.sh)