Application API

2026-10-20

Application API

(待译)

Application hosts your Workers: upload code and static assets as a version, deploy it, and serve it on its own *.praxisusercontent.com URL (use the url that publish returns). Concepts and behavior follow Cloudflare Workers (Workers, versions, deployments, static assets with _headers/_redirects, secrets, bindings), so Cloudflare experience applies. Differences: there are no Service Bindings, so applications call each other with fetch on their public URL; a deployment runs exactly one version at 100 percent (no gradual rollout); changing a secret creates a new version and deploys it. Application runtime data belongs in its own d1, kv or r2 components; Database, File and Knowledge are shared content stores that applications can read through public APIs, not private runtime storage. Start with praxis.application.publish, which uploads, versions and deploys in one call.

基础地址

加载中…

鉴权

Authorization: Bearer <PRAXIS_API_KEY>

端点

获取账号子域

GET /application/v1/subdomain

Return the account subdomain used in every Worker URL. A default is created on first use.

支持状态: supported

响应

HTTP 200

Success

application/json

名称类型说明
subdomainstringAccount subdomain, 8–32 lowercase letters and digits; part of every Worker URL.

修改账号子域

PUT /application/v1/subdomain

Change the account subdomain. Every Worker moves to the new address at once; old addresses stop resolving.

支持状态: supported

请求体 (application/json)

必填: true

名称类型说明
subdomainstringAccount subdomain, 8–32 lowercase letters and digits; part of every Worker URL.
{
  "type": "object",
  "required": [
    "subdomain"
  ],
  "properties": {
    "subdomain": {
      "type": "string",
      "description": "Account subdomain, 8–32 lowercase letters and digits; part of every Worker URL.",
      "pattern": "^[a-z0-9]{8,32}$",
      "example": "acme1234"
    }
  }
}

响应

HTTP 200

Success

application/json

名称类型说明
subdomainstringAccount subdomain, 8–32 lowercase letters and digits; part of every Worker URL.

列出 Worker

GET /application/v1/workers

List Workers in your account. Filter by status or by label with label.<key>=<value>.

支持状态: supported

参数

名称位置类型必填说明
cursorquerystringfalsenext_cursor from the previous page.
limitqueryintegerfalseItems per page.
statusquerystringfalseWorker status: draft (no deployment yet), active (serving), suspended (stopped by an administrator), deleted (soft-deleted, restorable for 7 days), purging (resources being removed), purged (gone).

响应

HTTP 200

Success

application/json

名称类型说明
dataarray<object>Workers.
data[].idstringWorker ID, prefixed wkr_.
data[].namestringUnique per account; lowercase letters, digits and single hyphens.
data[].subdomainobjectPublic address of the Worker.
data[].tagsarray<string>Up to 8 tags.
data[].observabilityobjectObservability settings.
data[].logpushbooleanAlways false: unlike Cloudflare, Logpush is not offered.
data[].created_onstringWhen the Worker was created.
data[].updated_onstringWhen the Worker last changed.
data[].deployed_onstring | nullWhen the current deployment became active; null before the first deployment.
data[].praxisobjectPlatform fields: lifecycle status, labels, and soft-delete timestamps.
next_cursorstring | nullCursor for the next page; null on the last page.

创建 Worker

POST /application/v1/workers

Create a Worker. It serves nothing until a version is deployed.

支持状态: supported

请求体 (application/json)

必填: true

名称类型说明
namestringWorker name, unique in your account: 3–40 lowercase letters, digits or hyphens, starting and ending with a letter or digit, with no two hyphens in a row. The names www, api, admin, app, canary, canary-probe, status, docs and console are reserved.
tagsarray<string>Up to 8 tags.
observabilityobjectObservability settings.
observability.enabledbooleanCollect logs.
subdomainobjectSubdomain settings.
subdomain.enabledbooleanServe the Worker on its public subdomain (default true).
praxisobjectPraxis settings.
praxis.labelsobjectUp to 16 labels.
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Worker name, unique in your account: 3–40 lowercase letters, digits or hyphens, starting and ending with a letter or digit, with no two hyphens in a row. The names www, api, admin, app, canary, canary-probe, status, docs and console are reserved.",
      "pattern": "^(?!(?:www|api|admin|app|canary|canary-probe|status|docs|console)$)(?!.*--)[a-z0-9][a-z0-9-]{1,38}[a-z0-9]$",
      "example": "my-app"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 8,
      "description": "Up to 8 tags."
    },
    "observability": {
      "type": "object",
      "description": "Observability settings.",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Collect logs."
        }
      }
    },
    "subdomain": {
      "type": "object",
      "description": "Subdomain settings.",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Serve the Worker on its public subdomain (default true)."
        }
      }
    },
    "praxis": {
      "type": "object",
      "description": "Praxis settings.",
      "required": [],
      "properties": {
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Up to 16 labels."
        }
      }
    }
  }
}

