Causilo API
Send a table with the answers filled in and a table with the answers missing. Causilo returns one prediction for each row that is missing an answer. There is no training step and nothing to tune.
This page is the short version: one call, the data contract, and what it
costs. The reference has everything else, and
the cookbook has scripts you can run as they
are. This page and the reference are rendered from the
settings the service at https://api.nums.world enforces, so their numbers are the
ones you will be held to. The cookbook pages show output recorded on the date
each one names; check anything you are about to build against
GET https://api.nums.world/limits.
1. Install and make one call
pip install causilo-client
import pandas as pd from causilo_client import Causilo cx = Causilo("https://api.nums.world", token="csl_...") context = pd.DataFrame({ "region": ["EU", "EU", "US", "US", "APAC", "APAC"], "plan": ["pro", "free", "pro", "free", "pro", "free"], "spend": [120.0, 0.0, 340.0, 12.0, 90.0, 4.0], "renewed": ["yes", "no", "yes", "no", "yes", "no"], }) query = pd.DataFrame({ "region": ["EU", "APAC"], "plan": ["pro", "free"], "spend": [200.0, 1.0], }) print(cx.predict(context, query, target="renewed", model="causilo-clf"))
The same call with its output, on a real dataset, is the quickstart. Every parameter it accepts is in the reference.
2. What the two tables are
The context carries the target column; the query does not. Feature columns appear in both, with the same names in the same order. The model reads them by position, so a query whose columns are in a different order is refused with a 422 naming both lists rather than answered.
Two models are served: causilo-clf for classification and
causilo-reg for regression.
Causilo vs XGBoost
measures what the absence of tuning costs you in accuracy against a tree you
would have tuned.
3. Cells and limits
Nothing is invoiced. An account comes with an allowance of cells, and when it runs out the service stops answering until it resets โ there is no bill and no overage. The numbers below are that allowance.
| Cells per month | 25,000,000 |
| Cells per day | 6,250,000 |
| Requests per minute | 60 |
| Requests per hour | 1,500 |
A cell is one value in a table you send โ context and query rows together, target column excluded. A stored context still counts its rows on every call that names it.
The hourly limit is the one a steady caller meets first: sixty a minute sustained would be three thousand six hundred an hour.
Two rules are worth knowing before you build a loop. A request that fails does not count. A request you stop waiting for counts in full, because hanging up does not reach the machine running the prediction and a call that has started cannot be cancelled.
GET https://api.nums.world/usage reports what you have spent, and every
successful response carries the same figures. The
reference has the exact rule, the
20 error codes and the limits the service is enforcing right now.
4. Where to go next
Run the quickstart against a real dataset โ it prints what the server did with the call, not only what it answered. Then read the terms, which say what happens to the table you send and how long any of it is kept.
Questions to api@nums.world. The machine-readable contract is at /openapi.yaml — it says "ask and we will send it" no longer, because it is served.