Skip to main content

Overview

Resources let you manage claimable capacity like seats, API keys, and project limits. Use getResourceUsages and getResourceUsage to check capacity, claimResource to reserve allocations, releaseResource to free them, and listResourceClaims to see active claims.

How to use

  • getResourceUsages: Returns all resources and their usage stats for a subscription
  • getResourceUsage: Returns usage for a single resource by slug or ID
  • claimResource: Reserves capacity. Use quantity for anonymous claims, externalId for named claims
  • releaseResource: Frees capacity. Use quantity for FIFO release, externalId for named release
  • listResourceClaims: Returns all active claims, optionally filtered by resource

What you can do

  • Check available capacity before allowing users to claim resources
  • Track who has claimed what using named claims with externalId
  • Reserve bulk capacity with anonymous claims
  • Release resources when users leave or resources are deleted
  • Display capacity usage in your UI

Example: Check Resource Capacity

lib/flowglad-utils.ts

Example: Claim a Resource (Named)

Named claims use an externalId to track exactly what each allocation is for. They’re idempotent—claiming the same ID twice returns the existing claim.
lib/team-management.ts

Example: Claim Resources (Anonymous)

Anonymous claims don’t track individual identifiers—just reserve a quantity:
lib/connection-pool.ts

Example: Release a Resource (Named)

Release a specific claim by its externalId:
lib/team-management.ts

Example: Release Resources (Anonymous)

Release anonymous claims by quantity:
lib/connection-pool.ts

Example: List Active Claims

Get all active claims for a resource:
lib/team-management.ts

Server SDK Methods

getResourceUsages

Get all resources and their usage for the customer’s subscription.
Returns: { resources: ResourceUsage[] }

getResourceUsage

Get usage for a single resource.
Returns: { usage: ResourceUsage, claims: ResourceClaim[] }

claimResource

Reserve resource capacity. Do so with either named or anonymous resource claims:
Returns: { claims: ResourceClaim[], usage: ResourceUsage }

releaseResource

Free resource capacity. Choose ONE mode:
Returns: { releasedClaims: ResourceClaim[], usage: ResourceUsage }

listResourceClaims

List active claims for the subscription.
Returns: { claims: ResourceClaim[] }

React SDK Hooks

The @flowglad/react package provides React hooks for managing resources in client-side applications. These hooks handle data fetching, caching, and automatic UI updates when resources change.

useResources

Hook to access all resources for the current customer’s subscription. Fetches resource usage on mount and provides claim/release mutations that automatically invalidate the cache.
Returns:
Example: Claim with useResources

useResource

Convenience hook for working with a single resource type. Pre-binds the resourceSlug to claim/release functions and fetches claims for the specific resource.
Returns:
Example: Named Claims with useResource

TypeScript Types

Handling Errors

Capacity Exceeded

When a claim would exceed available capacity:

Multiple Subscriptions

When a customer has multiple active subscriptions: