HTTP API Reference

Applications API Reference

Reference documentation for the applications & user-applications HTTP endpoints.

The Applications API allows you to manage and deploy applications, such as Studios and SDK apps.

Authentication

All requests must be authenticated.

Base API server URL

Production environment

https://api.sanity.io

Production environment with projectId subdomain

https://{projectId}.api.sanity.io

Variables

  • projectIdstringdefault: ""

    Sanity project ID

Applications

Endpoints for managing applications

List applications for an organization

get/{apiVersion}/applications/

List all org-owned applications for an organization, regardless of deployment state. Supports cursor-based pagination and optional includes for the active deployment summary (activeDeployment), its children (interfaces, workspaces, access) and application config (config.studio, config.mfManifest).

Path parameters

  • apiVersionstringrequired
    vX:vX
    v2025-01-01:v2025-01-01

Query parameters

  • organizationIdstringrequired

    Organization to list applications for

  • Filter by application type

  • includestring

    Comma-separated list of related data to include. Allowed values: interfaces, workspaces, access, config.studio, config.mfManifest, activeDeployment

  • limitdefault: 50

    Maximum number of results per page (1-100, default 50). Pass "none" to disable pagination.

  • cursorstring

    Cursor from a previous response to fetch the next page

Responses

200

Default Response

  • nextCursorrequired
    Show child attributes
    • string
  • dataarrayrequired
    Show child attributes
    items
    • idstringrequired
    • typerequired
      Show child attributes
      • string
        enum:"studio"
    • titlestringrequired
    • iconrequired
      Show child attributes
      • string
    • isSingletonbooleanrequired
    • visibilityrequired
      Show child attributes
      • string
        enum:"default"
    • slugrequired
      Show child attributes
      • string
    • externalUrlrequired
      Show child attributes
      • string
    • organizationIdstringrequired
    • createdAtstring (date-time)required
    • updatedAtstring (date-time)required
    • configobject
      Show child attributes
      • studioobject
        Show child attributes
        • projectIdstringrequired

          Primary project association for the studio

        • Release channel (next, stable, latest) or a pinned semver; null if unset

          Show child attributes
          • string
      • The application’s Module Federation manifest (mf-manifest.json), stored verbatim

    • Show child attributes
      • idstringrequired
      • applicationIdstringrequired
      • sizerequired
        Show child attributes
        • integer
      • versionrequired
        Show child attributes
        • string
      • Show child attributes
        • boolean
      • isActiveDeploymentbooleanrequired
      • deployedByrequired
        Show child attributes
        • string
      • createdAtstring (date-time)required
      • updatedAtstring (date-time)required
      • Show child attributes
        items
        • idstringrequired
        • typerequired
          Show child attributes
          • string
            enum:"app"
        • namestringrequired
        • titlestringrequired
        • versionstringrequired
        • moduleIdstringrequired

          Module federation module ID; resolved from the host mf-manifest at runtime

        • metadatarequired
          Show child attributes
      • Show child attributes
          items
          • idstringrequired
          • namestringrequired
          • titlerequired
            Show child attributes
            Further fields truncated
          • subtitlerequired
            Show child attributes
            Further fields truncated
          • projectIdstringrequired
          • datasetstringrequired
          • Show child attributes
            Further fields truncated
          • basePathrequired
            Show child attributes
            Further fields truncated
          • iconrequired
            Show child attributes
            Further fields truncated
      • Show child attributes
          items
          • idstringrequired
          • resourceTyperequired
            Show child attributes
            Further fields truncated
          • resourceIdstringrequired

Create an application

post/{apiVersion}/applications/

Create an application in the registry. Requires the sanity.sdk.applications.deploy grant.

Path parameters

  • apiVersionstringrequired
    vX:vX
    v2025-01-01:v2025-01-01

Request body application/json

  • typestringrequired

    Behavioral category. Singletons use coreApp.

  • titlestringrequired

    Human-friendly display name

  • organizationIdstringrequired

    Owning organization ID

  • slugstring

    Subdomain for Sanity-hosted apps. Mutually exclusive with externalUrl.

  • externalUrlstring (uri)

    URL for externally hosted studios (https only).

  • Dashboard visibility for any app type. Defaults to default.

  • When true: slug required and organizationId must be Sanity's org.

  • iconstring|null

    SVG icon markup (or null for no icon); sanitized.

  • configobject

    Application config; studio settings under studio (studios only).

    Show child attributes
    • studioobject
      Show child attributes
      • projectIdstringrequired

        Studio-only. Required for studios.

      • Release channel or pinned semver. Defaults to latest.

        Show child attributes
        • string
          enum:"next", "stable", "latest"

Responses

201

Default Response

  • idstringrequired
  • typestringrequired
  • titlestringrequired
  • iconrequired
    Show child attributes
    • string
  • isSingletonbooleanrequired
  • visibilityrequired
    Show child attributes
    • string
      enum:"default"
  • slugrequired
    Show child attributes
    • string
  • externalUrlrequired
    Show child attributes
    • string
  • organizationIdstringrequired
  • createdAtstring (date-time)required
  • updatedAtstring (date-time)required
  • configobjectrequired
    Show child attributes
    • studioobjectrequired
      Show child attributes
      • projectIdstringrequired

        Primary project association for the studio

      • Release channel (next, stable, latest) or a pinned semver; null if unset

        Show child attributes
        • string

