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 answers 400 before it checks your credential.
  • Scope. An API key must carry the apps scope (or *). Without it the call fails with 403 and api key missing scope: apps. A key for another tenant answers 403 with api key not valid for this tenant. A Bearer token is checked for tenant membership instead (403 with not 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}, where code is 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 take queries this 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

OperationWhat it does
GET /v1/appsLists the apps in your tenant. search filters by name.
POST /v1/appsCreates 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/apps requires functionId, name and runtime.
  • PUT /v1/apps/{functionId} requires name.

Deployments

OperationWhat it does
GET /v1/apps/{functionId}/deploymentsLists the deployment history of the app.
POST /v1/apps/{functionId}/deploymentsUploads a new deployment. Returns 202; the build runs after the upload.
POST /v1/apps/{functionId}/deployments/duplicateCopies an existing deployment's source under a new deployment ID and builds it again. Returns 202.
POST /v1/apps/{functionId}/deployments/templateCreates a deployment from a template in the template catalogue. Returns 202.
POST /v1/apps/{functionId}/deployments/vcsCreates 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}/downloadDownloads the deployment archive (200, application/gzip). A Range header returns part of it (206).
PATCH /v1/apps/{functionId}/deployments/{deploymentId}/statusCancels a deployment whose build is still running. A build that is already ready or failed cannot be cancelled.
PATCH /v1/apps/{functionId}/deploymentSets the active deployment. The chosen deployment must already be ready.
  • GET …/download takes type: source or output.
  • POST …/deployments is multipart/form-data. It requires code (your source directory as a gzipped tar archive, .tar.gz, sent as the file part) and activate (activate the deployment when the build finishes).
  • POST …/deployments/duplicate requires deploymentId.
  • POST …/deployments/template requires repository, owner, rootDirectory, type and reference.
  • POST …/deployments/vcs requires type and reference.
  • PATCH …/deployment requires deploymentId.
  • The build validates the app's manifest.json when 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

OperationWhat it does
GET /v1/apps/{functionId}/executionsLists the execution history of the app.
POST /v1/apps/{functionId}/executionsRuns 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. method is one of GET, POST, PUT, PATCH, DELETE, OPTIONS or HEAD (default POST). path defaults to /, body to an empty string, and async to false. Use them to call the app as if from an HTTP request.

Variables

OperationWhat it does
GET /v1/apps/{functionId}/variablesLists the environment variables of the app.
POST /v1/apps/{functionId}/variablesCreates 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 …/variables requires key (up to 255 characters) and value (up to 8192 characters). The app reads them as environment variables at runtime.
  • PUT …/variables/{variableId} requires key.
  • 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

OperationWhat it does
GET /v1/apps/marketplaceLists the apps published to the Marketplace. Filters: search, per_page, page.
POST /v1/apps/marketplace/installInstalls a Marketplace app on your tenant.
GET /v1/apps/{functionId}/marketplace-statusShows whether the app is visible and whether it is published.
POST /v1/apps/{functionId}/publishPublishes the app to the Marketplace. Idempotent.
DELETE /v1/apps/{functionId}/publishRemoves the app from the Marketplace. Existing installs are not affected. Idempotent.
  • POST …/marketplace/install requires owner and name.
  • Publishing needs at least one ready deployment with a registered manifest (otherwise 400), and the manifest's type must be public: a private app answers 409.

Templates, runtimes and specifications

OperationWhat it does
GET /v1/apps/runtimesLists the runtimes an app can use.
GET /v1/apps/specificationsLists the compute specifications (CPU and memory) available to your apps.
GET /v1/apps/templatesLists 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.
  • useCases accepts starter, databases, ai, messaging, utilities, dev-tools and auth.

Usage

OperationWhat it does
GET /v1/apps/usageAggregated usage across all apps in your tenant.
GET /v1/apps/{functionId}/usageUsage for one app.
  • range accepts 24h, 30d or 90d.
Was this page helpful?