---
title: "Create component"
method: POST
path: "/components"
tags: ["components"]
---

# Create component

`POST /components`

## Request body

- CreateComponentRequestBody
  - `ast` object
  - `entity_type` 'billing' | 'entitlement', required
  - `name` string, required

## Response `201`

Created

- object
  - `data` ComponentResponseData, required
    - `ast` object
    - `catalog_id` string, nullable
    - `created_at` string, date-time, required
    - `id` string, required
    - `name` string, required
    - `state` 'draft' | 'live', required
    - `type` 'billing' | 'entitlement', required
    - `updated_at` string, date-time, required
  - `params` object, required — Input parameters

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `500` — Server error

## Changes

> 125 revisions in range; 10 could not be searched.

- **2026-07-16** `fe536614b280` — 1 info
  - added the optional property `data/catalog_id` to the response with the `201` status
- **2026-06-25** `5eb95e8d48e1` — 1 breaking
  - the `ast/additionalProperties/` request property type/format changed from `number`/`` to `number`/`double`

[Change history](https://skmtc.dev/schematichq/apis/schematic-api/changes/components/post.md)

---

[API](https://skmtc.dev/schematichq/apis/schematic-api.md) · [All operations](https://skmtc.dev/schematichq/apis/schematic-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/schematichq/schematic-api/revisions/0b238e148fa1/schema)