Get an application by ID

get/{apiVersion}/applications/{applicationId}

Retrieve a single application by ID, regardless of deployment state. Supports optional includes for the active deployment summary (activeDeployment), its children (interfaces, workspaces, access) and application config (config.studio, config.mfManifest).

Path parameters

Query parameters

  • includestring

    Comma-separated list of related data to include. Allowed values: interfaces, workspaces, access, config.studio, config.mfManifest, activeDeployment

Responses

200

Default Response

  • idstringrequired
  • typerequired
    Show child attributes
    • string
      enum:"studio"
  • titlestringrequired
  • iconrequired
    Show child attributes
    • string
  • isSingletonbooleanrequired
  • visibilityrequired
    Show child attributes
    • string
      enum:"default"
  • slugrequired
    Show child attributes
    • string
  • externalUrlrequired
    Show child attributes
    • string
  • organizationIdstringrequired
  • createdAtstring (date-time)required
  • updatedAtstring (date-time)required
  • configobject
    Show child attributes
    • studioobject
      Show child attributes
      • projectIdstringrequired

        Primary project association for the studio

      • Release channel (next, stable, latest) or a pinned semver; null if unset

        Show child attributes
        • string
    • The application’s Module Federation manifest (mf-manifest.json), stored verbatim

  • Show child attributes
    • idstringrequired
    • applicationIdstringrequired
    • sizerequired
      Show child attributes
      • integer
    • versionrequired
      Show child attributes
      • string
    • Show child attributes
      • boolean
    • isActiveDeploymentbooleanrequired
    • deployedByrequired
      Show child attributes
      • string
    • createdAtstring (date-time)required
    • updatedAtstring (date-time)required
    • Show child attributes
      items
      • idstringrequired
      • typerequired
        Show child attributes
        • string
          enum:"app"
      • namestringrequired
      • titlestringrequired
      • versionstringrequired
      • moduleIdstringrequired

        Module federation module ID; resolved from the host mf-manifest at runtime

      • metadatarequired
        Show child attributes
    • Show child attributes
        items
        • idstringrequired
        • namestringrequired
        • titlerequired
          Show child attributes
          • string
        • subtitlerequired
          Show child attributes
          • string
        • projectIdstringrequired
        • datasetstringrequired
        • Show child attributes
          • string
        • basePathrequired
          Show child attributes
          • string
        • iconrequired
          Show child attributes
          • string
    • Show child attributes
        items
        • idstringrequired
        • resourceTyperequired
          Show child attributes
          • string
            enum:"datasets"
        • resourceIdstringrequired

Delete an application

delete/{apiVersion}/applications/{applicationId}

Soft-delete an application and all its deployments. Requires the sanity.sdk.applications.delete grant. Singletons with active installations cannot be deleted.

Path parameters

Responses

200

Confirms the application and its deployments were soft-deleted

Update an application

patch/{apiVersion}/applications/{applicationId}

Update an application's mutable properties. Requires the sanity.sdk.applications.deploy grant.

Path parameters

Request body application/json

  • titlestring

    Human-friendly display name

  • SVG icon markup; sanitized before storage. null clears the stored icon; an icon that sanitizes to empty is treated as omitted (no-op).

    Show child attributes
    • string
  • Dashboard visibility. One of: default, unlisted, disabled.

    Show child attributes
    • string
      enum:"default"

Responses

200

An application in the unified registry, without deployment information

  • idstringrequired
  • typerequired
    Show child attributes
    • string
      enum:"studio"
  • titlestringrequired
  • iconrequired
    Show child attributes
    • string
  • isSingletonbooleanrequired
  • visibilityrequired
    Show child attributes
    • string
      enum:"default"
  • slugrequired
    Show child attributes
    • string
  • externalUrlrequired
    Show child attributes
    • string
  • organizationIdstringrequired
  • createdAtstring (date-time)required
  • updatedAtstring (date-time)required

Get interfaces by type for an application

get/{apiVersion}/applications/{applicationId}/interfaces

Retrieve interfaces of a specific type for an application, resolved from the active deployment.

Path parameters

Query parameters

Responses

200

Default Response

    items
    • idstringrequired
    • typerequired
      Show child attributes
      • string
        enum:"app"
    • namestringrequired
    • titlestringrequired
    • versionstringrequired
    • moduleIdstringrequired

      Module federation module ID; resolved from the host mf-manifest at runtime

    • metadatarequired
      Show child attributes

Get workspaces for an application

get/{apiVersion}/applications/{applicationId}/workspaces

Retrieve workspaces for a studio application, resolved from the active deployment. Returns null for non-studio applications.

Path parameters

Responses

200

Default Response

    items
    • idstringrequired
    • namestringrequired
    • titlerequired
      Show child attributes
      • string
    • subtitlerequired
      Show child attributes
      • string
    • projectIdstringrequired
    • datasetstringrequired
    • Show child attributes
      • string
    • basePathrequired
      Show child attributes
      • string
    • iconrequired
      Show child attributes
      • string

Get resource access for an application

get/{apiVersion}/applications/{applicationId}/access

