Skip to content

Usage & Limits API

Two endpoints report where the active org stands against its plan. Both are allowlisted past the card wall, so they remain readable even before a card is verified.

  • GET /v1/limits — plan, allowances, and current resource counts (powers upgrade prompts).
  • GET /v1/usage — this month’s metered usage, from meter-sync rollups.

A value of -1 in any numeric limit field means unlimited.

Concept guides: Plans & limits, Instance tiers, Usage & metering.

Both routes require authentication and are available to any member.


GET /v1/limits

The active org’s plan, its allowances, and current usage counts.

Auth: any member (card-gate allowlisted). Response (OrgLimits):

FieldTypeNotes
planfree | pro | premium | enterprise
limitsPlanLimitsThe allowance matrix (below).
usageResourceCountsCurrent counts (below).

ResourceCounts (used for both limits.counts and usage):

FieldType
containersnumber
staticnumber
databasesnumber
functionsnumber
cronjobsnumber

PlanLimits:

FieldTypeNotes
countsResourceCountsMax allowed of each resource (-1 = unlimited).
buildMinutesPerMonthnumber
bandwidthGbPerMonthnumber
deploymentHistoryDaysnumber
dbBackupRetentionDaysnumber
dbConnectionLimitnumber
teamMembersnumber
teamsnumber
featuresobject{ customDomain, analytics, autoscaling, functions, cronjobs } (booleans).
Terminal window
curl https://api.pandastack.io/v1/limits \
-H "Authorization: Bearer $PANDASTACK_TOKEN"
{
"success": true,
"data": {
"plan": "pro",
"limits": {
"counts": { "containers": -1, "static": -1, "databases": 10, "functions": 20, "cronjobs": 10 },
"buildMinutesPerMonth": 2000,
"bandwidthGbPerMonth": 500,
"deploymentHistoryDays": 90,
"dbBackupRetentionDays": 7,
"dbConnectionLimit": 100,
"teamMembers": 25,
"teams": 10,
"features": { "customDomain": true, "analytics": true, "autoscaling": true, "functions": true, "cronjobs": true }
},
"usage": { "containers": 4, "static": 12, "databases": 2, "functions": 3, "cronjobs": 1 }
}
}

GET /v1/usage

The active org’s metered usage for the current month, aggregated from meter-sync rollups.

Auth: any member (card-gate allowlisted). Response (OrgUsage):

FieldTypeNotes
periodstringYYYY-MM (UTC).
enabledboolean
containerHoursnumber
databaseHoursnumber
buildMinutesnumber
bandwidthMbnumber
analyticsEventsnumber
fnInvocationsnumber
cronjobRunsnumber
bandwidthExceededbooleanDefault false; true once the monthly bandwidth quota is hit.
Terminal window
curl https://api.pandastack.io/v1/usage \
-H "Authorization: Bearer $PANDASTACK_TOKEN"
{
"success": true,
"data": {
"period": "2026-07",
"enabled": true,
"containerHours": 320.5,
"databaseHours": 744,
"buildMinutes": 128,
"bandwidthMb": 45210,
"analyticsEvents": 91200,
"fnInvocations": 8400,
"cronjobRuns": 210,
"bandwidthExceeded": false
}
}