{"openapi":"3.0.3","info":{"title":"JSON API","description":"API for interacting with Appointedd compliant with the JSON:API specification (https://jsonapi.org/)","version":"2.0.0"},"components":{"securitySchemes":{"OAuth2ClientCredentials":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"/v2/oauth/tokens","scopes":{}}}}},"schemas":{}},"paths":{"/v2/accounts/{accountId}":{"get":{"summary":"Get Account By ID","tags":["Accounts"],"description":"Get an Appointedd account that you have access to by it's unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Account"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable name for this account."},"slug":{"type":"string","minLength":1,"maxLength":2000,"description":"URL safe representation of the name of this account."},"coordinates":{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90,"description":"latitude."},"longitude":{"type":"number","minimum":-180,"maximum":180,"description":"longitude."}},"required":["latitude","longitude"],"additionalProperties":false,"nullable":true,"description":"Coordinates that corresponds to the geographic location of this account."},"customFields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["text","date"]},"required":{"type":"boolean"}},"required":["id","name","type","required"],"additionalProperties":false},"nullable":true,"description":"Custom fields configured for this account."},"additionalCustomerBookingStatuses":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"key":{"type":"string"}},"required":["label"],"additionalProperties":false},"nullable":true,"description":"Additional custom arrival statuses configured for this account."},"customQuestions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["text","checkbox","dropdown","terms","file"]},"name":{"type":"string"},"required":{"type":"boolean"},"statusType":{"type":"string","enum":["online","internal","both"]},"order":{"type":"number"},"options":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"id":{"type":"string"}},"required":["value"],"additionalProperties":false}},"services":{"type":"array","items":{"type":"string"}}},"required":["type","name"],"additionalProperties":false},"nullable":true,"description":"Custom intake questions configured for this account. Questions may be filtered by service."}},"required":["slug"],"additionalProperties":false},"relationships":{"type":"object","properties":{"bookings":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"customers":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"events":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Event"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"services":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Service"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"saml":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Saml"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}},"patch":{"summary":"Update Account By ID","tags":["Accounts"],"description":"Update an existing account using a valid account Id","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable name for this account."},"coordinates":{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90,"description":"latitude."},"longitude":{"type":"number","minimum":-180,"maximum":180,"description":"longitude."}},"required":["latitude","longitude"],"additionalProperties":false,"nullable":true,"description":"Coordinates that corresponds to the geographic location of this account."}},"additionalProperties":false}},"required":["attributes"],"additionalProperties":false}}},"required":true},"parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Account"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable name for this account."},"slug":{"type":"string","minLength":1,"maxLength":2000,"description":"URL safe representation of the name of this account."},"coordinates":{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90,"description":"latitude."},"longitude":{"type":"number","minimum":-180,"maximum":180,"description":"longitude."}},"required":["latitude","longitude"],"additionalProperties":false,"nullable":true,"description":"Coordinates that corresponds to the geographic location of this account."},"customFields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["text","date"]},"required":{"type":"boolean"}},"required":["id","name","type","required"],"additionalProperties":false},"nullable":true,"description":"Custom fields configured for this account."},"additionalCustomerBookingStatuses":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"key":{"type":"string"}},"required":["label"],"additionalProperties":false},"nullable":true,"description":"Additional custom arrival statuses configured for this account."},"customQuestions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["text","checkbox","dropdown","terms","file"]},"name":{"type":"string"},"required":{"type":"boolean"},"statusType":{"type":"string","enum":["online","internal","both"]},"order":{"type":"number"},"options":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"id":{"type":"string"}},"required":["value"],"additionalProperties":false}},"services":{"type":"array","items":{"type":"string"}}},"required":["type","name"],"additionalProperties":false},"nullable":true,"description":"Custom intake questions configured for this account. Questions may be filtered by service."}},"required":["slug"],"additionalProperties":false},"relationships":{"type":"object","properties":{"bookings":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"customers":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"events":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Event"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"services":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Service"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"saml":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Saml"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/accounts":{"get":{"summary":"Get All Accounts","tags":["Accounts"],"description":"Get a paginated view of all Appointedd accounts you have access to.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"string"},"in":"query","name":"filter[accountQuery]","required":false,"description":"Search query for accounts (matches name)."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][bookings]","required":false,"description":"Whether to include bookings in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][customers]","required":false,"description":"Whether to include customers in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][events]","required":false,"description":"Whether to include events in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][resources]","required":false,"description":"Whether to include resources in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][services]","required":false,"description":"Whether to include services in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][saml]","required":false,"description":"Whether to include saml in the relationships."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Account"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable name for this account."},"slug":{"type":"string","minLength":1,"maxLength":2000,"description":"URL safe representation of the name of this account."},"coordinates":{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90,"description":"latitude."},"longitude":{"type":"number","minimum":-180,"maximum":180,"description":"longitude."}},"required":["latitude","longitude"],"additionalProperties":false,"nullable":true,"description":"Coordinates that corresponds to the geographic location of this account."},"customFields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["text","date"]},"required":{"type":"boolean"}},"required":["id","name","type","required"],"additionalProperties":false},"nullable":true,"description":"Custom fields configured for this account."},"additionalCustomerBookingStatuses":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"key":{"type":"string"}},"required":["label"],"additionalProperties":false},"nullable":true,"description":"Additional custom arrival statuses configured for this account."},"customQuestions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["text","checkbox","dropdown","terms","file"]},"name":{"type":"string"},"required":{"type":"boolean"},"statusType":{"type":"string","enum":["online","internal","both"]},"order":{"type":"number"},"options":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"id":{"type":"string"}},"required":["value"],"additionalProperties":false}},"services":{"type":"array","items":{"type":"string"}}},"required":["type","name"],"additionalProperties":false},"nullable":true,"description":"Custom intake questions configured for this account. Questions may be filtered by service."}},"required":["slug"],"additionalProperties":false},"relationships":{"type":"object","properties":{"bookings":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"customers":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"events":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Event"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"services":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Service"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"saml":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Saml"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/accounts/{accountId}/bookings":{"get":{"summary":"Get All Bookings By Account ID","tags":["Accounts","Bookings"],"description":"Get a paginated view of all Appointedd bookings in an account with a specific ID.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns any bookings that belong to any of the given account IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[customerIds]","required":false,"description":"Returns any bookings that belong to any of the given customer IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[resourceIds]","required":false,"description":"Returns any bookings that belong to any of the given resource IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[eventIds]","required":false,"description":"Returns any bookings that belong to any of the given event IDs."},{"schema":{"type":"array","items":{"type":"string","minLength":1}},"in":"query","name":"filter[payments][externalIds]","required":false,"description":"Returns any bookings that have a payment that references any of the given external IDs provided by the payment provider used for the payment."},{"schema":{"type":"string","enum":["pending","confirmed","declined","cancelled"]},"in":"query","name":"filter[state]","required":false,"description":"Returns any bookings that have a state set to the given value."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][after]","required":false,"description":"Returns any bookings that start after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][before]","required":false,"description":"Returns any bookings that start before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][after]","required":false,"description":"Returns any bookings that end after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][before]","required":false,"description":"Returns any bookings that end before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][after]","required":false,"description":"Returns any bookings that were created after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][before]","required":false,"description":"Returns any bookings that were created before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][after]","required":false,"description":"Returns any bookings that were updated after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][before]","required":false,"description":"Returns any bookings that were updated before the given date and time (inclusive)."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][resources]","required":false,"description":"Whether to include resources in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][invoices]","required":false,"description":"Whether to include invoice payment data in the attributes."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Booking"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"bookingId":{"type":"string","description":"The unique identifier for this booking."},"created":{"type":"string","format":"date-time","description":"ISO 8601 date and time that this booking was created at."},"bookingPrice":{"type":"number","minimum":0,"nullable":true,"description":"Total amount that this booking costs. If this is booking is for an event this will the the total price of the vent. It is possible for a booking's price to be changed independently from the customer's price which can cause this value to differ from the value of the `customerPrice` property."},"customerPrice":{"type":"number","minimum":0,"description":"Total amount that this booking costs for this customer in the currency configured for the account that this booking belongs to."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking ends at."},"endWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking ends at with the booking's 'after' buffer added if it has one."},"locale":{"type":"string","description":"ISO 639 code of the locale of the customer that created this booking."},"notes":{"type":"string","nullable":true,"description":"Free-form text attached to this booking as a note."},"parts":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"nullable":true,"description":"Human readable text label for this part of the booking."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this part starts at."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this part ends at."}},"required":["label","start","end"],"additionalProperties":false},"minItems":1,"description":"One or more parts that are contained by this booking. This is used for multi-part bookings which can have gaps within it's start and end which are considered 'free' and not blocked by the booking."},"payments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The external reference used to identify the payment within the payment provider e.g. a Stripe charge id or an Adyen PSP reference."},"provider":{"type":"string","description":"The connected provider the booking payment was processed for."},"amount":{"type":"number","description":"The value of the payment that was processed."}},"required":["id","provider","amount"],"additionalProperties":false},"description":"One or more payments that are related to this booking."},"refunds":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The external reference used to identify the refund within the payment provider e.g. a Stripe charge id or an Adyen PSP reference."},"provider":{"type":"string","description":"The connected provider the booking refund was processed for."},"originalPaymentId":{"type":"string","description":"The id that relates to the original payment being refunded."},"amount":{"type":"number","description":"The value of the refund that was processed."},"status":{"type":"string","enum":["pending","success","failed"],"description":"Indicates the status of the refund."},"description":{"type":"string","description":"The description / reason for this refund."},"refundFailedReason":{"type":"string","description":"The reason this refund failed."}},"required":["id","provider","amount","description"],"additionalProperties":false},"description":"One or more refunds that are related to this booking."},"questions":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["text"]},"value":{"type":"string","nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a free-form text value as an answer. A value of `null` indicates an empty answer."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["dropdown"]},"value":{"type":"string","maxLength":100,"nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a free-form a text value selected from a preset number of options as an answer. A value of `null` indicates no selection."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["checkbox"]},"value":{"type":"boolean"}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a boolean value as an answer."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["terms"]},"value":{"type":"boolean"}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a boolean value as an answer (terms of service)."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["file"]},"value":{"type":"string","minLength":1,"maxLength":1000,"nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a file upload as an answer."}]},"description":"Array of questions that were answered by the customer when creating this booking."},"rescheduleUrl":{"type":"string","format":"uri","maxLength":3000,"nullable":true,"description":"URL that provides a web widget to reschedule this booking."},"source":{"type":"string","maxLength":200,"description":"Name of the source where this booking was created."},"spaces":{"type":"number","minimum":1,"description":"Number of spaces that the customer has requested for this booking."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking starts at."},"state":{"type":"string","enum":["pending","confirmed","declined","cancelled"],"description":"State that the booking is currently in."},"status":{"type":"string","description":"Status that this booking is currently in.","default":"No Status"},"startWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking starts at with the booking's 'before' buffer subtracted if it has one."},"timezone":{"type":"string","description":"IANA name of the time zone that the customer made this booking in. Deprecated time zones are supported but we recommend only using non-deprecated time zone names where possible."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this booking was last updated at. If not set then this booking has never been updated since it's creation."}},"required":["created","bookingPrice","customerPrice","end","endWithBuffer","locale","notes","parts","questions","rescheduleUrl","source","spaces","start","state","startWithBuffer","timezone","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"customer":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"event":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Event"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account","customer","event","resources","service"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/accounts/{accountId}/customers":{"get":{"summary":"Get All Customers By Account ID","tags":["Accounts","Customers"],"description":"Get a paginated view of all Appointedd customers in an account with a specific ID.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"accountId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Customer"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this customer was created at."},"customFields":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}],"description":"Value of this custom field for this customer."},"description":"Object containing custom fields that are set on this customer."},"email":{"type":"string","nullable":true,"description":"Email address for this customer."},"ccEmails":{"type":"array","items":{"type":"string"},"nullable":true,"description":"If customer CC email addresses (max 2) are provided all customer email comms will be cc'd to these addresses: Note this is a paid for enterprise only feature."},"mobile":{"type":"object","properties":{"number":{"type":"string","minLength":1,"maxLength":50,"description":"Mobile number for this customer."},"countryCode":{"type":"string","minLength":1,"maxLength":50,"nullable":true,"description":"Country code for this mobile number if it contains one, otherwise `null` if it does not or the mobile number is invalid."}},"required":["number"],"additionalProperties":false,"nullable":true,"description":"Object containing mobile information for this customer."},"marketingOptIn":{"type":"boolean","description":"Indicates if the customer has subscribed to receive marketing communications."},"firstname":{"type":"string","minLength":1,"description":"First name of this customer."},"lastname":{"type":"string","minLength":1,"description":"Last name of this customer."},"tags":{"type":"array","items":{"type":"string"},"description":"One or more tags that have been assigned to this customer."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this customer was last updated at. If not set then this customer has never been updated since it's creation."}},"required":["created","marketingOptIn","firstname","lastname","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"bookings":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["account","bookings"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/oauth/tokens":{"post":{"summary":"Create OAuth Token","tags":["Auth"],"description":"Create an OAuth access token from an OAuth client ID and secret which can be used to authenticate requests to the API. The client ID and secret can be provided either in the request body or in the Authorization header using the basic authentication scheme.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"client_id":{"type":"string","minLength":1,"description":"Unique identifier of the OAuth client to create an access token for. Only required if the request does not include an Authorization header that contains the OAuth client ID and secret using the basic authentication scheme."},"client_secret":{"type":"string","minLength":1,"description":"Secret of the OAuth client to create an access token for. Only required if the request does not include an Authorization header that contains the OAuth client ID and secret using the basic authentication scheme."},"expires_in":{"type":"number","minimum":300,"maximum":315360000,"default":3600,"description":"Number of seconds from the date and time that the access token is created that it will expire. Must be an amount of seconds between 300 (5 minutes) and 315360000 (10 years). Defaults to 3600 (1 hour) if not set."},"grant_type":{"type":"string","enum":["client_credentials"]}},"required":["grant_type"],"additionalProperties":false}}},"required":true},"security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"access_token":{"type":"string"},"token_type":{"type":"string","enum":["Bearer"]},"expires_in":{"type":"number","minimum":300,"maximum":315360000,"default":3600,"description":"Number of seconds from the date and time that the access token is created that it will expire."}},"required":["access_token","token_type"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/availability/intervals/search":{"post":{"summary":"Find Available Intervals","tags":["Availability"],"description":"Search for available time intervals for booking. This endpoint proxies requests to the Chronos availability engine while maintaining compatibility with existing request structures.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ranges":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time","description":"Starting date and time of the range to query. Must be in a valid ISO8601 formatted string."},"end":{"type":"string","format":"date-time","description":"Ending date and time of the range to query. Must be in a valid ISO8601 formatted string."}},"required":["start","end"],"additionalProperties":false},"minItems":1,"description":"One or more ranges of dates & times to query for available intervals."},"accounts":{"type":"array","items":{"type":"object","properties":{"accountId":{"type":"string","description":"Unique identifier of the account (organisation) for this availability request."},"serviceId":{"type":"string","description":"Unique identifier of the service in this organisation to use when calculating the available intervals."},"resourceIds":{"type":"array","items":{"type":"string"},"description":"One or more unique identifiers of resources in this organisation to find available intervals for. If not set this defaults to all of the resources assigned to the service you specified."},"resourceGroupIds":{"type":"array","items":{"type":"string"},"description":"One or more unique identifiers of resource groups in this organisation whose resources you want to find available intervals. Mutually exclusive with resourceIds."}},"required":["accountId","serviceId"],"additionalProperties":false},"minItems":1,"description":"One or more account-specific availability requests. Each account will have its own service, resource, and resource group IDs."},"buffers":{"type":"object","properties":{"before":{"type":"integer","minimum":0,"description":"Number of minutes from the start of a potential booking that is required to not have any other bookings, breaks, or external events. If this property is not given in the request it either be loaded from the service if one is given, or default to 0."},"after":{"type":"integer","minimum":0,"description":"Number of minutes from the end of a potential booking that is required to not have any other bookings, breaks, or external events. If this property is not given in the request it either be loaded from the service if one is given, or default to 0."}},"additionalProperties":false,"description":"Controls the amount of time before and/or after a booking that must not contain any other bookings, breaks, or external events. If you do not specify any buffers then they will either be loaded from a service if you have given one, or default to query with no buffers."},"duration":{"type":"integer","minimum":1,"description":"Number of continuous minutes of time from the start of an interval that must be free for an interval to be considered available. If you do not specify the parts property or this property, and you have specified a service property, the default duration or parts for that service will be used. If you specify the parts property in this request this property will be ignored."},"parts":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["block","free"],"description":"Type of this part."},"duration":{"type":"integer","minimum":1,"description":"Number of continuous minutes that this part spans."}},"required":["type","duration"],"additionalProperties":false},"description":"Parts that define the structure of the booking time."},"spaces":{"type":"integer","minimum":1,"default":1,"description":"Number of spaces that are required. This is used to exclude any group bookings that do not have enough spaces."},"timezone":{"type":"string","default":"Europe/London","description":"Name of an IANA timezone to return the resulting dates & times in."},"ignorePastRestriction":{"type":"boolean","default":false,"description":"If set to true availability will not be restricted by the current date and time. By default this is set to false and any date and time before the current date and time will be considered as unavailable."},"ignoreNoticeRestriction":{"type":"boolean","default":false,"description":"If set to true availability will not be restricted by your organisation's or service's notice period settings. By default this is set to false and any date and time before the number of minutes/hours/days added onto the current date and time will be considered as unavailable."},"ignoreBookings":{"type":"array","items":{"type":"string"},"description":"One or more unique identifiers of bookings in your organisation to ignore for the purposes of this availability query. This means that it will not block availability and if it is a group booking it will not be returned if it is available."},"ignoreServiceAssignment":{"type":"boolean","default":false,"description":"If set to true, the request will not fail if the resource on this booking is not assigned to the service on this booking."},"ignoreServiceSchedule":{"type":"boolean","default":false,"description":"If set to true availability will not be restricted by the service's schedule. By default this is set to false and any date and time outside of the service's schedule will be considered as unavailable."},"ignoreGroupSetting":{"type":"boolean","default":false,"description":"If set to true the availability will return bookings that have enough space as group bookings, regardless if they have online group bookings turned on."},"ignoreBlockRestriction":{"type":"boolean","default":false,"description":"If set to true availability will ignore the block after setting on your account."}},"required":["ranges","accounts"],"additionalProperties":false}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"organisations":{"type":"array","items":{"type":"object","properties":{"organisationId":{"type":"string","description":"Unique identifier of the organisation."},"intervals":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","description":"ISO8601 formatted date and time when this interval starts."},"resourceIds":{"type":"array","items":{"type":"string"},"description":"Array of resource IDs that are available for this interval."},"groupBookings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the group booking."},"resourceId":{"type":"string","description":"Unique identifier of the resource for this group booking."},"spaces":{"type":"integer","description":"Number of available spaces in this group booking."},"recurrence":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the recurring booking."},"bookings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the individual booking."}},"required":["id"],"additionalProperties":false},"description":"Array of individual bookings that are part of this recurring pattern."}},"required":["id","bookings"],"additionalProperties":false,"description":"Recurrence information if this group booking is part of a recurring pattern."}},"required":["id","resourceId","spaces"],"additionalProperties":false},"description":"Array of available group bookings for this interval."},"groupSlots":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the group slot."},"resourceId":{"type":"string","description":"Unique identifier of the resource for this group slot."},"spaces":{"type":"integer","description":"Number of available spaces in this group slot."}},"required":["id","resourceId","spaces"],"additionalProperties":false},"description":"Array of group slot information."}},"required":["start","resourceIds"],"additionalProperties":false},"description":"Available intervals for this organisation."}},"required":["organisationId","intervals"],"additionalProperties":false}}},"required":["organisations"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/availability/days/search":{"post":{"summary":"Find Available Dates","tags":["Availability"],"description":"Search for available dates for booking.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ranges":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time","description":"Starting date and time of the range to query. Must be in a valid ISO8601 formatted string."},"end":{"type":"string","format":"date-time","description":"Ending date and time of the range to query. Must be in a valid ISO8601 formatted string."}},"required":["start","end"],"additionalProperties":false},"minItems":1,"description":"One or more ranges of dates & times to query for available intervals."},"accounts":{"type":"array","items":{"type":"object","properties":{"accountId":{"type":"string","description":"Unique identifier of the account (organisation) for this availability request."},"serviceId":{"type":"string","description":"Unique identifier of the service in this organisation to use when calculating the available intervals."},"resourceIds":{"type":"array","items":{"type":"string"},"description":"One or more unique identifiers of resources in this organisation to find available intervals for. If not set this defaults to all of the resources assigned to the service you specified."},"resourceGroupIds":{"type":"array","items":{"type":"string"},"description":"One or more unique identifiers of resource groups in this organisation whose resources you want to find available intervals. Mutually exclusive with resourceIds."}},"required":["accountId","serviceId"],"additionalProperties":false},"minItems":1,"description":"One or more account-specific availability requests. Each account will have its own service, resource, and resource group IDs."},"buffers":{"type":"object","properties":{"before":{"type":"integer","minimum":0,"description":"Number of minutes from the start of a potential booking that is required to not have any other bookings, breaks, or external events. If this property is not given in the request it either be loaded from the service if one is given, or default to 0."},"after":{"type":"integer","minimum":0,"description":"Number of minutes from the end of a potential booking that is required to not have any other bookings, breaks, or external events. If this property is not given in the request it either be loaded from the service if one is given, or default to 0."}},"additionalProperties":false,"description":"Controls the amount of time before and/or after a booking that must not contain any other bookings, breaks, or external events. If you do not specify any buffers then they will either be loaded from a service if you have given one, or default to query with no buffers."},"duration":{"type":"integer","minimum":1,"description":"Number of continuous minutes of time from the start of an interval that must be free for an interval to be considered available. If you do not specify the parts property or this property, and you have specified a service property, the default duration or parts for that service will be used. If you specify the parts property in this request this property will be ignored."},"parts":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["block","free"],"description":"Type of this part."},"duration":{"type":"integer","minimum":1,"description":"Number of continuous minutes that this part spans."}},"required":["type","duration"],"additionalProperties":false},"description":"Parts that define the structure of the booking time."},"spaces":{"type":"integer","minimum":1,"default":1,"description":"Number of spaces that are required. This is used to exclude any group bookings that do not have enough spaces."},"timezone":{"type":"string","default":"Europe/London","description":"Name of an IANA timezone to return the resulting dates & times in."},"ignorePastRestriction":{"type":"boolean","default":false,"description":"If set to true availability will not be restricted by the current date and time. By default this is set to false and any date and time before the current date and time will be considered as unavailable."},"ignoreNoticeRestriction":{"type":"boolean","default":false,"description":"If set to true availability will not be restricted by your organisation's or service's notice period settings. By default this is set to false and any date and time before the number of minutes/hours/days added onto the current date and time will be considered as unavailable."},"ignoreBookings":{"type":"array","items":{"type":"string"},"description":"One or more unique identifiers of bookings in your organisation to ignore for the purposes of this availability query. This means that it will not block availability and if it is a group booking it will not be returned if it is available."},"ignoreServiceAssignment":{"type":"boolean","default":false,"description":"If set to true, the request will not fail if the resource on this booking is not assigned to the service on this booking."},"ignoreServiceSchedule":{"type":"boolean","default":false,"description":"If set to true availability will not be restricted by the service's schedule. By default this is set to false and any date and time outside of the service's schedule will be considered as unavailable."},"ignoreGroupSetting":{"type":"boolean","default":false,"description":"If set to true the availability will return bookings that have enough space as group bookings, regardless if they have online group bookings turned on."},"ignoreBlockRestriction":{"type":"boolean","default":false,"description":"If set to true availability will ignore the block after setting on your account."}},"required":["ranges","accounts"],"additionalProperties":false}}},"required":true},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"organisations":{"type":"array","items":{"type":"object","properties":{"organisationId":{"type":"string","description":"Unique identifier of the organisation."},"dates":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","description":"Date when this date starts. Accepts YYYY-MM-DD or ISO8601 format."},"resourceIds":{"type":"array","items":{"type":"string"},"description":"Array of resource IDs that are available for this date."},"groupBookings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the group booking."},"resourceId":{"type":"string","description":"Unique identifier of the resource for this group booking."},"spaces":{"type":"integer","description":"Number of available spaces in this group booking."},"recurrence":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the recurring booking."},"bookings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the individual booking."}},"required":["id"],"additionalProperties":false},"description":"Array of individual bookings that are part of this recurring pattern."}},"required":["id","bookings"],"additionalProperties":false,"description":"Recurrence information if this group booking is part of a recurring pattern."}},"required":["id","resourceId","spaces"],"additionalProperties":false},"description":"Array of available group bookings for this date."},"groupSlots":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the group slot."},"resourceId":{"type":"string","description":"Unique identifier of the resource for this group slot."},"spaces":{"type":"integer","description":"Number of available spaces in this group slot."}},"required":["id","resourceId","spaces"],"additionalProperties":false},"description":"Array of group slot information."}},"required":["date","resourceIds"],"additionalProperties":false},"description":"Available dates for this organisation."}},"required":["organisationId","dates"],"additionalProperties":false}}},"required":["organisations"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/bookings/{bookingId}/cancel":{"post":{"summary":"Cancel Booking By ID","tags":["Bookings"],"description":"Cancel an Appointedd booking that you have access to by it's unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"bookingId","required":true}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/bookings/{bookingId}/account":{"get":{"summary":"Get Account By Booking ID","tags":["Bookings","Accounts"],"description":"Get an Appointedd account that you have access to by a bookings unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"bookingId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Account"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable name for this account."},"slug":{"type":"string","minLength":1,"maxLength":2000,"description":"URL safe representation of the name of this account."},"coordinates":{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90,"description":"latitude."},"longitude":{"type":"number","minimum":-180,"maximum":180,"description":"longitude."}},"required":["latitude","longitude"],"additionalProperties":false,"nullable":true,"description":"Coordinates that corresponds to the geographic location of this account."},"customFields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["text","date"]},"required":{"type":"boolean"}},"required":["id","name","type","required"],"additionalProperties":false},"nullable":true,"description":"Custom fields configured for this account."},"additionalCustomerBookingStatuses":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"key":{"type":"string"}},"required":["label"],"additionalProperties":false},"nullable":true,"description":"Additional custom arrival statuses configured for this account."},"customQuestions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["text","checkbox","dropdown","terms","file"]},"name":{"type":"string"},"required":{"type":"boolean"},"statusType":{"type":"string","enum":["online","internal","both"]},"order":{"type":"number"},"options":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"id":{"type":"string"}},"required":["value"],"additionalProperties":false}},"services":{"type":"array","items":{"type":"string"}}},"required":["type","name"],"additionalProperties":false},"nullable":true,"description":"Custom intake questions configured for this account. Questions may be filtered by service."}},"required":["slug"],"additionalProperties":false},"relationships":{"type":"object","properties":{"bookings":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"customers":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"events":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Event"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"services":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Service"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"saml":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Saml"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/bookings":{"get":{"summary":"Get All Bookings","tags":["Bookings"],"description":"Get a paginated view of all Appointedd bookings you have access to.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns any bookings that belong to any of the given account IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[customerIds]","required":false,"description":"Returns any bookings that belong to any of the given customer IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[resourceIds]","required":false,"description":"Returns any bookings that belong to any of the given resource IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[eventIds]","required":false,"description":"Returns any bookings that belong to any of the given event IDs."},{"schema":{"type":"array","items":{"type":"string","minLength":1}},"in":"query","name":"filter[payments][externalIds]","required":false,"description":"Returns any bookings that have a payment that references any of the given external IDs provided by the payment provider used for the payment."},{"schema":{"type":"string","enum":["pending","confirmed","declined","cancelled"]},"in":"query","name":"filter[state]","required":false,"description":"Returns any bookings that have a state set to the given value."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][after]","required":false,"description":"Returns any bookings that start after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][before]","required":false,"description":"Returns any bookings that start before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][after]","required":false,"description":"Returns any bookings that end after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][before]","required":false,"description":"Returns any bookings that end before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][after]","required":false,"description":"Returns any bookings that were created after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][before]","required":false,"description":"Returns any bookings that were created before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][after]","required":false,"description":"Returns any bookings that were updated after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][before]","required":false,"description":"Returns any bookings that were updated before the given date and time (inclusive)."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][resources]","required":false,"description":"Whether to include resources in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][invoices]","required":false,"description":"Whether to include invoice payment data in the attributes."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Booking"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"bookingId":{"type":"string","description":"The unique identifier for this booking."},"created":{"type":"string","format":"date-time","description":"ISO 8601 date and time that this booking was created at."},"bookingPrice":{"type":"number","minimum":0,"nullable":true,"description":"Total amount that this booking costs. If this is booking is for an event this will the the total price of the vent. It is possible for a booking's price to be changed independently from the customer's price which can cause this value to differ from the value of the `customerPrice` property."},"customerPrice":{"type":"number","minimum":0,"description":"Total amount that this booking costs for this customer in the currency configured for the account that this booking belongs to."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking ends at."},"endWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking ends at with the booking's 'after' buffer added if it has one."},"locale":{"type":"string","description":"ISO 639 code of the locale of the customer that created this booking."},"notes":{"type":"string","nullable":true,"description":"Free-form text attached to this booking as a note."},"parts":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"nullable":true,"description":"Human readable text label for this part of the booking."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this part starts at."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this part ends at."}},"required":["label","start","end"],"additionalProperties":false},"minItems":1,"description":"One or more parts that are contained by this booking. This is used for multi-part bookings which can have gaps within it's start and end which are considered 'free' and not blocked by the booking."},"payments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The external reference used to identify the payment within the payment provider e.g. a Stripe charge id or an Adyen PSP reference."},"provider":{"type":"string","description":"The connected provider the booking payment was processed for."},"amount":{"type":"number","description":"The value of the payment that was processed."}},"required":["id","provider","amount"],"additionalProperties":false},"description":"One or more payments that are related to this booking."},"refunds":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The external reference used to identify the refund within the payment provider e.g. a Stripe charge id or an Adyen PSP reference."},"provider":{"type":"string","description":"The connected provider the booking refund was processed for."},"originalPaymentId":{"type":"string","description":"The id that relates to the original payment being refunded."},"amount":{"type":"number","description":"The value of the refund that was processed."},"status":{"type":"string","enum":["pending","success","failed"],"description":"Indicates the status of the refund."},"description":{"type":"string","description":"The description / reason for this refund."},"refundFailedReason":{"type":"string","description":"The reason this refund failed."}},"required":["id","provider","amount","description"],"additionalProperties":false},"description":"One or more refunds that are related to this booking."},"questions":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["text"]},"value":{"type":"string","nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a free-form text value as an answer. A value of `null` indicates an empty answer."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["dropdown"]},"value":{"type":"string","maxLength":100,"nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a free-form a text value selected from a preset number of options as an answer. A value of `null` indicates no selection."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["checkbox"]},"value":{"type":"boolean"}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a boolean value as an answer."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["terms"]},"value":{"type":"boolean"}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a boolean value as an answer (terms of service)."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["file"]},"value":{"type":"string","minLength":1,"maxLength":1000,"nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a file upload as an answer."}]},"description":"Array of questions that were answered by the customer when creating this booking."},"rescheduleUrl":{"type":"string","format":"uri","maxLength":3000,"nullable":true,"description":"URL that provides a web widget to reschedule this booking."},"source":{"type":"string","maxLength":200,"description":"Name of the source where this booking was created."},"spaces":{"type":"number","minimum":1,"description":"Number of spaces that the customer has requested for this booking."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking starts at."},"state":{"type":"string","enum":["pending","confirmed","declined","cancelled"],"description":"State that the booking is currently in."},"status":{"type":"string","description":"Status that this booking is currently in.","default":"No Status"},"startWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking starts at with the booking's 'before' buffer subtracted if it has one."},"timezone":{"type":"string","description":"IANA name of the time zone that the customer made this booking in. Deprecated time zones are supported but we recommend only using non-deprecated time zone names where possible."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this booking was last updated at. If not set then this booking has never been updated since it's creation."}},"required":["created","bookingPrice","customerPrice","end","endWithBuffer","locale","notes","parts","questions","rescheduleUrl","source","spaces","start","state","startWithBuffer","timezone","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"customer":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"event":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Event"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account","customer","event","resources","service"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/bookings/{bookingId}":{"get":{"summary":"Get Booking By ID","tags":["Bookings"],"description":"Get an Appointedd booking that you have access to by it's unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"bookingId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Booking"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"bookingId":{"type":"string","description":"The unique identifier for this booking."},"created":{"type":"string","format":"date-time","description":"ISO 8601 date and time that this booking was created at."},"bookingPrice":{"type":"number","minimum":0,"nullable":true,"description":"Total amount that this booking costs. If this is booking is for an event this will the the total price of the vent. It is possible for a booking's price to be changed independently from the customer's price which can cause this value to differ from the value of the `customerPrice` property."},"customerPrice":{"type":"number","minimum":0,"description":"Total amount that this booking costs for this customer in the currency configured for the account that this booking belongs to."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking ends at."},"endWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking ends at with the booking's 'after' buffer added if it has one."},"locale":{"type":"string","description":"ISO 639 code of the locale of the customer that created this booking."},"notes":{"type":"string","nullable":true,"description":"Free-form text attached to this booking as a note."},"parts":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"nullable":true,"description":"Human readable text label for this part of the booking."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this part starts at."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this part ends at."}},"required":["label","start","end"],"additionalProperties":false},"minItems":1,"description":"One or more parts that are contained by this booking. This is used for multi-part bookings which can have gaps within it's start and end which are considered 'free' and not blocked by the booking."},"payments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The external reference used to identify the payment within the payment provider e.g. a Stripe charge id or an Adyen PSP reference."},"provider":{"type":"string","description":"The connected provider the booking payment was processed for."},"amount":{"type":"number","description":"The value of the payment that was processed."}},"required":["id","provider","amount"],"additionalProperties":false},"description":"One or more payments that are related to this booking."},"refunds":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The external reference used to identify the refund within the payment provider e.g. a Stripe charge id or an Adyen PSP reference."},"provider":{"type":"string","description":"The connected provider the booking refund was processed for."},"originalPaymentId":{"type":"string","description":"The id that relates to the original payment being refunded."},"amount":{"type":"number","description":"The value of the refund that was processed."},"status":{"type":"string","enum":["pending","success","failed"],"description":"Indicates the status of the refund."},"description":{"type":"string","description":"The description / reason for this refund."},"refundFailedReason":{"type":"string","description":"The reason this refund failed."}},"required":["id","provider","amount","description"],"additionalProperties":false},"description":"One or more refunds that are related to this booking."},"questions":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["text"]},"value":{"type":"string","nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a free-form text value as an answer. A value of `null` indicates an empty answer."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["dropdown"]},"value":{"type":"string","maxLength":100,"nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a free-form a text value selected from a preset number of options as an answer. A value of `null` indicates no selection."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["checkbox"]},"value":{"type":"boolean"}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a boolean value as an answer."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["terms"]},"value":{"type":"boolean"}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a boolean value as an answer (terms of service)."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["file"]},"value":{"type":"string","minLength":1,"maxLength":1000,"nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a file upload as an answer."}]},"description":"Array of questions that were answered by the customer when creating this booking."},"rescheduleUrl":{"type":"string","format":"uri","maxLength":3000,"nullable":true,"description":"URL that provides a web widget to reschedule this booking."},"source":{"type":"string","maxLength":200,"description":"Name of the source where this booking was created."},"spaces":{"type":"number","minimum":1,"description":"Number of spaces that the customer has requested for this booking."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking starts at."},"state":{"type":"string","enum":["pending","confirmed","declined","cancelled"],"description":"State that the booking is currently in."},"status":{"type":"string","description":"Status that this booking is currently in.","default":"No Status"},"startWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking starts at with the booking's 'before' buffer subtracted if it has one."},"timezone":{"type":"string","description":"IANA name of the time zone that the customer made this booking in. Deprecated time zones are supported but we recommend only using non-deprecated time zone names where possible."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this booking was last updated at. If not set then this booking has never been updated since it's creation."}},"required":["created","bookingPrice","customerPrice","end","endWithBuffer","locale","notes","parts","questions","rescheduleUrl","source","spaces","start","state","startWithBuffer","timezone","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"customer":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"event":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Event"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account","customer","event","resources","service"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/bookings/{bookingId}/customer":{"get":{"summary":"Get Customer By Booking ID","tags":["Bookings","Customers"],"description":"Get an Appointedd customer that you have access to by a bookings unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"bookingId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Customer"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this customer was created at."},"customFields":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}],"description":"Value of this custom field for this customer."},"description":"Object containing custom fields that are set on this customer."},"email":{"type":"string","nullable":true,"description":"Email address for this customer."},"ccEmails":{"type":"array","items":{"type":"string"},"nullable":true,"description":"If customer CC email addresses (max 2) are provided all customer email comms will be cc'd to these addresses: Note this is a paid for enterprise only feature."},"mobile":{"type":"object","properties":{"number":{"type":"string","minLength":1,"maxLength":50,"description":"Mobile number for this customer."},"countryCode":{"type":"string","minLength":1,"maxLength":50,"nullable":true,"description":"Country code for this mobile number if it contains one, otherwise `null` if it does not or the mobile number is invalid."}},"required":["number"],"additionalProperties":false,"nullable":true,"description":"Object containing mobile information for this customer."},"marketingOptIn":{"type":"boolean","description":"Indicates if the customer has subscribed to receive marketing communications."},"firstname":{"type":"string","minLength":1,"description":"First name of this customer."},"lastname":{"type":"string","minLength":1,"description":"Last name of this customer."},"tags":{"type":"array","items":{"type":"string"},"description":"One or more tags that have been assigned to this customer."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this customer was last updated at. If not set then this customer has never been updated since it's creation."}},"required":["created","marketingOptIn","firstname","lastname","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"bookings":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["account","bookings"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/calendar/external-events":{"get":{"summary":"Get All External Events","tags":["Calendar"],"description":"Get a paginated view of all external calendar events from connected calendar systems.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns any calendar events that belong to any of the given account IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[resourceIds]","required":false,"description":"Returns any calendar events that belong to any of the given resource IDs (bookable_id)."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[customerIds]","required":false,"description":"Returns any booking events that belong to any of the given customer IDs. Only applies to booking events."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[eventIds]","required":false,"description":"Returns any booking events that match the given event IDs (booking _id). Only applies to booking events."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][after]","required":false,"description":"Returns any calendar events that start after the given date and time (inclusive). Uses UTC timezone."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][before]","required":false,"description":"Returns any calendar events that start before the given date and time (inclusive). Uses UTC timezone."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][after]","required":false,"description":"Returns any calendar events that end after the given date and time (inclusive). Uses UTC timezone."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][before]","required":false,"description":"Returns any calendar events that end before the given date and time (inclusive). Uses UTC timezone."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["ExternalEvent"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"allDay":{"type":"boolean","description":"Whether this is an all-day event."},"resourceId":{"type":"string","description":"ID of the resource this external event is associated with."},"calendarId":{"type":"string","description":"Calendar ID from the external calendar system."},"created":{"type":"string","format":"date-time","description":"ISO 8601 date and time that this external event was created at."},"createdInCalendar":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 date and time when this external event was created in the calendar."},"cronofyData":{"type":"object","properties":{"calendarId":{"type":"string"},"eventUid":{"type":"string"},"summary":{"type":"string"},"description":{"type":"string"},"start":{"type":"string"},"end":{"type":"string"},"deleted":{"type":"boolean"},"created":{"type":"string"},"updated":{"type":"string"},"eventPrivate":{"type":"boolean"},"meetingUrl":{"type":"string"},"participationStatus":{"type":"string"},"attendees":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"displayName":{"type":"string","nullable":true},"status":{"type":"string"}},"required":["email","status"],"additionalProperties":false}},"organizer":{"type":"object","properties":{"email":{"type":"string"},"displayName":{"type":"string","nullable":true}},"required":["email"],"additionalProperties":false},"transparency":{"type":"string"},"extendedTransparency":{"type":"string"},"status":{"type":"string"},"categories":{"type":"array","items":{"type":"string"}},"recurring":{"type":"boolean"},"seriesIdentifier":{"type":"string"},"options":{"type":"object","properties":{"delete":{"type":"boolean"},"update":{"type":"boolean"},"changeParticipationStatus":{"type":"boolean"}},"required":["delete","update","changeParticipationStatus"],"additionalProperties":false}},"required":["calendarId","eventUid","summary","start","end","deleted","created","updated","eventPrivate","participationStatus","transparency","extendedTransparency","status","categories","recurring","options"],"additionalProperties":false,"nullable":true,"description":"Raw data from the external calendar provider (e.g., Cronofy)."},"deleted":{"type":"boolean","description":"Whether this external event has been deleted."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this external event ends at."},"eventUid":{"type":"string","description":"Unique event identifier from the external calendar system."},"id":{"type":"number","description":"Legacy ID field for backwards compatibility."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this external event starts at."},"summary":{"type":"string","description":"Summary/title of the external event."},"transparency":{"type":"string","description":"Transparency setting for the event (opaque/transparent)."},"updatedInCalendar":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 date and time when this external event was last updated in the calendar."}},"required":["allDay","resourceId","calendarId","created","deleted","end","eventUid","start","summary","transparency"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}}}}},"/v2/customers":{"post":{"summary":"Create Customer","tags":["Customers"],"description":"Create a new customer","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"attributes":{"type":"object","properties":{"customFields":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}],"description":"Value of this custom field for this customer."},"description":"Object containing custom fields that are set on this customer."},"ccEmails":{"type":"array","items":{"type":"string"},"maxItems":2,"nullable":true},"marketingOptIn":{"type":"boolean","description":"Indicates if the customer has subscribed to receive marketing communications."},"firstname":{"type":"string","minLength":1,"description":"First name of this customer."},"lastname":{"type":"string","minLength":1,"description":"Last name of this customer."},"tags":{"type":"array","items":{"type":"string","minLength":1},"description":"One or more tags that have been assigned to this customer. Tags cannot be empty."},"mobile":{"type":"object","properties":{"number":{"type":"string","minLength":1,"maxLength":50,"description":"Mobile number for this customer."},"countryCode":{"type":"string","minLength":1,"maxLength":50,"nullable":true,"description":"Country code for this mobile number if it contains one, otherwise `null` if it does not or the mobile number is invalid."}},"required":["number"],"additionalProperties":false,"nullable":true,"description":"Object containing mobile information for this customer."},"email":{"type":"string","nullable":true,"description":"Email address for this customer."}},"required":["marketingOptIn","firstname","lastname"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of the related account the customer should be stored on."}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"required":["account"],"additionalProperties":false}},"required":["attributes","relationships"],"additionalProperties":false}}},"required":true},"security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Customer"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this customer was created at."},"customFields":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}],"description":"Value of this custom field for this customer."},"description":"Object containing custom fields that are set on this customer."},"email":{"type":"string","nullable":true,"description":"Email address for this customer."},"ccEmails":{"type":"array","items":{"type":"string"},"nullable":true,"description":"If customer CC email addresses (max 2) are provided all customer email comms will be cc'd to these addresses: Note this is a paid for enterprise only feature."},"mobile":{"type":"object","properties":{"number":{"type":"string","minLength":1,"maxLength":50,"description":"Mobile number for this customer."},"countryCode":{"type":"string","minLength":1,"maxLength":50,"nullable":true,"description":"Country code for this mobile number if it contains one, otherwise `null` if it does not or the mobile number is invalid."}},"required":["number"],"additionalProperties":false,"nullable":true,"description":"Object containing mobile information for this customer."},"marketingOptIn":{"type":"boolean","description":"Indicates if the customer has subscribed to receive marketing communications."},"firstname":{"type":"string","minLength":1,"description":"First name of this customer."},"lastname":{"type":"string","minLength":1,"description":"Last name of this customer."},"tags":{"type":"array","items":{"type":"string"},"description":"One or more tags that have been assigned to this customer."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this customer was last updated at. If not set then this customer has never been updated since it's creation."}},"required":["created","marketingOptIn","firstname","lastname","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"bookings":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["account","bookings"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[409]},"error":{"type":"string","enum":["Conflict"]},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":{}},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Conflict"}}}},"422":{"description":"Unprocessable Content","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[422]},"error":{"type":"string","enum":["Unprocessable Content"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unprocessable Content"}}}}}},"get":{"summary":"Get All Customers","tags":["Customers"],"description":"Get a paginated view of all Appointedd customers you have access to.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns any customers that belong to any of the given account IDs."},{"schema":{"type":"string","minLength":1,"maxLength":2000},"in":"query","name":"filter[query]","required":false,"description":"Returns any customers that match the given search term across email, first name, and last name fields."},{"schema":{"type":"string","minLength":1,"maxLength":2000},"in":"query","name":"filter[email]","required":false,"description":"Returns any customers with the exact given email address."},{"schema":{"type":"string","minLength":1,"maxLength":2000},"in":"query","name":"filter[email][matches]","required":false,"description":"Returns any customers that match the partial given email address."},{"schema":{"type":"string","minLength":1,"maxLength":2000},"in":"query","name":"filter[firstname]","required":false,"description":"Returns any customers with the exact given first name."},{"schema":{"type":"string","minLength":1,"maxLength":2000},"in":"query","name":"filter[firstname][matches]","required":false,"description":"Returns any customers that match the partial given first name."},{"schema":{"type":"string","minLength":1,"maxLength":2000},"in":"query","name":"filter[lastname]","required":false,"description":"Returns any customers with the exact given last name."},{"schema":{"type":"string","minLength":1,"maxLength":2000},"in":"query","name":"filter[lastname][matches]","required":false,"description":"Returns any customers that match the partial given last name."},{"schema":{"type":"string","minLength":1,"maxLength":2000},"in":"query","name":"filter[mobile]","required":false,"description":"Returns any customers with the exact given mobile phone number."},{"schema":{"type":"array","items":{"type":"string","minLength":1,"maxLength":2000}},"in":"query","name":"filter[tags][all]","required":false,"description":"Returns any customers that have been tagged with all the given tags."},{"schema":{"type":"array","items":{"type":"string","minLength":1,"maxLength":2000}},"in":"query","name":"filter[tags][any]","required":false,"description":"Returns any customers that have been tagged with any of the given tags."},{"schema":{"type":"string"},"in":"query","name":"filter[updatedSince]","required":false,"description":"Returns any customers that have been updated (or created if they have not been modified) after this date"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Customer"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this customer was created at."},"customFields":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}],"description":"Value of this custom field for this customer."},"description":"Object containing custom fields that are set on this customer."},"email":{"type":"string","nullable":true,"description":"Email address for this customer."},"ccEmails":{"type":"array","items":{"type":"string"},"nullable":true,"description":"If customer CC email addresses (max 2) are provided all customer email comms will be cc'd to these addresses: Note this is a paid for enterprise only feature."},"mobile":{"type":"object","properties":{"number":{"type":"string","minLength":1,"maxLength":50,"description":"Mobile number for this customer."},"countryCode":{"type":"string","minLength":1,"maxLength":50,"nullable":true,"description":"Country code for this mobile number if it contains one, otherwise `null` if it does not or the mobile number is invalid."}},"required":["number"],"additionalProperties":false,"nullable":true,"description":"Object containing mobile information for this customer."},"marketingOptIn":{"type":"boolean","description":"Indicates if the customer has subscribed to receive marketing communications."},"firstname":{"type":"string","minLength":1,"description":"First name of this customer."},"lastname":{"type":"string","minLength":1,"description":"Last name of this customer."},"tags":{"type":"array","items":{"type":"string"},"description":"One or more tags that have been assigned to this customer."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this customer was last updated at. If not set then this customer has never been updated since it's creation."}},"required":["created","marketingOptIn","firstname","lastname","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"bookings":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["account","bookings"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/customers/{customerId}":{"delete":{"summary":"Delete Customer By ID","tags":["Customers"],"description":"Delete a customer using a valid customer Id","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"customerId","required":true}],"security":[],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}},"get":{"summary":"Get Customer By ID","tags":["Customers"],"description":"Get an Appointedd customer that you have access to by it's unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"customerId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Customer"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this customer was created at."},"customFields":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}],"description":"Value of this custom field for this customer."},"description":"Object containing custom fields that are set on this customer."},"email":{"type":"string","nullable":true,"description":"Email address for this customer."},"ccEmails":{"type":"array","items":{"type":"string"},"nullable":true,"description":"If customer CC email addresses (max 2) are provided all customer email comms will be cc'd to these addresses: Note this is a paid for enterprise only feature."},"mobile":{"type":"object","properties":{"number":{"type":"string","minLength":1,"maxLength":50,"description":"Mobile number for this customer."},"countryCode":{"type":"string","minLength":1,"maxLength":50,"nullable":true,"description":"Country code for this mobile number if it contains one, otherwise `null` if it does not or the mobile number is invalid."}},"required":["number"],"additionalProperties":false,"nullable":true,"description":"Object containing mobile information for this customer."},"marketingOptIn":{"type":"boolean","description":"Indicates if the customer has subscribed to receive marketing communications."},"firstname":{"type":"string","minLength":1,"description":"First name of this customer."},"lastname":{"type":"string","minLength":1,"description":"Last name of this customer."},"tags":{"type":"array","items":{"type":"string"},"description":"One or more tags that have been assigned to this customer."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this customer was last updated at. If not set then this customer has never been updated since it's creation."}},"required":["created","marketingOptIn","firstname","lastname","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"bookings":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["account","bookings"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}},"patch":{"summary":"Update Customer By ID","tags":["Customers"],"description":"Update an existing customer using a valid customer Id","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"attributes":{"type":"object","properties":{"customFields":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}],"description":"Value of this custom field for this customer."},"description":"Object containing custom fields that are set on this customer."},"ccEmails":{"type":"array","items":{"type":"string"},"maxItems":2,"nullable":true},"marketingOptIn":{"type":"boolean","description":"Indicates if the customer has subscribed to receive marketing communications."},"firstname":{"type":"string","minLength":1,"description":"First name of this customer."},"lastname":{"type":"string","minLength":1,"description":"Last name of this customer."},"tags":{"type":"array","items":{"type":"string","minLength":1},"description":"One or more tags that have been assigned to this customer. Tags cannot be empty."},"mobile":{"type":"object","properties":{"number":{"type":"string","minLength":1,"maxLength":50,"description":"Mobile number for this customer."},"countryCode":{"type":"string","minLength":1,"maxLength":50,"nullable":true,"description":"Country code for this mobile number if it contains one, otherwise `null` if it does not or the mobile number is invalid."}},"required":["number"],"additionalProperties":false,"nullable":true,"description":"Object containing mobile information for this customer."},"email":{"type":"string","nullable":true,"description":"Email address for this customer."}},"additionalProperties":false}},"required":["attributes"],"additionalProperties":false}}},"required":true},"parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"customerId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Customer"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this customer was created at."},"customFields":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}],"description":"Value of this custom field for this customer."},"description":"Object containing custom fields that are set on this customer."},"email":{"type":"string","nullable":true,"description":"Email address for this customer."},"ccEmails":{"type":"array","items":{"type":"string"},"nullable":true,"description":"If customer CC email addresses (max 2) are provided all customer email comms will be cc'd to these addresses: Note this is a paid for enterprise only feature."},"mobile":{"type":"object","properties":{"number":{"type":"string","minLength":1,"maxLength":50,"description":"Mobile number for this customer."},"countryCode":{"type":"string","minLength":1,"maxLength":50,"nullable":true,"description":"Country code for this mobile number if it contains one, otherwise `null` if it does not or the mobile number is invalid."}},"required":["number"],"additionalProperties":false,"nullable":true,"description":"Object containing mobile information for this customer."},"marketingOptIn":{"type":"boolean","description":"Indicates if the customer has subscribed to receive marketing communications."},"firstname":{"type":"string","minLength":1,"description":"First name of this customer."},"lastname":{"type":"string","minLength":1,"description":"Last name of this customer."},"tags":{"type":"array","items":{"type":"string"},"description":"One or more tags that have been assigned to this customer."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this customer was last updated at. If not set then this customer has never been updated since it's creation."}},"required":["created","marketingOptIn","firstname","lastname","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"bookings":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["account","bookings"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[409]},"error":{"type":"string","enum":["Conflict"]},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":{}},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Conflict"}}}},"422":{"description":"Unprocessable Content","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[422]},"error":{"type":"string","enum":["Unprocessable Content"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unprocessable Content"}}}}}}},"/v2/customers/{customerId}/account":{"get":{"summary":"Get Account By Customer ID","tags":["Customers","Accounts"],"description":"Get an Appointedd account that you have access to by a customers unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"customerId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Account"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable name for this account."},"slug":{"type":"string","minLength":1,"maxLength":2000,"description":"URL safe representation of the name of this account."},"coordinates":{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90,"description":"latitude."},"longitude":{"type":"number","minimum":-180,"maximum":180,"description":"longitude."}},"required":["latitude","longitude"],"additionalProperties":false,"nullable":true,"description":"Coordinates that corresponds to the geographic location of this account."},"customFields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["text","date"]},"required":{"type":"boolean"}},"required":["id","name","type","required"],"additionalProperties":false},"nullable":true,"description":"Custom fields configured for this account."},"additionalCustomerBookingStatuses":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"key":{"type":"string"}},"required":["label"],"additionalProperties":false},"nullable":true,"description":"Additional custom arrival statuses configured for this account."},"customQuestions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["text","checkbox","dropdown","terms","file"]},"name":{"type":"string"},"required":{"type":"boolean"},"statusType":{"type":"string","enum":["online","internal","both"]},"order":{"type":"number"},"options":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"id":{"type":"string"}},"required":["value"],"additionalProperties":false}},"services":{"type":"array","items":{"type":"string"}}},"required":["type","name"],"additionalProperties":false},"nullable":true,"description":"Custom intake questions configured for this account. Questions may be filtered by service."}},"required":["slug"],"additionalProperties":false},"relationships":{"type":"object","properties":{"bookings":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"customers":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"events":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Event"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"services":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Service"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"saml":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Saml"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/customers/{customerId}/bookings":{"get":{"summary":"Get All Bookings By Customer ID","tags":["Customers","Bookings"],"description":"Get a paginated view of all Appointedd bookings made by a customer with a specific ID.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns any bookings that belong to any of the given account IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[customerIds]","required":false,"description":"Returns any bookings that belong to any of the given customer IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[resourceIds]","required":false,"description":"Returns any bookings that belong to any of the given resource IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[eventIds]","required":false,"description":"Returns any bookings that belong to any of the given event IDs."},{"schema":{"type":"array","items":{"type":"string","minLength":1}},"in":"query","name":"filter[payments][externalIds]","required":false,"description":"Returns any bookings that have a payment that references any of the given external IDs provided by the payment provider used for the payment."},{"schema":{"type":"string","enum":["pending","confirmed","declined","cancelled"]},"in":"query","name":"filter[state]","required":false,"description":"Returns any bookings that have a state set to the given value."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][after]","required":false,"description":"Returns any bookings that start after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][before]","required":false,"description":"Returns any bookings that start before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][after]","required":false,"description":"Returns any bookings that end after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][before]","required":false,"description":"Returns any bookings that end before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][after]","required":false,"description":"Returns any bookings that were created after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][before]","required":false,"description":"Returns any bookings that were created before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][after]","required":false,"description":"Returns any bookings that were updated after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][before]","required":false,"description":"Returns any bookings that were updated before the given date and time (inclusive)."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][resources]","required":false,"description":"Whether to include resources in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][invoices]","required":false,"description":"Whether to include invoice payment data in the attributes."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"customerId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Booking"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"bookingId":{"type":"string","description":"The unique identifier for this booking."},"created":{"type":"string","format":"date-time","description":"ISO 8601 date and time that this booking was created at."},"bookingPrice":{"type":"number","minimum":0,"nullable":true,"description":"Total amount that this booking costs. If this is booking is for an event this will the the total price of the vent. It is possible for a booking's price to be changed independently from the customer's price which can cause this value to differ from the value of the `customerPrice` property."},"customerPrice":{"type":"number","minimum":0,"description":"Total amount that this booking costs for this customer in the currency configured for the account that this booking belongs to."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking ends at."},"endWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking ends at with the booking's 'after' buffer added if it has one."},"locale":{"type":"string","description":"ISO 639 code of the locale of the customer that created this booking."},"notes":{"type":"string","nullable":true,"description":"Free-form text attached to this booking as a note."},"parts":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"nullable":true,"description":"Human readable text label for this part of the booking."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this part starts at."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this part ends at."}},"required":["label","start","end"],"additionalProperties":false},"minItems":1,"description":"One or more parts that are contained by this booking. This is used for multi-part bookings which can have gaps within it's start and end which are considered 'free' and not blocked by the booking."},"payments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The external reference used to identify the payment within the payment provider e.g. a Stripe charge id or an Adyen PSP reference."},"provider":{"type":"string","description":"The connected provider the booking payment was processed for."},"amount":{"type":"number","description":"The value of the payment that was processed."}},"required":["id","provider","amount"],"additionalProperties":false},"description":"One or more payments that are related to this booking."},"refunds":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The external reference used to identify the refund within the payment provider e.g. a Stripe charge id or an Adyen PSP reference."},"provider":{"type":"string","description":"The connected provider the booking refund was processed for."},"originalPaymentId":{"type":"string","description":"The id that relates to the original payment being refunded."},"amount":{"type":"number","description":"The value of the refund that was processed."},"status":{"type":"string","enum":["pending","success","failed"],"description":"Indicates the status of the refund."},"description":{"type":"string","description":"The description / reason for this refund."},"refundFailedReason":{"type":"string","description":"The reason this refund failed."}},"required":["id","provider","amount","description"],"additionalProperties":false},"description":"One or more refunds that are related to this booking."},"questions":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["text"]},"value":{"type":"string","nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a free-form text value as an answer. A value of `null` indicates an empty answer."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["dropdown"]},"value":{"type":"string","maxLength":100,"nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a free-form a text value selected from a preset number of options as an answer. A value of `null` indicates no selection."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["checkbox"]},"value":{"type":"boolean"}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a boolean value as an answer."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["terms"]},"value":{"type":"boolean"}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a boolean value as an answer (terms of service)."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["file"]},"value":{"type":"string","minLength":1,"maxLength":1000,"nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a file upload as an answer."}]},"description":"Array of questions that were answered by the customer when creating this booking."},"rescheduleUrl":{"type":"string","format":"uri","maxLength":3000,"nullable":true,"description":"URL that provides a web widget to reschedule this booking."},"source":{"type":"string","maxLength":200,"description":"Name of the source where this booking was created."},"spaces":{"type":"number","minimum":1,"description":"Number of spaces that the customer has requested for this booking."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking starts at."},"state":{"type":"string","enum":["pending","confirmed","declined","cancelled"],"description":"State that the booking is currently in."},"status":{"type":"string","description":"Status that this booking is currently in.","default":"No Status"},"startWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking starts at with the booking's 'before' buffer subtracted if it has one."},"timezone":{"type":"string","description":"IANA name of the time zone that the customer made this booking in. Deprecated time zones are supported but we recommend only using non-deprecated time zone names where possible."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this booking was last updated at. If not set then this booking has never been updated since it's creation."}},"required":["created","bookingPrice","customerPrice","end","endWithBuffer","locale","notes","parts","questions","rescheduleUrl","source","spaces","start","state","startWithBuffer","timezone","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"customer":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"event":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Event"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account","customer","event","resources","service"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/customers/{customerId}/sent-emails":{"get":{"summary":"Get Sent Emails By Customer ID","tags":["Customers","Emails"],"description":"Get a paginated view of Appointedd emails sent to a customer with a specific ID.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[bookingIds]","required":false,"description":"Filter sent emails by booking IDs"},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"customerId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["SentEmail"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"subject":{"type":"string","description":"Subject of the email."},"content":{"type":"string","description":"Content of the email."},"to":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Recipients of the email."},"from":{"type":"string","description":"Sender of the email."},"customerId":{"type":"string","description":"Unique identifier of the customer this email is associated with"},"organisationId":{"type":"string","description":"Unique identifier of the organisation this email is associated with"},"bookingId":{"type":"string","description":"Unique identifier of the booking this email is associated with"},"sentTime":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this email was sent at."}},"required":["content","to","from","sentTime"],"additionalProperties":false},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/customers/{customerId}/sent-sms":{"get":{"summary":"Get Sent SMS By Customer ID","tags":["Customers","SMS"],"description":"Get a paginated view of Appointedd SMS sent to a customer with a specific ID.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[bookingIds]","required":false,"description":"Filter sent SMS by booking IDs"},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"customerId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["SentSms"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"content":{"type":"string","description":"Content of the SMS."},"to":{"type":"string","description":"Recipient of the SMS."},"from":{"type":"string","description":"Sender of the SMS."},"customerId":{"type":"string","description":"Unique identifier of the customer this SMS is associated with"},"organisationId":{"type":"string","description":"Unique identifier of the organisation this SMS is associated with"},"bookingId":{"type":"string","description":"Unique identifier of the booking this SMS is associated with"},"sentTime":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this SMS was sent at."}},"required":["content","to","from","sentTime"],"additionalProperties":false},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/customers/groups":{"post":{"summary":"Create a Customer Group","tags":["CustomerGroups"],"description":"Create a new customer group","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["CustomerGroup"],"description":"Unique name for all documents that belong to this type."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Human readable identifier for this customer group."},"description":{"type":"string","nullable":true,"description":"An optional description of this customer group."},"colour":{"type":"string","nullable":true,"description":"An optional colour associated with this customer group."}},"required":["name"],"additionalProperties":false},"relationships":{"type":"object","properties":{"customers":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false},"minItems":1},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["customers"],"additionalProperties":false}},"required":["type","attributes","relationships"],"additionalProperties":false}}},"required":true},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["CustomerGroup"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Human readable identifier for this customer group."},"description":{"type":"string","nullable":true,"description":"An optional description of this customer group."},"colour":{"type":"string","nullable":true,"description":"An optional colour associated with this customer group."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this customer group was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this customer group was last updated at. If not set then this customer group has never been updated since its creation."}},"required":["name","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"customers":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."},"canManageAllCustomers":{"type":"boolean","description":"Whether the requesting user has write access to every customer currently in this group. Can be used by clients to conditionally show edit controls."}},"required":["total","canManageAllCustomers"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["customers"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[409]},"error":{"type":"string","enum":["Conflict"]},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":{}},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Conflict"}}}}}},"get":{"summary":"Get All Customer Groups","tags":["CustomerGroups"],"description":"Get a paginated view of all Appointedd Customer Groups you have access to.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["CustomerGroup"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Human readable identifier for this customer group."},"description":{"type":"string","nullable":true,"description":"An optional description of this customer group."},"colour":{"type":"string","nullable":true,"description":"An optional colour associated with this customer group."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this customer group was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this customer group was last updated at. If not set then this customer group has never been updated since its creation."}},"required":["name","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"customers":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."},"canManageAllCustomers":{"type":"boolean","description":"Whether the requesting user has write access to every customer currently in this group. Can be used by clients to conditionally show edit controls."}},"required":["total","canManageAllCustomers"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["customers"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/customers/groups/{customerGroupId}":{"delete":{"summary":"Delete Customer Group by id","tags":["CustomerGroups"],"description":"Delete a single Customer Group.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"customerGroupId","required":true}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}},"get":{"summary":"Get Customer Group by id","tags":["CustomerGroups"],"description":"Get a single Customer Group.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"customerGroupId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["CustomerGroup"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Human readable identifier for this customer group."},"description":{"type":"string","nullable":true,"description":"An optional description of this customer group."},"colour":{"type":"string","nullable":true,"description":"An optional colour associated with this customer group."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this customer group was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this customer group was last updated at. If not set then this customer group has never been updated since its creation."}},"required":["name","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"customers":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."},"canManageAllCustomers":{"type":"boolean","description":"Whether the requesting user has write access to every customer currently in this group. Can be used by clients to conditionally show edit controls."}},"required":["total","canManageAllCustomers"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["customers"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}},"patch":{"summary":"Update Customer Group","tags":["CustomerGroups"],"description":"Update an existing customer group by its unique ID","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["CustomerGroup"],"description":"Unique name for all documents that belong to this type."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Human readable identifier for this customer group."},"description":{"type":"string","nullable":true,"description":"An optional description of this customer group."},"colour":{"type":"string","nullable":true,"description":"An optional colour associated with this customer group."}},"additionalProperties":false},"relationships":{"type":"object","properties":{"customers":{"type":"object","properties":{"add":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false},"remove":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"required":["type"],"additionalProperties":false}}},"required":true},"parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"customerGroupId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["CustomerGroup"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Human readable identifier for this customer group."},"description":{"type":"string","nullable":true,"description":"An optional description of this customer group."},"colour":{"type":"string","nullable":true,"description":"An optional colour associated with this customer group."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this customer group was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this customer group was last updated at. If not set then this customer group has never been updated since its creation."}},"required":["name","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"customers":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."},"canManageAllCustomers":{"type":"boolean","description":"Whether the requesting user has write access to every customer currently in this group. Can be used by clients to conditionally show edit controls."}},"required":["total","canManageAllCustomers"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["customers"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[400]},"error":{"type":"string","enum":["Bad Request"]},"message":{"type":"string"},"details":{"type":"array"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Bad Request"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[409]},"error":{"type":"string","enum":["Conflict"]},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":{}},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Conflict"}}}}}}},"/v2/bookings/intent/events":{"post":{"summary":"Create Intent Event","tags":["IntentEvent"],"description":"Create a new intent event to track booking-related interactions and metadata","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"eventType":{"type":"string","description":"Type of the intent event"},"eventData":{"type":"object","additionalProperties":{},"description":"Additional data specific to this event type"},"customerBookingId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of the customer booking this event relates to"},"timestamp":{"type":"string","format":"date-time","description":"When the event occurred (defaults to current time)"},"source":{"type":"string","maxLength":100,"description":"Source system or component that generated the event"},"metadata":{"type":"object","additionalProperties":{},"description":"Additional metadata for the event"}},"required":["eventType","customerBookingId"],"additionalProperties":false}}},"required":true},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["IntentEvent"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"customerBookingId":{"type":"string","description":"Customer booking ID as hex string"},"eventType":{"type":"string","description":"Type of the intent event"},"eventData":{"type":"object","additionalProperties":{},"description":"Event-specific data"},"timestamp":{"type":"string","description":"Event timestamp as ISO string"},"source":{"type":"string","description":"Source system that generated the event"},"metadata":{"type":"object","additionalProperties":{},"description":"Additional event metadata"},"createdAt":{"type":"string","description":"Creation timestamp as ISO string"},"updatedAt":{"type":"string","description":"Last update timestamp as ISO string"}},"required":["customerBookingId","eventType","timestamp","createdAt","updatedAt"],"additionalProperties":false},"relationships":{"type":"object","properties":{"booking":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["booking","account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[400]},"error":{"type":"string","enum":["Bad Request"]},"message":{"type":"string"},"details":{"type":"array"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Bad Request"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"422":{"description":"Unprocessable Content","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[422]},"error":{"type":"string","enum":["Unprocessable Content"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unprocessable Content"}}}}}},"get":{"summary":"Get Intent Events","tags":["IntentEvent"],"description":"Retrieve a paginated list of intent events with optional filtering","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"in":"query","name":"page[limit]","required":false},{"schema":{"type":"integer","minimum":0,"default":0},"in":"query","name":"page[offset]","required":false},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"filter[customerBookingId]","required":false},{"schema":{"anyOf":[{"type":"string","pattern":"^[a-f\\d]{24}$"},{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}}]},"in":"query","name":"filter[customerBookingIds]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[eventType]","required":false},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"in":"query","name":"filter[eventTypes]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[source]","required":false},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[dateFrom]","required":false},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[dateTo]","required":false},{"schema":{"type":"string","enum":["-timestamp","timestamp","-createdAt","createdAt"],"default":"-timestamp"},"in":"query","name":"sort","required":false}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["IntentEvent"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"customerBookingId":{"type":"string","description":"Customer booking ID as hex string"},"eventType":{"type":"string","description":"Type of the intent event"},"eventData":{"type":"object","additionalProperties":{},"description":"Event-specific data"},"timestamp":{"type":"string","description":"Event timestamp as ISO string"},"source":{"type":"string","description":"Source system that generated the event"},"metadata":{"type":"object","additionalProperties":{},"description":"Additional event metadata"},"createdAt":{"type":"string","description":"Creation timestamp as ISO string"},"updatedAt":{"type":"string","description":"Last update timestamp as ISO string"}},"required":["customerBookingId","eventType","timestamp","createdAt","updatedAt"],"additionalProperties":false},"relationships":{"type":"object","properties":{"booking":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["booking","account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}}}}},"/v2/bookings/intent/events/{eventId}":{"delete":{"summary":"Delete Intent Event","tags":["IntentEvent"],"description":"Delete an intent event by its unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"eventId","required":true}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}},"get":{"summary":"Get Intent Event By ID","tags":["IntentEvent"],"description":"Get an intent event by its unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"eventId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["IntentEvent"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"customerBookingId":{"type":"string","description":"Customer booking ID as hex string"},"eventType":{"type":"string","description":"Type of the intent event"},"eventData":{"type":"object","additionalProperties":{},"description":"Event-specific data"},"timestamp":{"type":"string","description":"Event timestamp as ISO string"},"source":{"type":"string","description":"Source system that generated the event"},"metadata":{"type":"object","additionalProperties":{},"description":"Additional event metadata"},"createdAt":{"type":"string","description":"Creation timestamp as ISO string"},"updatedAt":{"type":"string","description":"Last update timestamp as ISO string"}},"required":["customerBookingId","eventType","timestamp","createdAt","updatedAt"],"additionalProperties":false},"relationships":{"type":"object","properties":{"booking":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["booking","account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}},"patch":{"summary":"Update Intent Event","tags":["IntentEvent"],"description":"Update an existing intent event. Only certain fields can be updated.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"eventData":{"type":"object","additionalProperties":{},"description":"Additional data specific to this event type"},"source":{"type":"string","maxLength":100,"description":"Source system or component that generated the event"},"metadata":{"type":"object","additionalProperties":{},"description":"Additional metadata for the event"}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"eventId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["IntentEvent"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"customerBookingId":{"type":"string","description":"Customer booking ID as hex string"},"eventType":{"type":"string","description":"Type of the intent event"},"eventData":{"type":"object","additionalProperties":{},"description":"Event-specific data"},"timestamp":{"type":"string","description":"Event timestamp as ISO string"},"source":{"type":"string","description":"Source system that generated the event"},"metadata":{"type":"object","additionalProperties":{},"description":"Additional event metadata"},"createdAt":{"type":"string","description":"Creation timestamp as ISO string"},"updatedAt":{"type":"string","description":"Last update timestamp as ISO string"}},"required":["customerBookingId","eventType","timestamp","createdAt","updatedAt"],"additionalProperties":false},"relationships":{"type":"object","properties":{"booking":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Booking"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["booking","account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[400]},"error":{"type":"string","enum":["Bad Request"]},"message":{"type":"string"},"details":{"type":"array"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Bad Request"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}},"422":{"description":"Unprocessable Content","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[422]},"error":{"type":"string","enum":["Unprocessable Content"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unprocessable Content"}}}}}}},"/v2/events/{eventId}/cancel":{"post":{"summary":"Cancel Event By ID","tags":["Events"],"description":"Cancel an Appointedd event that you have access to by it's unique identifier. Note that this will only cancel the specified event and not the entire series if it is a recurring event. If the event is part of a recurring series, you will need to cancel each event individually.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"eventId","required":true}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/events":{"post":{"summary":"Create Event","tags":["Events"],"description":"Create a new event","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["Event"]},"attributes":{"type":"object","properties":{"reservationId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of the reservation to use to create this event."},"accountId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of the account that the event should be associated with."},"sendPaymentRequest":{"type":"boolean","default":true,"description":"If set to true a payment request will be sent to each participant on this event."},"timezone":{"type":"string","default":"UTC","description":"The timezone to use for the date and time properties on the event."},"label":{"type":"string","minLength":1,"maxLength":255,"description":"Human readable text label for this event."},"createdSource":{"type":"string","minLength":1,"maxLength":255,"default":"api","description":"Name of the source that created this event."},"participants":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"createdSource":{"type":"string","minLength":1,"maxLength":255,"default":"api","description":"Name of the source that was used to add the participant to this event."},"locale":{"type":"string","minLength":1,"maxLength":5,"default":"en","description":"ISO 639 language code that the customer used to book onto this event."},"notes":{"type":"string","minLength":1,"maxLength":500,"description":"Free-form text that can store any additional details for this participant on the booking."},"questions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Internal field. Not all questions will have one."},"label":{"type":"string","minLength":1,"maxLength":255,"description":"Text containing the question that was asked."},"value":{"anyOf":[{"type":"string"},{"type":"boolean"}],"description":"Answer given by the participant."},"type":{"type":"string","enum":["text","checkbox","dropdown","terms","file"],"description":"Type of input that the participant was presented with."}},"required":["label","value","type"],"additionalProperties":false},"maxItems":50,"description":"Questions asked during the booking flow and answers given by the participant."},"spaces":{"type":"integer","minimum":1,"maximum":500,"default":1,"description":"Number of spaces that this participant is using on this booking."},"status":{"type":"string","enum":["Arrived","Complete","No Show","No Status"],"default":"No Status","description":"Arrival status of the participant in relation to this event."},"timezone":{"type":"string","description":"The timezone that the participant made the booking in."},"tier":{"type":"object","properties":{"tierId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of the tier the participant selected."},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Snapshot of the tier name at the time the participant selected it."}},"required":["tierId","name"],"additionalProperties":false,"description":"Tier associated with the participant on a multi-tier service."},"pricePoints":{"type":"array","items":{"type":"object","properties":{"pricePointId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of the selected price point."},"pricePerQuantity":{"type":"number","minimum":0,"description":"Price of a single quantity."},"quantity":{"type":"integer","minimum":1,"description":"Quantity of the price point."},"spacesPerQuantity":{"type":"integer","minimum":1,"description":"Number of spaces per quantity."}},"required":["pricePointId","quantity","spacesPerQuantity"],"additionalProperties":false},"maxItems":25,"description":"Price points unique to the selected tier on a multi-tier service."},"type":{"type":"string","enum":["NewCustomer"]},"customer":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":255,"description":"Firstname of the new customer."},"lastName":{"type":"string","minLength":1,"maxLength":255,"description":"Lastname of the new customer."},"email":{"type":"string","minLength":1,"maxLength":255,"format":"email","description":"Email address of the new customer."},"mobile":{"type":"string","minLength":1,"maxLength":20,"description":"Mobile number of the new customer."},"marketingSubscribed":{"type":"boolean","default":false,"description":"Indicates if the customer has given permission to send marketing emails."},"customFields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"ID of the string custom field."},"value":{"type":"string","maxLength":255,"description":"Value of the custom field."}},"required":["id","value"],"additionalProperties":false},"maxItems":50,"description":"Custom fields associated with the new customer stored in the CRM."}},"required":["firstName","lastName"],"additionalProperties":false}},"required":["type","customer"],"additionalProperties":false,"description":"A participant that will create a new customer in your CRM for the account associated to the reservation."},{"type":"object","properties":{"createdSource":{"type":"string","minLength":1,"maxLength":255,"default":"api","description":"Name of the source that was used to add the participant to this event."},"locale":{"type":"string","minLength":1,"maxLength":5,"default":"en","description":"ISO 639 language code that the customer used to book onto this event."},"notes":{"type":"string","minLength":1,"maxLength":500,"description":"Free-form text that can store any additional details for this participant on the booking."},"questions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Internal field. Not all questions will have one."},"label":{"type":"string","minLength":1,"maxLength":255,"description":"Text containing the question that was asked."},"value":{"anyOf":[{"type":"string"},{"type":"boolean"}],"description":"Answer given by the participant."},"type":{"type":"string","enum":["text","checkbox","dropdown","terms","file"],"description":"Type of input that the participant was presented with."}},"required":["label","value","type"],"additionalProperties":false},"maxItems":50,"description":"Questions asked during the booking flow and answers given by the participant."},"spaces":{"type":"integer","minimum":1,"maximum":500,"default":1,"description":"Number of spaces that this participant is using on this booking."},"status":{"type":"string","enum":["Arrived","Complete","No Show","No Status"],"default":"No Status","description":"Arrival status of the participant in relation to this event."},"timezone":{"type":"string","description":"The timezone that the participant made the booking in."},"tier":{"type":"object","properties":{"tierId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of the tier the participant selected."},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Snapshot of the tier name at the time the participant selected it."}},"required":["tierId","name"],"additionalProperties":false,"description":"Tier associated with the participant on a multi-tier service."},"pricePoints":{"type":"array","items":{"type":"object","properties":{"pricePointId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of the selected price point."},"pricePerQuantity":{"type":"number","minimum":0,"description":"Price of a single quantity."},"quantity":{"type":"integer","minimum":1,"description":"Quantity of the price point."},"spacesPerQuantity":{"type":"integer","minimum":1,"description":"Number of spaces per quantity."}},"required":["pricePointId","quantity","spacesPerQuantity"],"additionalProperties":false},"maxItems":25,"description":"Price points unique to the selected tier on a multi-tier service."},"type":{"type":"string","enum":["ExistingCustomer"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of an existing customer in your organisation that is on this booking."}},"required":["type","id"],"additionalProperties":false,"description":"A participant that will be associated with an existing customer in your CRM for the account associated to the reservation."}]},"maxItems":100,"description":"List of participants to add to this event."}},"required":["reservationId","accountId","participants"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}}},"required":true},"security":[],"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Event"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"created":{"type":"string","format":"date-time","description":"ISO 8601 date and time that this event was created at."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this event ends at."},"endWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this event ends at with the event's 'after' buffer added if it has one."},"parts":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":1000,"nullable":true,"description":"Human readable text label for this part of the event."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this part starts at."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this part ends at."}},"required":["label","start","end"],"additionalProperties":false},"minItems":1,"description":"One or more parts that are contained by this event. This is used for multi-part events which can have gaps within it's start and end which are considered 'free' and not blocked by the event."},"source":{"type":"string","maxLength":200,"nullable":true,"description":"Name of the source where this event was created."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this event starts at."},"state":{"type":"string","enum":["pending","confirmed","declined","cancelled"],"description":"State that the event is currently in."},"startWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this event starts at with the event's 'before' buffer subtracted if it has one."},"timezone":{"type":"string","nullable":true,"description":"IANA name of the time zone that the customer made this event in. Deprecated time zones are supported but we recommend only using non-deprecated time zone names where possible."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this event was last updated at. If not set then this event has never been updated since it's creation."}},"required":["created","end","endWithBuffer","parts","source","start","state","startWithBuffer","timezone","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account","resources","service"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}},"get":{"summary":"Get All Events","tags":["Events"],"description":"Get a paginated view of all booking events you have access to.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns any events that belong to any of the given account IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[customerIds]","required":false,"description":"Returns any events that belong to any of the given customer IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[resourceIds]","required":false,"description":"Returns any events that belong to any of the given resource IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[eventIds]","required":false,"description":"Returns any events that belong to any of the given event IDs."},{"schema":{"type":"string","enum":["pending","confirmed","declined","cancelled"]},"in":"query","name":"filter[state]","required":false,"description":"Returns any events that have a state set to the given value."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][after]","required":false,"description":"Returns any events that start after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][before]","required":false,"description":"Returns any events that start before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][after]","required":false,"description":"Returns any events that end after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][before]","required":false,"description":"Returns any events that end before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][after]","required":false,"description":"Returns any events that were created after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][before]","required":false,"description":"Returns any events that were created before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][after]","required":false,"description":"Returns any events that were updated after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][before]","required":false,"description":"Returns any events that were updated before the given date and time (inclusive)."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Event"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"created":{"type":"string","format":"date-time","description":"ISO 8601 date and time that this event was created at."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this event ends at."},"endWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this event ends at with the event's 'after' buffer added if it has one."},"parts":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":1000,"nullable":true,"description":"Human readable text label for this part of the event."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this part starts at."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this part ends at."}},"required":["label","start","end"],"additionalProperties":false},"minItems":1,"description":"One or more parts that are contained by this event. This is used for multi-part events which can have gaps within it's start and end which are considered 'free' and not blocked by the event."},"source":{"type":"string","maxLength":200,"nullable":true,"description":"Name of the source where this event was created."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this event starts at."},"state":{"type":"string","enum":["pending","confirmed","declined","cancelled"],"description":"State that the event is currently in."},"startWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this event starts at with the event's 'before' buffer subtracted if it has one."},"timezone":{"type":"string","nullable":true,"description":"IANA name of the time zone that the customer made this event in. Deprecated time zones are supported but we recommend only using non-deprecated time zone names where possible."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this event was last updated at. If not set then this event has never been updated since it's creation."}},"required":["created","end","endWithBuffer","parts","source","start","state","startWithBuffer","timezone","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account","resources","service"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/events/{eventId}/bookings":{"get":{"summary":"Get All Bookings By Event ID","tags":["Events","Bookings"],"description":"Get a paginated view of all Appointedd bookings made by a event with a specific ID.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns any bookings that belong to any of the given account IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[customerIds]","required":false,"description":"Returns any bookings that belong to any of the given customer IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[resourceIds]","required":false,"description":"Returns any bookings that belong to any of the given resource IDs."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[eventIds]","required":false,"description":"Returns any bookings that belong to any of the given event IDs."},{"schema":{"type":"array","items":{"type":"string","minLength":1}},"in":"query","name":"filter[payments][externalIds]","required":false,"description":"Returns any bookings that have a payment that references any of the given external IDs provided by the payment provider used for the payment."},{"schema":{"type":"string","enum":["pending","confirmed","declined","cancelled"]},"in":"query","name":"filter[state]","required":false,"description":"Returns any bookings that have a state set to the given value."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][after]","required":false,"description":"Returns any bookings that start after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][before]","required":false,"description":"Returns any bookings that start before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][after]","required":false,"description":"Returns any bookings that end after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][before]","required":false,"description":"Returns any bookings that end before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][after]","required":false,"description":"Returns any bookings that were created after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][before]","required":false,"description":"Returns any bookings that were created before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][after]","required":false,"description":"Returns any bookings that were updated after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][before]","required":false,"description":"Returns any bookings that were updated before the given date and time (inclusive)."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][resources]","required":false,"description":"Whether to include resources in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][invoices]","required":false,"description":"Whether to include invoice payment data in the attributes."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"eventId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Booking"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"bookingId":{"type":"string","description":"The unique identifier for this booking."},"created":{"type":"string","format":"date-time","description":"ISO 8601 date and time that this booking was created at."},"bookingPrice":{"type":"number","minimum":0,"nullable":true,"description":"Total amount that this booking costs. If this is booking is for an event this will the the total price of the vent. It is possible for a booking's price to be changed independently from the customer's price which can cause this value to differ from the value of the `customerPrice` property."},"customerPrice":{"type":"number","minimum":0,"description":"Total amount that this booking costs for this customer in the currency configured for the account that this booking belongs to."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking ends at."},"endWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking ends at with the booking's 'after' buffer added if it has one."},"locale":{"type":"string","description":"ISO 639 code of the locale of the customer that created this booking."},"notes":{"type":"string","nullable":true,"description":"Free-form text attached to this booking as a note."},"parts":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"nullable":true,"description":"Human readable text label for this part of the booking."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this part starts at."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this part ends at."}},"required":["label","start","end"],"additionalProperties":false},"minItems":1,"description":"One or more parts that are contained by this booking. This is used for multi-part bookings which can have gaps within it's start and end which are considered 'free' and not blocked by the booking."},"payments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The external reference used to identify the payment within the payment provider e.g. a Stripe charge id or an Adyen PSP reference."},"provider":{"type":"string","description":"The connected provider the booking payment was processed for."},"amount":{"type":"number","description":"The value of the payment that was processed."}},"required":["id","provider","amount"],"additionalProperties":false},"description":"One or more payments that are related to this booking."},"refunds":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The external reference used to identify the refund within the payment provider e.g. a Stripe charge id or an Adyen PSP reference."},"provider":{"type":"string","description":"The connected provider the booking refund was processed for."},"originalPaymentId":{"type":"string","description":"The id that relates to the original payment being refunded."},"amount":{"type":"number","description":"The value of the refund that was processed."},"status":{"type":"string","enum":["pending","success","failed"],"description":"Indicates the status of the refund."},"description":{"type":"string","description":"The description / reason for this refund."},"refundFailedReason":{"type":"string","description":"The reason this refund failed."}},"required":["id","provider","amount","description"],"additionalProperties":false},"description":"One or more refunds that are related to this booking."},"questions":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["text"]},"value":{"type":"string","nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a free-form text value as an answer. A value of `null` indicates an empty answer."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["dropdown"]},"value":{"type":"string","maxLength":100,"nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a free-form a text value selected from a preset number of options as an answer. A value of `null` indicates no selection."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["checkbox"]},"value":{"type":"boolean"}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a boolean value as an answer."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["terms"]},"value":{"type":"boolean"}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a boolean value as an answer (terms of service)."},{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":4000,"description":"Human readable text label for this question"},"type":{"type":"string","enum":["file"]},"value":{"type":"string","minLength":1,"maxLength":1000,"nullable":true}},"required":["label","type","value"],"additionalProperties":false,"description":"Question that takes a file upload as an answer."}]},"description":"Array of questions that were answered by the customer when creating this booking."},"rescheduleUrl":{"type":"string","format":"uri","maxLength":3000,"nullable":true,"description":"URL that provides a web widget to reschedule this booking."},"source":{"type":"string","maxLength":200,"description":"Name of the source where this booking was created."},"spaces":{"type":"number","minimum":1,"description":"Number of spaces that the customer has requested for this booking."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking starts at."},"state":{"type":"string","enum":["pending","confirmed","declined","cancelled"],"description":"State that the booking is currently in."},"status":{"type":"string","description":"Status that this booking is currently in.","default":"No Status"},"startWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this booking starts at with the booking's 'before' buffer subtracted if it has one."},"timezone":{"type":"string","description":"IANA name of the time zone that the customer made this booking in. Deprecated time zones are supported but we recommend only using non-deprecated time zone names where possible."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this booking was last updated at. If not set then this booking has never been updated since it's creation."}},"required":["created","bookingPrice","customerPrice","end","endWithBuffer","locale","notes","parts","questions","rescheduleUrl","source","spaces","start","state","startWithBuffer","timezone","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"customer":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Customer"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"event":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Event"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account","customer","event","resources","service"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/events/{eventId}":{"get":{"summary":"Get Event By ID","tags":["Events"],"description":"Get an Appointedd event that you have access to by it's unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"eventId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Event"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"created":{"type":"string","format":"date-time","description":"ISO 8601 date and time that this event was created at."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this event ends at."},"endWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this event ends at with the event's 'after' buffer added if it has one."},"parts":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":1000,"nullable":true,"description":"Human readable text label for this part of the event."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this part starts at."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this part ends at."}},"required":["label","start","end"],"additionalProperties":false},"minItems":1,"description":"One or more parts that are contained by this event. This is used for multi-part events which can have gaps within it's start and end which are considered 'free' and not blocked by the event."},"source":{"type":"string","maxLength":200,"nullable":true,"description":"Name of the source where this event was created."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this event starts at."},"state":{"type":"string","enum":["pending","confirmed","declined","cancelled"],"description":"State that the event is currently in."},"startWithBuffer":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this event starts at with the event's 'before' buffer subtracted if it has one."},"timezone":{"type":"string","nullable":true,"description":"IANA name of the time zone that the customer made this event in. Deprecated time zones are supported but we recommend only using non-deprecated time zone names where possible."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this event was last updated at. If not set then this event has never been updated since it's creation."}},"required":["created","end","endWithBuffer","parts","source","start","state","startWithBuffer","timezone","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account","resources","service"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/reservations":{"post":{"summary":"Create Reservation","tags":["Reservations"],"description":"Create a new reservation","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["Reservation"],"description":"Indicates this is a standard (non-recurring) reservation."},"attributes":{"type":"object","properties":{"ignorePastRestriction":{"type":"boolean","default":false,"description":"If set to `true` the availability check will not be restricted by the current date and time."},"ignoreNoticeRestriction":{"type":"boolean","default":false,"description":"If set to `true` the availability check will not be restricted by your account's notice period settings."},"ignoreBlockRestriction":{"type":"boolean","default":false,"description":"If set to `true` the availability check will not be restricted by your account's block period settings."},"ignoreServiceSchedule":{"type":"boolean","default":false,"description":"If set to `true` the availability check will not be restricted by the service's schedule."},"increment":{"type":"integer","minimum":1,"maximum":60,"default":15,"description":"The increment in minutes that will be used when calculating availability pre reservation creation."},"customSource":{"type":"string","maxLength":255,"default":"api","description":"Custom source that will be attached to the reservation to indicate its origin."},"accountId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of the account that this reservation belongs to."},"serviceId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of the service that will be assigned to the booking that uses this reservation."},"start":{"type":"string","format":"date-time","description":"ISO 8601 datetime with timezone offset when this availability slot starts (e.g. 2026-04-01T10:00:00+01:00 or 2026-04-01T09:00:00Z)."},"resourceId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of the resource that will be assigned to the booking that uses this reservation."},"resourceGroupIds":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"},"description":"One or more IDs of resource groups to restrict random resource selection to."},"timezone":{"type":"string","default":"Europe/London","description":"IANA timezone of the slot. The given start date and time will be treated as being in this timezone."},"expiresAfter":{"type":"integer","minimum":1,"description":"Number of minutes after creation of this slot that it will expire. This will default to the account reservation expiration setting if not specified."},"allowAdditionalSpaces":{"type":"boolean","description":"If true, other reservations can be created on this reservation for a new booking. If not set will use the service setting or default to false"},"requiredSpaces":{"type":"integer","minimum":1,"default":1,"description":"Number of spaces that this reservation requires."},"maxSpaces":{"type":"integer","minimum":1,"description":"Maximum number of spaces that the reservation allows."},"parts":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["free","block"],"description":"Indicates if this part is marked as unavailable (block) or available (free)."},"label":{"type":"string","description":"Label attached to this part."},"duration":{"type":"integer","minimum":1,"description":"Number of minutes that this part spans."}},"required":["type","duration"],"additionalProperties":false},"minItems":1,"description":"Parts that will be used to create the booking. If not specified they will be taken from the service."}},"required":["accountId","serviceId","start"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["RecurringGroupReservation"],"description":"Indicates this reservation is part of a recurring group."},"attributes":{"type":"object","properties":{"ignorePastRestriction":{"type":"boolean","default":false,"description":"If set to `true` the availability check will not be restricted by the current date and time."},"ignoreNoticeRestriction":{"type":"boolean","default":false,"description":"If set to `true` the availability check will not be restricted by your account's notice period settings."},"ignoreBlockRestriction":{"type":"boolean","default":false,"description":"If set to `true` the availability check will not be restricted by your account's block period settings."},"ignoreServiceSchedule":{"type":"boolean","default":false,"description":"If set to `true` the availability check will not be restricted by the service's schedule."},"recurringId":{"type":"string","description":"ID that will be shared by all reservations in this group."},"bookingIds":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"},"minItems":1,"description":"IDs of existing bookings that will be assigned to the reservation."},"accountId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of the account that this reservation belongs to."},"requiredSpaces":{"type":"integer","minimum":1,"default":1,"description":"Number of spaces that this reservation requires."}},"required":["recurringId","bookingIds","accountId"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}]}}}},"security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Reservation"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"accountId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of the account that this reservation belongs to."},"serviceId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of the service that will be assigned to the booking that uses this reservation."},"start":{"type":"string","format":"date-time","description":"ISO 8601 datetime with timezone offset when this availability slot starts (e.g. 2026-04-01T10:00:00+01:00 or 2026-04-01T09:00:00Z)."},"startBuffer":{"type":"string","format":"date-time","description":"ISO 8601 datetime with timezone offset when the buffer for this reservation starts (e.g. 2026-04-01T10:00:00+01:00 or 2026-04-01T09:00:00Z)."},"endBuffer":{"type":"string","format":"date-time","description":"ISO 8601 datetime with timezone offset when the buffer for this reservation ends (e.g. 2026-04-01T10:00:00+01:00 or 2026-04-01T09:00:00Z)."},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time","nullable":true},"expires":{"type":"string","format":"date-time","description":"ISO 8601 datetime with timezone offset when when this reservation expires (e.g. 2026-04-01T10:00:00+01:00 or 2026-04-01T09:00:00Z)."},"resourceId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of the resource that will be assigned to the booking that uses this reservation."},"resourceGroupIds":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"},"description":"One or more IDs of resource groups to restrict random resource selection to."},"parts":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time","description":"The date and time that this availability slot starts on."},"end":{"type":"string","format":"date-time","description":"The date and time that this availability slot ends on."}},"required":["start","end"],"additionalProperties":false},"minItems":1,"description":"Parts that will be used to create the booking. If not specified they will be taken from the service."},"timezone":{"type":"string","default":"Europe/London","description":"IANA timezone of the slot. The given start date and time will be treated as being in this timezone."},"expiresAfter":{"type":"integer","minimum":1,"description":"Number of minutes after creation of this slot that it will expire. This will default to the account reservation expiration setting if not specified."},"allowAdditionalSpaces":{"type":"boolean","description":"If true, other reservations can be created on this reservation for a new booking. If not set will use the service setting or default to false"},"requiredSpaces":{"type":"integer","minimum":1,"default":1,"description":"Number of spaces that this reservation requires."},"maxSpaces":{"type":"integer","minimum":1,"description":"Maximum number of spaces that the reservation allows."}},"required":["accountId","serviceId","start","startBuffer","endBuffer","created","updated","expires"],"additionalProperties":false},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/resources/groups/{resourceGroupId}":{"get":{"summary":"Get Resource Group By ID","tags":["ResourceGroups"],"description":"Get an Appointedd resource group that you have access to by it's unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"resourceGroupId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["ResourceGroup"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Human readable identifier for this resource group."}},"required":["name"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/resources":{"post":{"summary":"Create resource","tags":["Resources"],"description":"Create a new resource","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Unique name for all documents that belong to this type."},"attributes":{"type":"object","properties":{"colour":{"type":"string","description":"Hex code representing the colour of this resource."},"name":{"type":"string","description":"Human readable identifier for this resource."},"email":{"type":"string","description":"Email address associated with this resource."},"firstName":{"type":"string","description":"First name of the resource."},"lastName":{"type":"string","description":"Last name of the resource."},"phone":{"type":"string","description":"Phone number associated with this resource."},"houseNo":{"type":"string","description":"House number of the resource's address."},"addressOne":{"type":"string","description":"First line of the resource's address."},"addressTwo":{"type":"string","description":"Second line of the resource's address."},"city":{"type":"string","description":"City of the resource's address."},"postcode":{"type":"string","description":"Postcode of the resource's address."},"description":{"type":"string","description":"Description associated with this resource."},"sendBookingConfirmationEmail":{"type":"boolean","description":"Indicates if a booking confirmation email should be sent to the customer when a booking is made with this resource."},"sendBookingRequestEmail":{"type":"boolean","description":"Indicates if a booking request email should be sent to the customer when a booking request is made with this resource."},"sendBookingCancellationEmail":{"type":"boolean","description":"Indicates if a booking cancellation email should be sent to the customer when a booking is cancelled with this resource."},"additionalCommunicationEmails":{"type":"array","items":{"type":"string"},"description":"Additional email addresses to receive communication emails for bookings with this resource."}},"required":["name"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"required":["account"],"additionalProperties":false}},"required":["type","attributes","relationships"],"additionalProperties":false}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Resource"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"colour":{"type":"string","description":"Hex code representing the colour of this resource."},"name":{"type":"string","description":"Human readable identifier for this resource."},"email":{"type":"string","description":"Email address associated with this resource."},"firstName":{"type":"string","description":"First name of the resource."},"lastName":{"type":"string","description":"Last name of the resource."},"phone":{"type":"string","description":"Phone number associated with this resource."},"houseNo":{"type":"string","description":"House number of the resource's address."},"addressOne":{"type":"string","description":"First line of the resource's address."},"addressTwo":{"type":"string","description":"Second line of the resource's address."},"city":{"type":"string","description":"City of the resource's address."},"postcode":{"type":"string","description":"Postcode of the resource's address."},"description":{"type":"string","description":"Description associated with this resource."},"sendBookingConfirmationEmail":{"type":"boolean","description":"Indicates if a booking confirmation email should be sent to the customer when a booking is made with this resource."},"sendBookingRequestEmail":{"type":"boolean","description":"Indicates if a booking request email should be sent to the customer when a booking request is made with this resource."},"sendBookingCancellationEmail":{"type":"boolean","description":"Indicates if a booking cancellation email should be sent to the customer when a booking is cancelled with this resource."},"additionalCommunicationEmails":{"type":"array","items":{"type":"string"},"description":"Additional email addresses to receive communication emails for bookings with this resource."},"created":{"type":"string","format":"date-time","description":"ISO 8601 date and time that this resource was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this resource was last updated at."}},"required":["name","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"schedules":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Schedule"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"blueprint":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ResourceBlueprint"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"blueprintAssociation":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ResourceBlueprintAssociation"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"402":{"description":"Payment is required to perform this action","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[402]},"error":{"type":"string","enum":["Payment Required"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Payment is required to perform this action"}}}}}},"get":{"summary":"Get All Resources","tags":["Resources"],"description":"Get a paginated view of all Appointedd resources you have access to.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns any resources that belong to any of the given account IDs."},{"schema":{"type":"string","minLength":1,"maxLength":2000},"in":"query","name":"filter[name]","required":false,"description":"Returns any resources with the exact given name."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][schedules]","required":false,"description":"Whether to include schedules in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][blueprint]","required":false,"description":"Whether to include blueprint in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][blueprintAssociation]","required":false,"description":"Whether to include blueprintAssociation in the relationships."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Resource"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"colour":{"type":"string","description":"Hex code representing the colour of this resource."},"name":{"type":"string","description":"Human readable identifier for this resource."},"email":{"type":"string","description":"Email address associated with this resource."},"firstName":{"type":"string","description":"First name of the resource."},"lastName":{"type":"string","description":"Last name of the resource."},"phone":{"type":"string","description":"Phone number associated with this resource."},"houseNo":{"type":"string","description":"House number of the resource's address."},"addressOne":{"type":"string","description":"First line of the resource's address."},"addressTwo":{"type":"string","description":"Second line of the resource's address."},"city":{"type":"string","description":"City of the resource's address."},"postcode":{"type":"string","description":"Postcode of the resource's address."},"description":{"type":"string","description":"Description associated with this resource."},"sendBookingConfirmationEmail":{"type":"boolean","description":"Indicates if a booking confirmation email should be sent to the customer when a booking is made with this resource."},"sendBookingRequestEmail":{"type":"boolean","description":"Indicates if a booking request email should be sent to the customer when a booking request is made with this resource."},"sendBookingCancellationEmail":{"type":"boolean","description":"Indicates if a booking cancellation email should be sent to the customer when a booking is cancelled with this resource."},"additionalCommunicationEmails":{"type":"array","items":{"type":"string"},"description":"Additional email addresses to receive communication emails for bookings with this resource."},"created":{"type":"string","format":"date-time","description":"ISO 8601 date and time that this resource was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this resource was last updated at."}},"required":["name","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"schedules":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Schedule"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"blueprint":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ResourceBlueprint"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"blueprintAssociation":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ResourceBlueprintAssociation"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/resources/{resourceId}/schedules":{"post":{"summary":"Create a Schedule for a specific resource","tags":["Resources"],"description":"Create Resource Schedule","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["ExactSchedule"]},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."}},"required":["available","zone","start","end"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["RecurringSchedule"]},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"rrule":{"type":"string","description":"Recurrence rule for this schedule."},"exceptions":{"type":"array","items":{"type":"string","format":"date-time"},"nullable":true,"description":"Array of ISO 8601 representations of the dates and times of exceptions for this schedule e.g. when this schedule will not be applicable."}},"required":["available","zone","start","end","rrule"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}]}}}},"parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"resourceId","required":true,"description":"The Id of the Resource the schedule is for."}],"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["ExactSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."}},"required":["available","zone","start","end","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false},{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["RecurringSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."},"rrule":{"type":"string","description":"Recurrence rule for this schedule."},"exceptions":{"type":"array","items":{"type":"string","format":"date-time"},"nullable":true,"description":"Array of ISO 8601 representations of the dates and times of exceptions for this schedule e.g. when this schedule will not be applicable."}},"required":["available","zone","start","end","created","updated","rrule"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}]}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}},"get":{"summary":"Get All Schedules For The Resource","tags":["Resources"],"description":"Get a paginated view of all schedules for the resource.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"filter[available]","required":false,"description":"Returns any available or non available schedules."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][after]","required":false,"description":"Returns any schedules that start after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][before]","required":false,"description":"Returns any schedules that start before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][after]","required":false,"description":"Returns any schedules that end after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][before]","required":false,"description":"Returns any schedules that end before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][after]","required":false,"description":"Returns any schedules that were created after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][before]","required":false,"description":"Returns any schedules that were created before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][after]","required":false,"description":"Returns any schedules that were updated after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][before]","required":false,"description":"Returns any schedules that were updated before the given date and time (inclusive)."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"resourceId","required":true,"description":"The Id of the resource the schedule is for."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["ExactSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."}},"required":["available","zone","start","end","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false},{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["RecurringSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."},"rrule":{"type":"string","description":"Recurrence rule for this schedule."},"exceptions":{"type":"array","items":{"type":"string","format":"date-time"},"nullable":true,"description":"Array of ISO 8601 representations of the dates and times of exceptions for this schedule e.g. when this schedule will not be applicable."}},"required":["available","zone","start","end","created","updated","rrule"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}]}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/resources/{resourceId}/schedules/{scheduleId}":{"delete":{"summary":"Delete Resource Schedule By ID","tags":["Resources"],"description":"Delete a resource schedule by it's unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"resourceId","required":true,"description":"The Id of the resource the schedule is for."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"scheduleId","required":true,"description":"The Id of the schedule."}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}},"get":{"summary":"Get Resource Schedule By ID","tags":["Resources"],"description":"Get a resource schedule by it's unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"resourceId","required":true,"description":"The Id of the resource the schedule is for."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"scheduleId","required":true,"description":"The Id of the schedule."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["ExactSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."}},"required":["available","zone","start","end","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false},{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["RecurringSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."},"rrule":{"type":"string","description":"Recurrence rule for this schedule."},"exceptions":{"type":"array","items":{"type":"string","format":"date-time"},"nullable":true,"description":"Array of ISO 8601 representations of the dates and times of exceptions for this schedule e.g. when this schedule will not be applicable."}},"required":["available","zone","start","end","created","updated","rrule"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}]}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/resources/{resourceId}":{"get":{"summary":"Get Resource By ID","tags":["Resources"],"description":"Get an Appointedd resource that you have access to by it's unique identifier.","parameters":[{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][schedules]","required":false,"description":"Whether to include schedules in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][blueprint]","required":false,"description":"Whether to include blueprint in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][blueprintAssociation]","required":false,"description":"Whether to include blueprintAssociation in the relationships."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"resourceId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Resource"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"colour":{"type":"string","description":"Hex code representing the colour of this resource."},"name":{"type":"string","description":"Human readable identifier for this resource."},"email":{"type":"string","description":"Email address associated with this resource."},"firstName":{"type":"string","description":"First name of the resource."},"lastName":{"type":"string","description":"Last name of the resource."},"phone":{"type":"string","description":"Phone number associated with this resource."},"houseNo":{"type":"string","description":"House number of the resource's address."},"addressOne":{"type":"string","description":"First line of the resource's address."},"addressTwo":{"type":"string","description":"Second line of the resource's address."},"city":{"type":"string","description":"City of the resource's address."},"postcode":{"type":"string","description":"Postcode of the resource's address."},"description":{"type":"string","description":"Description associated with this resource."},"sendBookingConfirmationEmail":{"type":"boolean","description":"Indicates if a booking confirmation email should be sent to the customer when a booking is made with this resource."},"sendBookingRequestEmail":{"type":"boolean","description":"Indicates if a booking request email should be sent to the customer when a booking request is made with this resource."},"sendBookingCancellationEmail":{"type":"boolean","description":"Indicates if a booking cancellation email should be sent to the customer when a booking is cancelled with this resource."},"additionalCommunicationEmails":{"type":"array","items":{"type":"string"},"description":"Additional email addresses to receive communication emails for bookings with this resource."},"created":{"type":"string","format":"date-time","description":"ISO 8601 date and time that this resource was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this resource was last updated at."}},"required":["name","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"schedules":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Schedule"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"blueprint":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ResourceBlueprint"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"blueprintAssociation":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ResourceBlueprintAssociation"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/saml/{samlId}":{"get":{"summary":"Get SAML configuration By ID","tags":["SAML"],"description":"Get a Saml configuration that you have access to by it's unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"samlId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Saml"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"domain":{"type":"string","description":"Domain associated to the SAML configuration."},"defaultRole":{"type":"string","enum":["OWNER","ADMIN","USER"],"description":"Default role assigned to users provisioned via this SAML domain."},"passwordSignInEnabled":{"type":"boolean","description":"Whether users with this email domain can sign in using a password in addition to SSO."}},"required":["domain","defaultRole","passwordSignInEnabled"],"additionalProperties":false},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/saml/{samlId}/permissions":{"post":{"summary":"Create SAML User Permission","tags":["SAML"],"description":"Create a permission for a SAML user that is a member of a SAML domain configuration.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["SamlPermission"],"description":"Unique name for all documents that belong to this type."},"attributes":{"type":"object","properties":{"email":{"type":"string","description":"Email address of the user that is associated to this SAML permission."},"role":{"type":"string","enum":["Administrator","Standard","Restricted"],"description":"Role on the account that this SAML permission will grant."},"allowScheduleModification":{"type":"boolean","description":"Indicates if the user associated to this permission can modify schedules regardless of their role."},"allowCustomerManagement":{"type":"boolean","description":"Indicates if the user associated to this permission can manage customers regardless of their role."},"hideCalendarSync":{"type":"boolean","description":"Indicates if the user associated to this permission has the ability to view the calendar sync screens."}},"required":["email"],"additionalProperties":false},"relationships":{"type":"object","properties":{"accounts":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false},"minItems":1,"description":"One or more accounts to create this SAML permission for."}},"required":["data"],"additionalProperties":false},"resources":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}},"required":["accounts"],"additionalProperties":false}},"required":["type","attributes","relationships"],"additionalProperties":false}}},"required":true},"parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"samlId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["SamlPermission"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"email":{"type":"string","description":"Email address of the user that is associated to this SAML permission."},"role":{"type":"string","enum":["Administrator","Standard","Restricted"],"description":"Role on the account that this SAML permission will grant."},"allowScheduleModification":{"type":"boolean","description":"Indicates if the user associated to this permission can modify schedules regardless of their role."},"allowCustomerManagement":{"type":"boolean","description":"Indicates if the user associated to this permission can manage customers regardless of their role."},"hideCalendarSync":{"type":"boolean","description":"Indicates if the user associated to this permission has the ability to view the calendar sync screens."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this SAML permission was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this SAML permission was last updated at. If not set then this SAML has never been updated since it's creation."}},"required":["email","role","allowScheduleModification","allowCustomerManagement","hideCalendarSync","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["account","resources"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}},"get":{"summary":"Get All Saml Permissions","tags":["SAML"],"description":"Get a paginated view of all Appointedd Saml permissions you have access to for a specific saml configuration.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns any saml permissions that belong to any of the given account IDs."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"samlId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["SamlPermission"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"email":{"type":"string","description":"Email address of the user that is associated to this SAML permission."},"role":{"type":"string","enum":["Administrator","Standard","Restricted"],"description":"Role on the account that this SAML permission will grant."},"allowScheduleModification":{"type":"boolean","description":"Indicates if the user associated to this permission can modify schedules regardless of their role."},"allowCustomerManagement":{"type":"boolean","description":"Indicates if the user associated to this permission can manage customers regardless of their role."},"hideCalendarSync":{"type":"boolean","description":"Indicates if the user associated to this permission has the ability to view the calendar sync screens."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this SAML permission was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this SAML permission was last updated at. If not set then this SAML has never been updated since it's creation."}},"required":["email","role","allowScheduleModification","allowCustomerManagement","hideCalendarSync","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["account","resources"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/saml/{samlId}/permissions/{permissionId}":{"delete":{"summary":"Delete SAML User Permission","tags":["SAML"],"description":"Delete a permission for a SAML user that is a member of a SAML domain configuration.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"samlId","required":true},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"permissionId","required":true}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}},"get":{"summary":"Get SAML User Permission By ID","tags":["SAML"],"description":"Get a Saml users permission that you have access to by it's unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"samlId","required":true},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"permissionId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["SamlPermission"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"email":{"type":"string","description":"Email address of the user that is associated to this SAML permission."},"role":{"type":"string","enum":["Administrator","Standard","Restricted"],"description":"Role on the account that this SAML permission will grant."},"allowScheduleModification":{"type":"boolean","description":"Indicates if the user associated to this permission can modify schedules regardless of their role."},"allowCustomerManagement":{"type":"boolean","description":"Indicates if the user associated to this permission can manage customers regardless of their role."},"hideCalendarSync":{"type":"boolean","description":"Indicates if the user associated to this permission has the ability to view the calendar sync screens."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this SAML permission was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this SAML permission was last updated at. If not set then this SAML has never been updated since it's creation."}},"required":["email","role","allowScheduleModification","allowCustomerManagement","hideCalendarSync","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["account","resources"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}},"patch":{"summary":"Update SAML User Permission","tags":["SAML"],"description":"Update a permission for a SAML user that is a member of a SAML domain configuration.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["SamlPermission"],"description":"Unique name for all documents that belong to this type."},"attributes":{"type":"object","properties":{"email":{"type":"string","description":"Email address of the user that is associated to this SAML permission."},"role":{"type":"string","enum":["Administrator","Standard","Restricted"],"description":"Role on the account that this SAML permission will grant."},"allowScheduleModification":{"type":"boolean","description":"Indicates if the user associated to this permission can modify schedules regardless of their role."},"allowCustomerManagement":{"type":"boolean","description":"Indicates if the user associated to this permission can manage customers regardless of their role."},"hideCalendarSync":{"type":"boolean","description":"Indicates if the user associated to this permission has the ability to view the calendar sync screens."}},"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"resources":{"type":"object","properties":{"add":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"remove":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}}},"additionalProperties":false,"description":"Define resources to be added and/or removed from this SAML permission"}},"additionalProperties":false}},"required":["type"],"additionalProperties":false}}},"required":true},"parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"samlId","required":true},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"permissionId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["SamlPermission"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"email":{"type":"string","description":"Email address of the user that is associated to this SAML permission."},"role":{"type":"string","enum":["Administrator","Standard","Restricted"],"description":"Role on the account that this SAML permission will grant."},"allowScheduleModification":{"type":"boolean","description":"Indicates if the user associated to this permission can modify schedules regardless of their role."},"allowCustomerManagement":{"type":"boolean","description":"Indicates if the user associated to this permission can manage customers regardless of their role."},"hideCalendarSync":{"type":"boolean","description":"Indicates if the user associated to this permission has the ability to view the calendar sync screens."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the data and time that this SAML permission was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this SAML permission was last updated at. If not set then this SAML has never been updated since it's creation."}},"required":["email","role","allowScheduleModification","allowCustomerManagement","hideCalendarSync","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}},"required":["account","resources"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/saml/{samlId}/permissions/{permissionId}/resources":{"get":{"summary":"Get Saml Permission Resources","tags":["SAML","Resources"],"description":"Get a paginated view of all Appointedd resources associated to a specific saml permission.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns any resources that belong to any of the given account IDs."},{"schema":{"type":"string","minLength":1,"maxLength":2000},"in":"query","name":"filter[name]","required":false,"description":"Returns any resources with the exact given name."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][schedules]","required":false,"description":"Whether to include schedules in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][blueprint]","required":false,"description":"Whether to include blueprint in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][blueprintAssociation]","required":false,"description":"Whether to include blueprintAssociation in the relationships."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"samlId","required":true},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"permissionId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Resource"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"colour":{"type":"string","description":"Hex code representing the colour of this resource."},"name":{"type":"string","description":"Human readable identifier for this resource."},"email":{"type":"string","description":"Email address associated with this resource."},"firstName":{"type":"string","description":"First name of the resource."},"lastName":{"type":"string","description":"Last name of the resource."},"phone":{"type":"string","description":"Phone number associated with this resource."},"houseNo":{"type":"string","description":"House number of the resource's address."},"addressOne":{"type":"string","description":"First line of the resource's address."},"addressTwo":{"type":"string","description":"Second line of the resource's address."},"city":{"type":"string","description":"City of the resource's address."},"postcode":{"type":"string","description":"Postcode of the resource's address."},"description":{"type":"string","description":"Description associated with this resource."},"sendBookingConfirmationEmail":{"type":"boolean","description":"Indicates if a booking confirmation email should be sent to the customer when a booking is made with this resource."},"sendBookingRequestEmail":{"type":"boolean","description":"Indicates if a booking request email should be sent to the customer when a booking request is made with this resource."},"sendBookingCancellationEmail":{"type":"boolean","description":"Indicates if a booking cancellation email should be sent to the customer when a booking is cancelled with this resource."},"additionalCommunicationEmails":{"type":"array","items":{"type":"string"},"description":"Additional email addresses to receive communication emails for bookings with this resource."},"created":{"type":"string","format":"date-time","description":"ISO 8601 date and time that this resource was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this resource was last updated at."}},"required":["name","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"schedules":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Schedule"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"blueprint":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ResourceBlueprint"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"blueprintAssociation":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ResourceBlueprintAssociation"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/schedules":{"get":{"summary":"Get All Schedules","tags":["Schedules"],"description":"Get a paginated view of all Appointedd schedules you have access to.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"filter[available]","required":false,"description":"Returns any available or non available schedules."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][after]","required":false,"description":"Returns any schedules that start after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][before]","required":false,"description":"Returns any schedules that start before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][after]","required":false,"description":"Returns any schedules that end after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][before]","required":false,"description":"Returns any schedules that end before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][after]","required":false,"description":"Returns any schedules that were created after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][before]","required":false,"description":"Returns any schedules that were created before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][after]","required":false,"description":"Returns any schedules that were updated after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][before]","required":false,"description":"Returns any schedules that were updated before the given date and time (inclusive)."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["ExactSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."}},"required":["available","zone","start","end","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false},{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["RecurringSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."},"rrule":{"type":"string","description":"Recurrence rule for this schedule."},"exceptions":{"type":"array","items":{"type":"string","format":"date-time"},"nullable":true,"description":"Array of ISO 8601 representations of the dates and times of exceptions for this schedule e.g. when this schedule will not be applicable."}},"required":["available","zone","start","end","created","updated","rrule"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}]}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/schedules/{scheduleId}":{"patch":{"summary":"Update a specific schedule.","tags":["Schedules"],"description":"Update a Schedule","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["ExactSchedule"]},"attributes":{"type":"object","properties":{"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."}},"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["RecurringSchedule"]},"attributes":{"type":"object","properties":{"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"rrule":{"type":"string","description":"Recurrence rule for this schedule."},"exceptions":{"type":"array","items":{"type":"string","format":"date-time"},"nullable":true,"description":"Array of ISO 8601 representations of the dates and times of exceptions for this schedule e.g. when this schedule will not be applicable."}},"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}]}}}},"parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"scheduleId","required":true,"description":"The Id of the schedule to update."}],"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["ExactSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."}},"required":["available","zone","start","end","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false},{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["RecurringSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."},"rrule":{"type":"string","description":"Recurrence rule for this schedule."},"exceptions":{"type":"array","items":{"type":"string","format":"date-time"},"nullable":true,"description":"Array of ISO 8601 representations of the dates and times of exceptions for this schedule e.g. when this schedule will not be applicable."}},"required":["available","zone","start","end","created","updated","rrule"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}]}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/services/categories":{"post":{"summary":"Create Service Category","tags":["ServiceCategories"],"description":"Create a new service category","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["ServiceCategory"],"description":"Unique name for all documents that belong to this type."},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Human readable identifier for this service category."}},"required":["name"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"required":["account"],"additionalProperties":false}},"required":["type","attributes","relationships"],"additionalProperties":false}}},"required":true},"security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["ServiceCategory"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Human readable identifier for this service category."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this service category was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this service category was last updated at. If not set then this service category has never been updated since it's creation."}},"required":["name","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}},"get":{"summary":"Get All Service Categories","tags":["ServiceCategories"],"description":"Get a paginated view of all Appointedd service categories you have access to.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns any service categories that belong to any of the given account IDs."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["ServiceCategory"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Human readable identifier for this service category."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this service category was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this service category was last updated at. If not set then this service category has never been updated since it's creation."}},"required":["name","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/services/categories/{serviceCategoryId}":{"get":{"summary":"Get Service Category By ID","tags":["ServiceCategories"],"description":"Get a specific service category by it's unique identifier","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"serviceCategoryId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["ServiceCategory"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Human readable identifier for this service category."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this service category was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this service category was last updated at. If not set then this service category has never been updated since it's creation."}},"required":["name","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/services":{"post":{"summary":"Create Service","tags":["Services"],"description":"Create a new service","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Unique name for all documents that belong to this type."},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Human readable identifier for this service."},"description":{"type":"string","nullable":true,"description":"description for this service."},"serviceType":{"type":"string","enum":["Standard","MultiTier","MultiPart","Event"],"description":"The type of service. Dictates service type specific functionality."},"durations":{"type":"array","items":{"type":"object","properties":{"minutes":{"type":"number","minimum":1,"maximum":43200,"description":"How long the duration lasts in minutes. This value is ignored when the serviceType is set to 'MultiPart'."},"isDefaultDuration":{"type":"boolean","description":"The default duration selected during the booking flow."},"price":{"anyOf":[{"type":"string","enum":["POA"]},{"type":"number","minimum":0}],"description":"The price of this duration. If POA, indicates that the price is determined outwith the booking flow."},"oldPrice":{"type":"number","minimum":0,"nullable":true,"description":"The old price of this service, if provided will display the current price as an offer."}},"required":["minutes","isDefaultDuration","price","oldPrice"],"additionalProperties":false},"description":"A list of possible durations on this service."},"bookingPaymentOption":{"type":"string","enum":["Full","Deposit","None"],"description":"Determines if this service needs to be paid for, and if so how it will be paid."},"bookingVisibilityType":{"type":"string","enum":["Bookable","Request","Unavailable","Invisible"],"description":"Determines the visibility of the service on customer facing booking tools."},"allowExternalParticipants":{"type":"boolean","description":"If set to true, customers are allowed to book externally onto an existing event of this service."},"resourceAllocationType":{"type":"string","enum":["Any","All","Group"],"description":"Indicates what resource or resource groups need to be available in order for this service to be available for booking."},"occupancy":{"type":"number","minimum":1,"maximum":500,"description":"The maximum number of participants or spaces that can be present on an event using this service."},"maxOccupancyPerBooking":{"type":"number","minimum":1,"maximum":500,"description":"The maximum number of participants or spaces that can be applied to a single booking participant. Cannot be a higher value than the occupancy."},"tiers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The customer facing label of this tier."},"description":{"type":"string","nullable":true,"description":"The description associated to this tier."},"pricingType":{"type":"string","enum":["Single","Multiple"],"description":"Indicates if this tier has a single price or multiple price points."},"pricePoints":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true,"description":"The customer facing label of this price point."},"spacesPerQuantity":{"type":"number","minimum":1,"description":"The number of spaces that will be taken up on a booking for every quantity of this price point."},"pricePerQuantity":{"type":"number","description":"The price per quantity of this price point being applied to a booking."}},"required":["spacesPerQuantity","pricePerQuantity"],"additionalProperties":false}}},"required":["name","pricingType","pricePoints"],"additionalProperties":false},"description":"A list of possible tiers on this service. Only available for services of serviceType MultiTier."},"parts":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","description":"An internal label used to identify the part."},"partType":{"type":"string","enum":["Free","Block"],"description":"Determine if this part blocks time or is free to be booked."},"durationInMinutes":{"type":"number","minimum":0,"maximum":43200,"description":"The length of time the part will be in minutes."}},"required":["label","partType","durationInMinutes"],"additionalProperties":false},"description":"A list of possible parts on this service. Only available for services of serviceType MultiPart."},"eventTicketsEnabled":{"type":"boolean","description":"If set to true, newly created customer bookings with serviceType `Event` will auto generate QR code tickets that are included in customer email correspondence."},"image":{"type":"string","format":"uri","nullable":true,"description":"URL of an image associated with this service."},"buffers":{"type":"object","properties":{"before":{"type":"number","minimum":0,"description":"Buffer time before the service in minutes"},"after":{"type":"number","minimum":0,"description":"Buffer time after the service in minutes"}},"required":["before","after"],"additionalProperties":false,"description":"Buffer times before and after service appointments"},"location":{"type":"string","nullable":true,"description":"Free-text location description for this service"},"videoConferencingEnabled":{"type":"boolean","description":"If set to true, video conferencing (Teams/Zoom) is enabled for this service"},"availabilityNoticePeriodMinutes":{"type":"number","minimum":0,"nullable":true,"description":"Minimum notice period in minutes required for online bookings. If null, falls back to organization setting"},"rescheduleEnabled":{"type":"boolean","description":"If set to true, customers are allowed to reschedule bookings for this service"},"rescheduleResourceSelectionEnabled":{"type":"boolean","description":"If set to true, customers can select a different resource when rescheduling"},"rescheduleNoticePeriodMinutes":{"type":"number","minimum":0,"description":"Minimum notice period in minutes required for rescheduling"},"bookingDepositAmount":{"type":"number","minimum":5,"maximum":90,"nullable":true,"description":"Deposit amount as a percentage (5-90). Only relevant when bookingPaymentOption is set to 'Deposit'"},"bookingPaymentIsOptional":{"type":"boolean","description":"If set to true, payment is optional for this service. Only relevant when bookingPaymentOption is 'Full' or 'Deposit'"}},"required":["name","serviceType","durations","bookingPaymentOption","bookingVisibilityType","resourceAllocationType","occupancy","maxOccupancyPerBooking"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"serviceCategory":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["ServiceCategory"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"resources":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false,"description":"Becomes mandatory when resourceAllocationType is set to All or Any."},"resourceGroups":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["ResourceGroup"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false,"description":"Becomes mandatory when resourceAllocationType is set to Group."}},"required":["account","serviceCategory"],"additionalProperties":false}},"required":["type","attributes","relationships"],"additionalProperties":false}}},"required":true},"security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Service"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Human readable identifier for this service."},"description":{"type":"string","nullable":true,"description":"description for this service."},"serviceType":{"type":"string","enum":["Standard","MultiTier","MultiPart","Event"],"description":"The type of service. Dictates service type specific functionality."},"durations":{"type":"array","items":{"type":"object","properties":{"minutes":{"type":"number","minimum":1,"maximum":43200,"description":"How long the duration lasts in minutes. This value is ignored when the serviceType is set to 'MultiPart'."},"isDefaultDuration":{"type":"boolean","description":"The default duration selected during the booking flow."},"price":{"anyOf":[{"type":"string","enum":["POA"]},{"type":"number","minimum":0}],"description":"The price of this duration. If POA, indicates that the price is determined outwith the booking flow."},"oldPrice":{"type":"number","minimum":0,"nullable":true,"description":"The old price of this service, if provided will display the current price as an offer."}},"required":["minutes","isDefaultDuration","price","oldPrice"],"additionalProperties":false},"description":"A list of possible durations on this service."},"bookingPaymentOption":{"type":"string","enum":["Full","Deposit","None"],"description":"Determines if this service needs to be paid for, and if so how it will be paid."},"bookingVisibilityType":{"type":"string","enum":["Bookable","Request","Unavailable","Invisible"],"description":"Determines the visibility of the service on customer facing booking tools."},"allowExternalParticipants":{"type":"boolean","description":"If set to true, customers are allowed to book externally onto an existing event of this service."},"resourceAllocationType":{"type":"string","enum":["Any","All","Group"],"description":"Indicates what resource or resource groups need to be available in order for this service to be available for booking."},"occupancy":{"type":"number","minimum":1,"maximum":500,"description":"The maximum number of participants or spaces that can be present on an event using this service."},"maxOccupancyPerBooking":{"type":"number","minimum":1,"maximum":500,"description":"The maximum number of participants or spaces that can be applied to a single booking participant. Cannot be a higher value than the occupancy."},"tiers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The internal reference used to identify this tier."},"name":{"type":"string","description":"The customer facing label of this tier."},"description":{"type":"string","nullable":true,"description":"The description associated to this tier."},"pricingType":{"type":"string","enum":["Single","Multiple"],"description":"Indicates if this tier has a single price or multiple price points."},"pricePoints":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The internal reference used to identify this price point."},"name":{"type":"string","nullable":true,"description":"The customer facing label of this price point."},"spacesPerQuantity":{"type":"number","minimum":1,"description":"The number of spaces that will be taken up on a booking for every quantity of this price point."},"pricePerQuantity":{"type":"number","description":"The price per quantity of this price point being applied to a booking."}},"required":["id","spacesPerQuantity","pricePerQuantity"],"additionalProperties":false},"description":"An array of price points options associated to this tier."}},"required":["id","name","pricingType","pricePoints"],"additionalProperties":false},"nullable":true,"description":"A list of possible tiers on this service when the serviceType is 'MultiTier'."},"parts":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","description":"An internal label used to identify the part."},"partType":{"type":"string","enum":["Free","Block"],"description":"Determine if this part blocks time or is free to be booked."},"durationInMinutes":{"type":"number","minimum":0,"maximum":43200,"description":"The length of time the part will be in minutes."}},"required":["label","partType","durationInMinutes"],"additionalProperties":false},"nullable":true,"description":"A list of possible parts on this service when the serviceType is 'MultiPart'."},"eventTicketsEnabled":{"type":"boolean","description":"If set to true, newly created customer bookings with serviceType `Event` will auto generate QR code tickets that are included in customer email correspondence."},"image":{"type":"string","format":"uri","nullable":true,"description":"URL of an image associated with this service."},"buffers":{"type":"object","properties":{"before":{"type":"number","minimum":0,"description":"Buffer time before the service in minutes"},"after":{"type":"number","minimum":0,"description":"Buffer time after the service in minutes"}},"required":["before","after"],"additionalProperties":false,"description":"Buffer times before and after service appointments"},"location":{"type":"string","nullable":true,"description":"Free-text location description for this service"},"videoConferencingEnabled":{"type":"boolean","description":"If set to true, video conferencing (Teams/Zoom) is enabled for this service"},"availabilityNoticePeriodMinutes":{"type":"number","minimum":0,"nullable":true,"description":"Minimum notice period in minutes required for online bookings. If null, falls back to organization setting"},"rescheduleEnabled":{"type":"boolean","description":"If set to true, customers are allowed to reschedule bookings for this service"},"rescheduleResourceSelectionEnabled":{"type":"boolean","description":"If set to true, customers can select a different resource when rescheduling"},"rescheduleNoticePeriodMinutes":{"type":"number","minimum":0,"description":"Minimum notice period in minutes required for rescheduling"},"bookingDepositAmount":{"type":"number","minimum":5,"maximum":90,"nullable":true,"description":"Deposit amount as a percentage (5-90). Only relevant when bookingPaymentOption is set to 'Deposit'"},"bookingPaymentIsOptional":{"type":"boolean","description":"If set to true, payment is optional for this service. Only relevant when bookingPaymentOption is 'Full' or 'Deposit'"}},"required":["name","serviceType","durations","bookingPaymentOption","bookingVisibilityType","allowExternalParticipants","resourceAllocationType","occupancy","maxOccupancyPerBooking","tiers","parts"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"serviceCategory":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ServiceCategory"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"resourceGroups":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["ResourceGroup"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"blueprint":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ServiceBlueprint"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"blueprintAssociation":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ServiceBlueprintAssociation"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account","serviceCategory"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}},"get":{"summary":"Get All Services","tags":["Services"],"description":"Get a paginated view of all Appointedd services you have access to.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns any services that belong to any of the given account IDs."},{"schema":{"type":"string","minLength":1,"maxLength":2000},"in":"query","name":"filter[name]","required":false,"description":"Returns any services with the exact given name."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][resources]","required":false,"description":"Whether to include resources in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][resourceGroups]","required":false,"description":"Whether to include resourceGroups in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][blueprint]","required":false,"description":"Whether to include blueprint in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][blueprintAssociation]","required":false,"description":"Whether to include blueprintAssociation in the relationships."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Service"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Human readable identifier for this service."},"description":{"type":"string","nullable":true,"description":"description for this service."},"serviceType":{"type":"string","enum":["Standard","MultiTier","MultiPart","Event"],"description":"The type of service. Dictates service type specific functionality."},"durations":{"type":"array","items":{"type":"object","properties":{"minutes":{"type":"number","minimum":1,"maximum":43200,"description":"How long the duration lasts in minutes. This value is ignored when the serviceType is set to 'MultiPart'."},"isDefaultDuration":{"type":"boolean","description":"The default duration selected during the booking flow."},"price":{"anyOf":[{"type":"string","enum":["POA"]},{"type":"number","minimum":0}],"description":"The price of this duration. If POA, indicates that the price is determined outwith the booking flow."},"oldPrice":{"type":"number","minimum":0,"nullable":true,"description":"The old price of this service, if provided will display the current price as an offer."}},"required":["minutes","isDefaultDuration","price","oldPrice"],"additionalProperties":false},"description":"A list of possible durations on this service."},"bookingPaymentOption":{"type":"string","enum":["Full","Deposit","None"],"description":"Determines if this service needs to be paid for, and if so how it will be paid."},"bookingVisibilityType":{"type":"string","enum":["Bookable","Request","Unavailable","Invisible"],"description":"Determines the visibility of the service on customer facing booking tools."},"allowExternalParticipants":{"type":"boolean","description":"If set to true, customers are allowed to book externally onto an existing event of this service."},"resourceAllocationType":{"type":"string","enum":["Any","All","Group"],"description":"Indicates what resource or resource groups need to be available in order for this service to be available for booking."},"occupancy":{"type":"number","minimum":1,"maximum":500,"description":"The maximum number of participants or spaces that can be present on an event using this service."},"maxOccupancyPerBooking":{"type":"number","minimum":1,"maximum":500,"description":"The maximum number of participants or spaces that can be applied to a single booking participant. Cannot be a higher value than the occupancy."},"tiers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The internal reference used to identify this tier."},"name":{"type":"string","description":"The customer facing label of this tier."},"description":{"type":"string","nullable":true,"description":"The description associated to this tier."},"pricingType":{"type":"string","enum":["Single","Multiple"],"description":"Indicates if this tier has a single price or multiple price points."},"pricePoints":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The internal reference used to identify this price point."},"name":{"type":"string","nullable":true,"description":"The customer facing label of this price point."},"spacesPerQuantity":{"type":"number","minimum":1,"description":"The number of spaces that will be taken up on a booking for every quantity of this price point."},"pricePerQuantity":{"type":"number","description":"The price per quantity of this price point being applied to a booking."}},"required":["id","spacesPerQuantity","pricePerQuantity"],"additionalProperties":false},"description":"An array of price points options associated to this tier."}},"required":["id","name","pricingType","pricePoints"],"additionalProperties":false},"nullable":true,"description":"A list of possible tiers on this service when the serviceType is 'MultiTier'."},"parts":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","description":"An internal label used to identify the part."},"partType":{"type":"string","enum":["Free","Block"],"description":"Determine if this part blocks time or is free to be booked."},"durationInMinutes":{"type":"number","minimum":0,"maximum":43200,"description":"The length of time the part will be in minutes."}},"required":["label","partType","durationInMinutes"],"additionalProperties":false},"nullable":true,"description":"A list of possible parts on this service when the serviceType is 'MultiPart'."},"eventTicketsEnabled":{"type":"boolean","description":"If set to true, newly created customer bookings with serviceType `Event` will auto generate QR code tickets that are included in customer email correspondence."},"image":{"type":"string","format":"uri","nullable":true,"description":"URL of an image associated with this service."},"buffers":{"type":"object","properties":{"before":{"type":"number","minimum":0,"description":"Buffer time before the service in minutes"},"after":{"type":"number","minimum":0,"description":"Buffer time after the service in minutes"}},"required":["before","after"],"additionalProperties":false,"description":"Buffer times before and after service appointments"},"location":{"type":"string","nullable":true,"description":"Free-text location description for this service"},"videoConferencingEnabled":{"type":"boolean","description":"If set to true, video conferencing (Teams/Zoom) is enabled for this service"},"availabilityNoticePeriodMinutes":{"type":"number","minimum":0,"nullable":true,"description":"Minimum notice period in minutes required for online bookings. If null, falls back to organization setting"},"rescheduleEnabled":{"type":"boolean","description":"If set to true, customers are allowed to reschedule bookings for this service"},"rescheduleResourceSelectionEnabled":{"type":"boolean","description":"If set to true, customers can select a different resource when rescheduling"},"rescheduleNoticePeriodMinutes":{"type":"number","minimum":0,"description":"Minimum notice period in minutes required for rescheduling"},"bookingDepositAmount":{"type":"number","minimum":5,"maximum":90,"nullable":true,"description":"Deposit amount as a percentage (5-90). Only relevant when bookingPaymentOption is set to 'Deposit'"},"bookingPaymentIsOptional":{"type":"boolean","description":"If set to true, payment is optional for this service. Only relevant when bookingPaymentOption is 'Full' or 'Deposit'"}},"required":["name","serviceType","durations","bookingPaymentOption","bookingVisibilityType","allowExternalParticipants","resourceAllocationType","occupancy","maxOccupancyPerBooking","tiers","parts"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"serviceCategory":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ServiceCategory"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"resourceGroups":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["ResourceGroup"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"blueprint":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ServiceBlueprint"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"blueprintAssociation":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ServiceBlueprintAssociation"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account","serviceCategory"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/services/{serviceId}/schedules":{"post":{"summary":"Create a Schedule for a specific service","tags":["Services"],"description":"Create Service Schedule","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["ExactSchedule"]},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."}},"required":["available","zone","start","end"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["RecurringSchedule"]},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"rrule":{"type":"string","description":"Recurrence rule for this schedule."},"exceptions":{"type":"array","items":{"type":"string","format":"date-time"},"nullable":true,"description":"Array of ISO 8601 representations of the dates and times of exceptions for this schedule e.g. when this schedule will not be applicable."}},"required":["available","zone","start","end","rrule"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}]}}}},"parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"serviceId","required":true,"description":"The Id of the Service the schedule is for."}],"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["ExactSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."}},"required":["available","zone","start","end","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false},{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["RecurringSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."},"rrule":{"type":"string","description":"Recurrence rule for this schedule."},"exceptions":{"type":"array","items":{"type":"string","format":"date-time"},"nullable":true,"description":"Array of ISO 8601 representations of the dates and times of exceptions for this schedule e.g. when this schedule will not be applicable."}},"required":["available","zone","start","end","created","updated","rrule"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}]}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}},"get":{"summary":"Get All Schedules For The Service","tags":["Services"],"description":"Get a paginated view of all schedules for the service.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"filter[available]","required":false,"description":"Returns any available or non available schedules."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][after]","required":false,"description":"Returns any schedules that start after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[start][before]","required":false,"description":"Returns any schedules that start before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][after]","required":false,"description":"Returns any schedules that end after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[end][before]","required":false,"description":"Returns any schedules that end before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][after]","required":false,"description":"Returns any schedules that were created after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[created][before]","required":false,"description":"Returns any schedules that were created before the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][after]","required":false,"description":"Returns any schedules that were updated after the given date and time (inclusive)."},{"schema":{"type":"string","format":"date-time"},"in":"query","name":"filter[updated][before]","required":false,"description":"Returns any schedules that were updated before the given date and time (inclusive)."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"serviceId","required":true,"description":"The Id of the service the schedule is for."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["ExactSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."}},"required":["available","zone","start","end","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false},{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["RecurringSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."},"rrule":{"type":"string","description":"Recurrence rule for this schedule."},"exceptions":{"type":"array","items":{"type":"string","format":"date-time"},"nullable":true,"description":"Array of ISO 8601 representations of the dates and times of exceptions for this schedule e.g. when this schedule will not be applicable."}},"required":["available","zone","start","end","created","updated","rrule"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}]}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/services/{serviceId}/schedules/{scheduleId}":{"delete":{"summary":"Delete Service Schedule By ID","tags":["Services"],"description":"Delete a service schedule by it's unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"scheduleId","required":true,"description":"The Id of the schedule."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"serviceId","required":true,"description":"The Id of the service the schedule is for."}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}},"get":{"summary":"Get Service Schedule By ID","tags":["Services"],"description":"Get a service schedule by it's unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"scheduleId","required":true,"description":"The Id of the schedule."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"serviceId","required":true,"description":"The Id of the service the schedule is for."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["ExactSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."}},"required":["available","zone","start","end","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false},{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["RecurringSchedule"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates if the schedule is available or unavailable."},"reason":{"type":"string","nullable":true,"description":"Reason / identifiable label for this schedule. e.g. Default Working hours, Seasonal Opening Times etc"},"zone":{"type":"string","description":"Timezone for this schedule."},"start":{"type":"string","format":"date-time","description":"ISO 8601 representation of the start date and time of this schedule."},"end":{"type":"string","format":"date-time","description":"ISO 8601 representation of the end date and time of this schedule."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time that this schedule was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this schedule was last updated at. If not set then this schedule has never been updated since it's creation."},"rrule":{"type":"string","description":"Recurrence rule for this schedule."},"exceptions":{"type":"array","items":{"type":"string","format":"date-time"},"nullable":true,"description":"Array of ISO 8601 representations of the dates and times of exceptions for this schedule e.g. when this schedule will not be applicable."}},"required":["available","zone","start","end","created","updated","rrule"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resource":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"service":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Service"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}]}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/services/{serviceId}/resources":{"get":{"summary":"Get Service Resources","tags":["Services","Resources"],"description":"Get a paginated view of all Appointedd resources associated to a specific service.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns any resources that belong to any of the given account IDs."},{"schema":{"type":"string","minLength":1,"maxLength":2000},"in":"query","name":"filter[name]","required":false,"description":"Returns any resources with the exact given name."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][schedules]","required":false,"description":"Whether to include schedules in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][blueprint]","required":false,"description":"Whether to include blueprint in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][blueprintAssociation]","required":false,"description":"Whether to include blueprintAssociation in the relationships."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"serviceId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Resource"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"colour":{"type":"string","description":"Hex code representing the colour of this resource."},"name":{"type":"string","description":"Human readable identifier for this resource."},"email":{"type":"string","description":"Email address associated with this resource."},"firstName":{"type":"string","description":"First name of the resource."},"lastName":{"type":"string","description":"Last name of the resource."},"phone":{"type":"string","description":"Phone number associated with this resource."},"houseNo":{"type":"string","description":"House number of the resource's address."},"addressOne":{"type":"string","description":"First line of the resource's address."},"addressTwo":{"type":"string","description":"Second line of the resource's address."},"city":{"type":"string","description":"City of the resource's address."},"postcode":{"type":"string","description":"Postcode of the resource's address."},"description":{"type":"string","description":"Description associated with this resource."},"sendBookingConfirmationEmail":{"type":"boolean","description":"Indicates if a booking confirmation email should be sent to the customer when a booking is made with this resource."},"sendBookingRequestEmail":{"type":"boolean","description":"Indicates if a booking request email should be sent to the customer when a booking request is made with this resource."},"sendBookingCancellationEmail":{"type":"boolean","description":"Indicates if a booking cancellation email should be sent to the customer when a booking is cancelled with this resource."},"additionalCommunicationEmails":{"type":"array","items":{"type":"string"},"description":"Additional email addresses to receive communication emails for bookings with this resource."},"created":{"type":"string","format":"date-time","description":"ISO 8601 date and time that this resource was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this resource was last updated at."}},"required":["name","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"schedules":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Schedule"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"blueprint":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ResourceBlueprint"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"blueprintAssociation":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ResourceBlueprintAssociation"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/services/{serviceId}":{"get":{"summary":"Get Service by id","tags":["Services"],"description":"Get a single Appointedd service.","parameters":[{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][resources]","required":false,"description":"Whether to include resources in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][resourceGroups]","required":false,"description":"Whether to include resourceGroups in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][blueprint]","required":false,"description":"Whether to include blueprint in the relationships."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"includes[relationship][blueprintAssociation]","required":false,"description":"Whether to include blueprintAssociation in the relationships."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"serviceId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["Service"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Human readable identifier for this service."},"description":{"type":"string","nullable":true,"description":"description for this service."},"serviceType":{"type":"string","enum":["Standard","MultiTier","MultiPart","Event"],"description":"The type of service. Dictates service type specific functionality."},"durations":{"type":"array","items":{"type":"object","properties":{"minutes":{"type":"number","minimum":1,"maximum":43200,"description":"How long the duration lasts in minutes. This value is ignored when the serviceType is set to 'MultiPart'."},"isDefaultDuration":{"type":"boolean","description":"The default duration selected during the booking flow."},"price":{"anyOf":[{"type":"string","enum":["POA"]},{"type":"number","minimum":0}],"description":"The price of this duration. If POA, indicates that the price is determined outwith the booking flow."},"oldPrice":{"type":"number","minimum":0,"nullable":true,"description":"The old price of this service, if provided will display the current price as an offer."}},"required":["minutes","isDefaultDuration","price","oldPrice"],"additionalProperties":false},"description":"A list of possible durations on this service."},"bookingPaymentOption":{"type":"string","enum":["Full","Deposit","None"],"description":"Determines if this service needs to be paid for, and if so how it will be paid."},"bookingVisibilityType":{"type":"string","enum":["Bookable","Request","Unavailable","Invisible"],"description":"Determines the visibility of the service on customer facing booking tools."},"allowExternalParticipants":{"type":"boolean","description":"If set to true, customers are allowed to book externally onto an existing event of this service."},"resourceAllocationType":{"type":"string","enum":["Any","All","Group"],"description":"Indicates what resource or resource groups need to be available in order for this service to be available for booking."},"occupancy":{"type":"number","minimum":1,"maximum":500,"description":"The maximum number of participants or spaces that can be present on an event using this service."},"maxOccupancyPerBooking":{"type":"number","minimum":1,"maximum":500,"description":"The maximum number of participants or spaces that can be applied to a single booking participant. Cannot be a higher value than the occupancy."},"tiers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The internal reference used to identify this tier."},"name":{"type":"string","description":"The customer facing label of this tier."},"description":{"type":"string","nullable":true,"description":"The description associated to this tier."},"pricingType":{"type":"string","enum":["Single","Multiple"],"description":"Indicates if this tier has a single price or multiple price points."},"pricePoints":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The internal reference used to identify this price point."},"name":{"type":"string","nullable":true,"description":"The customer facing label of this price point."},"spacesPerQuantity":{"type":"number","minimum":1,"description":"The number of spaces that will be taken up on a booking for every quantity of this price point."},"pricePerQuantity":{"type":"number","description":"The price per quantity of this price point being applied to a booking."}},"required":["id","spacesPerQuantity","pricePerQuantity"],"additionalProperties":false},"description":"An array of price points options associated to this tier."}},"required":["id","name","pricingType","pricePoints"],"additionalProperties":false},"nullable":true,"description":"A list of possible tiers on this service when the serviceType is 'MultiTier'."},"parts":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","description":"An internal label used to identify the part."},"partType":{"type":"string","enum":["Free","Block"],"description":"Determine if this part blocks time or is free to be booked."},"durationInMinutes":{"type":"number","minimum":0,"maximum":43200,"description":"The length of time the part will be in minutes."}},"required":["label","partType","durationInMinutes"],"additionalProperties":false},"nullable":true,"description":"A list of possible parts on this service when the serviceType is 'MultiPart'."},"eventTicketsEnabled":{"type":"boolean","description":"If set to true, newly created customer bookings with serviceType `Event` will auto generate QR code tickets that are included in customer email correspondence."},"image":{"type":"string","format":"uri","nullable":true,"description":"URL of an image associated with this service."},"buffers":{"type":"object","properties":{"before":{"type":"number","minimum":0,"description":"Buffer time before the service in minutes"},"after":{"type":"number","minimum":0,"description":"Buffer time after the service in minutes"}},"required":["before","after"],"additionalProperties":false,"description":"Buffer times before and after service appointments"},"location":{"type":"string","nullable":true,"description":"Free-text location description for this service"},"videoConferencingEnabled":{"type":"boolean","description":"If set to true, video conferencing (Teams/Zoom) is enabled for this service"},"availabilityNoticePeriodMinutes":{"type":"number","minimum":0,"nullable":true,"description":"Minimum notice period in minutes required for online bookings. If null, falls back to organization setting"},"rescheduleEnabled":{"type":"boolean","description":"If set to true, customers are allowed to reschedule bookings for this service"},"rescheduleResourceSelectionEnabled":{"type":"boolean","description":"If set to true, customers can select a different resource when rescheduling"},"rescheduleNoticePeriodMinutes":{"type":"number","minimum":0,"description":"Minimum notice period in minutes required for rescheduling"},"bookingDepositAmount":{"type":"number","minimum":5,"maximum":90,"nullable":true,"description":"Deposit amount as a percentage (5-90). Only relevant when bookingPaymentOption is set to 'Deposit'"},"bookingPaymentIsOptional":{"type":"boolean","description":"If set to true, payment is optional for this service. Only relevant when bookingPaymentOption is 'Full' or 'Deposit'"}},"required":["name","serviceType","durations","bookingPaymentOption","bookingVisibilityType","allowExternalParticipants","resourceAllocationType","occupancy","maxOccupancyPerBooking","tiers","parts"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"serviceCategory":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ServiceCategory"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"resources":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Resource"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"resourceGroups":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","description":"URI for accessing a page containing documents belonging to this relationship with attribute data included."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) for this relationship. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) for this relationship. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["related","next","prev"],"additionalProperties":false,"description":"Links for this relationship page."},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["ResourceGroup"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier that identifies a document"}},"required":["type","id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages in this relationship."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"blueprint":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ServiceBlueprint"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"blueprintAssociation":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["ServiceBlueprintAssociation"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account","serviceCategory"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/services/{serviceId}/resources/groups":{"get":{"summary":"Get Service Resource Groups","tags":["Services","ResourceGroups"],"description":"Get a paginated view of all Appointedd resource groups associated to a specific service.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns any resource groups that belong to any of the given account IDs."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"serviceId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["ResourceGroup"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Human readable identifier for this resource group."}},"required":["name"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/users":{"post":{"summary":"Create User","tags":["Users"],"description":"Create a new user","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["User"],"description":"Unique name for all documents that belong to this type."},"attributes":{"type":"object","properties":{"email":{"type":"string","description":"Email address for this user."},"firstname":{"type":"string","minLength":1,"description":"First name of the new user."},"lastname":{"type":"string","minLength":1,"description":"Last name of the new user."},"isMfaEnabled":{"type":"boolean","description":"Whether MFA is required for this user."},"isSamlSsoRequired":{"type":"boolean","description":"Whether this user is required to authenticate via SAML SSO."}},"required":["email","firstname","lastname"],"additionalProperties":false},"relationships":{"type":"object","properties":{"accounts":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Account"]},"id":{"type":"string"},"permission":{"type":"string","enum":["administrator","standard","restricted"]},"scopes":{"type":"array","items":{"type":"string","enum":["can_manage_resource_schedules","can_manage_customers","calendar_sync_hidden"]},"description":"Only applicable for users with the 'restricted' role, defines additional scopes that the user has on this account."},"restrictedToResources":{"type":"array","items":{"type":"string"},"description":"Only applicable for users with the 'restricted' role, defines an optional list of resources that the user's access is restricted to. If not set, then the user has access to all resources on the account."}},"required":["type","id","permission"],"additionalProperties":false},"minItems":1,"description":"All accounts the user is a member of, with permissions."}},"required":["data"],"additionalProperties":false}},"required":["accounts"],"additionalProperties":false}},"required":["type","attributes","relationships"],"additionalProperties":false}}},"required":true},"security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["User"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"email":{"type":"string","description":"Email address for this user."},"firstname":{"type":"string","minLength":1,"description":"First name of this user."},"lastname":{"type":"string","minLength":1,"nullable":true,"description":"Last name of this user."},"isMfaEnabled":{"type":"boolean","description":"Indicates if the user has MFA enabled."},"hasCompletedMfaSetup":{"type":"boolean","description":"Indicates if the user has completed MFA setup."},"isSamlSsoRequired":{"type":"boolean","description":"Indicates if the user is required to authenticate via SAML SSO."},"samlPendingConfiguration":{"type":"boolean","description":"Indicates if the user was provisioned via SAML but has no role mappings configured yet."},"setupChecklistCompleted":{"type":"boolean","description":"Indicates if the user has completed the setup checklist."},"setupChecklistCompletedSteps":{"type":"array","items":{"type":"string","nullable":true},"description":"Array of setup checklist steps that the user has completed."},"numberOfAccounts":{"type":"number","description":"The number of accounts the user is a member of."},"created":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the data and time that this user was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this user was last updated at. If not set then this user has never been updated since it's creation."}},"required":["email","firstname","lastname","numberOfAccounts","created"],"additionalProperties":false},"relationships":{"type":"object","properties":{"saml":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Saml"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"accounts":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Account"]},"id":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"role":{"type":"string","enum":["administrator","standard","restricted"]},"scopes":{"type":"array","items":{"type":"string","enum":["can_manage_resource_schedules","can_manage_customers","calendar_sync_hidden"]},"description":"Only applicable for users with the 'restricted' role, defines additional scopes that the user has on this account."},"restrictedToResources":{"type":"array","items":{"type":"string"},"description":"Only applicable for users with the 'restricted' role, defines an optional list of resources that the user's access is restricted to. If not set, then the user has access to all resources on the account."}},"required":["name","role"],"additionalProperties":false}},"required":["type","id","attributes"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}},"required":["saml","accounts"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[409]},"error":{"type":"string","enum":["Conflict"]},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":{}},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Conflict"}}}}}},"get":{"summary":"Get All Users","tags":["Users"],"description":"Get a paginated view of all Appointedd users you have access to.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"array","items":{"type":"string"}},"in":"query","name":"filter[accountIds]","required":false,"description":"Returns all users that belong to any of the given account IDs."},{"schema":{"type":"string"},"in":"query","name":"filter[userQuery]","required":false,"description":"Search query for users (matches email, firstname, lastname)."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"filter[isMfaEnabled]","required":false,"description":"Filter users by MFA enabled status."},{"schema":{"anyOf":[{"type":"string","enum":["true"]},{"type":"string","enum":["false"]}]},"in":"query","name":"filter[hasSamlConnection]","required":false,"description":"Filter users by SAML connection status."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["User"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"email":{"type":"string","description":"Email address for this user."},"firstname":{"type":"string","minLength":1,"description":"First name of this user."},"lastname":{"type":"string","minLength":1,"nullable":true,"description":"Last name of this user."},"isMfaEnabled":{"type":"boolean","description":"Indicates if the user has MFA enabled."},"hasCompletedMfaSetup":{"type":"boolean","description":"Indicates if the user has completed MFA setup."},"isSamlSsoRequired":{"type":"boolean","description":"Indicates if the user is required to authenticate via SAML SSO."},"samlPendingConfiguration":{"type":"boolean","description":"Indicates if the user was provisioned via SAML but has no role mappings configured yet."},"setupChecklistCompleted":{"type":"boolean","description":"Indicates if the user has completed the setup checklist."},"setupChecklistCompletedSteps":{"type":"array","items":{"type":"string","nullable":true},"description":"Array of setup checklist steps that the user has completed."},"numberOfAccounts":{"type":"number","description":"The number of accounts the user is a member of."},"created":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the data and time that this user was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this user was last updated at. If not set then this user has never been updated since it's creation."}},"required":["email","firstname","lastname","numberOfAccounts","created"],"additionalProperties":false},"relationships":{"type":"object","properties":{"saml":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Saml"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"accounts":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Account"]},"id":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"role":{"type":"string","enum":["administrator","standard","restricted"]},"scopes":{"type":"array","items":{"type":"string","enum":["can_manage_resource_schedules","can_manage_customers","calendar_sync_hidden"]},"description":"Only applicable for users with the 'restricted' role, defines additional scopes that the user has on this account."},"restrictedToResources":{"type":"array","items":{"type":"string"},"description":"Only applicable for users with the 'restricted' role, defines an optional list of resources that the user's access is restricted to. If not set, then the user has access to all resources on the account."}},"required":["name","role"],"additionalProperties":false}},"required":["type","id","attributes"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}},"required":["saml","accounts"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}}},"/v2/users/{userId}/accounts/{accountId}":{"delete":{"summary":"Remove Account Access","tags":["Users"],"description":"Removes the user's access to a specific account by removing the account from the user's organisations and the user from the account's managers.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"userId","required":true},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"accountId","required":true}],"security":[],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"error":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["statusCode","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"error":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"}},"required":["statusCode","error","message"],"additionalProperties":false}}}}}}},"/v2/users/{userId}":{"delete":{"summary":"Delete User By ID","tags":["Users"],"description":"Delete a user using a valid user Id","parameters":[{"schema":{"type":"boolean"},"in":"query","name":"hardDelete","required":false,"description":"When true, permanently removes the user. Defaults to false (soft delete)."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"userId","required":true}],"security":[],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}},"get":{"summary":"Get User By ID","tags":["Users"],"description":"Retrieve a user's details by their unique identifier.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"userId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["User"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"email":{"type":"string","description":"Email address for this user."},"firstname":{"type":"string","minLength":1,"description":"First name of this user."},"lastname":{"type":"string","minLength":1,"nullable":true,"description":"Last name of this user."},"isMfaEnabled":{"type":"boolean","description":"Indicates if the user has MFA enabled."},"hasCompletedMfaSetup":{"type":"boolean","description":"Indicates if the user has completed MFA setup."},"isSamlSsoRequired":{"type":"boolean","description":"Indicates if the user is required to authenticate via SAML SSO."},"samlPendingConfiguration":{"type":"boolean","description":"Indicates if the user was provisioned via SAML but has no role mappings configured yet."},"setupChecklistCompleted":{"type":"boolean","description":"Indicates if the user has completed the setup checklist."},"setupChecklistCompletedSteps":{"type":"array","items":{"type":"string","nullable":true},"description":"Array of setup checklist steps that the user has completed."},"numberOfAccounts":{"type":"number","description":"The number of accounts the user is a member of."},"created":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the data and time that this user was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this user was last updated at. If not set then this user has never been updated since it's creation."}},"required":["email","firstname","lastname","numberOfAccounts","created"],"additionalProperties":false},"relationships":{"type":"object","properties":{"saml":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Saml"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false},"accounts":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Account"]},"id":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"role":{"type":"string","enum":["administrator","standard","restricted"]},"scopes":{"type":"array","items":{"type":"string","enum":["can_manage_resource_schedules","can_manage_customers","calendar_sync_hidden"]},"description":"Only applicable for users with the 'restricted' role, defines additional scopes that the user has on this account."},"restrictedToResources":{"type":"array","items":{"type":"string"},"description":"Only applicable for users with the 'restricted' role, defines an optional list of resources that the user's access is restricted to. If not set, then the user has access to all resources on the account."}},"required":["name","role"],"additionalProperties":false}},"required":["type","id","attributes"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}},"required":["saml","accounts"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}}}},"patch":{"summary":"Edit User Profile","tags":["Users"],"description":"Updates the user's profile details (firstname, lastname, email).","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["User"],"description":"Unique name for all documents that belong to this type."},"attributes":{"type":"object","properties":{"email":{"type":"string","description":"Email address for this user."},"firstname":{"type":"string","minLength":1},"lastname":{"type":"string","minLength":1},"isSamlSsoRequired":{"type":"boolean"}},"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}}},"required":true},"parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"userId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["User"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"email":{"type":"string","description":"Email address for this user."},"firstname":{"type":"string","minLength":1,"description":"First name of this user."},"lastname":{"type":"string","minLength":1,"nullable":true,"description":"Last name of this user."},"isMfaEnabled":{"type":"boolean","description":"Indicates if the user has MFA enabled."},"hasCompletedMfaSetup":{"type":"boolean","description":"Indicates if the user has completed MFA setup."},"isSamlSsoRequired":{"type":"boolean","description":"Indicates if the user is required to authenticate via SAML SSO."},"samlPendingConfiguration":{"type":"boolean","description":"Indicates if the user was provisioned via SAML but has no role mappings configured yet."},"setupChecklistCompleted":{"type":"boolean","description":"Indicates if the user has completed the setup checklist."},"setupChecklistCompletedSteps":{"type":"array","items":{"type":"string","nullable":true},"description":"Array of setup checklist steps that the user has completed."},"numberOfAccounts":{"type":"number","description":"The number of accounts the user is a member of."},"created":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the data and time that this user was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this user was last updated at. If not set then this user has never been updated since it's creation."}},"required":["email","firstname","lastname","numberOfAccounts","created"],"additionalProperties":false},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}}}}},"/v2/users/{userId}/mfa":{"patch":{"summary":"Edit User MFA","tags":["Users"],"description":"Updates MFA policy (isMfaEnabled) and setup status (hasCompletedMfaSetup) for a user.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["User"],"description":"Unique name for all documents that belong to this type."},"attributes":{"type":"object","properties":{"isMfaEnabled":{"type":"boolean"},"hasCompletedMfaSetup":{"type":"boolean","enum":[true]}},"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}}},"required":true},"parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"userId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["User"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"email":{"type":"string","description":"Email address for this user."},"firstname":{"type":"string","minLength":1,"description":"First name of this user."},"lastname":{"type":"string","minLength":1,"nullable":true,"description":"Last name of this user."},"isMfaEnabled":{"type":"boolean","description":"Indicates if the user has MFA enabled."},"hasCompletedMfaSetup":{"type":"boolean","description":"Indicates if the user has completed MFA setup."},"isSamlSsoRequired":{"type":"boolean","description":"Indicates if the user is required to authenticate via SAML SSO."},"samlPendingConfiguration":{"type":"boolean","description":"Indicates if the user was provisioned via SAML but has no role mappings configured yet."},"setupChecklistCompleted":{"type":"boolean","description":"Indicates if the user has completed the setup checklist."},"setupChecklistCompletedSteps":{"type":"array","items":{"type":"string","nullable":true},"description":"Array of setup checklist steps that the user has completed."},"numberOfAccounts":{"type":"number","description":"The number of accounts the user is a member of."},"created":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the data and time that this user was created at."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time that this user was last updated at. If not set then this user has never been updated since it's creation."}},"required":["email","firstname","lastname","numberOfAccounts","created"],"additionalProperties":false},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}}}}},"/v2/users/{userId}/accounts":{"post":{"summary":"Add Account Access","tags":["Users"],"description":"Associates the user with one or more accounts, including the role for each.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["User"],"description":"Unique name for all documents that belong to this type."},"relationships":{"type":"object","properties":{"accounts":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Account"]},"id":{"type":"string"},"permission":{"type":"string","enum":["administrator","standard","restricted"]},"scopes":{"type":"array","items":{"type":"string","enum":["can_manage_resource_schedules","can_manage_customers","calendar_sync_hidden"]},"description":"Only applicable for users with the 'restricted' role, defines additional scopes that the user has on this account."},"restrictedToResources":{"type":"array","items":{"type":"string"},"description":"Only applicable for users with the 'restricted' role, defines an optional list of resources that the user's access is restricted to. If not set, then the user has access to all resources on the account."}},"required":["type","id","permission"],"additionalProperties":false},"minItems":1,"description":"All accounts the user is a member of, with permissions."}},"required":["data"],"additionalProperties":false}},"required":["accounts"],"additionalProperties":false}},"required":["type","relationships"],"additionalProperties":false}}},"required":true},"parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"userId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"id":{"type":"string"},"type":{"type":"string","enum":["User"]},"relationships":{"type":"object","properties":{"accounts":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["Account"]},"id":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"role":{"type":"string","enum":["administrator","standard","restricted"]},"scopes":{"type":"array","items":{"type":"string","enum":["can_manage_resource_schedules","can_manage_customers","calendar_sync_hidden"]},"description":"Only applicable for users with the 'restricted' role, defines additional scopes that the user has on this account."},"restrictedToResources":{"type":"array","items":{"type":"string"},"description":"Only applicable for users with the 'restricted' role, defines an optional list of resources that the user's access is restricted to. If not set, then the user has access to all resources on the account."}},"required":["name","role"],"additionalProperties":false}},"required":["type","id","attributes"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}},"required":["accounts"],"additionalProperties":false}},"required":["links","id","type","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}}}}},"/v2/virtual-queues":{"post":{"summary":"Create Virtual Queue","tags":["VirtualQueues"],"description":"Create a new virtual queue configuration for an account.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["VirtualQueue"],"description":"Unique name for all records that belong to this type."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Human readable name for this virtual queue."},"logoUrl":{"type":"string","format":"uri","nullable":true,"description":"URL of the company logo displayed in the queue experience."},"primaryColour":{"type":"string","nullable":true,"description":"Primary brand colour as a hex code (e.g. #2563EB)."},"secondaryColour":{"type":"string","nullable":true,"description":"Secondary brand colour as a hex code."},"fontUrl":{"type":"string","format":"uri","nullable":true,"description":"Google Fonts CSS2 URL for the custom font. Leave blank to use the default system font."},"visibleCustomFields":{"type":"array","items":{"type":"string"}},"delayEnabled":{"type":"boolean","description":"Whether customers are allowed to delay their queue position from the status page."},"showPartySize":{"type":"boolean","description":"Whether the party size selector is shown on the customer join form."}},"required":["name"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"]},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of the account."}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"required":["account"],"additionalProperties":false}},"required":["type","attributes","relationships"],"additionalProperties":false}}},"required":true},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["VirtualQueue"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Human readable name for this virtual queue."},"logoUrl":{"type":"string","format":"uri","nullable":true,"description":"URL of the company logo displayed in the queue experience."},"primaryColour":{"type":"string","nullable":true,"description":"Primary brand colour as a hex code (e.g. #2563EB)."},"secondaryColour":{"type":"string","nullable":true,"description":"Secondary brand colour as a hex code."},"fontUrl":{"type":"string","format":"uri","nullable":true,"description":"Google Fonts CSS2 URL for the custom font. Leave blank to use the default system font."},"visibleCustomFields":{"type":"array","items":{"type":"string"}},"delayEnabled":{"type":"boolean","description":"Whether customers are allowed to delay their queue position from the status page."},"showPartySize":{"type":"boolean","description":"Whether the party size selector is shown on the customer join form."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time this virtual queue was created."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time this virtual queue was last updated. Null if never updated."}},"required":["name","logoUrl","primaryColour","secondaryColour","fontUrl","delayEnabled","showPartySize","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}},"get":{"summary":"Get all Virtual Queues","tags":["VirtualQueues"],"description":"Get a paginated list of all virtual queue configurations accessible to the caller.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["VirtualQueue"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Human readable name for this virtual queue."},"logoUrl":{"type":"string","format":"uri","nullable":true,"description":"URL of the company logo displayed in the queue experience."},"primaryColour":{"type":"string","nullable":true,"description":"Primary brand colour as a hex code (e.g. #2563EB)."},"secondaryColour":{"type":"string","nullable":true,"description":"Secondary brand colour as a hex code."},"fontUrl":{"type":"string","format":"uri","nullable":true,"description":"Google Fonts CSS2 URL for the custom font. Leave blank to use the default system font."},"visibleCustomFields":{"type":"array","items":{"type":"string"}},"delayEnabled":{"type":"boolean","description":"Whether customers are allowed to delay their queue position from the status page."},"showPartySize":{"type":"boolean","description":"Whether the party size selector is shown on the customer join form."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time this virtual queue was created."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time this virtual queue was last updated. Null if never updated."}},"required":["name","logoUrl","primaryColour","secondaryColour","fontUrl","delayEnabled","showPartySize","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}}}}},"/v2/virtual-queues/{virtualQueueId}":{"delete":{"summary":"Delete Virtual Queue","tags":["VirtualQueues"],"description":"Delete a virtual queue configuration by its unique ID.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"virtualQueueId","required":true}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}},"get":{"summary":"Get Virtual Queue by ID","tags":["VirtualQueues"],"description":"Get a single virtual queue configuration by its unique ID.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"virtualQueueId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["VirtualQueue"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Human readable name for this virtual queue."},"logoUrl":{"type":"string","format":"uri","nullable":true,"description":"URL of the company logo displayed in the queue experience."},"primaryColour":{"type":"string","nullable":true,"description":"Primary brand colour as a hex code (e.g. #2563EB)."},"secondaryColour":{"type":"string","nullable":true,"description":"Secondary brand colour as a hex code."},"fontUrl":{"type":"string","format":"uri","nullable":true,"description":"Google Fonts CSS2 URL for the custom font. Leave blank to use the default system font."},"visibleCustomFields":{"type":"array","items":{"type":"string"}},"delayEnabled":{"type":"boolean","description":"Whether customers are allowed to delay their queue position from the status page."},"showPartySize":{"type":"boolean","description":"Whether the party size selector is shown on the customer join form."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time this virtual queue was created."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time this virtual queue was last updated. Null if never updated."}},"required":["name","logoUrl","primaryColour","secondaryColour","fontUrl","delayEnabled","showPartySize","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}},"patch":{"summary":"Update Virtual Queue","tags":["VirtualQueues"],"description":"Update an existing virtual queue configuration by its unique ID.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["VirtualQueue"],"description":"Unique name for all records that belong to this type."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Human readable name for this virtual queue."},"logoUrl":{"type":"string","format":"uri","nullable":true,"description":"URL of the company logo displayed in the queue experience."},"primaryColour":{"type":"string","nullable":true,"description":"Primary brand colour as a hex code (e.g. #2563EB)."},"secondaryColour":{"type":"string","nullable":true,"description":"Secondary brand colour as a hex code."},"fontUrl":{"type":"string","format":"uri","nullable":true,"description":"Google Fonts CSS2 URL for the custom font. Leave blank to use the default system font."},"visibleCustomFields":{"type":"array","items":{"type":"string"}},"delayEnabled":{"type":"boolean","description":"Whether customers are allowed to delay their queue position from the status page."},"showPartySize":{"type":"boolean","description":"Whether the party size selector is shown on the customer join form."}},"additionalProperties":false}},"required":["type"],"additionalProperties":false}}},"required":true},"parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"virtualQueueId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["VirtualQueue"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Human readable name for this virtual queue."},"logoUrl":{"type":"string","format":"uri","nullable":true,"description":"URL of the company logo displayed in the queue experience."},"primaryColour":{"type":"string","nullable":true,"description":"Primary brand colour as a hex code (e.g. #2563EB)."},"secondaryColour":{"type":"string","nullable":true,"description":"Secondary brand colour as a hex code."},"fontUrl":{"type":"string","format":"uri","nullable":true,"description":"Google Fonts CSS2 URL for the custom font. Leave blank to use the default system font."},"visibleCustomFields":{"type":"array","items":{"type":"string"}},"delayEnabled":{"type":"boolean","description":"Whether customers are allowed to delay their queue position from the status page."},"showPartySize":{"type":"boolean","description":"Whether the party size selector is shown on the customer join form."},"created":{"type":"string","format":"date-time","description":"ISO 8601 representation of the date and time this virtual queue was created."},"updated":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 representation of the date and time this virtual queue was last updated. Null if never updated."}},"required":["name","logoUrl","primaryColour","secondaryColour","fontUrl","delayEnabled","showPartySize","created","updated"],"additionalProperties":false},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["Account"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["account"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}}},"/v2/virtual-queues/{virtualQueueId}/customers":{"get":{"summary":"Get Virtual Queue Customers","tags":["VirtualQueues"],"description":"Returns per-customer data for all tickets in a virtual queue","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[after]","required":false,"description":"Unique identifier of the last document on the previous page when paginating forwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"query","name":"page[before]","required":false,"description":"Unique identifier of the first document on the next page when paginating backwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[first]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating forwards."},{"schema":{"type":"number","minimum":1,"maximum":1000},"in":"query","name":"page[last]","required":false,"description":"Number of documents (between `1` - `1000`) to return per page when paginating backwards."},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"virtualQueueId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI for accessing this current page that matches your query."},"next":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the next page (relative to this page) that matches your query. If this is the last page this will be set to `null` to indicate there are no pages after this page."},"prev":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the previous page (relative to this page) that matches your query. If this is the first page this will be set to `null` to indicate there are no pages before this page."}},"required":["self","next","prev"],"additionalProperties":false,"description":"Links related to this page."},"data":{"type":"array","items":{"type":"object","properties":{"ticketDisplayId":{"type":"string","description":"Human-readable ticket identifier, e.g. Q-042."},"status":{"type":"string","enum":["waiting","next-up","in-progress","served","cancelled","removed"],"description":"Current ticket status."},"firstName":{"type":"string","description":"Customer first name."},"lastName":{"type":"string","description":"Customer last name."},"email":{"type":"string","description":"Customer email address."},"phone":{"type":"string","description":"Customer phone number."},"partySize":{"type":"integer","minimum":1,"description":"Number of people in the party."},"customFieldAnswers":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"}]},"description":"Answers to custom fields configured on the queue."},"joinedAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when the customer joined."},"servedAt":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp when serving began. Null if not yet served."},"cancelledAt":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp when the customer cancelled. Null if not cancelled."},"removedAt":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp when the ticket was removed. Null if not removed."},"history":{"type":"array","items":{"type":"object","properties":{"event":{"type":"string","enum":["joined","called","delayed","served","cancelled","no-show","staff-removed"],"description":"The type of event that occurred."},"timestamp":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of when the event occurred."},"metadata":{"type":"object","properties":{"delayMinutes":{"anyOf":[{"type":"number","enum":[5]},{"type":"number","enum":[10]},{"type":"number","enum":[15]}],"description":"For delayed events: how many minutes the customer delayed."}},"additionalProperties":true,"description":"Additional event-specific data."}},"required":["event","timestamp"],"additionalProperties":false},"description":"Full event history for this ticket."}},"required":["ticketDisplayId","status","firstName","lastName","email","phone","partySize","joinedAt","servedAt","cancelledAt","removedAt"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"number","minimum":0,"description":"Total number of documents across all pages that match your query."}},"required":["total"],"additionalProperties":false}},"required":["links","data","meta"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}}},"/v2/virtual-queues/{virtualQueueId}/metrics":{"get":{"summary":"Get Virtual Queue Metrics","tags":["VirtualQueues"],"description":"Returns aggregated performance metrics for a virtual queue.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"virtualQueueId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"totalJoined":{"type":"integer","minimum":0,"description":"Total customers who joined the queue."},"totalServed":{"type":"integer","minimum":0,"description":"Total customers fully served and completed."},"totalCancelled":{"type":"integer","minimum":0,"description":"Total customers who removed themselves from the queue."},"totalNoShows":{"type":"integer","minimum":0,"description":"Total customers called forward who did not show up."},"totalStaffRemoved":{"type":"integer","minimum":0,"description":"Total customers removed from a waiting position by staff."},"averageWaitMinutes":{"type":"integer","minimum":0,"nullable":true,"description":"Average wait time in minutes from joining to being called. Null if no served tickets."},"delays":{"type":"object","properties":{"fiveMinutes":{"type":"integer","minimum":0,"description":"Number of 5-minute delays taken."},"tenMinutes":{"type":"integer","minimum":0,"description":"Number of 10-minute delays taken."},"fifteenMinutes":{"type":"integer","minimum":0,"description":"Number of 15-minute delays taken."}},"required":["fiveMinutes","tenMinutes","fifteenMinutes"],"additionalProperties":false,"description":"Breakdown of delays by duration."}},"required":["totalJoined","totalServed","totalCancelled","totalNoShows","totalStaffRemoved","averageWaitMinutes","delays"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}}},"/v2/virtual-queues/{virtualQueueId}/tickets/{ticketId}/complete":{"post":{"summary":"Complete Virtual Queue Ticket","tags":["VirtualQueues"],"description":"Move an in-progress ticket to served (completed).","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"virtualQueueId","required":true},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"ticketId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["VirtualQueueTicket"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"ticketDisplayId":{"type":"string","description":"Human-readable ticket identifier, e.g. Q-042."},"firstName":{"type":"string","description":"Customer first name."},"lastName":{"type":"string","description":"Customer last name."},"phone":{"type":"string","description":"Customer phone number."},"serviceName":{"type":"string","nullable":true,"description":"Name of the service being queued for."},"estimatedDuration":{"type":"integer","minimum":0,"nullable":true,"description":"Estimated service duration in minutes."},"status":{"type":"string","enum":["waiting","next-up","in-progress","served","cancelled","removed"],"description":"Current ticket status."},"position":{"type":"integer","minimum":0,"description":"Position in queue (0 = being served)."},"partySize":{"type":"integer","minimum":1,"description":"Number of people in the party."},"estimatedWaitMinutes":{"type":"integer","minimum":0,"nullable":true,"description":"Estimated wait time in minutes."},"joinedAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when the customer joined the queue."},"servedAt":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp when serving began. Null if not yet served."},"notifiedAt":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp of last notification. Null if not notified."},"delayedUntil":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp until which the ticket is delayed. Null if not delayed."},"resourceId":{"type":"string","nullable":true,"description":"ID of the assigned resource. Null if unassigned."},"resourceName":{"type":"string","nullable":true,"description":"Name of the assigned resource. Null if unassigned."}},"required":["ticketDisplayId","firstName","lastName","phone","serviceName","estimatedDuration","status","position","partySize","estimatedWaitMinutes","joinedAt","servedAt","notifiedAt","delayedUntil","resourceId","resourceName"],"additionalProperties":false},"relationships":{"type":"object","properties":{"virtualQueue":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["VirtualQueue"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["virtualQueue"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}}},"/v2/virtual-queues/{virtualQueueId}/tickets":{"get":{"summary":"List Virtual Queue Tickets","tags":["VirtualQueues"],"description":"List all active tickets in a virtual queue, ordered by position.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"virtualQueueId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["VirtualQueueTicket"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"ticketDisplayId":{"type":"string","description":"Human-readable ticket identifier, e.g. Q-042."},"firstName":{"type":"string","description":"Customer first name."},"lastName":{"type":"string","description":"Customer last name."},"phone":{"type":"string","description":"Customer phone number."},"serviceName":{"type":"string","nullable":true,"description":"Name of the service being queued for."},"estimatedDuration":{"type":"integer","minimum":0,"nullable":true,"description":"Estimated service duration in minutes."},"status":{"type":"string","enum":["waiting","next-up","in-progress","served","cancelled","removed"],"description":"Current ticket status."},"position":{"type":"integer","minimum":0,"description":"Position in queue (0 = being served)."},"partySize":{"type":"integer","minimum":1,"description":"Number of people in the party."},"estimatedWaitMinutes":{"type":"integer","minimum":0,"nullable":true,"description":"Estimated wait time in minutes."},"joinedAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when the customer joined the queue."},"servedAt":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp when serving began. Null if not yet served."},"notifiedAt":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp of last notification. Null if not notified."},"delayedUntil":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp until which the ticket is delayed. Null if not delayed."},"resourceId":{"type":"string","nullable":true,"description":"ID of the assigned resource. Null if unassigned."},"resourceName":{"type":"string","nullable":true,"description":"Name of the assigned resource. Null if unassigned."}},"required":["ticketDisplayId","firstName","lastName","phone","serviceName","estimatedDuration","status","position","partySize","estimatedWaitMinutes","joinedAt","servedAt","notifiedAt","delayedUntil","resourceId","resourceName"],"additionalProperties":false},"relationships":{"type":"object","properties":{"virtualQueue":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["VirtualQueue"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["virtualQueue"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}}},"/v2/virtual-queues/{virtualQueueId}/tickets/{ticketId}":{"delete":{"summary":"Remove Virtual Queue Ticket","tags":["VirtualQueues"],"description":"Remove a ticket from the queue (admin-initiated removal).","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"virtualQueueId","required":true},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"ticketId","required":true}],"responses":{"204":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}}},"/v2/virtual-queues/{virtualQueueId}/tickets/{ticketId}/serve":{"post":{"summary":"Serve Virtual Queue Ticket","tags":["VirtualQueues"],"description":"Move a waiting or next-up ticket to in-progress (currently serving).","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"virtualQueueId","required":true},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"ticketId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["VirtualQueueTicket"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"ticketDisplayId":{"type":"string","description":"Human-readable ticket identifier, e.g. Q-042."},"firstName":{"type":"string","description":"Customer first name."},"lastName":{"type":"string","description":"Customer last name."},"phone":{"type":"string","description":"Customer phone number."},"serviceName":{"type":"string","nullable":true,"description":"Name of the service being queued for."},"estimatedDuration":{"type":"integer","minimum":0,"nullable":true,"description":"Estimated service duration in minutes."},"status":{"type":"string","enum":["waiting","next-up","in-progress","served","cancelled","removed"],"description":"Current ticket status."},"position":{"type":"integer","minimum":0,"description":"Position in queue (0 = being served)."},"partySize":{"type":"integer","minimum":1,"description":"Number of people in the party."},"estimatedWaitMinutes":{"type":"integer","minimum":0,"nullable":true,"description":"Estimated wait time in minutes."},"joinedAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when the customer joined the queue."},"servedAt":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp when serving began. Null if not yet served."},"notifiedAt":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp of last notification. Null if not notified."},"delayedUntil":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp until which the ticket is delayed. Null if not delayed."},"resourceId":{"type":"string","nullable":true,"description":"ID of the assigned resource. Null if unassigned."},"resourceName":{"type":"string","nullable":true,"description":"Name of the assigned resource. Null if unassigned."}},"required":["ticketDisplayId","firstName","lastName","phone","serviceName","estimatedDuration","status","position","partySize","estimatedWaitMinutes","joinedAt","servedAt","notifiedAt","delayedUntil","resourceId","resourceName"],"additionalProperties":false},"relationships":{"type":"object","properties":{"virtualQueue":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["VirtualQueue"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["virtualQueue"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[409]},"error":{"type":"string","enum":["Conflict"]},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":{}},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Conflict"}}}}}}},"/v2/virtual-queues/{virtualQueueId}/tickets/{ticketId}/skip":{"post":{"summary":"Skip Virtual Queue Ticket","tags":["VirtualQueues"],"description":"Move a ticket down one position in the queue.","parameters":[{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"virtualQueueId","required":true},{"schema":{"type":"string","pattern":"^[a-f\\d]{24}$"},"in":"path","name":"ticketId","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","description":"URI to access this specific document"}},"required":["self"],"additionalProperties":false},"type":{"type":"string","enum":["VirtualQueueTicket"],"description":"Unique name for all documents that belong to this type."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier for this document."},"attributes":{"type":"object","properties":{"ticketDisplayId":{"type":"string","description":"Human-readable ticket identifier, e.g. Q-042."},"firstName":{"type":"string","description":"Customer first name."},"lastName":{"type":"string","description":"Customer last name."},"phone":{"type":"string","description":"Customer phone number."},"serviceName":{"type":"string","nullable":true,"description":"Name of the service being queued for."},"estimatedDuration":{"type":"integer","minimum":0,"nullable":true,"description":"Estimated service duration in minutes."},"status":{"type":"string","enum":["waiting","next-up","in-progress","served","cancelled","removed"],"description":"Current ticket status."},"position":{"type":"integer","minimum":0,"description":"Position in queue (0 = being served)."},"partySize":{"type":"integer","minimum":1,"description":"Number of people in the party."},"estimatedWaitMinutes":{"type":"integer","minimum":0,"nullable":true,"description":"Estimated wait time in minutes."},"joinedAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when the customer joined the queue."},"servedAt":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp when serving began. Null if not yet served."},"notifiedAt":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp of last notification. Null if not notified."},"delayedUntil":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 timestamp until which the ticket is delayed. Null if not delayed."},"resourceId":{"type":"string","nullable":true,"description":"ID of the assigned resource. Null if unassigned."},"resourceName":{"type":"string","nullable":true,"description":"Name of the assigned resource. Null if unassigned."}},"required":["ticketDisplayId","firstName","lastName","phone","serviceName","estimatedDuration","status","position","partySize","estimatedWaitMinutes","joinedAt","servedAt","notifiedAt","delayedUntil","resourceId","resourceName"],"additionalProperties":false},"relationships":{"type":"object","properties":{"virtualQueue":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string","format":"uri","nullable":true,"description":"URI for accessing the object linked in this relationship. If the relationship does not exist this will be set to `null`."}},"required":["related"],"additionalProperties":false,"description":"URI links for this relationship."},"data":{"type":"object","properties":{"type":{"type":"string","enum":["VirtualQueue"],"description":"Type of this resource."},"id":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"Unique identifier of this resource."}},"required":["type","id"],"additionalProperties":false,"nullable":true,"description":"Resource linkage to the object in this relationship. If the relationship does not exist this will be set to `null`."},"meta":{"type":"object","properties":{},"additionalProperties":false,"description":"Object that may include non-standard meta-information about this relationship."}},"required":["links","data","meta"],"additionalProperties":false}},"required":["virtualQueue"],"additionalProperties":false,"description":"Object where each member represents a relationship from this document to any other documents."},"meta":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}},"required":["code","message"],"additionalProperties":false},"description":"If set, an array of one or more non-critical issues related to this document."}},"additionalProperties":false,"description":"Object containing any additional metadata for this document."}},"required":["type","id","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"description":"OK"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[401]},"error":{"type":"string","enum":["Unauthorized"]},"message":{"type":"string","enum":["You are not allowed to perform this action"]},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[403]},"error":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Forbidden"}}}},"404":{"description":"Not Found error response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","enum":[404]},"error":{"type":"string","enum":["Not Found"]},"message":{"type":"string"},"requestId":{"type":"string","minLength":1}},"required":["statusCode","error","message","requestId"],"additionalProperties":false,"description":"Not Found error response"}}}}}}}},"servers":[{"url":"https://json-api.appointedd.com","description":"Appointedd JSON API"}],"security":[{"OAuth2ClientCredentials":[]}],"tags":[{"name":"Auth","description":"Endpoints for managing authentication and authorisation"},{"name":"Accounts","description":"Endpoints for managing your Appointedd accounts"},{"name":"Customers","description":"Endpoints for managing your Appointedd customers"},{"name":"Bookings","description":"Endpoints for managing your Appointedd bookings"},{"name":"Resources","description":"Endpoints for managing your Appointedd resources"},{"name":"Services","description":"Endpoints for managing your Appointedd services"},{"name":"Activity Logs","description":"Endpoints for fetching logs around activity in your accounts"}]}