---
title: "validateEntity"
method: POST
path: "/v1/entity/{slug}:validate"
tags: ["Entities"]
---

# validateEntity

`POST /v1/entity/{slug}:validate`

Validates an entity against the schema.

## Path parameters

- `slug` string, required — URL-friendly identifier for the entity schema

## Request body

- Entity
  - `_id` string, uuid
  - `_org` string — Organization Id the entity belongs to
  - `_owners` EntityOwner[]
    - `org_id` string, required
    - `user_id` string
  - `_schema` string — URL-friendly identifier for the entity schema
  - `_title` string, nullable — Title of entity
  - `_tags` string[], nullable
  - `_created_at` string, date-time, nullable
  - `_updated_at` string, date-time, nullable
  - `_deleted_at` string, date-time, nullable
  - `_acl` object — Access control list (ACL) for an entity. Defines sharing access to external orgs or users.
    - `view` string[]
    - `edit` string[]
    - `delete` string[]
  - `_purpose` string[], nullable
  - `_purpose_name` string[], nullable — Automatically computed purpose names from _purpose attribute
  - `_manifest` string[], nullable — Manifest ID used to create/update the entity
  - `_changesets` object, nullable — Pending attribute changesets for attributes configured with external or approval edit mode. The value shape is `Changeset` (`proposed_value`, `created_at`, `edit_mode`, ...) and is what `:apply` / `:dismiss` operate on. Read-only via normal entity PATCH/PUT operations — those handlers strip `_changesets` from request bodies. Use the changeset management endpoints to mutate this field.

## Response `200`

Success

- EntityValidationResultSuccess — Validation result for a successful validation
  - `status` 'success', required
  - `errors` EntityValidationError[], required
    - `code` string, required — Error code identifier
    - `params` object, required — Additional parameters for the error
      - `type` string — The type of the error
    - `path` string[], required — The path to the attribute that failed validation
    - `message` string, required — A human-readable message describing the error

## Other responses

- `422` — Error
- `429` — Too many requests

---

[API](https://skmtc.net/epilot/apis/entity-api.md) · [All operations](https://skmtc.net/epilot/apis/entity-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/epilot/entity-api/versions/8dd3d44e1c4f/schema)
