---
title: "Create Catalog Public"
method: POST
path: "/public/catalogs"
tags: ["Catalogs"]
---

# Create Catalog Public

`POST /public/catalogs`

## Request

- Base URL: `https://catalogapi.rastro.ai/api`
- URL: `https://catalogapi.rastro.ai/api/public/catalogs`
- Auth: HTTP bearer

Create a new catalog (API key or user token).

## Headers

- `X-Organization-Id` string, nullable

## Request body

- PublicCreateCatalogRequest: Request to create a new catalog
  - `name` string, required: Catalog name
  - `description` string, nullable: Optional catalog description
  - `unique_id_field` string, required: Legacy compatibility field required by the public create request. Include the intended business key, such as sku, in schema and item data; this request field is not a separate runtime selector.
  - `product_id_field` string, nullable: Field name to use as product identifier
  - `auto_evolve_schema` boolean: Allow automatic schema evolution
  - `strict_mode` boolean: Reject unknown fields
  - `product_enabled` boolean: Whether this catalog supports product variants
  - `schema_definition` object, required: Initial JSON Schema for the catalog (from preview), including properties and required
  - `validation_rules` object, nullable: Catalog-level validation rules to copy or override
  - `catalog_md` string, nullable: Markdown catalog context to copy or override
  - `master_catalog_id` string, nullable: Explicit master catalog to inherit defaults from
  - `use_master_catalog_defaults` boolean: Whether to inherit defaults from the org's default master catalog

## Response `200`

Successful Response

- PublicCatalogResponse: Response model for catalog information
  - `id` string, required
  - `organization_id` string, required
  - `name` string, required
  - `description` string, nullable
  - `current_schema_version` string, required
  - `unique_id_field` string, required
  - `product_id_field` string, nullable
  - `auto_evolve_schema` boolean, required
  - `strict_mode` boolean, required
  - `product_enabled` boolean, required
  - `item_count` integer, required
  - `created_by_user_id` string, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, nullable
  - `schema` CatalogSchemaResponse: Response model for catalog schema
    - `id` string, required
    - `catalog_id` string, required
    - `version` string, required
    - `schema_definition` object, required
    - `backward_compatible` boolean, required
    - `migration_rules` object, nullable
    - `created_by` string, required
    - `change_reason` string, required
    - `created_at` string, date-time, required
    - `last_edited_by_workflow` string, nullable
    - `last_edited_at` string, date-time, nullable
    - `fields_workflow_info` FieldWorkflowInfo[]
      - `field_name` string, required
      - `field_type` string, required
      - `description` string, nullable
      - `required` boolean
      - `field_category` string
      - `scope` string
      - `unit` string, nullable
      - `sample_values` string[], nullable
      - `added_by_workflow` string, nullable
      - `added_by_node` string, nullable
      - `added_in_version` string, nullable
      - `created_at` string, date-time, nullable
      - `last_edited_by_workflow` string, nullable
      - `last_edited_by_node` string, nullable
      - `last_edited_at` string, date-time, nullable
      - `last_edited_in_version` string, nullable
      - `validation_rules` object, nullable
    - `total_fields` integer
    - `input_fields_count` integer
    - `generated_fields_count` integer

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/rastro-ai/apis/rastro-public-api.md) - [All operations](https://skmtc.dev/rastro-ai/apis/rastro-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rastro-ai/apis/rastro-public-api/revisions/57c8ed4854bb?raw)
