> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omni.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Omni API versioning

> Learn about the versioning strategy for and current status of Omni APIs.

Omni APIs are versioned by endpoint.

In this reference, endpoints are grouped by resource type. For example, the **AI APIs** section lists the endpoints related to the Omni Agent and other AI features.

| Resource                    | Description                                                                                                                                                |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Who am I?](#who-am-i)      | Retrieve the authenticated caller's identity, permissions, and API key scope.                                                                              |
| [AI](#ai)                   | Generate queries from natural language, run AI Agent jobs and routines, manage model suggestions and evals, and configure AI credit controls and branding. |
| [API tokens](#api-tokens)   | List, inspect, enable or disable, and delete organization API tokens.                                                                                      |
| [Connections](#connections) | Create and manage database connections, connection environments, dbt configuration, and schema refresh schedules.                                          |
| [Content](#content)         | List documents and folders, and export or import dashboards between Omni instances.                                                                        |
| [Dashboards](#dashboards)   | Download dashboards and tiles, and manage dashboard filters and controls.                                                                                  |
| [Documents](#documents)     | Create, draft, publish, and manage documents, including favorites, labels, and permissions.                                                                |
| [Folders](#folders)         | Create and manage folders and their permissions.                                                                                                           |
| [Labels](#labels)           | Create and manage labels for organizing content.                                                                                                           |
| [Models](#models)           | Create and manage semantic models, including branches, Git configuration, topics, views, and YAML files.                                                   |
| [Queries](#queries)         | Run queries and retrieve their results.                                                                                                                    |
| [Schedules](#schedules)     | Create and manage scheduled deliveries, including their runs and recipients.                                                                               |
| [Uploads](#uploads)         | Upload CSV files as data input tables and manage existing uploads.                                                                                         |
| [Users](#users)             | Provision and manage users via SCIM, including embed and email-only users, model roles, and user attributes.                                               |
| [User groups](#user-groups) | Provision and manage user groups via SCIM and their model roles.                                                                                           |

## Who am I?

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[GET /v1/whoami](/api/who-am-i/get-current-identity-and-permissions)</td><td>Retrieve the authenticated caller's own identity, API key scope, organization role, and resolved per-model permissions. Supports filtering to specific models.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

## AI

### Branding

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[GET /v1/ai/branding](/api/ai/get-ai-agent-branding)</td><td>Return the organization's AI Agent's [branding configuration](/ai/settings/branding), including display name, custom logo URL, and copy for AI Agent landing surfaces.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Conversations

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[GET /v1/ai/conversations](/api/ai/list-ai-conversations)</td><td>List a user's recent AI conversations, ordered by most-recent activity.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/ai/conversations/:conversationId](/api/ai/get-conversation)</td><td>Retrieve a conversation with its full message history — alternating user and assistant turns.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Credit Controls

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[PATCH /v1/ai/credit-controls/users](/api/ai-credit-controls/set-individual-users-ai-credit-limits)</td><td>Set individual users' AI credit limits in bulk.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PATCH /v1/ai/credit-controls](/api/ai-credit-controls/update-ai-credit-controls)</td><td>Update the organization's AI credit controls.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/ai/credit-controls](/api/ai-credit-controls/get-ai-credit-controls)</td><td>Get the organization's current AI credit control settings, usage for the current billing period, and the billing period bounds.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/ai/credit-controls/users](/api/ai-credit-controls/list-individual-users-ai-credit-limits)</td><td>List the organization's active individual user AI credit limits, ordered by `userId` ascending.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Evals

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/ai/eval/prompt-sets](/api/ai-eval/create-an-eval-prompt-set)</td><td>Create a new eval prompt set bound to a shared model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PATCH /v1/ai/eval/prompt-sets/:promptSetId](/api/ai-eval/update-an-eval-prompt-set)</td><td>Update a prompt set's name, description, and/or prompts.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/ai/eval/prompt-sets](/api/ai-eval/list-eval-prompt-sets)</td><td>List eval prompt sets, sorted alphabetically by name.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/ai/eval/prompt-sets/:promptSetId](/api/ai-eval/get-an-eval-prompt-set)</td><td>Get a single prompt set with all of its prompts.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/ai/eval/prompt-sets/:promptSetId](/api/ai-eval/archive-an-eval-prompt-set)</td><td>Archive (soft-delete) a prompt set.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/ai/eval/prompt-sets/:promptSetId/unarchive](/api/ai-eval/restore-an-archived-eval-prompt-set)</td><td>Restore an archived prompt set.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/ai/eval/runs](/api/ai-eval/start-an-eval-run)</td><td>Create and start a new run against an existing prompt set.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/ai/eval/runs](/api/ai-eval/list-eval-runs)</td><td>List runs for a prompt set, newest first, filtered to runs whose model the caller can access.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/ai/eval/runs/:runId](/api/ai-eval/get-an-eval-run)</td><td>Get an eval run with every per-prompt result row, including the underlying agentic job state and any scoring data.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/ai/eval/runs/:runId/cancel](/api/ai-eval/cancel-an-eval-run)</td><td>Cancel an in-progress eval run.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/ai/eval/runs/:runId/unarchive](/api/ai-eval/restore-an-archived-eval-run)</td><td>Restore an archived eval run.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/ai/eval/runs/:runId](/api/ai-eval/archive-an-eval-run)</td><td>Archive (soft-delete) an eval run.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Model Suggestions

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/models/:modelId/suggestions/generate](/api/ai-model-suggestions/generate-model-suggestions)</td><td>Trigger an AI suggestion generation run for the shared model and enqueue the async job.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/models/:modelId/suggestions](/api/ai-model-suggestions/list-ai-generated-suggestions)</td><td>List AI-generated suggestions for a shared model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/models/:modelId/suggestions/:suggestionId/ignore](/api/ai-model-suggestions/dismiss-a-suggestion)</td><td>Dismiss a suggestion, removing it from the active list.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/models/:modelId/suggestions/:suggestionId/restore](/api/ai-model-suggestions/restore-a-dismissed-suggestion)</td><td>Restore a previously dismissed suggestion back to the active list.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/models/:modelId/suggestions/:suggestionId](/api/ai-model-suggestions/delete-a-suggestion)</td><td>Permanently delete a suggestion.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/models/:modelId/suggestions/runs/latest](/api/ai-model-suggestions/get-the-latest-generation-run)</td><td>Retrieve the most recent generation run for the shared model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/models/:modelId/suggestions/runs/:runId](/api/ai-model-suggestions/get-status-for-a-generation-run)</td><td>Retrieve the status of a specific generation run.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/models/:modelId/suggestions/schedule](/api/ai-model-suggestions/enable-model-ai-suggestions-schedule)</td><td>Enable the daily generation schedule for AI model suggestions on a shared model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/models/:modelId/suggestions/schedule](/api/ai-model-suggestions/disable-model-ai-suggestions-schedule)</td><td>Disable the daily generation schedule for AI model suggestions on a shared model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Queries and jobs

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/ai/generate-query](/api/ai/generate-a-query)</td><td>Generate a structured Omni query from natural language using AI.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/ai/pick-topic](/api/ai/pick-topic)</td><td>Analyze a natural language prompt and determine which topic in the model is the best fit for answering the question.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/ai/jobs](/api/ai/create-ai-job)</td><td>Submit a new AI job for asynchronous execution.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/ai/jobs/:jobId](/api/ai/get-ai-job-status)</td><td>Retrieve the current status and details of an AI job, including its state, progress information, and result summary.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/ai/jobs/:jobId/cancel](/api/ai/cancel-ai-job)</td><td>Request cancellation of an AI job.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/ai/jobs/:jobId/result](/api/ai/stream-ai-job-results)</td><td>Retrieve the full result of a completed AI job, including all actions taken by the AI and the final summarized answer.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Routines

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/ai/routines](/api/ai-routines/create-an-ai-routine)</td><td>Create a new routine that will run on the specified schedule.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/ai/routines/:routineId](/api/ai-routines/update-an-ai-routine)</td><td>Update an existing routine.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/ai/routines](/api/ai-routines/list-ai-routines)</td><td>List routines for the calling user, newest first.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/ai/routines/:routineId](/api/ai-routines/get-an-ai-routine)</td><td>Retrieve details for a specific routine by ID, including the status of its most recent completed run.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/ai/routines/:routineId/trigger](/api/ai-routines/trigger-ai-routine)</td><td>Run an existing routine immediately, in addition to its schedule.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/ai/routines/:routineId](/api/ai-routines/delete-an-ai-routine)</td><td>Delete a routine.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

