---
title: "Create a component"
method: POST
path: "/v1/design_studio/components"
tags: ["Design Studio"]
---

# Create a component

`POST /v1/design_studio/components`

Creates a custom component.

## Request body

- object
  - `name` string, required — Display name of the component. You see this on your Design Studio dashboard. This may be different from the component tag name.
  - `tag` string, required — The component tag name, used to reference your component in an email. [Learn what characters you can use](/journeys/design-studio/reusable/components/code-custom-component/#component-tag-name-validation).
  - `parent_folder_id` string, uuid, nullable — UUID of the parent folder. Omit or pass `null` to create in the root directory.
  - `content` string, required — HTML content

## Response `200`

Component created

- object
  - `component` Component
    - `id` string, uuid — ID of the component
    - `name` string — Display name of the component. You see this on your Design Studio dashboard. This may be different from the component tag name.
    - `tag` string — The component tag name, used to reference your component in an email.
    - `parent_folder_id` string, uuid, nullable — ID of the parent folder, or `null` if the component is in your root directory.
    - `created` integer — Unix timestamp of when the component was created.
    - `updated` integer — Unix timestamp of the last update to the component.
    - `content` string — HTML content

## Other responses

- `400` — Bad request. Possible reasons: - Missing or invalid name - Missing or invalid tag - parent_folder_id is an empty string - Unknown JSON field in request body
- `401` — Unauthorized - missing or invalid API key
- `404` — Resource not found
- `409` — Conflict - linked resource or other constraint violation

## Changes

- **2026-09-02** `5da2740beeb5` — 4 breaking
  - the `errors/items/status` response's property type changed from `integer` to `string` for status `400`
  - the `errors/items/status` response's property type changed from `integer` to `string` for status `401`
  - the `errors/items/status` response's property type changed from `integer` to `string` for status `404`
  - the `errors/items/status` response's property type changed from `integer` to `string` for status `409`

[Change history](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/changes/v1/design_studio/components/post.md)

---

[API](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference.md) · [All operations](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/customer/customer-io-journeys-api-reference/revisions/00b93971a49f/schema)
