ResourcesBookings

Update booking configuration

Partially update creator-facing configuration for a booking variant.

Duration, buffers, and weekly time boundaries use 30-minute increments. Provider connection IDs must belong to the selected store. Google Meet requires a same-store Google Calendar connection.

PATCH
/v2/products/{product}/variants/{variant}/booking

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Select the SellApp store for this API request.

In: header

Path Parameters

product*string

The booking product ID or slug.

variant*integer

The variant path parameter.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://sell.app/api/v2/products/string/variants/0/booking" \  -H "Content-Type: application/json" \  -d '{    "timezone": "Europe/London",    "duration_minutes": 60,    "capacity_per_slot": 1,    "min_notice_minutes": 1440,    "max_advance_days": 60  }'
{
  "data": {
    "product_id": 0,
    "product_variant_id": 0,
    "mode": "native",
    "conflict_scope": "product",
    "timezone": "America/New_York",
    "duration_minutes": 30,
    "capacity_per_slot": 1,
    "min_notice_minutes": 0,
    "max_advance_days": 1,
    "buffer_before_minutes": 0,
    "buffer_after_minutes": 0,
    "availability": [
      {
        "day": 1,
        "enabled": true,
        "start": "09:00",
        "end": "17:00"
      },
      {
        "day": 1,
        "enabled": true,
        "start": "09:00",
        "end": "17:00"
      },
      {
        "day": 1,
        "enabled": true,
        "start": "09:00",
        "end": "17:00"
      },
      {
        "day": 1,
        "enabled": true,
        "start": "09:00",
        "end": "17:00"
      },
      {
        "day": 1,
        "enabled": true,
        "start": "09:00",
        "end": "17:00"
      },
      {
        "day": 1,
        "enabled": true,
        "start": "09:00",
        "end": "17:00"
      },
      {
        "day": 1,
        "enabled": true,
        "start": "09:00",
        "end": "17:00"
      }
    ],
    "provider_connection_ids": [
      0
    ],
    "video_provider": "none",
    "video_provider_connection_id": 0,
    "reminders_enabled": true,
    "reminder_offset_value": 1,
    "reminder_offset_unit": "minutes",
    "meta": {}
  }
}
{
  "message": "Unauthenticated."
}
{
  "message": "This action is unauthorized."
}
{
  "message": "Rule not found."
}
{
  "message": "The given data was invalid.",
  "errors": {
    "data": [
      "The data field is required."
    ]
  }
}
PUT
/v2/products/{product}/variants/{variant}/booking

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Select the SellApp store for this API request.

In: header

Path Parameters

product*string

The booking product ID or slug.

variant*integer

The variant path parameter.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://sell.app/api/v2/products/string/variants/0/booking" \  -H "Content-Type: application/json" \  -d '{    "timezone": "Europe/London",    "duration_minutes": 60,    "capacity_per_slot": 1,    "min_notice_minutes": 1440,    "max_advance_days": 60  }'
{
  "data": {
    "product_id": 0,
    "product_variant_id": 0,
    "mode": "native",
    "conflict_scope": "product",
    "timezone": "America/New_York",
    "duration_minutes": 30,
    "capacity_per_slot": 1,
    "min_notice_minutes": 0,
    "max_advance_days": 1,
    "buffer_before_minutes": 0,
    "buffer_after_minutes": 0,
    "availability": [
      {
        "day": 1,
        "enabled": true,
        "start": "09:00",
        "end": "17:00"
      },
      {
        "day": 1,
        "enabled": true,
        "start": "09:00",
        "end": "17:00"
      },
      {
        "day": 1,
        "enabled": true,
        "start": "09:00",
        "end": "17:00"
      },
      {
        "day": 1,
        "enabled": true,
        "start": "09:00",
        "end": "17:00"
      },
      {
        "day": 1,
        "enabled": true,
        "start": "09:00",
        "end": "17:00"
      },
      {
        "day": 1,
        "enabled": true,
        "start": "09:00",
        "end": "17:00"
      },
      {
        "day": 1,
        "enabled": true,
        "start": "09:00",
        "end": "17:00"
      }
    ],
    "provider_connection_ids": [
      0
    ],
    "video_provider": "none",
    "video_provider_connection_id": 0,
    "reminders_enabled": true,
    "reminder_offset_value": 1,
    "reminder_offset_unit": "minutes",
    "meta": {}
  }
}
{
  "message": "Unauthenticated."
}
{
  "message": "This action is unauthorized."
}
{
  "message": "Rule not found."
}
{
  "message": "The given data was invalid.",
  "errors": {
    "data": [
      "The data field is required."
    ]
  }
}