响应

HTTP 200

Success

application/json

名称类型说明
idstringWorker ID, prefixed wkr_.
namestringUnique per account; lowercase letters, digits and single hyphens.
subdomainobjectPublic address of the Worker.
subdomain.enabledbooleanWhether the public subdomain serves this Worker.
subdomain.urlstringPublic URL of the Worker.
tagsarray<string>Up to 8 tags.
observabilityobjectObservability settings.
observability.enabledbooleanWhether logs are collected.
logpushbooleanAlways false: unlike Cloudflare, Logpush is not offered.
created_onstringWhen the Worker was created.
updated_onstringWhen the Worker last changed.
deployed_onstring | nullWhen the current deployment became active; null before the first deployment.
praxisobjectPlatform fields: lifecycle status, labels, and soft-delete timestamps.
praxis.statusstringWorker status: draft (no deployment yet), active (serving), suspended (stopped by an administrator), deleted (soft-deleted, restorable for 7 days), purging (resources being removed), purged (gone).
praxis.current_deployment_idstring | nullID of the active deployment.
praxis.labelsobjectUp to 16 key-value labels for your own grouping.
praxis.deleted_onstring | nullWhen the Worker was deleted.
praxis.purge_onstring | nullWhen a deleted Worker is permanently removed.
praxis.suspended_reasonstring | nullWhy an administrator suspended the Worker.

获取 Worker

GET /application/v1/workers/{worker_id}

Get a Worker. expand returns related objects in the same response.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).
expandquerystringfalseComma-separated: versions, deployments, components, secrets, grants.

响应

HTTP 200

Success

application/json

名称类型说明
idstringWorker ID, prefixed wkr_.
namestringUnique per account; lowercase letters, digits and single hyphens.
subdomainobjectPublic address of the Worker.
subdomain.enabledbooleanWhether the public subdomain serves this Worker.
subdomain.urlstringPublic URL of the Worker.
tagsarray<string>Up to 8 tags.
observabilityobjectObservability settings.
observability.enabledbooleanWhether logs are collected.
logpushbooleanAlways false: unlike Cloudflare, Logpush is not offered.
created_onstringWhen the Worker was created.
updated_onstringWhen the Worker last changed.
deployed_onstring | nullWhen the current deployment became active; null before the first deployment.
praxisobjectPlatform fields: lifecycle status, labels, and soft-delete timestamps.
praxis.statusstringWorker status: draft (no deployment yet), active (serving), suspended (stopped by an administrator), deleted (soft-deleted, restorable for 7 days), purging (resources being removed), purged (gone).
praxis.current_deployment_idstring | nullID of the active deployment.
praxis.labelsobjectUp to 16 key-value labels for your own grouping.
praxis.deleted_onstring | nullWhen the Worker was deleted.
praxis.purge_onstring | nullWhen a deleted Worker is permanently removed.
praxis.suspended_reasonstring | nullWhy an administrator suspended the Worker.
expandedobjectPresent only for the members named in expand.
expanded.versionsobjectVersions of the Worker, newest first.
expanded.deploymentsobjectDeployments of the Worker, newest first.
expanded.componentsarray<object>Components of the Worker.
expanded.secretsarray<object>Secrets of the Worker (names only).
expanded.grantsarray<object>Grants of the Worker.

更新 Worker

PATCH /application/v1/workers/{worker_id}

Change name, tags, observability, subdomain or labels. Omitted fields stay unchanged.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).

请求体 (application/json)

必填: true

名称类型说明
namestringWorker name, unique in your account: 3–40 lowercase letters, digits or hyphens, starting and ending with a letter or digit, with no two hyphens in a row. The names www, api, admin, app, canary, canary-probe, status, docs and console are reserved.
tagsarray<string>Replaces the tags.
observabilityobjectObservability settings.
observability.enabledbooleanCollect logs.
subdomainobjectSubdomain settings.
subdomain.enabledbooleanServe the Worker on its public subdomain.
praxisobjectPraxis settings.
praxis.labelsobjectReplaces the labels.
{
  "type": "object",
  "required": [],
  "properties": {
    "name": {
      "type": "string",
      "description": "Worker name, unique in your account: 3–40 lowercase letters, digits or hyphens, starting and ending with a letter or digit, with no two hyphens in a row. The names www, api, admin, app, canary, canary-probe, status, docs and console are reserved.",
      "pattern": "^(?!(?:www|api|admin|app|canary|canary-probe|status|docs|console)$)(?!.*--)[a-z0-9][a-z0-9-]{1,38}[a-z0-9]$",
      "example": "my-app"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 8,
      "description": "Replaces the tags."
    },
    "observability": {
      "type": "object",
      "description": "Observability settings.",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Collect logs."
        }
      }
    },
    "subdomain": {
      "type": "object",
      "description": "Subdomain settings.",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Serve the Worker on its public subdomain."
        }
      }
    },
    "praxis": {
      "type": "object",
      "description": "Praxis settings.",
      "required": [],
      "properties": {
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Replaces the labels."
        }
      }
    }
  }
}

