Plan and usage
Read your workspace's plan and how many entries it has written this month, and what happens at the plan's limit.
A plan includes a number of entries a month. Every entry your workspace writes counts one against the month it was written in, by UTC. A write the API refuses does not count, and sending an idempotency key again that was already answered does not count twice. These are the routes the dashboard's Plan page reads.
Every route here needs a dashboard session cookie (-b pacspace-dashboard-cookies.txt), and any member can read them.
Base URL: https://app.pacspace.io
GET https://app.pacspace.io/dashboard/billing/planRead the plan
curl https://app.pacspace.io/dashboard/billing/plan \
-b pacspace-dashboard-cookies.txtAnswer 200 OK. The answer is the plan as stored. For a workspace on the Free plan, the fields that say what it can record:
{
"success": true,
"data": {
"tier": "free",
"monthlyAllotment": 100,
"planPriceUsd": "0",
"overagePriceUsd": "0",
"status": "active",
"pendingTier": null
}
}| Field | Meaning |
|---|---|
tier | free, pilot, starter, growth, scale, or enterprise. |
monthlyAllotment | Entries included each month. |
planPriceUsd | The plan's monthly price in US dollars, as a string. |
overagePriceUsd | The price of each entry past monthlyAllotment, as a string. 0 on Free, which stops at the allotment. |
status | active while the plan is in force. |
pendingTier | A plan change that takes effect at the end of the current period, or null. |
The answer also carries the plan's payment fields and its own ids. Nothing on these pages needs them.
Read the month's usage
curl https://app.pacspace.io/dashboard/billing/usage \
-b pacspace-dashboard-cookies.txt
curl "https://app.pacspace.io/dashboard/billing/usage?period=2026-09" \
-b pacspace-dashboard-cookies.txtperiod is YYYY-MM, by UTC, and defaults to the current month.
Answer 200 OK. A Free workspace whose evaluation harness has written 64 entries this month:
{
"success": true,
"data": {
"plan": { "tier": "free", "monthlyAllotment": 100, "...": "the plan, as the plan route answers it" },
"usage": {
"period": "2026-10",
"bucketTouchesUsed": 64,
"overageCount": 0,
"overageChargesUsd": "0",
"remaining": 36
}
}
}| Field | Meaning |
|---|---|
usage.bucketTouchesUsed | Entries written in the period. The name is older than the records API; for a records workspace it counts entries. |
usage.overageCount | Entries past monthlyAllotment, or 0. |
usage.overageChargesUsd | overageCount at the plan's overagePriceUsd, as a string. |
usage.remaining | Entries left in the allotment, or 0 once it is used. |
At the limit
Free. 100 entries a month, by UTC. The write that would be the 101st in a month is refused with 402 PLAN_LIMIT_REACHED: "A Free workspace writes 100 entries a month. Nothing was queued. Move to a paid plan to continue." The count starts again on the first of the next month, or at once on a paid plan.
Paid. Writes go on past the allotment, and the entries past it show in overageCount. If the plan's payment lapses, writes are refused with 402 PAID_ENTITLEMENT_REQUIRED until it is settled; nothing is queued.
The SDKs never retry a 402. Once the plan is in order, send the entry again with the same idempotency key.
Changing the plan
A records workspace's plan is set by PacSpace. To move to a paid plan or change it, write to sales@pacspace.io. The new plan shows in tier, and the month's count carries over. Changing the plan changes nothing about a record: what was committed stays committed, and every history file still checks.
Routes
| Route | Method | What it does |
|---|---|---|
/dashboard/billing/plan | GET | The current plan |
/dashboard/billing/usage | GET | Entries written in a month |