## API tokens

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[PUT /v1/api-keys/:id](/api/api-tokens/enable-or-disable-api-token)</td><td>Disable or re-enable an API token.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/api-keys](/api/api-tokens/list-api-tokens)</td><td>List API token in the organization - including Organization API keys, Personal Access Tokens, and MCP OAuth grants - with optional filtering by type.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/api-keys/:id](/api/api-tokens/retrieve-an-api-token)</td><td>Retrieve a single API token by ID.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/api-keys/:id](/api/api-tokens/delete-api-token)</td><td>Permanently delete an API token.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

## Connections

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/connections](/api/connections/create-connection)</td><td>Create a new database connection.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PATCH /v1/connections/:connectionId](/api/connections/update-connection)</td><td>Update connection properties including credentials.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/connections](/api/connections/list-connections)</td><td>Retrieve a list of database connections with optional filtering and sorting.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/connections/:connectionId](/api/connections/get-connection)</td><td>Fetch a single connection by ID.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/connections/:connectionId](/api/connections/delete-connection)</td><td>Archive a connection (moves it to trash).</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Connection environments

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/connection-environments](/api/connection-environments/create-connection-environments)</td><td>Create a connection environment and associate it with a base connection.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/connection-environments/:connectionEnvironmentId](/api/connection-environments/update-connection-environment)</td><td>Associate user attribute values with a specific connection environment to determine when the environment is used.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/connection-environments/:connectionEnvironmentId](/api/connection-environments/delete-connection-environment)</td><td>Delete a connection environment by ID.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### dbt configuration

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[PUT /v1/connections/:connectionId/dbt](/api/dbt/update-dbt-configuration)</td><td>Update the dbt configuration for the specified connection.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/connections/:connectionId/dbt](/api/dbt/get-dbt-configuration)</td><td>Retrieve the dbt configuration for the specified connection.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/connections/:connectionId/dbt](/api/dbt/delete-dbt-configuration)</td><td>Remove the dbt configuration for the specified connection.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### dbt environments

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/connections/:connectionId/dbt/environments](/api/dbt/create-dbt-environment)</td><td>Create a new dbt environment on the specified connection, enabling programmatic environment management.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/connections/:connectionId/dbt/environments/:environmentId](/api/dbt/update-dbt-environment)</td><td>Update an existing dbt environment on the specified connection.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/connections/:connectionId/dbt/environments](/api/dbt/list-dbt-environments)</td><td>Retrieve a list of all dbt environments configured for the specified connection.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/connections/:connectionId/dbt/environments/:environmentId](/api/dbt/delete-dbt-environment)</td><td>Delete an existing dbt environment from the specified connection.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Schema refreshes

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/connections/:connectionId/schedules](/api/schema-refresh-schedules/create-schema-refresh-schedule)</td><td>Create a new schema refresh schedule for the specified connection.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/connections/:connectionId/schedules/:scheduleId](/api/schema-refresh-schedules/update-schema-refresh-schedule)</td><td>Update the schedule and/or timezone for an existing schema refresh schedule.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/jobs/:jobId/status](/api/jobs/get-job-status)</td><td>Retrieve the current status of an asynchronous job.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/connections/:connectionId/schedules](/api/schema-refresh-schedules/list-schema-refresh-schedules)</td><td>Retrieve all schema refresh schedules configured for the specified connection.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/connections/:connectionId/schedules/:scheduleId](/api/schema-refresh-schedules/get-schema-refresh-schedule)</td><td>Retrieve the details of a connection's specific schema refresh schedule.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/connections/:connectionId/schedules/:scheduleId](/api/schema-refresh-schedules/delete-schema-refresh-schedule)</td><td>Delete a schema refresh schedule.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

