How billing works
One prepaid balance for every app and agent, with every charge in plain words.
opencloudport is prepaid. Each workspace has one balance; every app and every agent in it draws from that balance. There are no plans and no seats.
Usage is charged at the providers' own prices, with nothing added. Our fee is on adding funds instead: 5.5% of each top-up, and never less than $0.80.
Add funds
On the Billing page, choose Add funds and pay by card. Owners and admins can add funds and see billing.
The whole amount you choose goes on your balance. The fee is added on top and shown before you pay: 5.5% of the amount, or $0.80 if that's more (it is below about $14.55). Adding $100 costs $105.50; adding $10 costs $10.80.
Creating apps is free. Two things need a positive balance before they start: adding a service, and starting a sandbox. Everything already running keeps running as usage is measured.
What's measured
Each service is counted by what it actually does. The Billing page shows each one in these words, per month, and the usage API can add it up by app, by day, or by your own customers.
| What | What counts | Meter (in the API) |
|---|---|---|
| Compute | ||
| Requests | Each page view or API call your apps answered. | workers.requests |
| Processing time | Time your code spent working. Waiting on the network doesn’t count. | workers.cpu_ms |
| Databases | ||
| Database reads | Rows your apps looked through. | d1.rows_read |
| Database writes | Rows added, changed or deleted. | d1.rows_written |
| Database size | How much your databases hold, on average this month. | d1.storage |
| File storage | ||
| Stored files | How much your files take up, on average this month. | r2.storage |
| File uploads and changes | Uploading, copying or listing files. | r2.class_a_ops |
| File downloads | Each time a file was read or downloaded. | r2.class_b_ops |
| Emails sent | Every email your apps sent. | email.sent |
| Sandboxes | ||
| Tiny sandboxes | Time they were running (1/16 CPU, 256 MB memory). Asleep or stopped is free. | sandboxes.lite_ms |
| Small sandboxes | Time they were running (¼ CPU, 1 GB memory). Asleep or stopped is free. | sandboxes.basic_ms |
| Medium sandboxes | Time they were running (½ CPU, 4 GB memory). Asleep or stopped is free. | sandboxes.standard_1_ms |
| Large sandboxes | Time they were running (1 CPU, 6 GB memory). Asleep or stopped is free. | sandboxes.standard_2_ms |
| Extra large sandboxes | Time they were running (2 CPUs, 8 GB memory). Asleep or stopped is free. | sandboxes.standard_3_ms |
| Huge sandboxes | Time they were running (4 CPUs, 12 GB memory). Asleep or stopped is free. | sandboxes.standard_4_ms |
Things that are asleep, stopped or idle cost nothing to run: Compute while nobody visits, sandboxes while asleep or stopped. What you keep (database size, stored files) is measured as an average over the month.
Prices
Every price is the provider's own published price, converted to the units we measure in. When a provider changes its price, ours changes the same day; usage already charged keeps the price it was charged at. You pay from the first unit: providers' free allowances are shared across our whole account, so they aren't passed on.
Compute · Cloudflare Workers for Platforms
| Requests | $0.30 per million | workers.requests |
| Processing time | $0.02 per million milliseconds | workers.cpu_ms |
Databases · Cloudflare D1
| Database reads | $0.001 per million rows | d1.rows_read |
| Database writes | $1.00 per million rows | d1.rows_written |
| Database size | $0.75 per GB a month | d1.storage |
File storage · Cloudflare R2
| Stored files | $0.015 per GB a month | r2.storage |
| File uploads and changes | $4.50 per million | r2.class_a_ops |
| File downloads | $0.36 per million | r2.class_b_ops |
Email · Cloudflare Email Service
| Emails sent | $0.35 per 1,000 emails | email.sent |
Sandboxes · Cloudflare Containers
| Tiny sandboxes | $0.0073 an hour | sandboxes.lite_ms |
| Small sandboxes | $0.028 an hour | sandboxes.basic_ms |
| Medium sandboxes | $0.074 an hour | sandboxes.standard_1_ms |
| Large sandboxes | $0.129 an hour | sandboxes.standard_2_ms |
| Extra large sandboxes | $0.22 an hour | sandboxes.standard_3_ms |
| Huge sandboxes | $0.401 an hour | sandboxes.standard_4_ms |
Prices checked 2026-10-21. The fee for adding funds: 5.5% (at least $0.80).
Sandboxes are priced as if their CPU is busy the whole time they run, because only running time can be measured; the provider bills CPU only while it's working, so this is the most a sandbox can cost.
The same prices are in the prices API and in the get_prices tool for agents.
When the balance runs low
| When | What happens |
|---|---|
| The balance drops below your threshold (default $5, set on the Billing page) | Owners and admins get one "running low" email. It's sent again only after the balance has gone back above the threshold. |
| The balance reaches $0 | An "out of credit" email. New apps, services and sandboxes are refused. A 24-hour countdown starts. |
| Still at $0 after 24 hours | The workspace's apps pause, and a "paused" email goes out. |
| Funds are added | Paused apps start again on their own, within minutes. |
Nothing is ever deleted for lack of credit. Paused apps keep all their data. Storage is still measured while paused, so the balance can go below $0.
The balance API shows where a workspace is in this: out_of_credit_since, pauses_at and paused_at.
Limits per app and per customer
You don't have to wait for the balance to run out. On an app's Settings tab:
- Pause this app stops it straight away: visitors see "This app is paused.", its sandboxes stop, and nothing new runs until you resume it. Nothing is deleted.
- Monthly spending limit: when the app has spent that much in a calendar month, it pauses until the month turns or you raise the limit. Its Usage tab shows how close it is.
If your apps serve your own customers, tag their usage with end_user and give each a monthly limit under End users on the Billing page (or one default for everyone). At their limit, new emails and sandboxes for that customer are refused; your apps keep serving. See the API.
opencloudport