Rate limits & credits
How the platform meters usage — credits for actions, quotas for objects.
predictAI doesn't enforce fixed requests-per-second limits. Instead, usage is governed by two mechanisms that map to what actually consumes resources:
Credits meter actions
Compute-heavy actions cost credits, priced per action and charged when the work runs:
- training runs (per run, scaled by intensity),
- inference calls,
- discovery runs and tournaments,
- large ingestion volumes (streaming events beyond the workspace's included allowance),
- BYOM uploads and validation.
If your balance can't cover an action you'll get a 402 — the action
simply doesn't run. Check your balance and burn rate any time:
curl "$API_BASE/v1/billing/balance" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Workspace-Id: $WORKSPACE_ID"from predictai import PredictAI
client = PredictAI(token="pa_live_…", workspace_id="ws_…")
data = client.billing.get_billing_balance()
import { PredictAI } from "@predictai/sdk";
const client = new PredictAI({ token: "pa_live_…", workspaceId: "ws_…" });
const data = await client.billing.getBillingBalance();
Estimate before you spend with
POST /v1/billing/estimate — every chargeable
surface can be priced in advance.
Quotas cap objects
Your plan caps how many of each object a workspace can hold: models,
pipelines, deployments, goals, and more. Hitting a cap returns a 403 with
a message naming the limit. One call shows your live usage counts:
curl "$API_BASE/v1/billing/usage" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Workspace-Id: $WORKSPACE_ID"from predictai import PredictAI
client = PredictAI(token="pa_live_…", workspace_id="ws_…")
data = client.billing.get_billing_usage()
import { PredictAI } from "@predictai/sdk";
const client = new PredictAI({ token: "pa_live_…", workspaceId: "ws_…" });
const data = await client.billing.getBillingUsage();
Being a good citizen
- Prefer Realtime subscriptions over tight polling loops — training, deployment, and goal events are pushed to you.
- Batch historical data through Ingestion imports
rather than thousands of individual
signal/pushcalls. - Cache stable reads (catalogs, plan info); they change rarely.
Full pricing, plans, and quota detail: Billing.

