Management APIs / Deployments

List deployments

GEThttps://api.spice.ai/v1/projects/{projectId}/deployments

Returns a list of deployments for the specified project, ordered by most recent first.

Authorizations

  • AuthorizationstringRequired

    Bearer <token>. Authentication lists the tokens it accepts.

Path parameters

  • projectIdintegerRequired

    The ID of the project

Query parameters

  • limitinteger

    Maximum number of deployments to return

    • Default: 20
  • statusstring

    Filter by deployment status

    • Allowed values: queued, in_progress, succeeded, failed, created

Header parameters

  • X-Org-Namestring

    The organization to act on, by handle. Omit it to act on the organization the credential is bound to; sending it blank is a 400, not the same as omitting it. A user credential may name any organization its owner belongs to; a machine credential is pinned to its own. A portal session token is bound to none, so it must send this header on every route but GET /v1/orgs (400 org_assertion_required otherwise).

    • Pattern: ^[A-Za-z0-9._-]{1,255}$

Responses

200List of deploymentsapplication/json
  • deploymentsarray of object

    13 properties
    • idinteger

      Unique identifier for the deployment

    • statusstring

      Current status of the deployment

      • Allowed values: queued, in_progress, succeeded, failed, created
    • created_atstring (date-time)

      Timestamp when the deployment was created

    • updated_atstring (date-time) | null

      Timestamp when the deployment was last updated

    • image_tagstring | null

      Runtime image tag used for this deployment

    • replicasinteger

      Number of replicas

    • branchstring | null

      Git branch name

    • commit_shastring | null

      Git commit SHA

    • commit_messagestring | null

      Git commit message

    • error_codestring | null

      Set with error_message on failed and on in_progress while Cloud is retrying a scheduling block. Null on succeeded, on ordinary waiting in_progress, and on writers that predated this column. Older failed rows may still have a message with a null code.

    • error_messagestring | null

      Catalog copy for the current error_code. Older failed rows may still have a message with a null error_code.

    • creation_sourcestring | null

      Source that triggered the deployment

    • created_byinteger | null

      User ID who created the deployment

401Unauthorized

403Insufficient scope

404Project not found

curl "https://api.spice.ai/v1/projects/<projectId>/deployments" \
  -H "Authorization: Bearer <token>"
{
  "deployments": [
    {
      "id": 0,
      "status": "queued",
      "created_at": "2026-01-01T00:00:00Z",
      "updated_at": "2026-01-01T00:00:00Z",
      "image_tag": "string",
      "replicas": 0,
      "branch": "string",
      "commit_sha": "string",
      "commit_message": "string",
      "error_code": "string",
      "error_message": "string",
      "creation_source": "string",
      "created_by": 0
    }
  ]
}

application/json

GEThttps://api.spice.ai/v1/orgs/{orgId}/projects/{projectId}/deployments

The org is orgId in the path. Returns a list of deployments for the specified project, ordered by most recent first.

Authorizations

  • AuthorizationstringRequired

    Bearer <token>. Authentication lists the tokens it accepts.

Path parameters

  • orgIdintegerRequired

    The org id from GET /v1/orgs

    • Minimum: 1
  • projectIdintegerRequired

    The ID of the project

Query parameters

  • limitinteger

    Maximum number of deployments to return

    • Default: 20
  • statusstring

    Filter by deployment status

    • Allowed values: queued, in_progress, succeeded, failed, created

Header parameters

  • X-Org-Namestring

    When present, X-Org-Name must name the same org as orgId. Otherwise the request returns org_path_mismatch (400).

    • Pattern: ^[A-Za-z0-9._-]{1,255}$

Responses

200List of deploymentsapplication/json
  • deploymentsarray of object

    13 properties
    • idinteger

      Unique identifier for the deployment

    • statusstring

      Current status of the deployment

      • Allowed values: queued, in_progress, succeeded, failed, created
    • created_atstring (date-time)

      Timestamp when the deployment was created

    • updated_atstring (date-time) | null

      Timestamp when the deployment was last updated

    • image_tagstring | null

      Runtime image tag used for this deployment

    • replicasinteger

      Number of replicas

    • branchstring | null

      Git branch name

    • commit_shastring | null

      Git commit SHA

    • commit_messagestring | null

      Git commit message

    • error_codestring | null

      Set with error_message on failed and on in_progress while Cloud is retrying a scheduling block. Null on succeeded, on ordinary waiting in_progress, and on writers that predated this column. Older failed rows may still have a message with a null code.

    • error_messagestring | null

      Catalog copy for the current error_code. Older failed rows may still have a message with a null error_code.

    • creation_sourcestring | null

      Source that triggered the deployment

    • created_byinteger | null

      User ID who created the deployment