响应

HTTP 200

Success

application/json

名称类型说明
idstringWorker ID, prefixed wkr_.
namestringUnique per account; lowercase letters, digits and single hyphens.
subdomainobjectPublic address of the Worker.
subdomain.enabledbooleanWhether the public subdomain serves this Worker.
subdomain.urlstringPublic URL of the Worker.
tagsarray<string>Up to 8 tags.
observabilityobjectObservability settings.
observability.enabledbooleanWhether logs are collected.
logpushbooleanAlways false: unlike Cloudflare, Logpush is not offered.
created_onstringWhen the Worker was created.
updated_onstringWhen the Worker last changed.
deployed_onstring | nullWhen the current deployment became active; null before the first deployment.
praxisobjectPlatform fields: lifecycle status, labels, and soft-delete timestamps.
praxis.statusstringWorker status: draft (no deployment yet), active (serving), suspended (stopped by an administrator), deleted (soft-deleted, restorable for 7 days), purging (resources being removed), purged (gone).
praxis.current_deployment_idstring | nullID of the active deployment.
praxis.labelsobjectUp to 16 key-value labels for your own grouping.
praxis.deleted_onstring | nullWhen the Worker was deleted.
praxis.purge_onstring | nullWhen a deleted Worker is permanently removed.
praxis.suspended_reasonstring | nullWhy an administrator suspended the Worker.

删除 Worker

DELETE /application/v1/workers/{worker_id}

Soft-delete a Worker. Unlike Cloudflare, deletion is reversible: it stops serving at once and can be restored with RestoreWorker for 7 days, after which it is purged.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).

响应

HTTP 200

Success

application/json

名称类型说明
idstringWorker ID, prefixed wkr_.
namestringUnique per account; lowercase letters, digits and single hyphens.
subdomainobjectPublic address of the Worker.
subdomain.enabledbooleanWhether the public subdomain serves this Worker.
subdomain.urlstringPublic URL of the Worker.
tagsarray<string>Up to 8 tags.
observabilityobjectObservability settings.
observability.enabledbooleanWhether logs are collected.
logpushbooleanAlways false: unlike Cloudflare, Logpush is not offered.
created_onstringWhen the Worker was created.
updated_onstringWhen the Worker last changed.
deployed_onstring | nullWhen the current deployment became active; null before the first deployment.
praxisobjectPlatform fields: lifecycle status, labels, and soft-delete timestamps.
praxis.statusstringWorker status: draft (no deployment yet), active (serving), suspended (stopped by an administrator), deleted (soft-deleted, restorable for 7 days), purging (resources being removed), purged (gone).
praxis.current_deployment_idstring | nullID of the active deployment.
praxis.labelsobjectUp to 16 key-value labels for your own grouping.
praxis.deleted_onstring | nullWhen the Worker was deleted.
praxis.purge_onstring | nullWhen a deleted Worker is permanently removed.
praxis.suspended_reasonstring | nullWhy an administrator suspended the Worker.

恢复 Worker

POST /application/v1/workers/{worker_id}/restore

Bring back a soft-deleted Worker within 7 days of deletion, with its versions and deployments. Cloudflare has no equivalent.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).

响应

HTTP 200

Success

application/json

名称类型说明
idstringWorker ID, prefixed wkr_.
namestringUnique per account; lowercase letters, digits and single hyphens.
subdomainobjectPublic address of the Worker.
subdomain.enabledbooleanWhether the public subdomain serves this Worker.
subdomain.urlstringPublic URL of the Worker.
tagsarray<string>Up to 8 tags.
observabilityobjectObservability settings.
observability.enabledbooleanWhether logs are collected.
logpushbooleanAlways false: unlike Cloudflare, Logpush is not offered.
created_onstringWhen the Worker was created.
updated_onstringWhen the Worker last changed.
deployed_onstring | nullWhen the current deployment became active; null before the first deployment.
praxisobjectPlatform fields: lifecycle status, labels, and soft-delete timestamps.
praxis.statusstringWorker status: draft (no deployment yet), active (serving), suspended (stopped by an administrator), deleted (soft-deleted, restorable for 7 days), purging (resources being removed), purged (gone).
praxis.current_deployment_idstring | nullID of the active deployment.
praxis.labelsobjectUp to 16 key-value labels for your own grouping.
praxis.deleted_onstring | nullWhen the Worker was deleted.
praxis.purge_onstring | nullWhen a deleted Worker is permanently removed.
praxis.suspended_reasonstring | nullWhy an administrator suspended the Worker.

