---
title: "Create a tarif plan"
method: POST
path: "/tarifs/"
tags: ["Tarif"]
---

# Create a tarif plan

`POST /tarifs/`

Create a new tarif plan.

## Query parameters

- `cookie_name` string, nullable
- `tenant_id` integer

## Request body

- TarifIn — Model for creating or updating a tarif.
  - `name` string, required — Name for the tarif to be created. Max 100 characters.
  - `price` number, required — The price of the tarif. This field is required.
  - `hard_limit` number, required — The hard limit to restrict the user.
  - `licenses` integer, nullable — Seats sold; sizes the tenant monthly pool.
  - `monthly_limit_per_license` number, nullable — Per-seat monthly allowance.
  - `soft_limit_fraction` number, nullable — Warn user when monthly spend reaches this fraction of monthly_limit_per_license.
  - `status` 'ACTIVE' | 'RETIRED' — Enum for Tarif status in Tarif
  - `expires_at` string, date, nullable — When the tarif expires; None = never.
  - `description` string, nullable — Description of the tarif.
  - `is_unlimited` boolean, nullable — Whether the tarif has unlimited usage.

## Response `201`

Successful Response

- Tarif — Model for creating or updating a tarif.
  - `id` integer — Primary key for the tarif record.
  - `name` string, required — Name for the tarif to be created. Max 100 characters.
  - `price` number, required — The price of the tarif. This field is required.
  - `hard_limit` number, nullable — Max allowed usage; None = unlimited if is_unlimited.
  - `licenses` integer, nullable — Seats sold; sizes the tenant monthly pool.
  - `monthly_limit_per_license` number, nullable — Per-seat monthly allowance.
  - `soft_limit_fraction` number, nullable — Warn user when monthly spend reaches this fraction of monthly_limit_per_license.
  - `is_unlimited` boolean — Bypass usage checks if True.
  - `description` string, nullable — Description of the tarif.
  - `status` 'ACTIVE' | 'RETIRED' — Enum for Tarif status in Tarif
  - `is_default` boolean — Whether this tarif is the default plan for new tenants.
  - `creator_user_id` integer, nullable, required — ID of the user who created the tarif.
  - `created_at` string, date-time — Timestamp when the tarif was created.
  - `updated_at` string, date-time — Timestamp when the tarif was last updated.

## Other responses

- `401` — Missing or invalid authentication.
- `403` — Platform operator or parent tenant admin privileges required.
- `422` — Validation Error

---

[API](https://skmtc.net/neulandai/apis/neuland-ai-hub-api.md) · [All operations](https://skmtc.net/neulandai/apis/neuland-ai-hub-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/neulandai/neuland-ai-hub-api/versions/b53e89b98c2b/schema)