Retrieve the Sanity resources an application accesses, resolved from the active deployment. Returns null for singletons.

Path parameters

Responses

200

Default Response

    items
    • idstringrequired
    • resourceTyperequired
      Show child attributes
      • string
        enum:"datasets"
    • resourceIdstringrequired

List deployments for an application

get/{apiVersion}/applications/{applicationId}/deployments

Retrieve the deployment history for an application. Returns all non-deleted deployments with nested children (interfaces, workspaces, access), ordered by creation date descending.

Path parameters

Query parameters

  • limitdefault: 50

    Maximum number of results per page (1-100, default 50). Pass "none" to disable pagination.

  • cursorstring

    Cursor from a previous response to fetch the next page

Responses

200

Default Response

  • nextCursorrequired
    Show child attributes
    • string
  • dataarrayrequired
    Show child attributes
    items
    • idstringrequired
    • applicationIdstringrequired
    • sizerequired
      Show child attributes
      • integer
    • versionrequired
      Show child attributes
      • string
    • Show child attributes
      • boolean
    • isActiveDeploymentbooleanrequired
    • deployedByrequired
      Show child attributes
      • string
    • createdAtstring (date-time)required
    • updatedAtstring (date-time)required
    • interfacesarrayrequired
      Show child attributes
      items
      • idstringrequired
      • typerequired
        Show child attributes
        • string
          enum:"app"
      • namestringrequired
      • titlestringrequired
      • versionstringrequired
      • moduleIdstringrequired

        Module federation module ID; resolved from the host mf-manifest at runtime

      • metadatarequired
        Show child attributes
    • workspacesrequired
      Show child attributes
        items
        • idstringrequired
        • namestringrequired
        • titlerequired
          Show child attributes
          • string
        • subtitlerequired
          Show child attributes
          • string
        • projectIdstringrequired
        • datasetstringrequired
        • Show child attributes
          • string
        • basePathrequired
          Show child attributes
          • string
        • iconrequired
          Show child attributes
          • string
    • accessrequired
      Show child attributes
        items
        • idstringrequired
        • resourceTyperequired
          Show child attributes
          • string
            enum:"datasets"
        • resourceIdstringrequired

Deploy an application

post/{apiVersion}/applications/{applicationId}/deployments

Deploy a new version to an existing application. The new deployment becomes active, superseding the previous one. Requires the sanity.sdk.applications.deploy grant.

Multipart form-data. interfaces, access, and workspaces are JSON parts (send each with Content-Type: application/json). Sanity-hosted apps include a tarball; external studios omit it. Field parts must precede the tarball part.

Path parameters

Request body multipart/form-data

  • versionstringrequired

    Deployment version identifier (e.g. "3.41.0")

  • tarballstring (binary)

    Gzipped tarball. Required for Sanity-hosted apps; not allowed for external studios.

  • Flags whether this deployment is an auto-update build. Not allowed for external studios.

  • JSON part. Required for Sanity-hosted apps; not allowed for external studios.

    Show child attributes
    items
    • typestringrequired
    • namestringrequired

      Unique within type per deployment (e.g. "edit-document")

    • titlestringrequired

      Human-friendly display name

    • versionstringrequired

      Version of the interface (e.g. "1.0.0")

    • moduleIdstringrequired

      Module federation module ID (e.g. "media-library/App")

    • Show child attributes
      • groupstring

        Grouping key for the interface

      • prioritynumber

        Ordering priority within the group

  • accessarray

    JSON part. Resource declarations. Not allowed for singletons.

    Show child attributes
    items
  • JSON part. Studio-only. Not allowed for non-studio types.

    Show child attributes
    items
    • projectIdstringrequired

      The Sanity project this workspace targets

    • datasetstringrequired

      The dataset within the project

    • schemaDescriptorIdstringrequired

      Lexicon schema descriptor id for this workspace's schema

    • namestring

      Workspace name (defaults to "default")

    • Human-friendly display name

      Show child attributes
      • string
    • Secondary display text

      Show child attributes
      • string
    • URL base path for the workspace within the studio

      Show child attributes
      • string
    • Sanitized SVG icon markup

      Show child attributes
      • string

Responses

201

A deployment with its interfaces, workspaces, and access declarations

  • idstringrequired
  • applicationIdstringrequired
  • sizerequired
    Show child attributes
    • integer
  • versionrequired
    Show child attributes
    • string
  • Show child attributes
    • boolean
  • isActiveDeploymentbooleanrequired
  • deployedByrequired
    Show child attributes
    • string
  • createdAtstring (date-time)required
  • updatedAtstring (date-time)required
  • interfacesarrayrequired
    Show child attributes
    items
    • idstringrequired
    • typerequired
      Show child attributes
      • string
        enum:"app"
    • namestringrequired
    • titlestringrequired
    • versionstringrequired
    • moduleIdstringrequired

      Module federation module ID; resolved from the host mf-manifest at runtime

    • metadatarequired
      Show child attributes
  • workspacesrequired
    Show child attributes
      items
      • idstringrequired
      • namestringrequired
      • titlerequired
        Show child attributes
        • string
      • subtitlerequired
        Show child attributes
        • string
      • projectIdstringrequired
      • datasetstringrequired
      • Show child attributes
        • string
      • basePathrequired
        Show child attributes
        • string
      • iconrequired
        Show child attributes
        • string
  • accessrequired
    Show child attributes
      items
      • idstringrequired
      • resourceTyperequired
        Show child attributes
        • string
          enum:"datasets"
      • resourceIdstringrequired

