Usage and Billing

The Ocalt Query.

Ocalt measures use in a single unit: the Ocalt query (OcaltQL query). Storage aside, nothing else on the platform is rationed. There is no ceiling on machines, subdomains, domains, databases, files, sessions or shares, and every plan, Free included, can use every part of Ocalt. Understanding the query is therefore understanding everything Ocalt charges for.

What a query is

An Ocalt query is one complete run of a script. A script may be a single line or several hundred; it may read one file or write a thousand, query a database, drive a browser, render an image or command a machine. However much it does, one run is one query.

This is deliberate. Ocalt does not charge by the statement, the second or the byte, so a script can be written to do a whole task at once without its author counting steps. The most economical way to use Ocalt is the natural one: put the work for a task in one script.

How queries are spent

Because a query is a run of a script, the question is always what started a run. Each of the following starts one, and costs one query:

A small number of operations carry a charge of their own, listed below, because each creates something lasting or opens something that others can use.

The daily allowance

Every plan includes a number of queries each day:

PlanQueries each day
Free100
Starter1,000
Pro10,000
Enterprise100,000
Syndicate Starter1,000,000
Syndicate Pro10,000,000
Syndicate Max100,000,000
Syndicate Max B1,000,000,000

The day is counted in Coordinated Universal Time (UTC). The allowance returns at midnight UTC, which is 02:00 in South Africa. An allowance that is not used does not carry over to the next day.

Query credits

Query credits are queries bought outright, separately from any plan. A one-time purchase of $5 adds 1,000 query credits, and credits may be bought on any plan, as often as needed.

When both the day's allowance and your credits are exhausted, a new run is refused with the response 429 Too Many Requests and the message Query Limit Reached. Nothing else is refused for reasons of usage. The refusal ends when the allowance returns at midnight UTC, or as soon as credits are added.

Operations with their own charge

The following operations are charged in addition to the query of the run that performs them:

OperationQueries
Each application package you generate64
Each mailbox you create10
Each font you build or update5, plus 1 for each character
Each subdomain you add10
Each custom domain you add10
Each network mapping you create10
Each tunnel, served file or served folder you open25
Each visit to a tunnel, served file or served folder address1
Each live screen feed you open25
Each live transcode stream you start25, plus 25 for each further 24 hours it runs
Each audio or video bridge room you create25
Each WebAssembly service you publish1
Each streaming link made for an audio or video file1
Each connection to an audio or video bridge1
Each simulation solved, topology optimised or motion simulated25
Each 3D scene rendered25
Each started minute of video or audio produced by an export, transcode, caption, stabilise or timeline render1
Each presentation exported as a video or GIF10
Each headless browser session10
Each page read by OCR2
Each PDF document created2
Each map rendered or route calculated2

How these charges are made

A charge of more than one query is made in a single step, before the operation runs. It is drawn first from what remains of the day's allowance and then, for any remainder, from your query credits. If the two together cannot cover it, nothing is spent: the operation does not run, and the script is told why. A charge is never left half paid.

The run that performs the operation is still one query in its own right. A script that does nothing but create a mailbox therefore costs eleven queries: one for the run and ten for the mailbox. A script that creates two mailboxes and a subdomain costs thirty-one.

What is never counted

Worked examples

What happensQueries
One script that reads a spreadsheet, updates a database and emails a report1
A page of your website that runs a script, visited 500 times in a day500
A scheduled job that runs every hour, for one day24
The same job running every minute, for one day1,440
One script that creates a subdomain and a mailbox for a new customer21
One script that generates an application package65

Most of the cost of a busy account comes from what runs without anyone sending it: pages that run scripts, frequent jobs and watches. Choosing the longest interval that still serves its purpose, and serving pages that rarely change as ordinary files, are the most effective ways to use fewer queries.

Seeing your usage

Every Ocalt app shows the day's usage against your allowance, and its menu shows your query credit balance, with links to buy more credits or move to a larger plan. Your account dashboard shows the same figures. For the plans themselves, see Pricing; for a full course on queries, with exercises, see Queries and OcaltQL.