# Application API (/en/docs/api/native/application)



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.

## Base URL [#base-url]

<ApiBaseDomain prefix="/application/v1" />

## Authentication [#authentication]

Authorization: Bearer \<PRAXIS\_API\_KEY>

## Endpoints [#endpoints]

* [Get account subdomain](/en/docs/api/native/application/getSubdomain) — `GET /application/v1/subdomain`
* [Change account subdomain](/en/docs/api/native/application/putSubdomain) — `PUT /application/v1/subdomain`
* [List Workers](/en/docs/api/native/application/listWorkers) — `GET /application/v1/workers`
* [Create Worker](/en/docs/api/native/application/createWorker) — `POST /application/v1/workers`
* [Get Worker](/en/docs/api/native/application/getWorker) — `GET /application/v1/workers/{worker_id}`
* [Update Worker](/en/docs/api/native/application/updateWorker) — `PATCH /application/v1/workers/{worker_id}`
* [Delete Worker](/en/docs/api/native/application/deleteWorker) — `DELETE /application/v1/workers/{worker_id}`
* [Restore Worker](/en/docs/api/native/application/restoreWorker) — `POST /application/v1/workers/{worker_id}/restore`
* [List versions](/en/docs/api/native/application/listVersions) — `GET /application/v1/workers/{worker_id}/versions`
* [Create version](/en/docs/api/native/application/createVersion) — `POST /application/v1/workers/{worker_id}/versions`
* [Get version](/en/docs/api/native/application/getVersion) — `GET /application/v1/workers/{worker_id}/versions/{version_id}`
* [List deployments](/en/docs/api/native/application/listDeployments) — `GET /application/v1/workers/{worker_id}/deployments`
* [Create deployment](/en/docs/api/native/application/createDeployment) — `POST /application/v1/workers/{worker_id}/deployments`
* [Get deployment](/en/docs/api/native/application/getDeployment) — `GET /application/v1/workers/{worker_id}/deployments/{deployment_id}`
* [List components](/en/docs/api/native/application/listComponents) — `GET /application/v1/workers/{worker_id}/components`
* [List secrets](/en/docs/api/native/application/listSecrets) — `GET /application/v1/workers/{worker_id}/secrets`
* [Put secret](/en/docs/api/native/application/putSecret) — `PUT /application/v1/workers/{worker_id}/secrets/{name}`
* [Delete secret](/en/docs/api/native/application/deleteSecret) — `DELETE /application/v1/workers/{worker_id}/secrets/{name}`
* [List grants](/en/docs/api/native/application/listGrants) — `GET /application/v1/workers/{worker_id}/grants`
* [Create grant](/en/docs/api/native/application/createGrant) — `POST /application/v1/workers/{worker_id}/grants`
* [Delete grant](/en/docs/api/native/application/deleteGrant) — `DELETE /application/v1/workers/{worker_id}/grants/{grant_id}`
* [List events](/en/docs/api/native/application/listEvents) — `GET /application/v1/workers/{worker_id}/events`
* [Create asset upload session](/en/docs/api/native/application/createAssetUploadSession) — `POST /application/v1/workers/{worker_id}/assets-upload-session`
* [Upload assets](/en/docs/api/native/application/uploadAssets) — `POST /application/v1/assets/upload`
