Tools and operations

Deployment licenses

Licenses for self-hosted installations.

Every self-hosted installation needs a license token, whether its workers run in AWS microVMs or, for evaluation, on the same computer. One license covers one installation. You can buy licenses yourself on the website, or Ephemeral can grant your organization an allowance under a separate agreement.

How licensing works

  1. An owner or admin opens Deployments in the customer portal, chooses monthly or yearly billing, the number of installations and any extra blocks of runs, accepts the Self-Hosted License Agreement and pays with Stripe. The license is active as soon as the payment completes. Organizations with a negotiated agreement receive an allowance from Ephemeral instead, and skip this step.
  2. The owner or admin registers each installation under Deployments with a name. Ephemeral creates its machine ID and license token and shows the token once, with a Download license file button that saves the token, the machine ID and the deployment ID.
  3. The installation is configured with EPHEMERAL_LICENSE_TOKEN, EPHEMERAL_MACHINE_ID and EPHEMERAL_CUSTOMER_URL=https://ephemer.al. It validates the token with Ephemeral at startup and before running work. The same deployment ID and token sign in to the image registry (see self-hosting).

Registering a deployment is a license operation only. It does not create, start or stop any infrastructure; you install and update that yourself, as described in self-hosting.

Plans and what a license includes

ComponentMonthlyYearly
Base plan: 1 installation and 100,000 runs a month$5,000$50,000
Each additional installation$2,500$25,000
Each additional 100,000 runs a month$1,000$10,000

The base plan includes one installation and 100,000 runs a month. Add installations and blocks of 100,000 runs as you need them: for example, the base plan with 2 additional installations and 3 additional blocks is 3 installations sharing 400,000 runs a month, for $5,000 + 2 × $2,500 + 3 × $1,000 = $13,000 a month ($130,000 a year).

Runs are pooled: the monthly runs belong to your organization and are shared by all of its installations, however they are split between them. Every installation allows 20 runs at once, with every update and email support. Larger allowances are available under a separate agreement: contact us. Prices exclude taxes. The subscription renews automatically until you cancel it.

Changing, cancelling and failed payments

  • Manage subscription on the Deployments page opens the Stripe billing portal, where owners and admins update the card, download invoices and cancel.
  • Cancelling takes effect at the end of the period you paid for. Installations keep working until then.
  • Changing the plan: Change your plan on the Deployments page changes the number of installations and extra blocks of runs. Stripe prorates the change for the rest of the period, and a subscription on the earlier per-license price is converted to the base plan with extra items.
  • Removing installations is refused while more installations are registered than the new number: deactivate some first. Removing blocks of runs lowers the shared monthly runs at once.
  • A failed payment does not stop your installations at once. Stripe retries the payment, and the license stays valid until 7 days after the end of the last paid period. If payment is still missing, the license expires and installations stop validating. Paying later restores it.
  • When a license ends, token and registry sign-in stop working. Your data was never with Ephemeral and stays in your own installation.

Check your entitlement

GET/v1/organizations/{id}/license
Any member can read it. Returns entitlement (null when your organization has none) and its current use, the subscription (status, interval, quantity, paid_through) of a purchased license, and the sales information the website uses to offer a purchase.
max_deploymentsinteger
How many installations can hold an active registration: the one in the base plan plus the additional ones.
max_concurrencyinteger
Most runs each installation may execute at once.
max_runs_per_monthinteger
Runs a month. When pooled is true, the runs of all installations together; otherwise, the runs each installation may start per calendar month.
pooledboolean
Whether the runs are shared by all installations (a purchased subscription) or counted per installation (an allowance granted by Ephemeral).
pooled_runs_per_monthinteger
The shared runs a month when pooled is true, otherwise 0.
runs_used_this_monthinteger
Runs started this month across all installations, as the installations last reported them.
expires_attimestamp
When the entitlement ends.
statusstring
active or expired.
sourcestring
subscription for a license you bought, operator for an allowance granted by Ephemeral.
active_deploymentsinteger
Registrations that are not revoked.
available_deploymentsinteger
How many more you can register. Zero once expired.

The subscription also reports installations, run_blocks (the extra blocks of runs) and pooled_runs_per_month.

POST/v1/organizations/{id}/license/plan
Owner or admin, signed in. Changes the installations and extra blocks of runs of your subscription in place, with the same billing interval and prorated by Stripe, and updates the entitlement at once. Returns 409 when fewer installations are requested than are active.
Body
installationsintegerrequired
Installations in total, 1 to 100, including the one in the base plan.
extra_run_blocksinteger
Extra blocks of 100,000 runs a month, 0 to 100.

Register an installation

POST/v1/organizations/{id}/deployments
Owner or admin, signed in. Registers an installation and returns its token.
Body
namestringrequired
A label for the installation, up to 200 characters.
machine_idstring
Optional, up to 200 characters. Leave it out and Ephemeral generates one, such as mch_3f9a0c1e7b2d4a6c8e10. The token only validates together with this exact value.
201 Created
{
  "id": "dep_2c8f0e6a4b1d9375c0e8a2f4b6d1c3e5",
  "name": "production-eu",
  "machine_id": "mch_3f9a0c1e7b2d4a6c8e10",
  "token": "lic_…",
  "max_concurrency": 4,
  "max_runs_per_month": 20000,
  "expires_at": "2027-09-30T00:00:00Z"
}
The token is shown once
Store it in the installation's private configuration. If it is lost, deactivate the installation and register again to get a new token.

Registration fails with 403 when your organization has no active license and with 409 when all allowed deployments are registered.

List and deactivate

GET/v1/organizations/{id}/deployments
Lists registrations with id, name, machine_id, max_concurrency, max_runs_per_month, expires_at and revoked.
DELETE/v1/organizations/{id}/deployments/{deployment_id}
Deactivates the installation (the portal's Deactivate). Its next validation fails, so it stops starting runs within 30 seconds and can no longer sign in to the registry. Its license becomes free for another installation; the subscription does not change. This cannot be undone.

What the installation enforces

CheckEffect
StartupThe engine does not start without a valid token and machine ID, or if its configured concurrency exceeds the license.
Before each runThe license is checked again, using a cached result for up to 30 seconds. If it is no longer valid, the run fails.
Monthly runsWhen the month's allowance is used up, POST /v1/runs returns 402 until the next month. With a subscription, the allowance is the pool shared by all installations (see below).

How the pool is enforced: each installation reports the runs it started this month whenever it validates its license (at most every 30 seconds while it starts runs). Ephemeral answers with a limit equal to that installation's own runs this month plus what is left of the pool, so the organization as a whole stays within its allowance. Installations refresh every 30 seconds, so the pool can be exceeded briefly, by at most the runs started across all installations in about a minute. An installation running a release from before pooling does not report; it receives an equal share of the pool.

The limits that apply are the lower of the values on the registration and the current entitlement, so a reduced entitlement takes effect without re-registering. When Ephemeral renews an entitlement, existing registrations get the new expiry and limits and keep their tokens. Revoking the entitlement revokes all of its registrations.

Hosted runs and trusted local development do not need a license.
© 2026 EphemeralProduced by erni.works
esc

Nothing matches “”.