列出版本

GET /application/v1/workers/{worker_id}/versions

List the versions of a Worker, newest first, to pick one to deploy or inspect. Page with next_cursor.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).
cursorquerystringfalsenext_cursor from the previous page.
limitqueryintegerfalseItems per page.

响应

HTTP 200

Success

application/json

名称类型说明
dataarray<object>Versions, newest first.
data[].idstringVersion ID, prefixed ver_.
data[].numberintegerPer-Worker counter (v1, v2, …).
data[].created_onstringWhen the version was created.
data[].main_modulestring | nullEntry module name, or null for a version containing only static assets.
data[].modulesarray<object>Module names and types; content is never returned.
data[].compatibility_datestringWorkers runtime compatibility date.
data[].compatibility_flagsarray<string>Runtime compatibility flags.
data[].bindingsarray<object>Bindings; secret values are never returned.
data[].assetsobject | nullStatic asset settings.
data[].annotationsobjectFree-form annotations.
data[].author_idstring | nullWho created the version.
data[].sourcestringUpload origin, e.g. api or sdk.
data[].urlsarray<string>Preview URLs of this version.
data[].praxisobjectPlatform fields: owning Worker, build source, script size and asset manifest summary.
next_cursorstring | nullCursor for the next page; null on the last page.

创建版本

POST /application/v1/workers/{worker_id}/versions

Upload code and bindings as a new version; a version serves nothing until deployed. Set deploy true to create the pending deployment in the same call. Rejected binding types return UNSUPPORTED.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).

请求体 (application/json)

必填: true

名称类型说明
deploybooleanAlso create a deployment of this version (own face only; on the compatible face use the deploy query parameter).
main_modulestringEntry module name; must equal the name of one of modules. Defaults to the first module; omit it when there are no modules.
modulesarray<object>Inline modules.
modules[].namestringModule file name.
modules[].content_typestringModule content type: application/javascript+module, text/javascript, application/javascript, application/wasm, text/plain, application/octet-stream, application/json or application/x-python. Omit it to use application/javascript+module.
modules[].content_base64stringModule content, base64.
compatibility_datestringWorkers runtime compatibility date: a real date in YYYY-MM-DD form, not later than today (UTC). Defaults to today (UTC).
compatibility_flagsarray<string>Runtime compatibility flags.
bindingsarray<object>Bindings of this version.
bindings[].typestringBinding type; see the binding description for what each needs and which are unavailable.
bindings[].namestringName of the binding in the Worker's env: 1–64 letters, digits or underscores, not starting with a digit; unique within a version.
assetsobjectStatic assets. Pass either manifest (every file already uploaded through an upload session) or jwt (the completion token from the last upload batch), not both.
assets.configobjectRouting settings for the static assets.
assets.manifestobjectMap of static file path to content hash and byte size. Paths start with /; the same hash must declare the same size. The root paths /_headers and /_redirects are response-header and redirect rule files and are not served as assets; same-named files in subdirectories are ordinary assets. _headers allows at most 100 rules and 2000 characters per line (whitespace included); _redirects allows at most 2000 static and 100 dynamic rules and 1000 characters per rule (whitespace included), and rules after the first dynamic rule count toward the dynamic quota. Exceeding a limit makes CreateVersion return INVALID_PARAMS, with violations.field pointing at the manifest entry.
assets.jwtstringCompletion token from the last assets/upload batch; it carries this version's manifest, so do not also pass manifest.
annotationsobjectFree-form annotations.
annotations.workers/messagestringVersion message.
annotations.workers/tagstringVersion tag.
praxisobjectPraxis settings.
praxis.sourceobjectBuild source: {type:inline}, {type:machine, path} or {type:file, file_id}.
{
  "type": "object",
  "required": [],
  "properties": {
    "deploy": {
      "type": "boolean",
      "description": "Also create a deployment of this version (own face only; on the compatible face use the deploy query parameter)."
    },
    "main_module": {
      "type": "string",
      "description": "Entry module name; must equal the name of one of modules. Defaults to the first module; omit it when there are no modules.",
      "example": "index.js"
    },
    "modules": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/application-Module"
      },
      "description": "Inline modules."
    },
    "compatibility_date": {
      "type": "string",
      "description": "Workers runtime compatibility date: a real date in YYYY-MM-DD form, not later than today (UTC). Defaults to today (UTC).",
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "example": "2026-01-01"
    },
    "compatibility_flags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Runtime compatibility flags."
    },
    "bindings": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/application-Binding"
      },
      "description": "Bindings of this version."
    },
    "assets": {
      "type": "object",
      "description": "Static assets. Pass either manifest (every file already uploaded through an upload session) or jwt (the completion token from the last upload batch), not both.",
      "required": [],
      "properties": {
        "config": {
          "$ref": "#/components/schemas/application-AssetsConfig",
          "description": "Routing settings for the static assets."
        },
        "manifest": {
          "$ref": "#/components/schemas/application-AssetManifest"
        },
        "jwt": {
          "type": "string",
          "description": "Completion token from the last assets/upload batch; it carries this version's manifest, so do not also pass manifest."
        }
      }
    },
    "annotations": {
      "type": "object",
      "description": "Free-form annotations.",
      "required": [],
      "properties": {
        "workers/message": {
          "type": "string",
          "description": "Version message."
        },
        "workers/tag": {
          "type": "string",
          "description": "Version tag."
        }
      }
    },
    "praxis": {
      "type": "object",
      "description": "Praxis settings.",
      "required": [],
      "properties": {
        "source": {
          "type": "object",
          "additionalProperties": true,
          "description": "Build source: {type:inline}, {type:machine, path} or {type:file, file_id}."
        }
      }
    }
  }
}

