Conduyt · Schema

BookingPagePatch

The body of PATCH /booking-pages/{id}. Every field is optional; only supplied fields change. A field the route normalises (clamps, trims, falls back to a default) is documented with the value it stores.

CompanyCRMAISaaSSales

Properties

Name Type Description
title string Ignored when blank.
slug string Normalised; a slug another page uses is refused with 409.
description stringnull
durationMinutes integer
durationOptions arraynull Selectable durations; entries with no label or outside 5 to 480 minutes are dropped; empty or null clears.
bufferBefore integernull Minutes before each booking; clamped.
bufferAfter integernull Minutes after each booking; clamped.
minimumNotice integer Minutes of notice required; an invalid value keeps the current one.
maxAdvanceDays integer How many days ahead bookings open; clamped; an invalid value keeps the current one.
maxBookingsPerDay integernull
location stringnull
videoProvider stringnull zoom, or null / empty for none.
videoHostEmail stringnull
color stringnull A hex colour.
thankYouMessage stringnull
redirectUrl stringnull
requirePhone boolean
embedEnabled boolean
customQuestions array The booking form's extra questions; an entry without a label or a known type is dropped; an empty list clears them.
formFields arraynull The standard form fields; an invalid entry is dropped, and a list with no valid entry (or null) clears the configuration.
fieldMappings arraynull Form field to contact field mappings; an invalid entry is dropped, and a list with no valid entry (or null) clears them.
availabilityRules arraynull Availability windows overriding the host's global rules; null or an empty list uses the global rules.
reminders array
brandName stringnull
logoUrl stringnull
hideBranding boolean
embedAllowedOrigins arraynull
template stringnull null for the default page, "bda" for the BDA template; anything else is refused with 400.
reviews objectnull
leadSource stringnull
campaign stringnull
hyrosTag stringnull
documentsEnabled boolean Turns the documents step on or off for this page's bookings.
documentsPageUrl stringnull The https page on the customer's site that hosts the upload step; an https URL or null (a supplied non-https value is refused with 400).
morningOfReminderEnabled boolean Turns the 9 AM (prospect-local) morning-of email on or off for this page's bookings; turning it off also withdraws the ones already scheduled. A non-boolean is refused with 400.
isActive boolean
userId string The page owner; must be an active member of the account.
eventType string
maxAttendees integernull
hostUserIds array Users on this account who can host; anything else is refused with 400.
hostGroupId stringnull
hostPriorities objectnull Host user id to priority; an invalid map clears to the default.
distributionMethod string
paymentEnabled boolean Accepted but payment checkout is not implemented yet; the page stays with payment disabled and the response carries a warning.
paymentAmount integernull Amount in cents.
paymentCurrency stringnull An unknown currency is stored as usd.
stripeProductId stringnull
stripePriceId stringnull
gdprEnabled boolean
gdprText stringnull
gdprLinkUrl stringnull
waitlistEnabled boolean
enableIcalFeed boolean true issues a new iCal feed token, false revokes it. Session only: API keys receive 403 (error "API key denied: the iCal feed token is issued, rotated and cleared from a signed-in session only").
View JSON Schema on GitHub

JSON Schema

