# Create Custom Component

## OpenAPI Specification

```yaml
openapi: 3.0.1
info:
  title: ''
  description: ''
  version: 1.0.0
paths:
  /v1/content/management/components/custom_components:
    post:
      summary: Create Custom Component
      deprecated: false
      description: "Creates [CustomComponent](doc-341712#customcomponent-model).\n\n## Query Parameters\n\n| Key     | Type    | Required? | Default | Description                                                  |\n|---------|---------|-----------|---------|--------------------------------------------------------------|\n| dry_run | boolean | no        | false   | For validation. When true, doesn't persist record on success |\n\n## Body Parameters\n\n| Key              | Description                                                                                                                                                                  |\n|------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| custom_component | [CustomComponent](doc-341712#customcomponent-model) object - except for read-only attributes |\n\n## Specific Validation Errors\n\n| Attribute                   | Error key                 |\n|-----------------------------|---------------------------|\n| custom_component.definition | must_be_valid_json_schema |\n\n## Example\n\n```shell\ncurl -X POST \\\n\"https://api.mpc.placewise.com/v1/content/management/components/custom_components\" \\\n  -H 'content-type: application/json' \\\n  -H 'x-client-authorization: B7t9U9tsoWsGhrv2ouUoSqpM' \\\n  -H 'x-customer: 668' \\\n  -H 'x-user-agent: CURL manual test' \\\n  -d '\n    {\n      \"custom_component\": {\n        \"customer_ids\": [\n          447\n        ],\n        \"type\": \"links_list\",\n\t\t\"name\": \"Links List\",\n        \"schema_definition\": {\n          \"properties\": {\n            \"title\": {\n              \"$ref\": \"#/$defs/$attributes/text\"\n            },\n            \"links\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"type\": \"object\",\n                \"properties\": {\n                  \"text\": {\n                    \"$ref\": \"#/$defs/$attributes/text\"\n                  },\n                  \"color\": {\n                    \"type\": [\n                      \"string\",\n                      \"null\"\n                    ],\n                    \"format\": \"rgb-hex-color\"\n                  }\n                },\n                \"required\": [\n                  \"text\"\n                ]\n              }\n            }\n          },\n          \"required\": [\n            \"header\"\n          ]\n        }\n      }\n    }\n '\n```\n\nWhen successful, returns\ncreated [CustomComponent](doc-341712#customcomponent-model)\n\n```json\n{\n  \"custom_component\": {}\n  // CustomComponent - see 'CustomComponent model'\n}\n```"
      tags:
        - API Reference/Management API/CMS/Pages/Components/Custom Components
      parameters:
        - name: Content-Type
          in: header
          description: '[Details](doc-341635)'
          required: true
          example: application/json
          schema:
            type: string
            default: application/json
            const: application/json
        - name: X-User-Agent
          in: header
          description: Arbitrary identifier of your client. [Details](doc-341635)
          required: true
          example: '{{X_USER_AGENT}}'
          schema:
            type: string
            default: '{{X_USER_AGENT}}'
        - name: X-Product-Name
          in: header
          description: API Product for API context. [Details](doc-341635)
          required: true
          example: '{{PRODUCT_NAME}}'
          schema:
            type: string
            default: '{{PRODUCT_NAME}}'
        - name: X-Loyalty-Club-Slug
          in: header
          description: LoyaltyClub for API context. [Details](doc-342138)
          required: false
          example: '{{LOYALTY_CLUB_SLUG}}'
          schema:
            type: string
            default: '{{LOYALTY_CLUB_SLUG}}'
        - name: X-Customer
          in: header
          description: Customer for API context.  [Details](doc-342139)
          required: false
          example: '{{CUSTOMER_ID}}'
          schema:
            type: string
            default: '{{CUSTOMER_ID}}'
        - name: Authorization
          in: header
          description: '[Member](doc-342129) or [User](doc-342130) Authorization.'
          required: false
          example: Bearer {{_OAUTH_TOKEN}}
          schema:
            type: string
            default: Bearer {{_OAUTH_TOKEN}}
        - name: X-Client-Authorization
          in: header
          description: '[Token](doc-342128) Authorization.'
          example: '{{API_TOKEN}}'
          schema:
            type: string
            default: '{{API_TOKEN}}'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
          x-apidog-name: Success
      security: []
      x-apidog-folder: API Reference/Management API/CMS/Pages/Components/Custom Components
      x-apidog-status: pending
      x-run-in-apidog: https://app.eu.apidog.com/web/project/346351/apis/api-3511183-run
components:
  schemas: {}
  securitySchemes: {}
servers:
  - url: https://api.mpc.dev.placewise.com
    description: Staging
security: []

```