---
title: "Create custom object schema"
method: POST
path: "/crm/custom-object-schemas"
tags: ["Custom Object Schemas"]
---

# Create custom object schema

`POST /crm/custom-object-schemas`

Create custom object schema

## Query parameters

- `raw` boolean

## Headers

- `x-apideck-consumer-id` string, required
- `x-apideck-app-id` string, required
- `x-apideck-service-id` string

## Request body

- CustomObjectSchema
  - `id` string — The unique identifier of the custom object schema
  - `name` string, nullable — The name of the custom object schema
  - `description` string, nullable — The description of the custom object schema
  - `fields` object[] — The fields defined in the schema
    - `id` string
    - `name` string
    - `description` string, nullable
    - `type` 'string' | 'number' | 'integer' | 'boolean' | 'date' | 'datetime' | 'currency' | 'email' | 'phone' | 'reference' | 'select' | 'multiselect'
    - `required` boolean
    - `options` object[], nullable — Options for select and multiselect types
      - `value` string
      - `label` string
    - `default_value` string, nullable — Default value for the field
  - `visible` boolean, nullable — Whether the custom object schema is visible in the UI
  - `active` boolean, nullable — Whether the custom object schema is active
  - `created_by` string, nullable — The ID of the user who created the custom object schema
  - `updated_by` string, nullable — The ID of the user who last updated the custom object schema
  - `updated_at` string, nullable — The timestamp when the custom object schema was last updated
  - `created_at` string, nullable — The timestamp when the custom object schema was created
  - `pass_through` object[] — The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
    - `service_id` string, required — Identifier for the service to which this pass_through should be applied.
    - `operation_id` string — Optional identifier for a workflow operation to which this pass_through should be applied. This is useful for Unify calls that are making more than one downstream request.
    - `extend_object` object — Simple object allowing any properties for direct extension.
    - `extend_paths` object[] — Array of objects for structured data modifications via paths.
      - `path` string, required — JSONPath string specifying where to apply the value.
      - `value` unknown, required

## Response `201`

Custom object schema created

- CreateCustomObjectSchemaResponse
  - `status_code` integer, required — HTTP Response Status Code
  - `status` string, required — HTTP Response Status
  - `service` string, required — Apideck ID of service provider
  - `resource` string, required — Unified API resource name
  - `operation` string, required — Operation performed
  - `data` CustomObjectSchema, required
    - `id` string — The unique identifier of the custom object schema
    - `name` string, nullable — The name of the custom object schema
    - `description` string, nullable — The description of the custom object schema
    - `fields` object[] — The fields defined in the schema
      - `id` string
      - `name` string
      - `description` string, nullable
      - `type` 'string' | 'number' | 'integer' | 'boolean' | 'date' | 'datetime' | 'currency' | 'email' | 'phone' | 'reference' | 'select' | 'multiselect'
      - `required` boolean
      - `options` object[], nullable — Options for select and multiselect types
        - `value` string
        - `label` string
      - `default_value` string, nullable — Default value for the field
    - `visible` boolean, nullable — Whether the custom object schema is visible in the UI
    - `active` boolean, nullable — Whether the custom object schema is active
    - `created_by` string, nullable — The ID of the user who created the custom object schema
    - `updated_by` string, nullable — The ID of the user who last updated the custom object schema
    - `updated_at` string, nullable — The timestamp when the custom object schema was last updated
    - `created_at` string, nullable — The timestamp when the custom object schema was created
    - `pass_through` object[] — The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
      - `service_id` string, required — Identifier for the service to which this pass_through should be applied.
      - `operation_id` string — Optional identifier for a workflow operation to which this pass_through should be applied. This is useful for Unify calls that are making more than one downstream request.
      - `extend_object` object — Simple object allowing any properties for direct extension.
      - `extend_paths` object[] — Array of objects for structured data modifications via paths.
        - `path` string, required — JSONPath string specifying where to apply the value.
        - `value` unknown, required
  - `_raw` Raw, nullable — Raw response from the integration when raw=true query param is provided

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `402` — Payment Required
- `404` — The specified resource was not found
- `422` — Unprocessable
- `default` — Unexpected error

---

[API](https://skmtc.net/apideck-libraries/apis/crm-api.md) · [All operations](https://skmtc.net/apideck-libraries/apis/crm-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/apideck-libraries/crm-api/versions/171537af6722/schema)