响应

HTTP 200

Success

application/json

名称类型说明
versionobjectThe version that was created.
version.idstringVersion ID, prefixed ver_.
version.numberintegerPer-Worker counter (v1, v2, …).
version.created_onstringWhen the version was created.
version.main_modulestring | nullEntry module name, or null for a version containing only static assets.
version.modulesarray<object>Module names and types; content is never returned.
version.compatibility_datestringWorkers runtime compatibility date.
version.compatibility_flagsarray<string>Runtime compatibility flags.
version.bindingsarray<object>Bindings; secret values are never returned.
version.assetsobject | nullStatic asset settings.
version.annotationsobjectFree-form annotations.
version.author_idstring | nullWho created the version.
version.sourcestringUpload origin, e.g. api or sdk.
version.urlsarray<string>Preview URLs of this version.
version.praxisobjectPlatform fields: owning Worker, build source, script size and asset manifest summary.
deploymentobject | nullThe pending deployment; null unless deploy was requested.
deployment.idstringDeployment ID, prefixed dep_.
deployment.created_onstringWhen the deployment was created.
deployment.sourcestringOrigin: api, sdk, console or rollback.
deployment.strategystringRollout strategy.
deployment.versionsarray<object>Exactly one version at 100 percent.
deployment.annotationsobjectFree-form annotations.
deployment.author_emailstring | nullWho created the deployment.
deployment.praxisobjectPlatform fields: deployments run asynchronously, so track status, progress and error here.

获取版本

GET /application/v1/workers/{worker_id}/versions/{version_id}

Get one version of a Worker with its modules, bindings and asset settings; secret values are never returned.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).
version_idpathstringtrueVersion ID (ver_…).

响应

HTTP 200

Success

application/json

名称类型说明
idstringVersion ID, prefixed ver_.
numberintegerPer-Worker counter (v1, v2, …).
created_onstringWhen the version was created.
main_modulestring | nullEntry module name, or null for a version containing only static assets.
modulesarray<object>Module names and types; content is never returned.
modules[].namestringModule name.
modules[].content_typestringMIME type.
compatibility_datestringWorkers runtime compatibility date.
compatibility_flagsarray<string>Runtime compatibility flags.
bindingsarray<object>Bindings; secret values are never returned.
bindings[].typestringBinding type; see the binding description for what each needs and which are unavailable.
bindings[].namestringName of the binding in the Worker's env: 1–64 letters, digits or underscores, not starting with a digit; unique within a version.
assetsobject | nullStatic asset settings.
assets.configobjectRouting settings for the static assets.
annotationsobjectFree-form annotations.
annotations.workers/messagestringVersion message.
annotations.workers/tagstringVersion tag.
author_idstring | nullWho created the version.
sourcestringUpload origin, e.g. api or sdk.
urlsarray<string>Preview URLs of this version.
praxisobjectPlatform fields: owning Worker, build source, script size and asset manifest summary.
praxis.worker_idstringOwning Worker.
praxis.sourceobjectWhere the build came from: inline, machine (a tar.gz on a session machine) or file (an uploaded tar.gz).
praxis.size_bytesintegerScript size in bytes.
praxis.assets_manifestobject | nullStatic asset manifest summary.

