---
title: "Get cancellation impact"
method: GET
path: "/api/billing/cancel-subscription/impact"
---

# Get cancellation impact

`GET /api/billing/cancel-subscription/impact`

## Request

- Base URL: `https://app.base44.com`
- URL: `https://app.base44.com/api/billing/cancel-subscription/impact`
- Auth: HTTP bearer

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Shows what cancelling your workspace's subscription would affect, without changing anything. Only the workspace owner can call this.

`apps.items` lists the workspace's apps, with the ones that have the most at stake first: apps that take payments, then apps on a custom domain, then apps with the most active users. The counts are filled in for the first 50 apps only.

When `apps.over_limit` is `true`, the workspace has more apps than the Free plan allows. Choose which apps stay published with `cancellation_selection` in [Cancel subscription](/api-reference/cancel-subscription).

<Note>Missing or invalid credentials, and a read-only token, return 401 here.</Note>

## Response `200`

The workspace's apps and what cancelling affects.

- CancellationImpact: What cancelling the subscription affects.
  - `apps` CancellationImpactAppList, required: The workspace's apps and the Free plan's app limit.
    - `limit` integer, nullable, required: How many apps the Free plan allows, or `null` when it has no limit.
    - `total_count` integer, required: How many apps the workspace has that count toward that limit.
    - `over_limit` boolean, required: `true` when the workspace has more apps than the Free plan allows. Then choose which apps stay published with `cancellation_selection` in [Cancel subscription](/api-reference/cancel-subscription).
    - `items` AppAtStake[], required: The workspace's apps, the ones with the most at stake first. Up to 1,000.
      - `id` string, required: ID of the app.
      - `name` string, required: Name of the app, or `Untitled`.
      - `logo_url` string, nullable, required: URL of the app's logo, or `null` when it has none.
      - `is_published` boolean, required: `true` when the app is deployed and not unpublished.
      - `user_count` integer, nullable, required: Users signed up to the app, not counting the workspace owner. `null` for apps past the first 50, or when the counts couldn't be read.
      - `agent_count` integer, nullable, required: Agents in the app. `null` for apps past the first 50, or when the counts couldn't be read.
      - `automation_count` integer, nullable, required: Active automations in the app. `null` for apps past the first 50, or when the counts couldn't be read.
      - `workflow_count` integer, nullable, required: Workflows in the app that aren't archived. `null` for apps past the first 50, or when the counts couldn't be read.
      - `has_payments` boolean, nullable, required: `true` when the app takes payments. `null` for apps past the first 50, or when the counts couldn't be read.
      - `custom_domain` string, nullable, required: The app's live custom domain. `null` when it has none, or when it wasn't read.
      - `active_users_30d` integer, nullable, required: Users active in the app in the last 30 days. `null` for apps past the first 50, or when the counts couldn't be read.
      - `is_user_managed` boolean, required: `true` when you manage the app's code yourself. Such apps keep their workflows and backend functions on the Free plan.
  - `backend_functions_stop` boolean, required: `true` when the workspace's backend functions stop once the plan ends.
  - `agent_phone_number` string, nullable, required: The workspace's active agent phone number, released when the plan ends. `null` when it has none.

## Other responses

- `401`: Missing or invalid credentials. A read-only token gets this response too.
- `403`: You aren't the workspace owner.
- `429`: Rate limit exceeded. The base rate limit is 20 requests per minute per user. See [Rate limits](/developers/references/apps-api/get-started/rate-limits) for the multiplier your plan gets.

## Changes

> 66 revisions in range; 1 not diffed.

- **2026-10-26** `395a6758864a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/adexad/apis/base44-app-management-api/changes/api/billing/cancel-subscription/impact/get.md)

---

[API](https://skmtc.dev/adexad/apis/base44-app-management-api.md) - [All operations](https://skmtc.dev/adexad/apis/base44-app-management-api/llms.txt) - [OpenAPI document](https://skmtc.dev/adexad/apis/base44-app-management-api/revisions/d877a932dc19?raw)
