# Create a document type Creates one or more document type definitions. Each kind establishes a category of content in your organization and declares which capabilities (traits) documents of that type support. Request: kinds - List of kind definitions to create. Each includes: kind - Unique kind name (lowercase letters and underscores, 3–62 characters). type - Classifies the kind's role: ASSET (binary files and media), REFERENCE (business entities such as brands or campaigns), COLLECTION (groupings of related documents), LAYOUT (presentation structures such as pages or sections), or OTHER. traits - Capabilities this kind supports. Available traits: SUMMARY (name and description), TILE (visual card display), CONTENT (linked binary file), PREVIEW (renderable thumbnail), CHILDREN (parent-child document hierarchy), INSIGHTS (engagement analytics), TIMELINE (start and end dates), VERSION (revision tracking), and SOURCE (originating content channel). description - Optional human-readable description of the kind. schema - Optional inline metadata schema to attach at creation. groupId - Optional ID to associate the new kinds with a platform-defined template group. Response: kinds - Summary of each created kind, including its assigned ID and configuration. Endpoint: POST /api/v1/kind/create-kind Version: 3.0 Security: bearerAuth ## Request fields (application/json): - `kinds` (array) - `kinds.kind` (string) Rule data fields - `kinds.type` (integer) Enum: 0, 1, 2, 3, 4 - `kinds.traits` (array) - `kinds.traits.subType` (integer) Enum: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 - `kinds.traits.fetches` (string) Rule data fields - `kinds.traits.source` (string) Rule data fields - `kinds.description` (string) Rule data fields - `kinds.schema` (object) - `kinds.schema.fields` (array) - `kinds.schema.fields.key` (string) Rule data fields - `kinds.schema.fields.field` (object) - `kinds.schema.fields.field.name` (string) Rule data fields - `kinds.schema.fields.field.integer` (any) - `kinds.schema.fields.field.number` (any) - `kinds.schema.fields.field.string` (any) - `kinds.schema.fields.field.bool` (any) - `kinds.schema.fields.field.array` (any) - `kinds.schema.fields.field.date` (any) - `kinds.schema.fields.field.object` (object) - `kinds.schema.fields.field.computed` (object) - `kinds.schema.fields.field.computed.on` (string) Rule data fields - `kinds.schema.fields.field.link` (object) - `kinds.schema.fields.field.link.destKind` (string) Rule data fields - `kinds.schema.fields.field.link.cardinality` (integer) Enum: 0, 1, 2, 3, 4 - `kinds.schema.fields.field.link.attributes` (array) - `kinds.schema.fields.field.link.attributes.value` (string) Rule data fields - `kinds.schema.fields.field.link.linkTypeId` (string) Rule data fields - `kinds.schema.fields.field.ref` (object) - `kinds.schema.fields.field.ref.schemaId` (string) Rule data fields - `kinds.schema.required` (array) - `groupId` (string) Rule data fields ## Response 200 fields (application/json): - `kinds` (array) - `kinds.kind` (string) Rule data fields - `kinds.type` (integer) Enum: 0, 1, 2, 3, 4 - `kinds.schemaId` (string) Rule data fields - `kinds.description` (string) Rule data fields - `kinds.createdDt` (object) - `kinds.createdDt.seconds` (integer) - `kinds.createdDt.nanos` (integer) - `kinds.updatedDt` (object) ## Response 400 fields (application/json): - `message` (string) ## Response 401 fields (application/json): - `message` (string) ## Response 403 fields (application/json): - `message` (string) ## Response 404 fields (application/json): - `message` (string) ## Response 409 fields (application/json): - `message` (string) ## Response 429 fields (application/json): - `message` (string) ## Response 499 fields (application/json): - `message` (string) ## Response 500 fields (application/json): - `message` (string) ## Response 501 fields (application/json): - `message` (string) ## Response 503 fields (application/json): - `message` (string) ## Response 504 fields (application/json): - `message` (string)