Installations

Endpoints for installing and uninstalling singleton applications

Install a singleton application

post/{apiVersion}/applications/{applicationId}/installations

Install a singleton application for an organization. Requires a service token. Creates an installation record linking the organization to the singleton.

Path parameters

Request body application/json

  • organizationIdstringrequired

    The organization gaining access to the singleton

  • accessarray

    Resource access to grant this installation (0..N)

    Show child attributes
    items
    • resourceTyperequired

      Resource category

      Show child attributes
      • string
        enum:"datasets"
    • resourceIdstringrequired

      The ID of the specific resource

Responses

201

An installation linking an organization to a singleton application

Uninstall a singleton application

delete/{apiVersion}/installations/{installationId}

Uninstall a singleton from an organization. Sets uninstalledAt and preserves the record for audit history. Requires a service token.

Path parameters

Responses

200

Default Response

Get an installation by ID

get/{apiVersion}/installations/{installationId}

Retrieve a single active installation and its singleton's title and slug. Use include to embed the active config, access rows, or interfaces.

Path parameters

Query parameters

  • includestring

    Comma-separated list of related data to include. Allowed values: activeConfig, access, interfaces

Responses

200

Default Response

  • idstringrequired
  • applicationIdstringrequired
  • organizationIdstringrequired
  • installedByrequired
    Show child attributes
    • string
  • createdAtstring (date-time)required
  • updatedAtstring (date-time)required
  • applicationobjectrequired
    Show child attributes
    • titlestringrequired
    • slugrequired
      Show child attributes
      • string
  • A versioned configuration snapshot for an installation; content is stored in GCS

    Show child attributes
  • accessarray
    Show child attributes
    items
    • idstringrequired
    • resourceTyperequired
      Show child attributes
      • string
        enum:"datasets"
    • resourceIdstringrequired
  • Show child attributes
    items
    • idstringrequired
    • typerequired
      Show child attributes
      • string
        enum:"app"
    • namestringrequired
    • titlestringrequired
    • versionstringrequired
    • moduleIdstringrequired

      Module federation module ID; resolved from the host mf-manifest at runtime

    • metadatarequired
      Show child attributes

List installations for an organization

get/{apiVersion}/installations/

List an organization's active singleton installations. Each item carries the installation and its singleton's title and slug; use include to embed the active config, access rows, or interfaces. Supports cursor-based pagination.

Path parameters

  • apiVersionstringrequired
    vX:vX
    v2025-01-01:v2025-01-01

Query parameters

  • organizationIdstringrequired

    Organization to list installations for

  • includestring

    Comma-separated list of related data to include. Allowed values: activeConfig, access, interfaces

  • limitdefault: 50

    Maximum number of results per page (1-100, default 50). Pass "none" to disable pagination.

  • cursorstring

    Cursor from a previous response to fetch the next page

Responses

200

Default Response

  • nextCursorrequired
    Show child attributes
    • string
  • dataarrayrequired
    Show child attributes
    items
    • idstringrequired
    • applicationIdstringrequired
    • organizationIdstringrequired
    • installedByrequired
      Show child attributes
      • string
    • createdAtstring (date-time)required
    • updatedAtstring (date-time)required
    • applicationobjectrequired
      Show child attributes
      • titlestringrequired
      • slugrequired
        Show child attributes
        • string
    • A versioned configuration snapshot for an installation; content is stored in GCS

      Show child attributes
    • accessarray
      Show child attributes
      items
      • idstringrequired
      • resourceTyperequired
        Show child attributes
        • string
          enum:"datasets"
      • resourceIdstringrequired
    • Show child attributes
      items
      • idstringrequired
      • typerequired
        Show child attributes
        • string
          enum:"app"
      • namestringrequired
      • titlestringrequired
      • versionstringrequired
      • moduleIdstringrequired

        Module federation module ID; resolved from the host mf-manifest at runtime

      • metadatarequired
        Show child attributes

Get interfaces by type for an installation

get/{apiVersion}/installations/{installationId}/interfaces

Retrieve a singleton's interfaces of a specific type, addressed by an installation id and resolved from the singleton's active deployment.

Path parameters

Query parameters

Responses

200

Default Response

    items
    • idstringrequired
    • typerequired
      Show child attributes
      • string
        enum:"app"
    • namestringrequired
    • titlestringrequired
    • versionstringrequired
    • moduleIdstringrequired

      Module federation module ID; resolved from the host mf-manifest at runtime

    • metadatarequired
      Show child attributes

Get resource access for an installation

get/{apiVersion}/installations/{installationId}/access

Retrieve the installation-scoped resource access declarations. Returns an empty array until the install flow writes these rows (SDK-1811).

Path parameters

Responses

200

Default Response

    items
    • idstringrequired
    • resourceTyperequired
      Show child attributes
      • string
        enum:"datasets"
    • resourceIdstringrequired

User Applications

Endpoints for managing user applications

Get all user applications

get/{apiVersion}/user-applications/

