---
title: "Downgrade To Free"
method: POST
path: "/billing/downgrade-to-free"
tags: ["billing"]
---

# Downgrade To Free

`POST /billing/downgrade-to-free`

Downgrade the user from a paid plan to the free (hobby) tier.

Cancels all active Stripe subscriptions, removes payment methods,
updates the user's plan to hobby, sends a confirmation email, and
tracks the cancellation feedback in Amplitude.

Args:
    feedback: Optional cancellation feedback (reason + free text).
    auth: Authenticated user context.

Returns:
    Success status with message.

## Request body

- CancellationFeedbackRequest — Optional feedback submitted during the offboarding flow. Sent with both the downgrade and account cancellation endpoints so the cancellation reason can be tracked in analytics.
  - `reason` string, nullable — Selected cancellation reason (e.g. 'Pricing', 'Missing features')
  - `feedback_text` string, nullable — Optional free-text feedback from the user

## Response `200`

Successful Response

- SuccessResponse — Generic success response.
  - `success` boolean
  - `message` string, nullable
  - `data` object, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/pioneer/apis/brain-api.md) · [All operations](https://skmtc.net/pioneer/apis/brain-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pioneer/brain-api/revisions/31dfe831e079/schema)
