---
title: "Start or upgrade a subscription"
method: POST
path: "/upgrade"
tags: ["Account"]
---

# Start or upgrade a subscription

`POST /upgrade`

## Request

- Base URL: `https://exercise-api.ymove.app/api/v2`
- URL: `https://exercise-api.ymove.app/api/v2/upgrade`
- Auth: one of:
  - API key in header `X-API-Key`
  - API key in query parameter `api_key`

Creates a Stripe checkout session for new subscriptions or returns a billing portal URL for existing subscribers to upgrade.

## Request body

- object
  - `plan` 'basic' | 'pro' | 'scale' | 'enterprise', required: The plan to subscribe to
  - `email` string, email: Required for demo keys. Paid keys use the email on file.

## Response `200`

Checkout or billing portal URL

- object
  - `url` string, uri, required: Stripe checkout or billing portal URL. Open in a browser to complete.
  - `message` string, required

## Other responses

- `400`: Invalid plan or missing email

---

[API](https://skmtc.dev/ymove/apis/ymove-fitness-api.md) · [All operations](https://skmtc.dev/ymove/apis/ymove-fitness-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ymove/apis/ymove-fitness-api/revisions/6636f2b4a343?raw)
