---
title: "Refresh Google Play subscription"
method: POST
path: "/api/billing/mobile/google-play/refresh"
---

# Refresh Google Play subscription

`POST /api/billing/mobile/google-play/refresh`

## Request

- Base URL: `https://app.base44.com`
- URL: `https://app.base44.com/api/billing/mobile/google-play/refresh`
- Auth: HTTP bearer

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

Re-reads your workspace's Google Play subscription from Google Play and applies its current state, such as a renewal, a plan change, or a cancellation. Use it when the workspace pays through the Base44 Android app and its plan looks out of date. Check the result with [Get mobile subscription status](/api-reference/get-mobile-subscription-status).

A workspace that isn't billed through Google Play gets `synchronized: true` and `changed: false`, and nothing is read. Refreshing fails, and keeps failing when you retry, while the workspace also has a web subscription, an App Store purchase on record, or an open payment dispute, or when its Google Play purchase is tied to another workspace. Resolve that instead of retrying.

Only the workspace owner can refresh. Errors from this endpoint have the body `{"error": {"code": ..., "message": ..., "details": {}}, "detail": ...}`, and a read-only token gets a 403 with `error.code` `forbidden`. Workspace API keys aren't accepted. Limited to 120 requests an hour per user, shared with the Base44 mobile app. Some workspaces have a different limit.

<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 refresh result.

- GooglePlayRefresh
  - `synchronized` boolean, required: `true` when the workspace's plan now matches Google Play, or when the workspace isn't billed through Google Play. `false` when the purchase is pending, was replaced by a newer one, or Base44 no longer holds it.
  - `changed` boolean: `true` when the refresh changed the workspace's plan or billing period. Absent when `requires_restore` is `true`.
  - `requires_restore` boolean: Present and `true` when Base44 no longer holds the purchase. Restore purchases from the Base44 Android app to reconnect it.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: You aren't the workspace owner, or your token is read-only.
- `429`: Rate limit reached. Retry later.

## 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/google-play/refresh/post.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)