列出部署

GET /application/v1/workers/{worker_id}/deployments

List the deployments of a Worker, newest first; the first active one is serving. Page with next_cursor.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).
cursorquerystringfalsenext_cursor from the previous page.
limitqueryintegerfalseItems per page.

响应

HTTP 200

Success

application/json

名称类型说明
dataarray<object>Deployments, newest first.
data[].idstringDeployment ID, prefixed dep_.
data[].created_onstringWhen the deployment was created.
data[].sourcestringOrigin: api, sdk, console or rollback.
data[].strategystringRollout strategy.
data[].versionsarray<object>Exactly one version at 100 percent.
data[].annotationsobjectFree-form annotations.
data[].author_emailstring | nullWho created the deployment.
data[].praxisobjectPlatform fields: deployments run asynchronously, so track status, progress and error here.
next_cursorstring | nullCursor for the next page; null on the last page.

创建部署

POST /application/v1/workers/{worker_id}/deployments

Deploy one version to serve the Worker. Unlike Cloudflare, a deployment holds exactly one version at 100 percent (no gradual rollout), so strategy must be percentage. Deployment is asynchronous; poll the deployment until praxis.status is active or failed.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).

请求体 (application/json)

必填: true

名称类型说明
strategystringRollout strategy.
versionsarray<object>Exactly one version at 100 percent.
versions[].version_idstringVersion to deploy.
versions[].percentagenumberMust be 100.
forcebooleanOwn face only; on the compatible face use the force query parameter.
annotationsobjectFree-form annotations.
annotations.workers/messagestringDeployment message.
{
  "type": "object",
  "required": [
    "strategy",
    "versions"
  ],
  "properties": {
    "strategy": {
      "type": "string",
      "description": "Rollout strategy.",
      "enum": [
        "percentage"
      ],
      "x-enum-descriptions": {
        "percentage": "Split traffic by percentage; only a single version at 100 is accepted."
      },
      "example": "percentage"
    },
    "versions": {
      "type": "array",
      "description": "Exactly one version at 100 percent.",
      "items": {
        "type": "object",
        "required": [
          "version_id",
          "percentage"
        ],
        "properties": {
          "version_id": {
            "type": "string",
            "description": "Version to deploy."
          },
          "percentage": {
            "type": "number",
            "description": "Must be 100."
          }
        }
      }
    },
    "force": {
      "type": "boolean",
      "description": "Own face only; on the compatible face use the force query parameter."
    },
    "annotations": {
      "type": "object",
      "description": "Free-form annotations.",
      "required": [],
      "properties": {
        "workers/message": {
          "type": "string",
          "description": "Deployment message."
        }
      }
    }
  }
}

响应

HTTP 200

Success

application/json

名称类型说明
idstringDeployment ID, prefixed dep_.
created_onstringWhen the deployment was created.
sourcestringOrigin: api, sdk, console or rollback.
strategystringRollout strategy.
versionsarray<object>Exactly one version at 100 percent.
versions[].version_idstringDeployed version.
versions[].percentagenumberTraffic share; always 100.
annotationsobjectFree-form annotations.
annotations.workers/messagestringDeployment message.
annotations.workers/triggered_bystringWhat triggered the deployment.
author_emailstring | nullWho created the deployment.
praxisobjectPlatform fields: deployments run asynchronously, so track status, progress and error here.
praxis.worker_idstringOwning Worker.
praxis.statusstringDeployment status: pending (queued), uploading (pushing components and assets), activating (switching traffic), active (serving), superseded (replaced by a later deployment), failed (see error), cancelled (replaced before it finished).
praxis.progressobject | nullUpload progress.
praxis.errorobject | nullWhy the deployment failed.
praxis.finished_onstring | nullWhen the deployment reached a final status.

获取部署

GET /application/v1/workers/{worker_id}/deployments/{deployment_id}

Get one deployment with its status and upload progress; poll this after CreateDeployment until praxis.status is active or failed.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).
deployment_idpathstringtrueID from the id of CreateDeployment or ListDeployments, prefixed dep_.

响应

HTTP 200

Success

application/json