Retrieves user applications for the given project or organization. Returns an array of applications by default, or a single application when filtering by appHost or default. For studio applications queried via organization route, fetches all projects within the organization.

Path parameters

  • apiVersionstringrequired
    vX:vX
    v2025-01-01:v2025-01-01

Query parameters

  • appHoststring

    Filter by application hostname. When provided, returns a single application instead of an array.

  • defaultboolean

    Filter by default deployment status. When true, returns only the default application as a single object.

  • Application type. Valid values: studio, coreApp.

  • Dashboard visibility status. Valid values: default, unlisted, disabled.

  • Example:eg4gvkae

Responses

200

Default Response

Create a user application

post/{apiVersion}/user-applications/

Path parameters

  • apiVersionstringrequired
    vX:vX
    v2025-01-01:v2025-01-01

Query parameters

Request body application/json

Responses

200

A user application without deployment information

  • idstringrequired
  • projectIdrequired
    Show child attributes
    • string
  • Show child attributes
    • string
  • titlerequired
    Show child attributes
    • string
  • typerequired
    Show child attributes
    • string
      enum:"studio"
  • urlTyperequired
    Show child attributes
    • string
      enum:"internal"
  • appHoststringrequired
  • Show child attributes
    • string
      enum:"default"
  • createdAtrequired
  • updatedAtrequired
  • Show child attributes
    • string
Examplesapplication/json
{
  "id": "app_xyz789",
  "projectId": "proj_123",
  "organizationId": "org_456",
  "title": "My Studio",
  "type": "studio",
  "urlType": "internal",
  "appHost": "my-studio",
  "dashboardStatus": "unlisted",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "updatedAt": "2024-01-15T10:30:00.000Z",
  "autoUpdatingVersion": null
}

Get workspaces for studio applications

get/{apiVersion}/user-applications/workspaces

Returns a flattened view of user applications with their workspaces. Each workspace becomes a separate entry in the response, allowing easy access to schema descriptors.

Path parameters

  • apiVersionstringrequired
    vX:vX
    v2025-01-01:v2025-01-01

Query parameters

  • projectIdstring

    Filter by project ID. Falls back to the project ID from the request header.

  • datasetstring

    Filter workspaces by dataset name.

  • namestring

    Filter workspaces by workspace name.

  • keystring

    Filter workspaces by workspace key.

  • Application type. Valid values: studio, coreApp.

  • Example:eg4gvkae

Responses

200

Response containing flattened workspaces from studio applications

  • workspacesarrayrequired

    Array of workspaces from all studio applications

    Show child attributes
    items
    • keystringrequired

      Unique key combining userApplicationId and workspace name

    • userApplicationobjectrequired
      Show child attributes
      • idstringrequired

        User application ID

      • typestringrequired

        Application type (always studio)

      • Where the workspace manifest was sourced from: "deployment" for active deployment manifest, "live" for live-manifest config

        Show child attributes
        • string
          enum:"deployment"
    • Version of the Studio bundle from the deployment

    • intentBaseUrlstringrequired

      URL for the workspace in the dashboard

    • namestringrequired

      Workspace name (default if not specified)

    • titlestring

      Display title for the workspace

    • resourceobjectrequired
      Show child attributes
      • typestringrequired

        Resource type (always dataset)

      • idstringrequired

        Resource identifier in format projectId.dataset

    • schemaDescriptorIdstringrequired

      Schema descriptor ID from Lexicon

Examplesapplication/json
{
  "workspaces": [
    {
      "key": "app123-default",
      "userApplication": {
        "id": "app123",
        "type": "studio"
      },
      "bundleVersion": "3.40.0",
      "intentBaseUrl": "https://www.sanity.io/@myorg/studio/app123/default",
      "name": "default",
      "title": "My Workspace",
      "resource": {
        "type": "dataset",
        "id": "proj123.production"
      },
      "schemaDescriptorId": "uEiCBsitEg1VROvwEf2khmQEggZ7-qfBKuiah5R63IxV35Q"
    }
  ]
}

Get workspaces for a user application

get/{apiVersion}/user-applications/{userApplicationId}/workspaces

Returns a flattened view of workspaces for a specific user application. Each workspace becomes a separate entry in the response, allowing easy access to schema descriptors.

Path parameters

Query parameters

  • datasetstring

    Filter workspaces by dataset name.

  • namestring

    Filter workspaces by workspace name.

  • keystring

    Filter workspaces by workspace key.

Responses

200

Response containing flattened workspaces from studio applications

  • workspacesarrayrequired

    Array of workspaces from all studio applications

    Show child attributes
    items
    • keystringrequired

      Unique key combining userApplicationId and workspace name

    • userApplicationobjectrequired
      Show child attributes
      • idstringrequired

        User application ID

      • typestringrequired

        Application type (always studio)

      • Where the workspace manifest was sourced from: "deployment" for active deployment manifest, "live" for live-manifest config

        Show child attributes
        • string
          enum:"deployment"
    • Version of the Studio bundle from the deployment

    • intentBaseUrlstringrequired

      URL for the workspace in the dashboard

    • namestringrequired

      Workspace name (default if not specified)

    • titlestring

      Display title for the workspace

    • resourceobjectrequired
      Show child attributes
      • typestringrequired

        Resource type (always dataset)

      • idstringrequired

        Resource identifier in format projectId.dataset

    • schemaDescriptorIdstringrequired

      Schema descriptor ID from Lexicon