## Content

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[GET /v1/content](/api/content/retrieve-content)</td><td>Retrieve a paginated list of documents and folders.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /unstable/documents/:dashboardId/export](/api/content-migration/export-dashboard)</td><td>Export a dashboard for migration between Omni instances.</td><td><Badge color="orange">unstable (beta)</Badge></td></tr>
    <tr><td>[POST /unstable/documents/import](/api/content-migration/import-dashboard)</td><td>Import a dashboard to an Omni instance.</td><td><Badge color="orange">unstable (beta)</Badge></td></tr>
  </tbody>
</table>

## Dashboards

### Downloads

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/dashboards/:dashboardId/download](/api/dashboard-downloads/initiate-download)</td><td>Start an asynchronous download job for a dashboard or single tile with support for multiple output formats.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/dashboards/:dashboardId/download/:jobId/status](/api/dashboard-downloads/check-download-status)</td><td>Retrieve the current status of a dashboard or tile download job. Poll this endpoint to determine when the file is ready.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/dashboards/:dashboardId/download/:jobId](/api/dashboard-downloads/download-file)</td><td>Retrieve the completed dashboard or tile download file.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Filters

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[PATCH /v1/dashboards/:dashboardId/filters](/api/dashboard-filters/update-dashboard-filterscontrols)</td><td>Set or reset values for filters and/or controls on a dashboard.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/dashboards/:dashboardId/filters](/api/dashboard-filters/get-dashboard-filters-and-controls)</td><td>Retrieve the filter and control configuration for a dashboard.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

