ProvisionDstackAppRequestV2
Request for provisioning a DStack app with automatic resource matching. Most fields are optional and will be automatically determined by the resource matching logic in preflight_dstack_app. Only compose_file and name are required.
Properties
| Name | Type | Description |
|---|---|---|
| compose_file | object | |
| name | string | CVM name (used as hostname): 5-63 chars, must start with letter, can contain letters/numbers/hyphens |
| instance_type | object | |
| vcpu | object | |
| memory | object | |
| disk_size | object | |
| image | object | |
| prefer_dev | object | Prefer dev OS image (True) or non-dev OS image (False). When None, auto-selects based on image name or defaults to dev. |
| teepod_id | object | |
| region | object | |
| listed | boolean | |
| kms_id | object | |
| kms | object | |
| nonce | object | Optional nonce for deterministic app_id generation. When provided, app_id must also be provided. System will verify: app_id == get_create_address(team_wallet, nonce) |
| app_id | object | Optional app_id for manual specification. Required when nonce is provided. Only works with PHALA KMS. |
| env_keys | array | |
| ports | object | |
| encrypted_env | object | |
| user_config | object | |
| hugepages | boolean | |
| pin_numa | boolean | |
| gpus | object | |
| kms_urls | array | |
| gateway_urls | array | |
| experimental_vpc_server_app_id | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/phala/main/json-schema/phala-provision-dstack-app-request-v2-schema.json",
"title": "ProvisionDstackAppRequestV2",
"description": "Request for provisioning a DStack app with automatic resource matching.\n\nMost fields are optional and will be automatically determined by the resource\nmatching logic in preflight_dstack_app. Only compose_file and name are required.",
"x-generated": "2026-10-13",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/phala-cloud-api-openapi.yml#/components/schemas/ProvisionDstackAppRequestV2",
"properties": {
"compose_file": {
"$ref": "#/$defs/AppComposeV2"
},
"name": {
"type": "string",
"title": "Name",
"description": "CVM name (used as hostname): 5-63 chars, must start with letter, can contain letters/numbers/hyphens"
},
"instance_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Instance Type"
},
"vcpu": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Vcpu"
},
"memory": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Memory"
},
"disk_size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Disk Size"
},
"image": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Image"
},
"prefer_dev": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Prefer Dev",
"description": "Prefer dev OS image (True) or non-dev OS image (False). When None, auto-selects based on image name or defaults to dev."
},
"teepod_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Teepod Id"
},
"region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Region"
},
"listed": {
"type": "boolean",
"title": "Listed",
"default": true
},
"kms_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Kms Id"
},
"kms": {
"anyOf": [
{
"$ref": "#/$defs/KmsType"
},
{
"type": "null"
}
],
"default": "phala"
},
"nonce": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Nonce",
"description": "Optional nonce for deterministic app_id generation. When provided, app_id must also be provided. System will verify: app_id == get_create_address(team_wallet, nonce)"
},
"app_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "App Id",
"description": "Optional app_id for manual specification. Required when nonce is provided. Only works with PHALA KMS."
},
"env_keys": {
"items": {
"type": "string"
},
"type": "array",
"title": "Env Keys"
},
"ports": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/PortMapping"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Ports"
},
"encrypted_env": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Encrypted Env"
},
"user_config": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "User Config"
},
"hugepages": {
"type": "boolean",
"title": "Hugepages",
"default": false
},
"pin_numa": {
"type": "boolean",
"title": "Pin Numa",
"default": false
},
"gpus": {
"anyOf": [
{
"$ref": "#/$defs/GpuConfig"
},
{
"type": "null"
}
]
},
"kms_urls": {
"items": {
"type": "string"
},
"type": "array",
"title": "Kms Urls"
},
"gateway_urls": {
"items": {
"type": "string"
},
"type": "array",
"title": "Gateway Urls"
},
"experimental_vpc_server_app_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Experimental Vpc Server App Id"
}
},
"type": "object",
"required": [
"compose_file",
"name"
],
"$defs": {
"AppComposeV2": {
"properties": {
"allowed_envs": {
"items": {
"type": "string"
},
"type": "array",
"title": "Allowed Envs"
},
"bash_script": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Bash Script"
},
"default_gateway_domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Default Gateway Domain"
},
"docker_compose_file": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Docker Compose File"
},
"init_script": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Init Script"
},
"kms_enabled": {
"type": "boolean",
"title": "Kms Enabled",
"default": true
},
"local_key_provider_enabled": {
"type": "boolean",
"title": "Local Key Provider Enabled",
"default": false
},
"manifest_version": {
"type": "integer",
"title": "Manifest Version",
"default": 2
},
"name": {
"type": "string",
"title": "Name"
},
"no_instance_id": {
"type": "boolean",
"title": "No Instance Id",
"default": false
},
"pre_launch_script": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pre Launch Script"
},
"public_logs": {
"type": "boolean",
"title": "Public Logs",
"default": true
},
"public_sysinfo": {
"type": "boolean",
"title": "Public Sysinfo",
"default": true
},
"public_tcbinfo": {
"type": "boolean",
"title": "Public Tcbinfo",
"default": true
},
"runner": {
"type": "string",
"title": "Runner",
"default": "docker-compose"
},
"gateway_enabled": {
"type": "boolean",
"title": "Gateway Enabled",
"default": true
},
"features": {
"items": {
"type": "string"
},
"type": "array",
"title": "Features",
"default": [
"kms",
"tproxy-net"
]
},
"salt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Salt"
},
"secure_time": {
"type": "boolean",
"title": "Secure Time",
"default": false
},
"storage_fs": {
"anyOf": [
{
"type": "string",
"const": "ext4"
},
{
"type": "string",
"const": "zfs"
},
{
"type": "null"
}
],
"title": "Storage Fs",
"default": "zfs"
},
"tproxy_enabled": {
"type": "boolean",
"title": "Tproxy Enabled",
"default": true
}
},
"type": "object",
"required": [
"name"
],
"title": "AppComposeV2"
},
"GpuConfig": {
"properties": {
"gpus": {
"items": {
"$ref": "#/$defs/GpuSpec"
},
"type": "array",
"title": "Gpus"
},
"attach_mode": {
"anyOf": [
{
"type": "string",
"enum": [
"listed",
"all"
]
},
{
"type": "string"
}
],
"title": "Attach Mode",
"default": "listed"
}
},
"type": "object",
"required": [
"gpus"
],
"title": "GpuConfig"
},
"GpuSpec": {
"properties": {
"slot": {
"type": "string",
"title": "Slot"
},
"product_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Product Id"
}
},
"type": "object",
"required": [
"slot"
],
"title": "GpuSpec"
},
"KmsType": {
"type": "string",
"enum": [
"phala",
"ethereum",
"base",
"legacy"
],
"title": "KmsType"
},
"PortMapping": {
"properties": {
"protocol": {
"type": "string",
"title": "Protocol"
},
"host_port": {
"type": "integer",
"title": "Host Port"
},
"vm_port": {
"type": "integer",
"title": "Vm Port"
},
"host_address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Host Address"
}
},
"type": "object",
"required": [
"protocol",
"host_port",
"vm_port"
],
"title": "PortMapping"
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/phala-provision-dstack-app-request-v2"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.