conduyt-com-booking-page-patch-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/conduyt-com/json-schema/conduyt-com-booking-page-patch-schema.json",
  "title": "BookingPagePatch",
  "description": "The body of PATCH /booking-pages/{id}. Every field is optional; only supplied fields change. A field the route normalises (clamps, trims, falls back to a default) is documented with the value it stores.",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/conduyt-com-openapi.yaml#/components/schemas/BookingPagePatch",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Ignored when blank."
    },
    "slug": {
      "type": "string",
      "description": "Normalised; a slug another page uses is refused with 409."
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "durationMinutes": {
      "type": "integer"
    },
    "durationOptions": {
      "type": [
        "array",
        "null"
      ],
      "description": "Selectable durations; entries with no label or outside 5 to 480 minutes are dropped; empty or null clears.",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "minutes": {
            "type": "integer",
            "minimum": 5,
            "maximum": 480
          }
        }
      }
    },
    "bufferBefore": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Minutes before each booking; clamped."
    },
    "bufferAfter": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Minutes after each booking; clamped."
    },
    "minimumNotice": {
      "type": "integer",
      "minimum": 0,
      "description": "Minutes of notice required; an invalid value keeps the current one."
    },
    "maxAdvanceDays": {
      "type": "integer",
      "description": "How many days ahead bookings open; clamped; an invalid value keeps the current one."
    },
    "maxBookingsPerDay": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1
    },
    "location": {
      "type": [
        "string",
        "null"
      ]
    },
    "videoProvider": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "zoom",
        null
      ],
      "description": "zoom, or null / empty for none."
    },
    "videoHostEmail": {
      "type": [
        "string",
        "null"
      ],
      "format": "email"
    },
    "color": {
      "type": [
        "string",
        "null"
      ],
      "description": "A hex colour."
    },
    "thankYouMessage": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 2000
    },
    "redirectUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "requirePhone": {
      "type": "boolean"
    },
    "embedEnabled": {
      "type": "boolean"
    },
    "customQuestions": {
      "type": "array",
      "maxItems": 50,
      "description": "The booking form's extra questions; an entry without a label or a known type is dropped; an empty list clears them.",
      "items": {
        "$ref": "#/$defs/BookingCustomQuestion",
        "properties": {
          "defaultValue": {
            "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
          },
          "id": {
            "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
          },
          "label": {
            "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
          },
          "options": {
            "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
          },
          "required": {
            "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
          },
          "type": {
            "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
          }
        },
        "type": "object"
      }
    },
    "formFields": {
      "type": [
        "array",
        "null"
      ],
      "maxItems": 20,
      "description": "The standard form fields; an invalid entry is dropped, and a list with no valid entry (or null) clears the configuration.",
      "items": {
        "$ref": "#/$defs/BookingFormField",
        "properties": {
          "id": {
            "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
          },
          "label": {
            "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
          },
          "locked": {
            "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
          },
          "required": {
            "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
          },
          "show": {
            "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
          },
          "type": {
            "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
          }
        },
        "type": "object"
      }
    },
    "fieldMappings": {
      "type": [
        "array",
        "null"
      ],
      "maxItems": 20,
      "description": "Form field to contact field mappings; an invalid entry is dropped, and a list with no valid entry (or null) clears them.",
      "items": {
        "$ref": "#/$defs/BookingFieldMapping",
        "properties": {
          "contactField": {
            "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
          },
          "formFieldId": {
            "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
          }
        },
        "type": "object"
      }
    },
    "availabilityRules": {
      "type": [
        "array",
        "null"
      ],
      "description": "Availability windows overriding the host's global rules; null or an empty list uses the global rules.",
      "items": {
        "type": "object",
        "properties": {
          "dayOfWeek": {
            "type": "integer",
            "minimum": 0,
            "maximum": 6
          },
          "startTime": {
            "type": "string",
            "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$"
          },
          "endTime": {
            "type": "string",
            "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$"
          }
        }
      }
    },
    "reminders": {
      "type": "array",
      "maxItems": 10,
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "email",
              "sms"
            ]
          },
          "minutesBefore": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10080
          }
        }
      }
    },
    "brandName": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 80
    },
    "logoUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "hideBranding": {
      "type": "boolean"
    },
    "embedAllowedOrigins": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "template": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "bda",
        null
      ],
      "description": "null for the default page, \"bda\" for the BDA template; anything else is refused with 400."
    },
    "reviews": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "badges": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "count": {
                "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
              },
              "platform": {
                "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
              },
              "rating": {
                "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
              }
            }
          }
        },
        "testimonials": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "author": {
                "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
              },
              "quote": {
                "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
              },
              "role": {
                "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
              },
              "source": {
                "description": "Read by the handler from the JSON body (the route declares no schema for its type)."
              }
            }
          }
        }
      }
    },
    "leadSource": {
      "type": [
        "string",
        "null"
      ]
    },
    "campaign": {
      "type": [
        "string",
        "null"
      ]
    },
    "hyrosTag": {
      "type": [
        "string",
        "null"
      ]
    },
    "documentsEnabled": {
      "type": "boolean",
      "description": "Turns the documents step on or off for this page's bookings."
    },
    "documentsPageUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri",
      "description": "The https page on the customer's site that hosts the upload step; an https URL or null (a supplied non-https value is refused with 400)."
    },
    "morningOfReminderEnabled": {
      "type": "boolean",
      "description": "Turns the 9 AM (prospect-local) morning-of email on or off for this page's bookings; turning it off also withdraws the ones already scheduled. A non-boolean is refused with 400."
    },
    "isActive": {
      "type": "boolean"
    },
    "userId": {
      "type": "string",
      "format": "uuid",
      "description": "The page owner; must be an active member of the account."
    },
    "eventType": {
      "type": "string",
      "enum": [
        "one_on_one",
        "round_robin",
        "collective",
        "group"
      ]
    },
    "maxAttendees": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1
    },
    "hostUserIds": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "Users on this account who can host; anything else is refused with 400."
    },
    "hostGroupId": {
      "type": [
        "string",
        "null"
      ],
      "format": "uuid"
    },
    "hostPriorities": {
      "type": [
        "object",
        "null"
      ],
      "description": "Host user id to priority; an invalid map clears to the default.",
      "additionalProperties": {
        "type": "string",
        "enum": [
          "highest",
          "high",
          "low",
          "lowest"
        ]
      }
    },
    "distributionMethod": {
      "type": "string",
      "enum": [
        "maximize",
        "equal"
      ]
    },
    "paymentEnabled": {
      "type": "boolean",
      "description": "Accepted but payment checkout is not implemented yet; the page stays with payment disabled and the response carries a warning."
    },
    "paymentAmount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Amount in cents."
    },
    "paymentCurrency": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "usd",
        "eur",
        "gbp",
        "cad",
        "aud",
        "mxn",
        null
      ],
      "description": "An unknown currency is stored as usd."
    },
    "stripeProductId": {
      "type": [
        "string",
        "null"
      ]
    },
    "stripePriceId": {
      "type": [
        "string",
        "null"
      ]
    },
    "gdprEnabled": {
      "type": "boolean"
    },
    "gdprText": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 2000
    },
    "gdprLinkUrl": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "waitlistEnabled": {
      "type": "boolean"
    },
    "enableIcalFeed": {
      "type": "boolean",
      "description": "true issues a new iCal feed token, false revokes it. Session only: API keys receive 403 (error \"API key denied: the iCal feed token is issued, rotated and cleared from a signed-in session only\")."
    }
  },
  "$defs": {
    "BookingCustomQuestion": {
      "type": "object",
      "required": [
        "label",
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "maxLength": 57,
          "description": "Generated from the label when absent."
        },
        "label": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500
        },
        "type": {
          "type": "string",
          "enum": [
            "short_text",
            "long_text",
            "email",
            "phone",
            "select",
            "checkbox",
            "date",
            "number",
            "hidden"
          ]
        },
        "required": {
          "type": "boolean",
          "default": false
        },
        "options": {
          "type": "array",
          "maxItems": 50,
          "items": {
            "type": "string",
            "maxLength": 500
          }
        },
        "defaultValue": {
          "type": "string",
          "maxLength": 500
        }
      }
    },
    "BookingFieldMapping": {
      "type": "object",
      "required": [
        "formFieldId",
        "contactField"
      ],
      "properties": {
        "formFieldId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        "contactField": {
          "type": "string",
          "maxLength": 96,
          "description": "A standard contact field (firstName, lastName, email, phone, company, jobTitle, address, city, state, zip, country, source, notes, website) or customFields.<key>; protected stamp keys are refused.",
          "pattern": "^(firstName|lastName|email|phone|company|jobTitle|address|city|state|zip|country|source|notes|website|customFields\\.[a-zA-Z_][a-zA-Z0-9_]*)$"
        }
      }
    },
    "BookingFormField": {
      "type": "object",
      "required": [
        "id",
        "label",
        "type",
        "show",
        "required"
      ],
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        "label": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "type": {
          "type": "string",
          "enum": [
            "text",
            "email",
            "tel",
            "textarea"
          ]
        },
        "show": {
          "type": "boolean"
        },
        "required": {
          "type": "boolean"
        },
        "locked": {
          "type": "boolean"
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/conduyt-com-booking-page-patch"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.