Quotas & Pricing
A plan buys three things: daily query volume, mounted storage, and execution priority. Nothing else is gated. Every plan, including Free, has access to the entire Ocalt stack and every verb in this documentation. Current plans, as published on ocalt.com/pricing:
| Plan | Price | Queries / day | Mounted storage | Priority |
|---|---|---|---|---|
| Free | $0/mo | 100 | - | - |
| Starter | $12/mo | 1,000 | 8GB | Above Free |
| Pro | $49/mo | 10,000 | 64GB | Above Starter |
| Enterprise | $199/mo | 100,000 | 256GB | Highest standard - priority compute and support |
| Syndicate Starter | $499/mo | 1,000,000 | 512GB | Dedicated servers, white glove |
| Syndicate Pro | $999/mo | 10,000,000 | 1TB | Dedicated servers, white glove |
| Syndicate Max | $2,999/mo | 100,000,000 | 8TB | Dedicated servers, white glove |
| Syndicate Max B | $4,999/mo | 1,000,000,000 | 16TB | Dedicated servers, white glove |
Every plan includes the default 1GB root storage. Mounted storage is an add-on that Free does not carry. Syndicate packages run on dedicated servers rather than the shared execution pool - see ocalt.com/syndicate.
What Counts as a Query
One script execution is one query, however it was triggered:
- A call to
POST /api - A page view of a Site Mode
.oqlfile - static files are free - A SCHEDULE or CRON job firing
- A WATCH poll, and separately its trigger when it fires
- Opening a TUNNEL or a
SERVE, and every visit to the URL it produced - Each connection to an audio/video bridge
Apart from the operations listed below, what a script does inside itself is not counted. One execution that writes a thousand files, drives a browser session, solves a simulation and commands ten machines is one query.
Operations With Their Own Charge
A few operations create something lasting, or open something others can reach, and carry a charge of their own in addition to the query of the execution that performs them:
| Statement | Queries |
|---|---|
APPLICATE (each application package generated) | 64 |
NEW EMAIL ACCOUNT (each mailbox created) | 10 |
SUBDOMAIN ADD (each subdomain added) | 10 |
DOMAIN (each custom domain added) | 10 |
NETWORK MAP (each network mapping created) | 10 |
WEBASSEMBLY SERVE (each service published) | 1 |
| A streaming link for an audio or video file (Video & Audio) | 1 |
A charge of more than one query is made in a single step, before the operation runs: from what remains of the day's allowance first, then from query credits. If the two together cannot cover it, nothing is spent and the statement fails with 429 before doing any work, so a charge is never left half paid. The execution's own query is separate: a script that only creates a mailbox costs 11.
Queries Are the Only Metered Resource
Beyond query volume and the mounted-storage allocation, nothing is rationed by plan. There is no ceiling on machines, subdomains, custom domains, sessions, shares, remembered keys, cached entries, mailboxes or concurrent executions. If a script can express it, your plan permits it - the only question is how many queries it spends.
CACHE entries, REMEMBER keys, PERSISTENT values, databases and job registries are all held inside a reserved area of your own /root, described on Namespace Storage. They are your namespace’s data, counted as your namespace’s usage - not a separate platform allowance with its own cap.Query Credits
A one-time $5 purchase adds 1,000 queries as credits. Credits are drawn on only once the daily allowance is finished, and they do not expire - whatever is unused stays on the account. Available on every plan including Free, repeatable as often as needed, from the account dashboard.
Rate Limiting
Exceeding the daily allowance with no credits remaining returns 429 Too Many Requests. That is the only usage-based refusal on the platform.
Storage Grace Period
Mounted storage is held for 3 days after a downgrade or lapse before it is deleted, and 15 days on Syndicate packages. Settle within that window and the files are retained exactly as they were. Default root storage is unaffected either way.