## Documents

### Draft and publish

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v2/documents](/api/documents-v2/create-document)</td><td>Create a brand-new document and publish it.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[PATCH /v2/documents/:documentId/draft](/api/documents-v2/create-draft-and-patch-document)</td><td>Create a new draft on the published document and apply the patch.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[PATCH /v2/documents/:documentId/draft/:draftId](/api/documents-v2/patch-draft)</td><td>Apply a patch to an existing draft addressed by `draftId`.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[POST /v2/documents/:documentId/draft/publish](/api/documents-v2/publish-draft)</td><td>Publish the document's current main (non-branch) draft, promoting it to the published version.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/documents/:documentId/upgrade](/api/documents/upgrade-dashboard-layout)</td><td>Upgrade a classic document to the new dashboard editor.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v2/documents/:documentId](/api/documents-v2/get-document-state)</td><td>Read the document's published state.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/documents/:documentId/drafts](/api/documents/list-document-drafts)</td><td>List all drafts attached to a published document.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v2/documents/:documentId/draft/:draftId](/api/documents-v2/get-draft-state)</td><td>Read the named draft's state.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/documents/:documentId/draft](/api/documents/archive-draft)</td><td>Archive the current draft of the specified document.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v2/documents/:documentId/draft/:draftId/dashboard](/api/documents/remove-dashboard-from-document)</td><td>Remove the dashboard from an existing draft, leaving a workbook-only document.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/documents/:documentId](/api/documents/delete-document)</td><td>Delete document (moves to Trash).</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Favorites

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[PUT /v1/documents/:documentId/favorite](/api/document-favorites/favorite-document)</td><td>Add a document to a user's favorites.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/documents/:documentId/favorites](/api/document-favorites/list-document-favoriters)</td><td>List users who have favorited a published document, paginated and sorted by `favoritedAt`.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/documents/:documentId/favorite](/api/document-favorites/unfavorite-document)</td><td>Remove a document from a user's favorites.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Labels

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[PATCH /v1/documents/:documentId/labels](/api/document-labels/bulk-update-document-labels)</td><td>Add and/or remove multiple labels from a document in a single atomic operation.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/documents/:documentId/labels/:labelName](/api/document-labels/apply-label-to-document)</td><td>Apply an existing label to a document.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/documents/:documentId/labels/:labelName](/api/document-labels/remove-label-from-document)</td><td>Remove an existing label from a document.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Management

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[GET /v1/documents](/api/documents/list-documents)</td><td>List documents with pagination and filtering.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v2/documents/:documentId/identifier](/api/documents-v2/rename-document-identifier)</td><td>Rename a published document's identifier.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/documents/:documentId/move](/api/documents/move-document)</td><td>Move document to new folder or change scope.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/documents/:documentId/duplicate](/api/documents/duplicate-published-document)</td><td>Duplicate a published document.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/documents/:documentId/transfer-ownership](/api/documents/transfer-document-ownership)</td><td>Transfer ownership of a document to another user in the organization.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Permissions

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/documents/:documentId/permissions](/api/document-permissions/grant-document-permissions)</td><td>Grant document permissions to users or groups.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/documents/:documentId/permissions](/api/document-permissions/update-document-permission-settings)</td><td>Update the permission and [interactivity settings](/share#controlling-document-interactivity) for a document.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PATCH /v1/documents/:documentId/permissions](/api/document-permissions/update-document-permissions)</td><td>Update existing document permissions for users or groups.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/documents/:documentId/access-list](/api/document-permissions/all-users-and-groups-with-document-access)</td><td>List all users and groups with access to a document.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/documents/:documentId/permissions](/api/document-permissions/get-document-permissions)</td><td>Retrieve the document-level ability values, plus the resolved permits for a specific user when `userId` is provided.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/documents/:documentId/permissions](/api/document-permissions/revoke-document-permissions)</td><td>Revoke document permissions for users or user groups.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Deprecated (v1)

<Warning>
  The following endpoints are scheduled to be removed on **July 31, 2026**. Use the [v2 document APIs](#documents) instead.
</Warning>

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/documents](/api/documents/create-document)</td><td>Create a new document.</td><td><Badge color="gray">v1 (deprecated)</Badge></td></tr>
    <tr><td>[POST /v1/documents/:documentId/draft](/api/documents/create-draft)</td><td>Create a [draft](/content/develop/drafts) of the specified document.</td><td><Badge color="gray">v1 (deprecated)</Badge></td></tr>
    <tr><td>[PUT /v1/documents/:documentId](/api/documents/update-dashboard-document)</td><td>Update a document with the specified identifier.</td><td><Badge color="gray">v1 (deprecated)</Badge></td></tr>
    <tr><td>[PATCH /v1/documents/:documentId](/api/documents/update-document)</td><td>Update the name, description, and/or identifier of a document.</td><td><Badge color="gray">v1 (deprecated)</Badge></td></tr>
    <tr><td>[GET /v1/documents/:documentId/queries](/api/documents/get-document-queries)</td><td>Retrieve queries associated with a document by its identifier.</td><td><Badge color="gray">v1 (deprecated)</Badge></td></tr>
    <tr><td>[GET /v1/documents/:documentId](/api/documents/get-dashboard-document)</td><td>Retrieve dashboard document configuration in a format compatible with PUT for round-trip editing.</td><td><Badge color="gray">v1 (deprecated)</Badge></td></tr>
  </tbody>
</table>

## Folders

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[GET /v1/folders](/api/folders/list-folders)</td><td>Retrieve a paginated list of folders within an organization.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/folders](/api/folders/create-folder)</td><td>Create a new folder.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PATCH /v1/folders/:folderId](/api/folders/update-folder)</td><td>Update a folder's name and/or path segment.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/folders/:folderId](/api/folders/delete-folder)</td><td>Delete a folder.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Permissions

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/folders/:folderId/permissions](/api/folder-permissions/grant-folder-permissions)</td><td>Grant folder permissions to users or groups.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PATCH /v1/folders/:folderId/permissions](/api/folder-permissions/update-folder-permissions)</td><td>Update existing folder permissions for users or groups.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/folders/:folderId/permissions](/api/folder-permissions/get-folder-permissions)</td><td>Retrieve folder permissions for a user.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/folders/:folderId/permissions](/api/folder-permissions/revoke-folder-permissions)</td><td>Revoke folder permissions from users or groups.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

