Skip to content
PacSpace
Talk to us

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

http
GET https://app.pacspace.io/dashboard/billing/plan

Read the plan

bash
curl https://app.pacspace.io/dashboard/billing/plan \
  -b pacspace-dashboard-cookies.txt

Answer 200 OK. The answer is the plan as stored. For a workspace on the Free plan, the fields that say what it can record:

json
{
  "success": true,
  "data": {
    "tier": "free",
    "monthlyAllotment": 100,
    "planPriceUsd": "0",
    "overagePriceUsd": "0",
    "status": "active",
    "pendingTier": null
  }
}
FieldMeaning
tierfree, pilot, starter, growth, scale, or enterprise.
monthlyAllotmentEntries included each month.
planPriceUsdThe plan's monthly price in US dollars, as a string.
overagePriceUsdThe price of each entry past monthlyAllotment, as a string. 0 on Free, which stops at the allotment.
statusactive while the plan is in force.
pendingTierA 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

bash
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.txt

period 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:

json
{
  "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
    }
  }
}
FieldMeaning
usage.bucketTouchesUsedEntries written in the period. The name is older than the records API; for a records workspace it counts entries.
usage.overageCountEntries past monthlyAllotment, or 0.
usage.overageChargesUsdoverageCount at the plan's overagePriceUsd, as a string.
usage.remainingEntries 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

RouteMethodWhat it does
/dashboard/billing/planGETThe current plan
/dashboard/billing/usageGETEntries written in a month