Examplesapplication/json
{
  "workspaces": [
    {
      "key": "app123-default",
      "userApplication": {
        "id": "app123",
        "type": "studio"
      },
      "bundleVersion": "3.40.0",
      "intentBaseUrl": "https://www.sanity.io/@myorg/studio/app123/default",
      "name": "default",
      "title": "My Workspace",
      "resource": {
        "type": "dataset",
        "id": "proj123.production"
      },
      "schemaDescriptorId": "uEiCBsitEg1VROvwEf2khmQEggZ7-qfBKuiah5R63IxV35Q"
    }
  ]
}

Get a user application

get/{apiVersion}/user-applications/{userApplicationId}

Get a user application by id

Path parameters

Responses

200

A user application with active deployment, manifest data, and config

Examplesapplication/json
{
  "id": "app_xyz789",
  "projectId": "proj_123",
  "organizationId": "org_456",
  "title": "My Studio",
  "type": "studio",
  "urlType": "internal",
  "appHost": "my-studio",
  "dashboardStatus": "unlisted",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "updatedAt": "2024-01-15T10:30:00.000Z",
  "autoUpdatingVersion": null,
  "activeDeployment": null,
  "manifestData": null,
  "config": {
    "live-manifest": {
      "value": {
        "workspaces": [
          {
            "name": "default"
          }
        ]
      },
      "createdAt": "2024-01-15T10:30:00.000Z",
      "updatedAt": "2024-01-15T10:30:00.000Z",
      "updatedBy": "user_123"
    }
  },
  "manifest": {}
}

Update a user application

patch/{apiVersion}/user-applications/{userApplicationId}

Path parameters

Request body application/json

  • Show child attributes
    • string
  • urlTypestring
  • Dashboard visibility status. Valid values: default, unlisted, disabled.

    Show child attributes
    • string
      enum:"default"
  • Show child attributes
    • string
      enum:"next"

Responses

200

A user application with active deployment, manifest data, and config

Examplesapplication/json
{
  "id": "app_xyz789",
  "projectId": "proj_123",
  "organizationId": "org_456",
  "title": "My Studio",
  "type": "studio",
  "urlType": "internal",
  "appHost": "my-studio",
  "dashboardStatus": "unlisted",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "updatedAt": "2024-01-15T10:30:00.000Z",
  "autoUpdatingVersion": null,
  "activeDeployment": null,
  "manifestData": null,
  "config": {
    "live-manifest": {
      "value": {
        "workspaces": [
          {
            "name": "default"
          }
        ]
      },
      "createdAt": "2024-01-15T10:30:00.000Z",
      "updatedAt": "2024-01-15T10:30:00.000Z",
      "updatedBy": "user_123"
    }
  },
  "manifest": {}
}

Delete all user applications

delete/{apiVersion}/projects/{projectId}/user-applications/

Deletes all user applications for a project. Requires a service token

Path parameters

  • projectIdstringrequired
    Example:my-project-id
  • apiVersionstringrequired
    vX:vX
    v2025-01-01:v2025-01-01

Responses

200

Default Response

Get all user applications for a project

get/{apiVersion}/projects/{projectId}/user-applications/

Retrieves user applications for the given project or organization. Returns an array of applications by default, or a single application when filtering by appHost or default. For studio applications queried via organization route, fetches all projects within the organization.

Path parameters

  • apiVersionstringrequired
    vX:vX
    v2025-01-01:v2025-01-01
  • projectIdstringrequired
    Example:my-project-id

Query parameters

  • appHoststring

    Filter by application hostname. When provided, returns a single application instead of an array.

  • defaultboolean

    Filter by default deployment status. When true, returns only the default application as a single object.

  • Application type. Valid values: studio, coreApp.

  • Dashboard visibility status. Valid values: default, unlisted, disabled.

Responses

200

Default Response

Create a user application for a project

post/{apiVersion}/projects/{projectId}/user-applications/

Path parameters

  • apiVersionstringrequired
    vX:vX
    v2025-01-01:v2025-01-01
  • projectIdstringrequired
    Example:my-project-id

Query parameters

  • Application type. Valid values: studio, coreApp.

Request body application/json

Responses

200

A user application without deployment information

  • idstringrequired
  • projectIdrequired
    Show child attributes
    • string
  • Show child attributes
    • string
  • titlerequired
    Show child attributes
    • string
  • typerequired
    Show child attributes
    • string
      enum:"studio"
  • urlTyperequired
    Show child attributes
    • string
      enum:"internal"
  • appHoststringrequired
  • Show child attributes
    • string
      enum:"default"
  • createdAtrequired
  • updatedAtrequired
  • Show child attributes
    • string
Examplesapplication/json
{
  "id": "app_xyz789",
  "projectId": "proj_123",
  "organizationId": "org_456",
  "title": "My Studio",
  "type": "studio",
  "urlType": "internal",
  "appHost": "my-studio",
  "dashboardStatus": "unlisted",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "updatedAt": "2024-01-15T10:30:00.000Z",
  "autoUpdatingVersion": null
}