## Labels

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/labels](/api/labels/create-label)</td><td>Create a new label in the organization.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/labels/:labelName](/api/labels/update-label)</td><td>Update an existing label.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/labels](/api/labels/list-labels)</td><td>Retrieve all labels in the organization.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/labels/:labelName](/api/labels/get-label)</td><td>Retrieve a single label by name.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/labels/:labelName](/api/labels/delete-label)</td><td>Delete a label from the organization.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

## Models

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/models](/api/models/create-model)</td><td>Create a new model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PATCH /v1/models/:modelId](/api/models/rename-model)</td><td>Rename a model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/models/:modelId/refresh](/api/models/refresh-schema)</td><td>Refresh the schema of the specified model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/models](/api/models/list-models)</td><td>Retrieve a paginated list of models with their metadata.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/models/:modelId/validate](/api/models/validate-model)</td><td>Retrieve validation issues for a model and its branches.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Branches

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/models/:modelId/branch/:branchName/merge](/api/model-branches/merge-a-branch)</td><td>Merge a model branch into the shared model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/models/:modelId/branch/:branchName/dbt](/api/dbt/set-dbt-environment-on-model-branch)</td><td>Set the active dbt environment on a model branch.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/models/:modelId/branch/:branchName](/api/models/delete-branch)</td><td>Delete a branch associated with the specified shared model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Content validator

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[GET /v1/models/:modelId/content-validator](/api/content-validator/validate-content)</td><td>Validate all content against the model and return documents with queries and any validation issues.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/models/:modelId/content-validator](/api/content-validator/find-and-replace-content)</td><td>Perform find/replace operations on content using the specified model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Management

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[GET /v1/models/:modelId/ai-agent-actions](/api/models/get-model-ai-agent-actions)</td><td>Return AI agent actions configured for a model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/models/:modelId/cache\_reset/:cachePolicyName](/api/models/reset-cache)</td><td>Reset the cache for the specified cache policy.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/models/:modelId/schemas](/api/models/list-model-schemas)</td><td>Retrieve a sorted list of all available schema names for the specified model, including physical, virtual, and dynamic schemas.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/models/:modelId/dbt-exposures](/api/dbt/get-dbt-exposures)</td><td>Retrieve dbt exposures for the specified model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Git

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[GET /v1/models/:modelId/git](/api/model-git-configuration/get-git-configuration)</td><td>Retrieve the Git configuration for a shared model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/models/:modelId/git](/api/model-git-configuration/create-git-configuration)</td><td>Create a new Git configuration for a shared model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PATCH /v1/models/:modelId/git](/api/model-git-configuration/update-git-configuration)</td><td>Update the Git configuration for a shared model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/models/:modelId/git](/api/model-git-configuration/delete-git-configuration)</td><td>Remove the Git configuration from a shared model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/models/:modelId/git/sync](/api/model-git-configuration/sync-model-with-git-repository)</td><td>Trigger a sync operation between the model and its configured Git repository.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/models/:modelId/git/commit](/api/model-git-configuration/create-or-update-a-pull-request-for-a-model-branch)</td><td>Push a branch's model contents to Git and create or update a pull request.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/models/:modelId/migrate](/api/models/migrate-a-model)</td><td>Copy a model from one Omni connection to another by reading the source model's YAML at a specific Git ref and writing it to the target model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Topics

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[GET /v1/models/:modelId/topic/:topicName](/api/topics/retrieve-a-topic)</td><td>Retrieve a topic in a model by name.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Views

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[DELETE /v1/models/:modelId/view/:viewName](/api/models/delete-view)</td><td>Delete or ignore a view in a model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### YAML files

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/models/:modelId/yaml](/api/models/create-or-update-yaml-files)</td><td>Create or overwrite a YAML file for a model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/models/:modelId/yaml](/api/models/get-model-yaml)</td><td>Retrieve the YAML representation of a model with optional filtering and mode selection.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/models/:modelId/yaml](/api/models/delete-a-yaml-file)</td><td>Delete a topic or view YAML file from a model.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

## Queries

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/query/run](/api/queries/run-query)</td><td>Run the query specified in the request body.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/query/wait](/api/queries/wait-for-query-results)</td><td>Poll for the results of one or more query jobs.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

## Schedules

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/schedules](/api/schedules/create-schedule)</td><td>Create a scheduled task for the specified dashboard.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/schedules/:scheduleId](/api/schedules/update-schedule)</td><td>Update the specified task. Changes are applied to future runs; in-progress jobs are unaffected.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/schedules/:scheduleId/transfer-ownership](/api/schedules/transfer-schedule-ownership)</td><td>Immediately transfer ownership of a schedule from one user to another user in the same organization.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/schedules](/api/schedules/list-schedules)</td><td>Retrieve a list of scheduled tasks.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/schedules/:scheduleId](/api/schedules/get-schedule)</td><td>Return the details of a single schedule, including its delivery destinations, recurrence configuration, and current status.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/schedules/:scheduleId](/api/schedules/delete-schedule)</td><td>Delete a schedule.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Runs

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/schedules/:scheduleId/trigger](/api/schedules/trigger-schedule)</td><td>Trigger the execution of a schedule on demand.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/schedules/:scheduleId/pause](/api/schedules/pause-schedule)</td><td>Pause a schedule.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/schedules/:scheduleId/resume](/api/schedules/resume-schedule)</td><td>Resume a schedule.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Recipients

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[PUT /v1/schedules/:scheduleId/add-recipients](/api/schedule-recipients/add-schedule-recipients)</td><td>Add one or more recipients to an existing scheduled email task.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[PUT /v1/schedules/:scheduleId/remove-recipients](/api/schedule-recipients/remove-schedule-recipients)</td><td>Remove one or more recipients from an existing scheduled email task.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/users/email-only](/api/schedule-recipients/manage-email-only-user)</td><td>Create or update an [email-only user](/share/deliveries/email).</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[POST /v1/users/email-only/bulk](/api/schedule-recipients/bulk-manage-email-only-users)</td><td>Create or update up to 20 [email-only users](/share/deliveries/email).</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/schedules/:scheduleId/recipients](/api/schedule-recipients/list-schedule-recipients)</td><td>Retrieve the list of recipients for the specified schedule.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

