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 applications for an organization — both org-owned apps and installed singletons — in a unified response. Supports cursor-based pagination and optional includes for deployment children and installation config.

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, installationConfig

  • 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
    • isSingletonbooleanrequired
    • slugrequired
      Show child attributes
      • string
    • externalUrlrequired
      Show child attributes
      • string
    • organizationIdstringrequired
    • createdAtstring (date-time)required
    • updatedAtstring (date-time)required
    • configrequired
      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
        • Controls dashboard UI visibility

          Show child attributes
          • string
            enum:"default"
    • Show child attributes
      • string
    • Show child attributes
      • idstringrequired
      • deployedByrequired
        Show child attributes
        • string
      • createdAtstring (date-time)required
    • activeDeploymentobjectrequired
      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
        • entryPointstringrequired

          Resolved GCS URL for the federated module (relative tarball path on input)

        • 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

Create an application

post/{apiVersion}/applications/

Create an application and its initial deployment in the registry. Requires the sanity.sdk.applications.deploy grant.

Path parameters

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

Request body multipart/form-data

  • typestringrequired

    Behavioral category. Singletons use coreApp.

  • titlestringrequired

    Human-friendly display name

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

  • organizationIdstringrequired

    Owning organization ID

  • slugstring

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

  • externalUrlstring (uri)

    URL for externally hosted studios (https only).

  • versionstringrequired

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

  • Flags whether this deployment is an auto-update build. Always false for external studios.

  • tarballstring (binary)

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

  • configobject

    JSON part. 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"
      • Controls dashboard UI visibility. Defaults to default.

  • 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")

    • entryPointstringrequired

      Relative path within the tarball (e.g. "index.js"); resolved to a GCS URL.

    • metadataobject
      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

Responses

201

Default Response

  • idstringrequired
  • typestringrequired
  • titlestringrequired
  • isSingletonbooleanrequired
  • slugrequired
    Show child attributes
    • string
  • externalUrlrequired
    Show child attributes
    • string
  • organizationIdstringrequired
  • createdAtstring (date-time)required
  • updatedAtstring (date-time)required
  • activeDeploymentobjectrequired

    A deployment with its interfaces, workspaces, and access declarations

    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
    • interfacesarrayrequired
      Show child attributes
      items
      • idstringrequired
      • typerequired
        Show child attributes
        • string
          enum:"app"
      • namestringrequired
      • titlestringrequired
      • versionstringrequired
      • entryPointstringrequired

        Resolved GCS URL for the federated module (relative tarball path on input)

      • 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
  • 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
      • Controls dashboard UI visibility

        Show child attributes
        • string
          enum:"default"

Get an application by ID

get/{apiVersion}/applications/{applicationId}

Retrieve a single application by ID, including its active deployment summary. Supports optional includes for deployment children (interfaces, workspaces, access).

Path parameters

Query parameters

  • includestring

    Comma-separated list of active deployment children to include. Allowed values: interfaces, workspaces, access

Responses

200

Default Response

  • idstringrequired
  • typerequired
    Show child attributes
    • string
      enum:"studio"
  • titlestringrequired
  • isSingletonbooleanrequired
  • slugrequired
    Show child attributes
    • string
  • externalUrlrequired
    Show child attributes
    • string
  • organizationIdstringrequired
  • createdAtstring (date-time)required
  • updatedAtstring (date-time)required
  • configrequired
    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
      • Controls dashboard UI visibility

        Show child attributes
        • string
          enum:"default"
  • activeDeploymentobjectrequired
    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
      • entryPointstringrequired

        Resolved GCS URL for the federated module (relative tarball path on input)

      • 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

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

Responses

200

An application in the unified registry, without deployment information

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

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

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
    • entryPointstringrequired

      Resolved GCS URL for the federated module (relative tarball path on input)

    • 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 resources for an application

get/{apiVersion}/applications/{applicationId}/resources

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
      • entryPointstringrequired

        Resolved GCS URL for the federated module (relative tarball path on input)

      • 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.

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. Always false 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")

    • entryPointstringrequired

      Relative path within the tarball (e.g. "index.js"); resolved to a GCS URL.

    • metadataobject
      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

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
    • entryPointstringrequired

      Resolved GCS URL for the federated module (relative tarball path on input)

    • 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

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

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, 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": "active",
  "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": "active",
  "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

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": "active",
  "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, 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": "active",
  "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": "active",
  "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

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": "active",
  "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.

      Path parameters

      Request body multipart/form-data

      • tarballstring (binary)required

        Gzipped tarball containing the installation configuration content

      Responses

      201

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

      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": "active",
        "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