名称类型说明
idstringDeployment ID, prefixed dep_.
created_onstringWhen the deployment was created.
sourcestringOrigin: api, sdk, console or rollback.
strategystringRollout strategy.
versionsarray<object>Exactly one version at 100 percent.
versions[].version_idstringDeployed version.
versions[].percentagenumberTraffic share; always 100.
annotationsobjectFree-form annotations.
annotations.workers/messagestringDeployment message.
annotations.workers/triggered_bystringWhat triggered the deployment.
author_emailstring | nullWho created the deployment.
praxisobjectPlatform fields: deployments run asynchronously, so track status, progress and error here.
praxis.worker_idstringOwning Worker.
praxis.statusstringDeployment status: pending (queued), uploading (pushing components and assets), activating (switching traffic), active (serving), superseded (replaced by a later deployment), failed (see error), cancelled (replaced before it finished).
praxis.progressobject | nullUpload progress.
praxis.errorobject | nullWhy the deployment failed.
praxis.finished_onstring | nullWhen the deployment reached a final status.

列出组件

GET /application/v1/workers/{worker_id}/components

List the databases, namespaces and buckets this Worker owns.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).

响应

HTTP 200

Success

application/json

名称类型说明
[].idstringComponent ID, prefixed cmp_.
[].worker_idstringOwning Worker.
[].bindingstringBinding name in the Worker's env.
[].typestringComponent type: d1 database, kv namespace or r2 bucket.
[].statusstringComponent status: provisioning, ready, failed, deleting or deleted.
[].location_hintstringAlways apac.
[].usageobject | nullStorage usage.
[].usage.bytesintegerStored bytes.
[].usage.itemsintegerStored items.
[].created_onstringWhen the component was created.

列出密钥

GET /application/v1/workers/{worker_id}/secrets

List secret names and sources. Values are never returned.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).

响应

HTTP 200

Success

application/json

名称类型说明
[].worker_idstringOwning Worker.
[].namestringSecret name, as seen by the Worker's env.
[].sourceobject{type: value} for a stored value, or {type: vault, vault_id, secret} for a vault reference. Values are never returned.
[].updated_onstringWhen the secret last changed.

写入密钥

PUT /application/v1/workers/{worker_id}/secrets/{name}

Create or replace a secret by value or vault reference. Unlike Cloudflare, this derives a new version from the current one and deploys it, so the change is live only once that deployment is active.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).
namepathstringtrueSecret name as seen in the Worker's env: 1–64 letters, digits or underscores, not starting with a digit.

请求体 (application/json)

必填: true

名称类型说明
sourceobject{type: value, text} stores a value; {type: vault, vault_id, secret} references a vault secret.
{
  "type": "object",
  "required": [
    "source"
  ],
  "properties": {
    "source": {
      "type": "object",
      "additionalProperties": true,
      "description": "{type: value, text} stores a value; {type: vault, vault_id, secret} references a vault secret."
    }
  }
}

响应

HTTP 200

Success

application/json

名称类型说明
secretobjectThe secret after the write; its value is not returned.
secret.worker_idstringOwning Worker.
secret.namestringSecret name, as seen by the Worker's env.
secret.sourceobject{type: value} for a stored value, or {type: vault, vault_id, secret} for a vault reference. Values are never returned.
secret.updated_onstringWhen the secret last changed.
deploymentobjectThe deployment of the version derived from this change.
deployment.idstringDeployment ID, prefixed dep_.
deployment.created_onstringWhen the deployment was created.
deployment.sourcestringOrigin: api, sdk, console or rollback.
deployment.strategystringRollout strategy.
deployment.versionsarray<object>Exactly one version at 100 percent.
deployment.annotationsobjectFree-form annotations.
deployment.author_emailstring | nullWho created the deployment.
deployment.praxisobjectPlatform fields: deployments run asynchronously, so track status, progress and error here.

删除密钥

DELETE /application/v1/workers/{worker_id}/secrets/{name}

Delete a secret. Unlike Cloudflare, this derives a new version without it and deploys that version.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).
namepathstringtrueSecret name as seen in the Worker's env: 1–64 letters, digits or underscores, not starting with a digit.

响应

HTTP 200

Success

application/json

名称类型说明
deploymentobjectThe deployment of the version derived without this secret.
deployment.idstringDeployment ID, prefixed dep_.
deployment.created_onstringWhen the deployment was created.
deployment.sourcestringOrigin: api, sdk, console or rollback.
deployment.strategystringRollout strategy.
deployment.versionsarray<object>Exactly one version at 100 percent.
deployment.annotationsobjectFree-form annotations.
deployment.author_emailstring | nullWho created the deployment.
deployment.praxisobjectPlatform fields: deployments run asynchronously, so track status, progress and error here.

列出授权

GET /application/v1/workers/{worker_id}/grants

List resources this Worker's platform token may access.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).

响应

HTTP 200

Success

application/json

名称类型说明
[].idstringGrant ID, prefixed grt_.
[].worker_idstringOwning Worker.
[].resourceobjectGranted resource.
[].resource.typestringResource type.
[].resource.idstringResource ID.
[].accessstringAccess level.
[].created_onstringWhen the grant was created.

