Get a project
GEThttps://api.spice.ai/v1/projects/{projectId}
Returns details for a specific project, including its configuration.
Authorizations
AuthorizationstringRequiredBearer <token>. Authentication lists the tokens it accepts.
Path parameters
projectIdintegerRequiredThe ID of the project
Header parameters
X-Org-NamestringThe 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(400org_assertion_requiredotherwise).- Pattern:
^[A-Za-z0-9._-]{1,255}$
- Pattern:
Responses
200Project details with configurationapplication/json
idintegernamestringkindstringResolved project hosting model
- Allowed values:
managed,standalone,byoc
- Allowed values:
descriptionstringvisibilitystring- Allowed values:
public,private
- Allowed values:
created_atstring (date-time)cluster_namestring | nullResolved dedicated cluster name; null for projects not assigned to a dedicated cluster.
endpointstring | nullThe data-plane endpoint the project connects to, or null before a standalone instance is attached.
production_branchstringapi_keystringDeprecatedDeprecated. Use the API Keys endpoints instead.
tagsmap of stringforked_fromobject | nullThe project this project was forked from, while that project is live in the same organization. Null for a project that was not created as a fork.
2 properties
idintegerRequiredID of the source project
namestringRequiredName of the source project
paused_atstring (date-time) | nullTimestamp when the project was paused; null while running
configobject10 properties
spicepodobjectimage_tagstringRuntime image tag
update_channelstring | nullUpdate channel for the runtime, or null when Spice operates this project's runtime updates.
- Allowed values:
stable,preview,nightly
- Allowed values:
versionstringSemver range for the runtime version (e.g. 1.x, 2.x)
replicasintegerresourcesobject | nullResource requests and limits for the project container
2 properties
limitsobject3 properties
cpustringWhole-number vCPU limit, or '-' for no CPU limit
memorystringMemory limit in Gi (for example, 16Gi)
ephemeral-storagestring
requestsobject2 properties
cpustringCPU request. Minimum 100 millicores (for example, 100m or 0.1).
memorystringMemory request. Minimum 192Mi.
executorobject | nullExecutor container configuration
3 properties
replicasintegerNumber of executor replicas
resourcesobjectResource requests and limits for the executor container
2 properties
limitsobject3 properties
cpustringWhole-number vCPU limit, or '-' for no CPU limit
memorystringMemory limit in Gi (for example, 16Gi)
ephemeral-storagestring
requestsobject2 properties
cpustringCPU request. Minimum 100 millicores (for example, 100m or 0.1).
memorystringMemory request. Minimum 192Mi.
storage_size_gbnumber | null
regionstring | nullServer-resolved region; null before a standalone instance is attached.
storage_size_gbnumber | nullstorage_claim_size_gbnumberDeprecatedDeprecated. Use storage_size_gb instead.
401Unauthorized
403Insufficient scope
404Project not found
500Internal server error
curl "https://api.spice.ai/v1/projects/<projectId>" \
-H "Authorization: Bearer <token>"GET /v1/projects/<projectId> HTTP/1.1
Host: api.spice.ai
Authorization: Bearer <token>{
"id": 0,
"name": "string",
"kind": "managed",
"description": "string",
"visibility": "public",
"created_at": "2026-01-01T00:00:00Z",
"cluster_name": "string",
"endpoint": "string",
"production_branch": "string",
"api_key": "string",
"tags": {},
"forked_from": {
"id": 0,
"name": "string"
},
"paused_at": "2026-01-01T00:00:00Z",
"config": {
"spicepod": {},
"image_tag": "string",
"update_channel": "stable",
"version": "string",
"replicas": 0,
"resources": {
"limits": {
"cpu": "string",
"memory": "string",
"ephemeral-storage": "string"
},
"requests": {
"cpu": "string",
"memory": "string"
}
},
"executor": {
"replicas": 0,
"resources": {
"limits": {
"cpu": "string",
"memory": "string",
"ephemeral-storage": "string"
},
"requests": {
"cpu": "string",
"memory": "string"
}
},
"storage_size_gb": 0
},
"region": "string",
"storage_size_gb": 0,
"storage_claim_size_gb": 0
}
}application/json
No response body
No response body
No response body
No response body
GEThttps://api.spice.ai/v1/orgs/{orgId}/projects/{projectId}
The org is orgId in the path. Returns details for a specific project, including its configuration.
Authorizations
AuthorizationstringRequiredBearer <token>. Authentication lists the tokens it accepts.
Path parameters
orgIdintegerRequiredThe org id from GET /v1/orgs
- Minimum:
1
- Minimum:
projectIdintegerRequiredThe ID of the project
Header parameters
X-Org-NamestringWhen 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}$
- Pattern:
Responses
200Project details with configurationapplication/json
idintegernamestringkindstringResolved project hosting model
- Allowed values:
managed,standalone,byoc
- Allowed values:
descriptionstringvisibilitystring- Allowed values:
public,private
- Allowed values:
created_atstring (date-time)cluster_namestring | nullResolved dedicated cluster name; null for projects not assigned to a dedicated cluster.
endpointstring | nullThe data-plane endpoint the project connects to, or null before a standalone instance is attached.
production_branchstringapi_keystringDeprecatedDeprecated. Use the API Keys endpoints instead.
tagsmap of stringforked_fromobject | nullThe project this project was forked from, while that project is live in the same organization. Null for a project that was not created as a fork.
2 properties
idintegerRequiredID of the source project
namestringRequiredName of the source project
paused_atstring (date-time) | nullTimestamp when the project was paused; null while running
configobject10 properties
spicepodobjectimage_tagstringRuntime image tag
update_channelstring | nullUpdate channel for the runtime, or null when Spice operates this project's runtime updates.
- Allowed values:
stable,preview,nightly
- Allowed values:
versionstringSemver range for the runtime version (e.g. 1.x, 2.x)
replicasintegerresourcesobject | nullResource requests and limits for the project container
2 properties
limitsobject3 properties
cpustringWhole-number vCPU limit, or '-' for no CPU limit
memorystringMemory limit in Gi (for example, 16Gi)
ephemeral-storagestring
requestsobject2 properties
cpustringCPU request. Minimum 100 millicores (for example, 100m or 0.1).
memorystringMemory request. Minimum 192Mi.
executorobject | nullExecutor container configuration
3 properties
replicasintegerNumber of executor replicas
resourcesobjectResource requests and limits for the executor container
2 properties
limitsobject3 properties
cpustringWhole-number vCPU limit, or '-' for no CPU limit
memorystringMemory limit in Gi (for example, 16Gi)
ephemeral-storagestring
requestsobject2 properties
cpustringCPU request. Minimum 100 millicores (for example, 100m or 0.1).
memorystringMemory request. Minimum 192Mi.
storage_size_gbnumber | null
regionstring | nullServer-resolved region; null before a standalone instance is attached.
storage_size_gbnumber | nullstorage_claim_size_gbnumberDeprecatedDeprecated. Use storage_size_gb instead.
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
500Internal server error
curl "https://api.spice.ai/v1/orgs/<orgId>/projects/<projectId>" \
-H "Authorization: Bearer <token>"GET /v1/orgs/<orgId>/projects/<projectId> HTTP/1.1
Host: api.spice.ai
Authorization: Bearer <token>{
"id": 0,
"name": "string",
"kind": "managed",
"description": "string",
"visibility": "public",
"created_at": "2026-01-01T00:00:00Z",
"cluster_name": "string",
"endpoint": "string",
"production_branch": "string",
"api_key": "string",
"tags": {},
"forked_from": {
"id": 0,
"name": "string"
},
"paused_at": "2026-01-01T00:00:00Z",
"config": {
"spicepod": {},
"image_tag": "string",
"update_channel": "stable",
"version": "string",
"replicas": 0,
"resources": {
"limits": {
"cpu": "string",
"memory": "string",
"ephemeral-storage": "string"
},
"requests": {
"cpu": "string",
"memory": "string"
}
},
"executor": {
"replicas": 0,
"resources": {
"limits": {
"cpu": "string",
"memory": "string",
"ephemeral-storage": "string"
},
"requests": {
"cpu": "string",
"memory": "string"
}
},
"storage_size_gb": 0
},
"region": "string",
"storage_size_gb": 0,
"storage_claim_size_gb": 0
}
}application/json
No response body
No response body
No response body
No response body
No response body
GEThttps://api.spice.ai/v1/apps/{appId}Deprecated
Legacy alias of /v1/projects/{projectId} — projects were previously called apps. Returns details for a specific project, including its configuration.
Authorizations
AuthorizationstringRequiredBearer <token>. Authentication lists the tokens it accepts.
Path parameters
appIdintegerRequiredThe ID of the project
Header parameters
X-Org-NamestringThe 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(400org_assertion_requiredotherwise).- Pattern:
^[A-Za-z0-9._-]{1,255}$
- Pattern:
Responses
200Project details with configurationapplication/json
idintegernamestringkindstringResolved project hosting model
- Allowed values:
managed,standalone,byoc
- Allowed values:
descriptionstringvisibilitystring- Allowed values:
public,private
- Allowed values:
created_atstring (date-time)cluster_namestring | nullResolved dedicated cluster name; null for projects not assigned to a dedicated cluster.
endpointstring | nullThe data-plane endpoint the project connects to, or null before a standalone instance is attached.
production_branchstringapi_keystringDeprecatedDeprecated. Use the API Keys endpoints instead.
tagsmap of stringforked_fromobject | nullThe project this project was forked from, while that project is live in the same organization. Null for a project that was not created as a fork.
2 properties
idintegerRequiredID of the source project
namestringRequiredName of the source project
paused_atstring (date-time) | nullTimestamp when the project was paused; null while running
configobject10 properties
spicepodobjectimage_tagstringRuntime image tag
update_channelstring | nullUpdate channel for the runtime, or null when Spice operates this project's runtime updates.
- Allowed values:
stable,preview,nightly
- Allowed values:
versionstringSemver range for the runtime version (e.g. 1.x, 2.x)
replicasintegerresourcesobject | nullResource requests and limits for the project container
2 properties
limitsobject3 properties
cpustringWhole-number vCPU limit, or '-' for no CPU limit
memorystringMemory limit in Gi (for example, 16Gi)
ephemeral-storagestring
requestsobject2 properties
cpustringCPU request. Minimum 100 millicores (for example, 100m or 0.1).
memorystringMemory request. Minimum 192Mi.
executorobject | nullExecutor container configuration
3 properties
replicasintegerNumber of executor replicas
resourcesobjectResource requests and limits for the executor container
2 properties
limitsobject3 properties
cpustringWhole-number vCPU limit, or '-' for no CPU limit
memorystringMemory limit in Gi (for example, 16Gi)
ephemeral-storagestring
requestsobject2 properties
cpustringCPU request. Minimum 100 millicores (for example, 100m or 0.1).
memorystringMemory request. Minimum 192Mi.
storage_size_gbnumber | null
regionstring | nullServer-resolved region; null before a standalone instance is attached.
storage_size_gbnumber | nullstorage_claim_size_gbnumberDeprecatedDeprecated. Use storage_size_gb instead.
401Unauthorized
403Insufficient scope
404Project not found
500Internal server error
OpenAPIapi.spice.ai/openapi.json
curl "https://api.spice.ai/v1/apps/<appId>" \
-H "Authorization: Bearer <token>"GET /v1/apps/<appId> HTTP/1.1
Host: api.spice.ai
Authorization: Bearer <token>{
"id": 0,
"name": "string",
"kind": "managed",
"description": "string",
"visibility": "public",
"created_at": "2026-01-01T00:00:00Z",
"cluster_name": "string",
"endpoint": "string",
"production_branch": "string",
"api_key": "string",
"tags": {},
"forked_from": {
"id": 0,
"name": "string"
},
"paused_at": "2026-01-01T00:00:00Z",
"config": {
"spicepod": {},
"image_tag": "string",
"update_channel": "stable",
"version": "string",
"replicas": 0,
"resources": {
"limits": {
"cpu": "string",
"memory": "string",
"ephemeral-storage": "string"
},
"requests": {
"cpu": "string",
"memory": "string"
}
},
"executor": {
"replicas": 0,
"resources": {
"limits": {
"cpu": "string",
"memory": "string",
"ephemeral-storage": "string"
},
"requests": {
"cpu": "string",
"memory": "string"
}
},
"storage_size_gb": 0
},
"region": "string",
"storage_size_gb": 0,
"storage_claim_size_gb": 0
}
}application/json
No response body
No response body
No response body
No response body