---
title: "Get workspace quotas and usage (supports teams and organizations)"
method: GET
path: "/v5/workspaces/{workspaceId}/quotas"
tags: ["Workspaces"]
---

# Get workspace quotas and usage (supports teams and organizations)

`GET /v5/workspaces/{workspaceId}/quotas`

## Request

- Base URL: `https://api.kadoa.com`
- URL: `https://api.kadoa.com/v5/workspaces/{workspaceId}/quotas`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

## Path parameters

- `workspaceId` string, uuid, required

## Headers

- `x-api-key` string
- `Authorization` string

## Response `200`

Workspace quotas retrieved successfully

- object
  - `workspace` object
    - `id` string, uuid: Workspace ID
    - `type` 'team' | 'organization': Workspace type
    - `billingType` 'enterprise_active' | 'enterprise_approved', nullable: The org-level billing model. Active is the default; null for standalone teams.
    - `availableQuotas` object
      - `activeWorkflows` integer: Maximum allowed active workflows
      - `maxExtractedRows` integer: Maximum allowed extracted rows
    - `usedQuotas` object
      - `currentTotalWorkflows` integer: Current non-deleted workflows in the workspace's commercial scope.
      - `currentActiveWorkflows` integer: Current number of workflows in ACTIVE state (legacy count)
      - `currentBillingActiveWorkflows` integer: Active billing count. ACTIVE workflows attached to an enabled schedule, plus ACTIVE realtime workflows.
      - `currentBillingActiveSlots` number, float: Weighted slot usage for currentBillingActiveWorkflows.
      - `currentApprovedWorkflows` integer: Workflows that have at least one successful non-preview run AND are alive (or were deleted within the current billing period). Billing Type 3 (per-contract). KAD-6720.
      - `currentScheduledWorkflows` integer: Compatibility alias for currentBillingActiveWorkflows.
      - `currentActive35Workflows` integer: Active-35. Distinct workflows that ran successfully (non-preview) in the trailing 35 days via any trigger (our scheduler, the client's API cron, or a manual run), OR are a live real-time monitor. The "recent usage" billing model; 35 days so monthly-cadence workflows don't flicker. KAD-7956.
      - `currentContractActiveWorkflows` integer, nullable: Contract active. Distinct workflows that ran successfully (non-preview) at least once during the current contract period. The cumulative "used this term" billing model. Same definition as the billable-workflows list count. Null when there's no billing period (trial / no renewal_date).
      - `currentContractActiveSlots` number, float, nullable: Weighted slot usage for currentContractActiveWorkflows.
      - `previousContractActiveWorkflows` integer, nullable: Contract active for the PREVIOUS billing period (one cycle back). Same definition as currentContractActiveWorkflows; used for renewal sizing comparisons. Null when there's no billing period.
      - `previousContractActiveSlots` number, float, nullable: Weighted slot usage for previousContractActiveWorkflows.
      - `currentExtractedRows` integer: All-time cumulative extracted rows (latest team_ledger snapshot).
      - `currentPeriodExtractedRows` integer, nullable: Extracted rows attributed to FINISHED non-preview runs inside the current billing period. The "by billing period" companion to the all-time currentExtractedRows. Null when there's no billing period.
    - `billingPeriod` object, nullable: The billing period the used-quota counts apply to. Enterprise uses the org's renewal_date (auto-rolled forward when stale); self-service uses the team owner's Stripe period. Null for a renewal-anchored workspace (enterprise/org) with no renewal_date — e.g. a trial — in which case the period-scoped counts above are also null.
      - `start` string, date-time
      - `end` string, date-time
      - `renewalDate` string, date, nullable: The org's contractual renewal date (YYYY-MM-DD), or null if not set.
    - `previousBillingPeriod` object, nullable: The billing period immediately before billingPeriod (the prior contract cycle). Null when the precise counts couldn't be computed.
      - `start` string, date-time
      - `end` string, date-time
  - `error` string, nullable

## Other responses

- `401`: Unauthorized
- `403`: Forbidden - insufficient permissions
- `404`: Workspace not found
- `500`: Internal server error

---

[API](https://skmtc.dev/kadoa/apis/kadoa-api.md) · [All operations](https://skmtc.dev/kadoa/apis/kadoa-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kadoa/apis/kadoa-api/revisions/bf7803c927b4?raw)
