---
title: "Create a Rate Plan"
method: POST
path: "/rm-rate-plans-ext/rate-plans"
tags: ["Open Api Rate Plan CRUD v1"]
---

# Create a Rate Plan

`POST /rm-rate-plans-ext/rate-plans`

Creates a Rate Plan. 

 Currently in pilot, the Rate Plans API allows the creation and management of independent rate plans that are not visible or editable within the Guesty UI. This API is available exclusively for <a href="http://Booking.com">Booking.com</a>   and direct reservations. 

To participate in the pilot, customers should contact Guesty for an eligibility review and to receive detailed information on potential limitations and risks.

## Request body

- object
  - `name` string, required — Rate plan name.
  - `description` string — Describe the rate plan.
  - `type` 'independent', required — Rate plan type.
  - `pricingModel` 'nightly_rate', nullable — The pricing model.
  - `cancellationPolicy` 'strict' | 'strict_60' | 'strict_90' | 'super_strict' | 'moderate' | 'semi_moderate' | 'semi_flexible' | 'firm' | 'flex' | 'free' | 'special' | 'direct_reservation_long_stay', nullable — The rate plan cancellation policy.
  - `cancellationFee` 100 | 50 | 0, nullable — The rate plan cancellation fee.
  - `channelSync` string[] — The channel to which the rate plan applies.
  - `mealPlans` string[] — Rate plan meal plans.
  - `availabilityRules` object — Rate plan availability rules.n
    - `advanceNotice` number — advance notice
    - `bookingWindow` number — booking window

## Response `201`

Success

- object
  - `ratePlan` object, required — rate plan
    - `_id` string, required — id
    - `accountId` string, required — account id
    - `type` 'independent', required — type
    - `name` string, required — name
    - `description` string — description
    - `cancellationPolicy` 'strict' | 'strict_60' | 'strict_90' | 'super_strict' | 'moderate' | 'semi_moderate' | 'semi_flexible' | 'firm' | 'flex' | 'free', nullable — cancellationPolicy
    - `cancellationFee` string, nullable — cancellationFee
    - `mealPlans` number[] — mealPlans
    - `availabilityRules` object — availabilityRules
      - `advanceNotice` number — advance notice
      - `bookingWindow` number — booking window
      - `dateRange` object — date range
        - `to` string, date-time, required — to date
        - `from` string, date-time, required — from date
        - `repeatedDays` object, required — repeated days
          - `0` object, required
            - `available` boolean, required
          - `1` object, required
            - `available` boolean, required
          - `2` object, required
            - `available` boolean, required
          - `3` object, required
            - `available` boolean, required
          - `4` object, required
            - `available` boolean, required
          - `5` object, required
            - `available` boolean, required
          - `6` object, required
            - `available` boolean, required
      - `restrictedDates` string[] — restricted dates
    - `pricingModel` 'nightly_rate', required — pricingModel
    - `channelSync` string[] — channelSync
    - `active` boolean, required — is active
    - `createdAt` string, date-time, required — createdAt
    - `updatedAt` string, date-time, required — updatedAt
  - `requestId` string, required — request id

## Other responses

- `400` — Bad request
- `401` — Client unauthorized
- `403` — Access is forbidden for this client
- `500` — Internal server error

---

[API](https://skmtc.net/guesty/apis/guesty-open-api.md) · [All operations](https://skmtc.net/guesty/apis/guesty-open-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/guesty/guesty-open-api/versions/7c62644070f2/schema)