创建授权

POST /application/v1/workers/{worker_id}/grants

Let this Worker's platform token access one of your databases, folders or knowledge bases.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).

请求体 (application/json)

必填: true

名称类型说明
resourceobjectResource to grant.
resource.typestringResource type.
resource.idstringResource ID in your account.
accessstringAccess level.
{
  "type": "object",
  "required": [
    "resource",
    "access"
  ],
  "properties": {
    "resource": {
      "type": "object",
      "description": "Resource to grant.",
      "required": [
        "type",
        "id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "Resource type.",
          "enum": [
            "database",
            "folder",
            "knowledge"
          ],
          "x-enum-descriptions": {
            "database": "A database.",
            "folder": "A file folder.",
            "knowledge": "A knowledge base."
          },
          "example": "database"
        },
        "id": {
          "type": "string",
          "description": "Resource ID in your account.",
          "example": "db_01example"
        }
      }
    },
    "access": {
      "type": "string",
      "description": "Access level.",
      "enum": [
        "read",
        "read_write"
      ],
      "x-enum-descriptions": {
        "read": "Read only.",
        "read_write": "Read and write."
      },
      "example": "read"
    }
  }
}

响应

HTTP 200

Success

application/json

名称类型说明
idstringGrant ID, prefixed grt_.
worker_idstringOwning Worker.
resourceobjectGranted resource.
resource.typestringResource type.
resource.idstringResource ID.
accessstringAccess level.
created_onstringWhen the grant was created.

删除授权

DELETE /application/v1/workers/{worker_id}/grants/{grant_id}

Revoke a grant so this Worker's platform token can no longer access the granted resource. Takes effect for new requests at once.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).
grant_idpathstringtrueGrant ID (grt_…).

响应

HTTP 200

Success

application/json

名称类型说明
deletedbooleanAlways true.

列出事件

GET /application/v1/workers/{worker_id}/events

List lifecycle events of a Worker in sequence order.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).
after_seqqueryintegerfalseReturn events after this sequence number.
limitqueryintegerfalseItems per page.

响应

HTTP 200

Success

application/json

名称类型说明
dataarray<object>Events in sequence order.
data[].seqintegerMonotonic sequence within the Worker.
data[].idstringEvent ID.
data[].typestringEvent type, e.g. deployment.status_active.
data[].processed_atstringWhen the event was recorded.
data[].worker_idstringWorker the event belongs to.
data[].version_idstringRelated version.
data[].deployment_idstringRelated deployment.
data[].component_idstringRelated component.
data[].detailobjectEvent-specific detail.
next_cursorstring | nullCursor for the next page; null on the last page.

创建静态资源上传会话

POST /application/v1/workers/{worker_id}/assets-upload-session

Declare the static file manifest. The answer lists the hashes still missing, grouped into upload batches, and an upload token.

支持状态: supported

参数

名称位置类型必填说明
worker_idpathstringtrueWorker ID (wkr_…).

请求体 (application/json)

必填: true

名称类型说明
manifestobjectMap of static file path to content hash and byte size. Paths start with /; the same hash must declare the same size. The root paths /_headers and /_redirects are response-header and redirect rule files and are not served as assets; same-named files in subdirectories are ordinary assets. _headers allows at most 100 rules and 2000 characters per line (whitespace included); _redirects allows at most 2000 static and 100 dynamic rules and 1000 characters per rule (whitespace included), and rules after the first dynamic rule count toward the dynamic quota. Exceeding a limit makes CreateVersion return INVALID_PARAMS, with violations.field pointing at the manifest entry.
{
  "type": "object",
  "required": [
    "manifest"
  ],
  "properties": {
    "manifest": {
      "$ref": "#/components/schemas/application-AssetManifest"
    }
  }
}

响应

HTTP 200

Success

application/json

名称类型说明
jwtstringUpload token, valid for one hour.
bucketsarray<array<string>>Hashes still missing, grouped into upload batches.

上传静态资源

POST /application/v1/assets/upload

Upload one batch: files maps hash to base64 content. The last batch returns the completion token.

支持状态: supported

请求体 (application/json)

必填: true

名称类型说明
jwtstringUpload token from the session.
filesobjectHash → base64 file content.
{
  "type": "object",
  "required": [
    "jwt",
    "files"
  ],
  "properties": {
    "jwt": {
      "type": "string",
      "description": "Upload token from the session."
    },
    "files": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "Hash → base64 file content."
    }
  }
}

响应

HTTP 200

Success

application/json

名称类型说明
jwtstring | nullCompletion token after the last batch; null for earlier batches.