Kwill

Plans & frozen workspaces

Plan requirements for API access and what happens when a workspace is frozen.

Plan requirement

API access requires the Studio plan or above. Requests from workspaces on lower plans return:

{
  "error": "API access requires the Studio plan or above.",
  "code": "plan_required",
  "feature": "api",
  "currentPlan": "free",
  "requiredPlan": "studio",
  "upgradeUrl": "https://usekwill.com/settings/billing/upgrade"
}

API keys can only be created by users with the admin role. See Authentication.


Frozen workspaces

A workspace becomes frozen when a payment fails or a billing issue is not resolved within the grace period. Frozen workspaces have restricted write access:

OperationFrozen behaviour
GET (any resource)Works normally — reads are always allowed.
POST, PATCHReturns 403 with "account_frozen".
DELETE (most)Returns 403 with "account_frozen".
DELETE /webhooks/{id}Allowed — you can clean up webhook registrations even while frozen.

Webhooks during a freeze

Webhook events are not emitted while a workspace is frozen. There is no backfill — events that would have fired during the freeze are lost. Once the workspace is unfrozen, new events fire as normal.

Detecting a freeze in code

const res = await fetch('https://usekwill.com/api/v1/projects', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.KWILL_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ name: 'New Project' }),
});

if (res.status === 403) {
  const body = await res.json();
  if (body.code === 'account_frozen') {
    // Alert your ops team — billing action required
    console.error('Workspace is frozen. Resolve billing to resume writes.');
  }
}

Unfreezing

Resolve the billing issue in Settings → Billing. The workspace unfreezes immediately after payment succeeds, and writes are restored without any further action.

On this page