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

# How do I version and publish reusable Data API definitions?

> Create reusable data definitions, preserve immutable versions, and publish explicit versions for queries, schedules and integrations.

A Data resource has a stable identity and a history of definition versions. Referencing an explicit version makes an integration reproducible: a later draft does not silently replace the definition your workflow selected.

## Choose the resource

The definition endpoints support custom fields, blends, models, table groups, imported datasets, and client bindings. Queries, schedules, transfers, and destinations have dedicated endpoints and schemas.

| Definition collection | Use it for                                                |
| --------------------- | --------------------------------------------------------- |
| `custom-fields`       | Reusable calculated field definitions.                    |
| `blends`              | Definitions that combine selected data inputs.            |
| `models`              | Versioned data-model definitions.                         |
| `table-groups`        | Related data tables grouped for reuse.                    |
| `imported-datasets`   | Imported dataset definitions.                             |
| `client-bindings`     | Bindings between data and a supported client destination. |

Here, a model is a data definition. It is separate from the AI platforms used to collect visibility answers.

## Create and publish

Create a resource with its name, definition, optional description, visibility, and publication choice. A service account must create resources with `visibility: "workspace"`. Use the definition schema for the selected collection; changing `resourceType` does not make another collection's definition valid.

A successful command returns the resource ID, version ID, version number, version status, and canonical hash. Keep those values with your integration configuration.

Create later drafts through the resource's versions endpoint. Publish the selected version explicitly when it is ready to become the current definition. Publishing a definition and running an operation are separate actions.

## Update integrations deliberately

Check field references and downstream query, schedule, destination, and client requirements before switching versions. Use the API's validation operation to identify definition problems, and keep failed validation distinct from execution success.

See [safe writes](/docs/developers/safe-writes), [Data operations](/docs/developers/data-operations), and the [definition reference](/docs/api-reference/data-definitions).
