Skip to main content
GET
/
api
/
public
/
capacity
/
allocations
curl "https://app.crovver.com/api/public/capacity/allocations?requestingEntityId=workspace_123&status=active&page=1&limit=50" \
  -H "Authorization: Bearer sk_live_..."
{
  "success": true,
  "data": {
    "allocations": [
      {
        "externalUserId": "user_1",
        "email": "alice@acme.com",
        "name": "Alice",
        "status": "active",
        "allocatedAt": "2026-05-01T10:00:00.000Z",
        "removedAt": null,
        "metadata": { "addedBy": "admin_789" }
      },
      {
        "externalUserId": "user_2",
        "email": "bob@acme.com",
        "name": "Bob",
        "status": "active",
        "allocatedAt": "2026-05-03T14:30:00.000Z",
        "removedAt": null,
        "metadata": {}
      }
    ],
    "capacity": {
      "activeCount": 8,
      "capacityUnits": 10,
      "utilizationPercentage": 80,
      "exceeded": false
    },
    "pagination": {
      "total": 8,
      "page": 1,
      "limit": 50,
      "totalPages": 1,
      "hasNextPage": false,
      "hasPreviousPage": false
    }
  }
}
Returns the seat allocations for a tenant’s active subscription. Filter by status, paginate through results, and inspect real-time capacity utilization.

Query Parameters

requestingEntityId
string
required
The external tenant ID from your application.
status
string
default:"active"
Filter allocations by status. One of:
  • active — currently allocated users (default)
  • removed — deallocated users
  • all — both active and removed
page
number
default:"1"
1-based page number.
limit
number
default:"50"
Number of results per page. Maximum 100.

Authentication

Requires a secret key (Authorization: Bearer sk_live_...) or service key (x-service-key).

Response

FieldTypeDescription
allocationsAllocationUser[]Paginated list of allocated users
allocations[].externalUserIdstringYour app’s user ID
allocations[].emailstring | nullUser’s email
allocations[].namestring | nullUser’s display name
allocations[].status"active" | "removed"Current allocation status
allocations[].allocatedAtstringISO 8601 timestamp of when the seat was assigned
allocations[].removedAtstring | nullISO 8601 timestamp of deallocation (if removed)
allocations[].metadataobjectMetadata stored at allocation time
capacity.activeCountnumberCurrent active seat count
capacity.capacityUnitsnumberTotal seat limit on the subscription
capacity.utilizationPercentagenumberactiveCount / capacityUnits × 100
capacity.exceededbooleanWhether active seats exceed the limit
pagination.totalnumberTotal matching records
pagination.pagenumberCurrent page
pagination.totalPagesnumberTotal pages
pagination.hasNextPagebooleanWhether a next page exists
pagination.hasPreviousPagebooleanWhether a previous page exists
curl "https://app.crovver.com/api/public/capacity/allocations?requestingEntityId=workspace_123&status=active&page=1&limit=50" \
  -H "Authorization: Bearer sk_live_..."
{
  "success": true,
  "data": {
    "allocations": [
      {
        "externalUserId": "user_1",
        "email": "alice@acme.com",
        "name": "Alice",
        "status": "active",
        "allocatedAt": "2026-05-01T10:00:00.000Z",
        "removedAt": null,
        "metadata": { "addedBy": "admin_789" }
      },
      {
        "externalUserId": "user_2",
        "email": "bob@acme.com",
        "name": "Bob",
        "status": "active",
        "allocatedAt": "2026-05-03T14:30:00.000Z",
        "removedAt": null,
        "metadata": {}
      }
    ],
    "capacity": {
      "activeCount": 8,
      "capacityUnits": 10,
      "utilizationPercentage": 80,
      "exceeded": false
    },
    "pagination": {
      "total": 8,
      "page": 1,
      "limit": 50,
      "totalPages": 1,
      "hasNextPage": false,
      "hasPreviousPage": false
    }
  }
}