Get a user application for a project

get/{apiVersion}/projects/{projectId}/user-applications/{userApplicationId}

Get a user application by id

Path parameters

Query parameters

  • Application type. Valid values: studio, coreApp.

Responses

200

A user application with active deployment, manifest data, and config

Examplesapplication/json
{
  "id": "app_xyz789",
  "projectId": "proj_123",
  "organizationId": "org_456",
  "title": "My Studio",
  "type": "studio",
  "urlType": "internal",
  "appHost": "my-studio",
  "dashboardStatus": "unlisted",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "updatedAt": "2024-01-15T10:30:00.000Z",
  "autoUpdatingVersion": null,
  "activeDeployment": null,
  "manifestData": null,
  "config": {
    "live-manifest": {
      "value": {
        "workspaces": [
          {
            "name": "default"
          }
        ]
      },
      "createdAt": "2024-01-15T10:30:00.000Z",
      "updatedAt": "2024-01-15T10:30:00.000Z",
      "updatedBy": "user_123"
    }
  },
  "manifest": {}
}

Update a user application for a project

patch/{apiVersion}/projects/{projectId}/user-applications/{userApplicationId}

Path parameters

Query parameters

  • Application type. Valid values: studio, coreApp.

Request body application/json

  • Show child attributes
    • string
  • urlTypestring
  • Dashboard visibility status. Valid values: default, unlisted, disabled.

    Show child attributes
    • string
      enum:"default"
  • Show child attributes
    • string
      enum:"next"

Responses

200

A user application with active deployment, manifest data, and config

Examplesapplication/json
{
  "id": "app_xyz789",
  "projectId": "proj_123",
  "organizationId": "org_456",
  "title": "My Studio",
  "type": "studio",
  "urlType": "internal",
  "appHost": "my-studio",
  "dashboardStatus": "unlisted",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "updatedAt": "2024-01-15T10:30:00.000Z",
  "autoUpdatingVersion": null,
  "activeDeployment": null,
  "manifestData": null,
  "config": {
    "live-manifest": {
      "value": {
        "workspaces": [
          {
            "name": "default"
          }
        ]
      },
      "createdAt": "2024-01-15T10:30:00.000Z",
      "updatedAt": "2024-01-15T10:30:00.000Z",
      "updatedBy": "user_123"
    }
  },
  "manifest": {}
}

Deployments

Endpoints for managing and creating deployments

Legacy deploy route

post/{apiVersion}/deploy

Legacy deploy route used by Sanity CLI. This route should be considered deprecated, and is kept for Sanity CLI compatibility.

Path parameters

  • apiVersionstringrequired
    vX:vX
    v2025-01-01:v2025-01-01

Responses

201

Default Response

Get user application deployments

get/{apiVersion}/user-applications/{userApplicationId}/deployments

Get deployments for a user application. The response is paginated shape but the actual data is not paginated at this point

Path parameters

Responses

200

Default Response

Deploy a user application

post/{apiVersion}/user-applications/{userApplicationId}/deployments

Deploys a user application. See Studio Manifest for Studio apps or CoreAppDeploymentManifest for Core Apps.

Path parameters

Query parameters

Request body multipart/form-data

  • versionstringrequired

    The version of the application being deployed

  • isAutoUpdatingbooleanrequired

    Whether this deployment is from an auto-updating application

  • tarballstring (binary)required

    The tarball containing the built application

  • manifeststring

    JSON manifest for the deployment (optional)

Responses

201

Default Response

Get user application deployments for a project

get/{apiVersion}/projects/{projectId}/user-applications/{userApplicationId}/deployments

Get deployments for a user application. The response is paginated shape but the actual data is not paginated at this point

Path parameters

Query parameters

  • Application type. Valid values: studio, coreApp.

Responses

200

Default Response

Deploy a user application for a project

post/{apiVersion}/projects/{projectId}/user-applications/{userApplicationId}/deployments

Deploys a user application. See Studio Manifest for Studio apps or CoreAppDeploymentManifest for Core Apps.

Path parameters

Query parameters

  • tagstring
  • Application type. Valid values: studio, coreApp.

Request body multipart/form-data

  • versionstringrequired

    The version of the application being deployed

  • isAutoUpdatingbooleanrequired

    Whether this deployment is from an auto-updating application

  • tarballstring (binary)required

    The tarball containing the built application

  • manifeststring

    JSON manifest for the deployment (optional)

Responses

201

Default Response

Config

Endpoints for setting user application config

Register a user application config

post/{apiVersion}/user-applications/{userApplicationId}/config/{configKey}

Register a configuration for a user application under the provided key. Only updates when the config value is different from the current value. Note: The supported keys depends on the type of the user application.

Studio Config Keys

Path parameters

  • userApplicationIdstringrequired

    The ID of the user application

  • configKeystringrequired

    The configuration key. Supported values: live-manifest

  • apiVersionstringrequired
    vX:vX
    v2025-01-01:v2025-01-01

