---
title: "Validate content"
method: GET
path: "/v1/models/{modelId}/content-validator"
tags: ["Content validator"]
---

# Validate content

`GET /v1/models/{modelId}/content-validator`

Validate all content against the model and return documents with queries and any validation issues.

This endpoint scans all documents associated with the model and identifies any fields, views, or other model elements referenced in queries that are no longer valid.

You can optionally scope validation to only content that references a specific model element (view, field, or topic) using the `find` and `find_type` parameters. This is useful when you only need to validate content using a specific element, avoiding the overhead of validating all documents.

## Path parameters

- `modelId` string, uuid, required

## Query parameters

- `branch_id` string, uuid
- `userId` string, uuid
- `include_personal_folders` boolean
- `find` string
- `find_type` 'VIEW' | 'FIELD' | 'TOPIC'

## Response `200`

Content validation results

- object
  - `model_id` string, uuid — The ID of the model that was validated.
  - `branch` object, nullable — Branch information if a branch was specified, null otherwise.
    - `id` string, uuid — The branch ID.
    - `name` string — The branch name.
  - `content` object[] — List of documents with their validation results.
    - `document_id` string — The document ID.
    - `identifier` string — The document identifier (slug).
    - `name` string — The document name.
    - `type` string — The document type (e.g., "Published").
    - `updated_at` string, date-time — When the document was last updated.
    - `folder` object, nullable — Folder information if the document is in a folder.
      - `name` string — The folder name.
      - `path` string — The full folder path.
    - `owner` object — Information about the document owner.
      - `email` string, email — The owner's email address.
      - `name` string — The owner's display name.
    - `require_pull_request_to_publish` boolean — Whether the document requires a pull request to publish changes.
    - `queries_and_issues` object[] — List of queries and their validation issues.
      - `query_name` string — The name of the query.
      - `query_presentation_id` string — The query presentation ID.
      - `query_id_map_key` string — The query ID map key.
      - `issues` string[] — List of validation issue messages for this query.
    - `dashboard_filter_issues` string[] — List of validation issues for dashboard filters.

## Other responses

- `400` — Bad Request Possible error messages: - `modelId: Invalid UUID` - `Both 'find' and 'find_type' parameters must be provided together` - `When find_type is FIELD, the find parameter must be scoped by view name (e.g., view_name.field_name)`
- `403` — Forbidden Possible error messages: - `User-scoped API keys cannot act on behalf of other users`
- `404` — Not Found Possible error messages: - `Shared model with id <modelId> does not exist`
- `405` — Method Not Allowed - Invalid HTTP method for this endpoint
- `429` — Too Many Requests - Rate limit exceeded (60 requests/minute)

---

[API](https://skmtc.net/omni/apis/omni-api.md) · [All operations](https://skmtc.net/omni/apis/omni-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/omni/omni-api/revisions/6b02f7349d0e/schema)
