Usage & Limits
Monitor workspace usage and quotas through the API to stay within plan limits.
Get usage overview
Section titled “Get usage overview”Request: GET /v1/usage
curl -H "Authorization: Bearer $PRESS_CLOUD_TOKEN" \ "$PRESS_CLOUD_API/v1/usage"The response includes Cache-Control: private, no-store — do not cache this data.
Response: 200 OK
{ "period": { "kind": "current_bill_period", "start": 1743465600000, "end": 1746057600000, "usageDayStart": "2026-04-01", "usageDayEndExclusive": "2026-05-01" }, "plan": { "key": "starter", "name": "Starter", "currency": "usd", "interval": "month", "monthlyPriceCents": 9000 }, "policy": { "allowExternalNetwork": true, "maxBytesPerDeployCommit": 52428800, "maxConcurrentRenderJobs": 10, "maxDeployCommitsPerBillPeriod": null, "maxFilesPerDeployCommit": 200, "maxRenderJobsPerBillPeriod": null, "maxRenderOutputBytes": 209715200, "maxRenderTimeMsPerBillPeriod": 9000000000, "maxRenderTimeoutMs": 60000, "storageLimitBytes": 10737418240 }, "usageMeters": [ { "code": "deploy_commits", "aggregation": "count", "totalQuantity": 42, "unit": "count", "version": "1" }, { "code": "render_jobs", "aggregation": "count", "totalQuantity": 150, "unit": "count", "version": "1" }, { "code": "render_time_ms", "aggregation": "sum", "totalQuantity": 3600000, "unit": "ms", "version": "1" } ], "liveStorage": { "deployVersionStorageBytes": 104857600, "managedPdfStorageBytes": 52428800, "renderOutputStorageBytes": 0, "totalBytes": 157286400 }, "uploadLimits": { "maxSingleFileBytes": 10485760 }, "storageMeters": [ { "code": "managed_pdf_storage", "aggregation": "daily_peak", "unit": "bytes", "currentBytes": 52428800, "peakBytesByDay": [ { "day": "2026-04-27", "peakBytes": 52428800, "peakGiBDay": 0.0488 } ], "totalPeakBytes": 52428800, "totalPeakGiBDays": 1.46, "version": "1" } ], "bill": { "provider": "stripe", "interval": "month", "periodStart": 1743465600000, "periodEnd": 1746057600000 }, "generatedAt": 1745800000000}Key fields
Section titled “Key fields”| Field | Description |
|---|---|
period.start / period.end | Current billing period bounds (Unix ms) |
plan.name | Active plan name |
policy.* | Current plan limits — compare against these, not hardcoded values |
usageMeters[].totalQuantity | Accumulated usage this period (count or ms) |
liveStorage.totalBytes | Current total storage in bytes |
uploadLimits.maxSingleFileBytes | Max individual file size for uploads (10 MB on all plans) |
Use the policy object to determine limits programmatically — a null value means unlimited for that dimension.
Note on
maxConcurrentRenderJobs: This is a workspace-level limit representing the maximum concurrent render jobs a workspace can run. Actual concurrency may be lower depending on overall platform load. When the platform is under heavy load, render jobs join a shared public queue and queue wait times may vary.
Detecting quota exhaustion
Section titled “Detecting quota exhaustion”When a quota is exhausted, the API returns an error with one of these codes:
| Error code | Meaning |
|---|---|
deploy_commit_quota_exceeded | Monthly deploy commit allowance exhausted |
render_job_quota_exceeded | Monthly render job allowance exhausted |
render_time_quota_exceeded | Monthly render time allowance exhausted |
storage_limit_exceeded | Workspace storage exceeds plan limit |
workspace_pro_required | Workspace action requires Pro |
workspace_blank_plan_limit_exceeded | Blank workspace creation limit reached |
workspace_blank_plan_requires_pro | Blank workspace billing requires Pro |
workspace_member_limit_exceeded | Workspace member capacity reached |
deploy_commit_policy_limit_exceeded | Version exceeds per-commit file/byte limits |
upload_session_policy_limit_exceeded | Upload exceeds file count or byte limit |
These errors are checked atomically — concurrent requests cannot race past the limit. The error field in the response body contains the code listed above.
What to do when you hit a limit
Section titled “What to do when you hit a limit”- Check the current period usage via
GET /v1/usageto see how close you are to the limit. - Hard limits (policy limits): reduce the request size or file count. See Plan Limits for exact thresholds.
- Quota limits (bill-period): wait for the next billing period or upgrade your plan.
- Storage limits: delete unused deploy versions, render outputs, or managed PDFs to free up space.
See Error Reference for the complete error catalog.