---
title: "Create User Subscription"
method: POST
path: "/users/{user_id}/subscription"
tags: ["users"]
---

# Create User Subscription

`POST /users/{user_id}/subscription`

## Request

- The document declares no server URL.
- Auth: API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/bedolagam/apis/remnawave-bot-admin-api/docs/users/:user_id/subscription/post.ts> (a function with typed inputs; its response is checked against the schema)

Создать или заменить подписку для пользователя.
Поддерживает создание как триальных, так и платных подписок.

## Path parameters

- `user_id` integer, required

## Request body

- UserSubscriptionCreateRequest: Схема для создания подписки через users API (user_id берется из URL)
  - `is_trial` boolean
  - `duration_days` integer, nullable
  - `traffic_limit_gb` integer, nullable
  - `device_limit` integer, nullable
  - `squad_uuid` string, nullable
  - `connected_squads` string[], nullable
  - `replace_existing` boolean

## Response `201`

Successful Response

- AppWebapiSchemasUsersUserResponse
  - `id` integer, required
  - `telegram_id` integer, nullable
  - `username` string, nullable
  - `first_name` string, nullable
  - `last_name` string, nullable
  - `status` string, required
  - `language` string, required
  - `balance_kopeks` integer, required
  - `balance_rubles` number, required
  - `referral_code` string, nullable
  - `referred_by_id` integer, nullable
  - `has_had_paid_subscription` boolean, required
  - `has_made_first_topup` boolean, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `last_activity` string, date-time, nullable
  - `promo_group` PromoGroupSummary
    - `id` integer, required
    - `name` string, required
    - `server_discount_percent` integer, required
    - `traffic_discount_percent` integer, required
    - `device_discount_percent` integer, required
    - `apply_discounts_to_addons` boolean
  - `subscription` SubscriptionSummary
    - `id` integer, required
    - `status` string, required
    - `actual_status` string, required
    - `is_trial` boolean, required
    - `start_date` string, date-time, required
    - `end_date` string, date-time, required
    - `traffic_limit_gb` integer, required
    - `traffic_used_gb` number, required
    - `device_limit` integer, required
    - `autopay_enabled` boolean, required
    - `autopay_days_before` integer, nullable
    - `subscription_url` string, nullable
    - `subscription_crypto_link` string, nullable
    - `connected_squads` string[]

## Other responses

- `422`: Validation Error

## Changes

- **2026-11-03** `2360876ff9c5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bedolagam/apis/remnawave-bot-admin-api/changes/users/:user_id/subscription/post.md)

---

[API](https://skmtc.dev/bedolagam/apis/remnawave-bot-admin-api.md) - [All operations](https://skmtc.dev/bedolagam/apis/remnawave-bot-admin-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bedolagam/apis/remnawave-bot-admin-api/revisions/2360876ff9c5?raw)