## Uploads

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/uploads](/api/uploads/upload-a-csv-file)</td><td>Upload a CSV file to create a new [data input table](/analyze-explore/data-input-csvs).</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/uploads](/api/uploads/list-uploads)</td><td>List all uploads ([CSV files and spreadsheets](/analyze-explore/data-input-csvs)) in the organization.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[DELETE /v1/uploads/:uploadId](/api/uploads/delete-an-upload)</td><td>Delete a CSV upload by its ID.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

## Users

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /scim/v2/users](/api/users/create-user)</td><td>Create a user.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[PUT /scim/v2/users/:userId](/api/users/replace-user)</td><td>Replace the specified user.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[PATCH /scim/v2/users/:userId](/api/users/update-user)</td><td>Update the specified user by applying a list of [SCIM 2.0 patch operations](https://datatracker.ietf.org/doc/html/rfc7644#section-3.5.2).</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[GET /scim/v2/users/:userId](/api/users/retrieve-user)</td><td>Retrieve a user using their unique ID.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[GET /scim/v2/users](/api/users/list-users)</td><td>Return a list of users, sorted by creation time.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[DELETE /scim/v2/users/:userId](/api/users/delete-user)</td><td>Delete the specified user.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
  </tbody>
</table>

### Email-only users

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[GET /v1/users/email-only](/api/users/list-email-only-users)</td><td>Retrieve email-only users with their user attributes, with support for cursor-based pagination and filtering.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### Embed users

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[GET /scim/v2/embed/users](/api/users/list-embed-users)</td><td>Retrieve a list of embed users, sorted by creation time.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[GET /scim/v2/embed/users/:userId](/api/users/retrieve-embed-user)</td><td>Retrieve an embed user using their unique ID.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[DELETE /scim/v2/embed/users/:userId](/api/users/delete-embed-user)</td><td>Delete the specified embed user.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
  </tbody>
</table>

### Model roles

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/users/:userId/model-roles](/api/user-model-roles/assign-or-update-user-model-role)</td><td>Assign or update a model role for a user.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/users/:userId/model-roles](/api/user-model-roles/retrieve-user-model-roles)</td><td>Retrieve the model role assignments for a user.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

### User attributes

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[GET /v1/user-attributes](/api/user-attributes/list-user-attributes)</td><td>Retrieve all [user attribute](/administration/users/attributes) definitions in the organization, including custom-defined and system-defined attributes.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>

## User groups

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /scim/v2/groups](/api/user-groups/create-user-group)</td><td>Create a [user group](/administration/users/groups).</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[PUT /scim/v2/groups/:userGroupId](/api/user-groups/replace-user-group)</td><td>Replace the specified user group.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[PATCH /scim/v2/groups/:userGroupId](/api/user-groups/update-user-group)</td><td>Update the specified user group by applying a list of [v2 patch operations](https://datatracker.ietf.org/doc/html/rfc7644#section-3.5.2).</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[GET /scim/v2/groups](/api/user-groups/list-user-groups)</td><td>Return a list of user groups, sorted by creation time.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[GET /scim/v2/groups/:userGroupId](/api/user-groups/retrieve-user-group)</td><td>Retrieve a user group using its unique ID.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
    <tr><td>[DELETE /scim/v2/groups/:userGroupId](/api/user-groups/delete-user-group)</td><td>Delete the specified user group.</td><td><Badge color="green">v2 (latest)</Badge></td></tr>
  </tbody>
</table>

### Model roles

<table className="endpoint-table">
  <thead>
    <tr><th>Endpoint</th><th>Description</th><th>Version + Status</th></tr>
  </thead>

  <tbody>
    <tr><td>[POST /v1/user-groups/:userGroupId/model-roles](/api/user-group-model-roles/assign-or-update-user-group-model-role)</td><td>Assign or update a model role for a user group.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
    <tr><td>[GET /v1/user-groups/:userGroupId/model-roles](/api/user-group-model-roles/retrieve-user-group-model-roles)</td><td>Retrieve the model role assignments for a user group.</td><td><Badge color="green">v1 (latest)</Badge></td></tr>
  </tbody>
</table>