400Bad Request

orgId is not a valid org id (invalid_org_id), or X-Org-Name does not name that org (org_path_mismatch).

401Unauthorized

403Forbidden

Insufficient scope. The caller is not a member of the org (org_forbidden). A machine credential named a different org (org_assertion_mismatch). The org is deleted (org_deleted).

404Project not found

curl "https://api.spice.ai/v1/orgs/<orgId>/projects/<projectId>/deployments" \
  -H "Authorization: Bearer <token>"
{
  "deployments": [
    {
      "id": 0,
      "status": "queued",
      "created_at": "2026-01-01T00:00:00Z",
      "updated_at": "2026-01-01T00:00:00Z",
      "image_tag": "string",
      "replicas": 0,
      "branch": "string",
      "commit_sha": "string",
      "commit_message": "string",
      "error_code": "string",
      "error_message": "string",
      "creation_source": "string",
      "created_by": 0
    }
  ]
}

application/json

GEThttps://api.spice.ai/v1/apps/{appId}/deploymentsDeprecated

Legacy alias of /v1/projects/{projectId}/deployments — projects were previously called apps. Returns a list of deployments for the specified project, ordered by most recent first.

Authorizations

  • AuthorizationstringRequired

    Bearer <token>. Authentication lists the tokens it accepts.

Path parameters

  • appIdintegerRequired

    The ID of the project

Query parameters

  • limitinteger

    Maximum number of deployments to return

    • Default: 20
  • statusstring

    Filter by deployment status

    • Allowed values: queued, in_progress, succeeded, failed, created

Header parameters

  • X-Org-Namestring

    The organization to act on, by handle. Omit it to act on the organization the credential is bound to; sending it blank is a 400, not the same as omitting it. A user credential may name any organization its owner belongs to; a machine credential is pinned to its own. A portal session token is bound to none, so it must send this header on every route but GET /v1/orgs (400 org_assertion_required otherwise).

    • Pattern: ^[A-Za-z0-9._-]{1,255}$

Responses

200List of deploymentsapplication/json
  • deploymentsarray of object

    13 properties
    • idinteger

      Unique identifier for the deployment

    • statusstring

      Current status of the deployment

      • Allowed values: queued, in_progress, succeeded, failed, created
    • created_atstring (date-time)

      Timestamp when the deployment was created

    • updated_atstring (date-time) | null

      Timestamp when the deployment was last updated

    • image_tagstring | null

      Runtime image tag used for this deployment

    • replicasinteger

      Number of replicas

    • branchstring | null

      Git branch name

    • commit_shastring | null

      Git commit SHA

    • commit_messagestring | null

      Git commit message

    • error_codestring | null

      Set with error_message on failed and on in_progress while Cloud is retrying a scheduling block. Null on succeeded, on ordinary waiting in_progress, and on writers that predated this column. Older failed rows may still have a message with a null code.

    • error_messagestring | null

      Catalog copy for the current error_code. Older failed rows may still have a message with a null error_code.

    • creation_sourcestring | null

      Source that triggered the deployment

    • created_byinteger | null

      User ID who created the deployment

401Unauthorized

403Insufficient scope

404Project not found

OpenAPIapi.spice.ai/openapi.json

curl "https://api.spice.ai/v1/apps/<appId>/deployments" \
  -H "Authorization: Bearer <token>"
{
  "deployments": [
    {
      "id": 0,
      "status": "queued",
      "created_at": "2026-01-01T00:00:00Z",
      "updated_at": "2026-01-01T00:00:00Z",
      "image_tag": "string",
      "replicas": 0,
      "branch": "string",
      "commit_sha": "string",
      "commit_message": "string",
      "error_code": "string",
      "error_message": "string",
      "creation_source": "string",
      "created_by": 0
    }
  ]
}

application/json