---
title: "Get mobile subscription status"
method: GET
path: "/api/billing/mobile/subscription-status"
---

# Get mobile subscription status

`GET /api/billing/mobile/subscription-status`

## Request

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

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

Returns your workspace's plan and whether its subscription is active, wherever it's billed: on the web, through the App Store, or through Google Play. For invoices, payment methods, and the full subscription, use [Get billing info](/api-reference/get-billing-info).

`is_active` follows the subscription's status, not just the plan. A web subscription that's in a trial or past due reports `is_active: false` while `tier` still shows its paid plan. Change the plan with [Change plan](/api-reference/change-plan).

Any member of the workspace can call this endpoint. A read-only token is refused, and workspace API keys aren't accepted.

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

## Response `200`

The workspace's plan and subscription state.

- SubscriptionStatusResponse: Response for subscription status check.
  - `tier` string, required: ID of the plan the workspace is on, such as `builder` or `builder_yearly`. `free` when it has no paid plan. See [List plans](/api-reference/list-plans).
  - `source` string, nullable, required: Where the subscription is billed: `stripe` or `wix` for the web, `apple` for the App Store, or `google_play` for Google Play. An App Store subscription keeps `apple` after it ends, so check `is_active`. `null` when the workspace has no subscription.
  - `is_active` boolean, required: `true` while a web subscription is active, or while an App Store or Google Play subscription is within its paid period. `false` for a web subscription that's in a trial or past due.
  - `expires_at` string, nullable, required: When the current paid period ends, as an ISO 8601 date-time. For an App Store or Google Play subscription it's `null` once that period has ended. `null` when there's no subscription.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: Your token is read-only.
- `429`: Rate limit exceeded (60 requests a minute).

## 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/mobile/subscription-status/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)