Request body application/json

  • valueobjectrequired

    Configuration value object

    Show child attributes

    Responses

    200

    Default Response

    Register a user application config for a project

    post/{apiVersion}/projects/{projectId}/user-applications/{userApplicationId}/config/{configKey}

    Register a configuration for a user application under the provided key. Only updates when the config value is different from the current value. Note: The supported keys depends on the type of the user application.

    Studio Config Keys

    Path parameters

    • userApplicationIdstringrequired

      The ID of the user application

    • configKeystringrequired

      The configuration key. Supported values: live-manifest

    • apiVersionstringrequired
      vX:vX
      v2025-01-01:v2025-01-01
    • projectIdstringrequired
      Example:my-project-id

    Query parameters

    • Application type. Valid values: studio, coreApp.

    Request body application/json

    • valueobjectrequired

      Configuration value object

      Show child attributes

      Responses

      200

      Default Response

      List configs for an installation

      get/{apiVersion}/installations/{installationId}/configs

      Retrieve the configuration history for an installed singleton. Returns config snapshot metadata ordered by creation date descending.

      Path parameters

      Query parameters

      • limitdefault: 50

        Maximum number of results per page (1-100, default 50). Pass "none" to disable pagination.

      • cursorstring

        Cursor from a previous response to fetch the next page

      Responses

      200

      Default Response

      Deploy installation configuration

      post/{apiVersion}/installations/{installationId}/configs

      Push a configuration snapshot to an installed singleton. Creates a new config record and deactivates any previous active config. Requires a session token with sanity.sdk.applications.deploy grant. Field parts must precede the tarball part.

      Path parameters

      Request body multipart/form-data

      • versionstringrequired

        Configuration version identifier (e.g. "1.4.0")

      • tarballstring (binary)required

        Gzipped tarball containing the installation configuration content

      Responses

      201

      A versioned configuration snapshot for an installation; content is stored in GCS

      Delete an installation configuration

      delete/{apiVersion}/installations/{installationId}/configs/{configId}

      Soft-delete a configuration snapshot. The record is removed from history immediately, but its content stays in storage so applications still resolving this config keep working; the content is purged once newer configs supersede it. Requires a session token with sanity.sdk.applications.deploy grant.

      Path parameters

      Responses

      200

      Default Response

      Quick Start

      Endpoints for quickstart deployment

      Quickstart Deploy

      post/{apiVersion}/deploy/quickstart

      Quickstart deploy route used by Quickstart. This route is used for a specific experiment and should not be used without prior approval.

      Path parameters

      • apiVersionstringrequired
        vX:vX
        v2025-01-01:v2025-01-01

      Responses

      201

      Default Response

      Studio Hosts

      Endpoint for query studio host availability

      Get appHost availability

      get/{apiVersion}/studiohosts/{appHost}/availability

      Check if a studio host is available

      Path parameters

      • appHoststringrequired
        Example:my-app-host
      • apiVersionstringrequired
        vX:vX
        v2025-01-01:v2025-01-01

      Responses

      200

      Default Response

      Get studio auto-updating version status

      get/{apiVersion}/user-applications/auto-update-version/{userApplicationId}?

      Returns the auto-updating version status for a studio based on the X-App-Host header

      Path parameters

      Responses

      200

      Default Response

      • autoUpdatingrequired

        Whether auto-updating is enabled for internal studios

        Show child attributes
        • boolean

          Whether auto-updating is enabled for internal studios

      • versionrequired

        The auto-updating version to use (one of: next, stable, latest). Defaults to latest if no version is set.

        Show child attributes
        • string

          The auto-updating version to use (one of: next, stable, latest). Defaults to latest if no version is set.

      Projects

      Endpoints for resolving project

      Get project by application

      get/{apiVersion}/user-applications/resolve/project

      This route is moved from populus, and we have updated services that use it to route to this URL. https://github.com/sanity-io/populus/blob/b460c53cc020a9ca6971c03c45d93bd960196b82/src/controllers/internal/resolve/projects.js Some changes were implemented -- for example, returning a single entity rather than an array.

      Path parameters

      • apiVersionstringrequired
        vX:vX
        v2025-01-01:v2025-01-01

      Query parameters

      Responses

      200

      Default Response

      Get application by host

      get/{apiVersion}/user-applications/resolve/application

      This route is used for internal services to resolve an application by host name.

      Path parameters

      • apiVersionstringrequired
        vX:vX
        v2025-01-01:v2025-01-01

      Query parameters

      Responses

      200

      A user application with manifest and optional resource links

      Examplesapplication/json
      {
        "id": "app_xyz789",
        "projectId": "proj_123",
        "organizationId": "org_456",
        "title": "My Studio",
        "type": "studio",
        "urlType": "internal",
        "appHost": "my-studio",
        "dashboardStatus": "unlisted",
        "createdAt": "2024-01-15T10:30:00.000Z",
        "updatedAt": "2024-01-15T10:30:00.000Z",
        "autoUpdatingVersion": null,
        "activeDeployment": null,
        "manifestData": null,
        "config": {
          "live-manifest": {
            "value": {
              "workspaces": [
                {
                  "name": "default"
                }
              ]
            },
            "createdAt": "2024-01-15T10:30:00.000Z",
            "updatedAt": "2024-01-15T10:30:00.000Z",
            "updatedBy": "user_123"
          }
        },
        "manifest": {},
        "resourceLink": "https://example.sanity.studio"
      }

      Studio Manifests

      Endpoints for getting studio manifests