Apps API
Reference for the 35 Apps REST operations under /v1/apps — create apps, upload and activate deployments, run executions, manage variables, publish to and install from the Marketplace, and read usage.
The Apps API creates and runs the code behind an app: it creates apps, uploads and activates deployments (versions), runs executions, manages environment variables, publishes an app to the Marketplace and installs Marketplace apps on your tenant, and reads usage. It is for developers who drive those steps from their own pipeline. For a first version, use the CLI: revenexx deploy app does every step in one command. Over REST the usual order is create the app, upload a deployment, activate it, run it, then publish it and install it; the steps are walked through in From manifest to installed.
Before you call it
- Tenant header. Every call needs
X-Revenexx-Tenant. Without it the gateway answers400before it checks your credential. - Scope. An API key must carry the
appsscope (or*). Without it the call fails with403andapi key missing scope: apps. A key for another tenant answers403withapi key not valid for this tenant. A Bearer token is checked for tenant membership instead (403withnot a member of this tenant). - Errors. Gateway errors have the shape
{error, code, message}. Errors from the platform itself are passed through as{message, code, type, version}, wherecodeis the HTTP status as a number. - Array query parameters. Repeat the parameter once per value, for example
?runtimes=…&runtimes=…. The list operations for apps, deployments and executions takequeriesthis way: filters, paging and ordering, each value a JSON object such as{"method":"limit","values":[25]}.
See Authentication and API keys for how to get and send a credential.
Apps
| Operation | What it does |
|---|---|
GET /v1/apps | Lists the apps in your tenant. search filters by name. |
POST /v1/apps | Creates an app. Returns 201. |
GET /v1/apps/{functionId} | Gets one app by its ID. |
PUT /v1/apps/{functionId} | Updates an app: name, runtime, schedule and other settings. Variables have their own operations, below. |
DELETE /v1/apps/{functionId} | Deletes the app and all of its deployments. Returns 204. |
POST /v1/appsrequiresfunctionId,nameandruntime.PUT /v1/apps/{functionId}requiresname.
Deployments
| Operation | What it does |
|---|---|
GET /v1/apps/{functionId}/deployments | Lists the deployment history of the app. |
POST /v1/apps/{functionId}/deployments | Uploads a new deployment. Returns 202; the build runs after the upload. |
POST /v1/apps/{functionId}/deployments/duplicate | Copies an existing deployment's source under a new deployment ID and builds it again. Returns 202. |
POST /v1/apps/{functionId}/deployments/template | Creates a deployment from a template in the template catalogue. Returns 202. |
POST /v1/apps/{functionId}/deployments/vcs | Creates a deployment from the app's connected Git repository. Returns 202. |
GET /v1/apps/{functionId}/deployments/{deploymentId} | Gets one deployment by its ID. |
DELETE /v1/apps/{functionId}/deployments/{deploymentId} | Deletes a deployment. Returns 204. Deleting the active deployment leaves the app with no active deployment, so activate another one first. |
GET /v1/apps/{functionId}/deployments/{deploymentId}/download | Downloads the deployment archive (200, application/gzip). A Range header returns part of it (206). |
PATCH /v1/apps/{functionId}/deployments/{deploymentId}/status | Cancels a deployment whose build is still running. A build that is already ready or failed cannot be cancelled. |
PATCH /v1/apps/{functionId}/deployment | Sets the active deployment. The chosen deployment must already be ready. |
GET …/downloadtakestype:sourceoroutput.POST …/deploymentsismultipart/form-data. It requirescode(your source directory as a gzipped tar archive,.tar.gz, sent as the file part) andactivate(activate the deployment when the build finishes).POST …/deployments/duplicaterequiresdeploymentId.POST …/deployments/templaterequiresrepository,owner,rootDirectory,typeandreference.POST …/deployments/vcsrequirestypeandreference.PATCH …/deploymentrequiresdeploymentId.- The build validates the app's
manifest.jsonwhen the archive contains one. A Git deployment validates and activates only on the app's production branch; a build of another branch skips both. The operation descriptions in the API Explorer still say validation comes later; the build does it today.
Executions
| Operation | What it does |
|---|---|
GET /v1/apps/{functionId}/executions | Lists the execution history of the app. |
POST /v1/apps/{functionId}/executions | Runs the app. Returns 201 for a synchronous run, 202 when async is true or the run is scheduled. |
GET /v1/apps/{functionId}/executions/{executionId} | Gets one execution by its ID. |
DELETE /v1/apps/{functionId}/executions/{executionId} | Deletes an execution record. Returns 204. |
- The execution body has no required fields.
methodis one ofGET,POST,PUT,PATCH,DELETE,OPTIONSorHEAD(defaultPOST).pathdefaults to/,bodyto an empty string, andasynctofalse. Use them to call the app as if from an HTTP request.
Variables
| Operation | What it does |
|---|---|
GET /v1/apps/{functionId}/variables | Lists the environment variables of the app. |
POST /v1/apps/{functionId}/variables | Creates a variable. Returns 201. |
GET /v1/apps/{functionId}/variables/{variableId} | Gets one variable by its ID. |
PUT /v1/apps/{functionId}/variables/{variableId} | Updates a variable. |
DELETE /v1/apps/{functionId}/variables/{variableId} | Deletes a variable. Returns 204. |
POST …/variablesrequireskey(up to 255 characters) andvalue(up to 8192 characters). The app reads them as environment variables at runtime.PUT …/variables/{variableId}requireskey.- A variable can be marked
secret. A secret can be updated or deleted, but only the app itself can read it, during build and at runtime.
Marketplace and publishing
| Operation | What it does |
|---|---|
GET /v1/apps/marketplace | Lists the apps published to the Marketplace. Filters: search, per_page, page. |
POST /v1/apps/marketplace/install | Installs a Marketplace app on your tenant. |
GET /v1/apps/{functionId}/marketplace-status | Shows whether the app is visible and whether it is published. |
POST /v1/apps/{functionId}/publish | Publishes the app to the Marketplace. Idempotent. |
DELETE /v1/apps/{functionId}/publish | Removes the app from the Marketplace. Existing installs are not affected. Idempotent. |
POST …/marketplace/installrequiresownerandname.- Publishing needs at least one
readydeployment with a registered manifest (otherwise400), and the manifest'stypemust bepublic: aprivateapp answers409.
Templates, runtimes and specifications
| Operation | What it does |
|---|---|
GET /v1/apps/runtimes | Lists the runtimes an app can use. |
GET /v1/apps/specifications | Lists the compute specifications (CPU and memory) available to your apps. |
GET /v1/apps/templates | Lists the templates you can start from. Filters: runtimes, useCases, limit (default 25, maximum 5000), offset. |
GET /v1/apps/templates/{templateId} | Gets one template by its ID. |
useCasesacceptsstarter,databases,ai,messaging,utilities,dev-toolsandauth.
Usage
| Operation | What it does |
|---|---|
GET /v1/apps/usage | Aggregated usage across all apps in your tenant. |
GET /v1/apps/{functionId}/usage | Usage for one app. |
rangeaccepts24h,30dor90d.