{"openapi":"3.1.0","info":{"title":"Apizie","version":"2.0.0","description":"One API key, one envelope, many public data sources."},"servers":[{"url":"https://zieapi.vercel.app"}],"security":[{"ApiKeyAuth":[]}],"paths":{"/v1/ecommerce:letmc-diary/diary-controller-get-allocations":{"get":{"operationId":"ecommerce_letmc_diary_diary_controller_get_allocations","summary":"Get a list of all available allocations for a date + 7 days for a specified appointment type","description":"GET /v3/diary/{shortName}/allocations","tags":["ecommerce"],"parameters":[{"name":"shortName","in":"query","required":true,"description":"The unique client short-name","schema":{"type":"string","description":"The unique client short-name"}},{"name":"preferredDate","in":"query","required":true,"description":"The date to search from","schema":{"type":"string","description":"The date to search from"}},{"name":"appointmentType","in":"query","required":true,"description":"The unique appointment type identifier","schema":{"type":"string","description":"The unique appointment type identifier"}},{"name":"lettings","in":"query","required":false,"description":"Sales or Lettings property?","schema":{"type":"boolean","description":"Sales or Lettings property?"}},{"name":"propertyIdentifier","in":"query","required":false,"description":"The unique property identifier (Sales or Lettings) determines branch and property type","schema":{"type":"string","description":"The unique property identifier (Sales or Lettings) determines branch and property type"}},{"name":"branchID","in":"query","required":false,"description":"Branch ID to check appointments (required if no property submitted)","schema":{"type":"string","description":"Branch ID to check appointments (required if no property submitted)"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ecommerce:letmc-diary/diary-controller-get-appointment":{"get":{"operationId":"ecommerce_letmc_diary_diary_controller_get_appointment","summary":"Get an appointment by ID","description":"GET /v3/diary/{shortName}/appointment","tags":["ecommerce"],"parameters":[{"name":"shortName","in":"query","required":true,"description":"Company short name","schema":{"type":"string","description":"Company short name"}},{"name":"appointmentID","in":"query","required":true,"description":"Appointment ID","schema":{"type":"string","description":"Appointment ID"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ecommerce:letmc-diary/diary-controller-post-appointment":{"post":{"operationId":"ecommerce_letmc_diary_diary_controller_post_appointment","summary":"Post an appointment into a valid diary allocation","description":"POST /v3/diary/{shortName}/appointment","tags":["ecommerce"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["shortName","propertyIdentifier","body"],"properties":{"shortName":{"type":"string","description":"The unique client short-name"},"propertyIdentifier":{"type":"array","description":"The unique property identifier (Sales or Lettings)"},"lettings":{"type":"boolean","description":"Sales or Lettings property?"},"body":{"type":"object","description":"JSON request body"}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":0,"x-apizie-min-plan":null,"x-apizie-bulk":false,"x-apizie-status":"byok"}},"/v1/ecommerce:letmc-diary/diary-controller-put-appointment":{"post":{"operationId":"ecommerce_letmc_diary_diary_controller_put_appointment","summary":"Update an existing appointment using its unique identifier","description":"PUT /v3/diary/{shortName}/appointment","tags":["ecommerce"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["shortName","appointmentID","body"],"properties":{"shortName":{"type":"string","description":"The unique client short-name"},"appointmentID":{"type":"string","description":"The unique appointment id"},"lettings":{"type":"boolean","description":"Sales or Lettings property?"},"AllowMarketingCorrespondence":{"type":"boolean","description":"Sales or Lettings property?"},"body":{"type":"object","description":"JSON request body"}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":0,"x-apizie-min-plan":null,"x-apizie-bulk":false,"x-apizie-status":"byok"}},"/v1/ecommerce:letmc-diary/diary-controller-delete-appointment":{"post":{"operationId":"ecommerce_letmc_diary_diary_controller_delete_appointment","summary":"Delete an existing appointment using its unique identifier","description":"DELETE /v3/diary/{shortName}/appointment","tags":["ecommerce"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["shortName","appointmentID"],"properties":{"shortName":{"type":"string","description":"The unique client short-name"},"appointmentID":{"type":"string","description":"The unique appointment id"}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":0,"x-apizie-min-plan":null,"x-apizie-bulk":false,"x-apizie-status":"byok"}},"/v1/ecommerce:letmc-diary/diary-controller-add-feedback":{"post":{"operationId":"ecommerce_letmc_diary_diary_controller_add_feedback","summary":"Submit appointment feedback","description":"POST /v3/diary/{shortName}/appointment/feedback","tags":["ecommerce"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["shortName","body"],"properties":{"shortName":{"type":"string","description":"The unique client short-name"},"body":{"type":"object","description":"JSON request body"}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":0,"x-apizie-min-plan":null,"x-apizie-bulk":false,"x-apizie-status":"byok"}},"/v1/ecommerce:letmc-diary/diary-controller-cancel-appointment":{"post":{"operationId":"ecommerce_letmc_diary_diary_controller_cancel_appointment","summary":"Cancel an existing appointment using its unique identifier","description":"PATCH /v3/diary/{shortName}/appointment/{appointmentID}/cancel","tags":["ecommerce"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["shortName","appointmentID"],"properties":{"shortName":{"type":"string","description":"The unique client short-name"},"appointmentID":{"type":"string","description":"The unique appointment id"}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":0,"x-apizie-min-plan":null,"x-apizie-bulk":false,"x-apizie-status":"byok"}},"/v1/ecommerce:letmc-diary/diary-controller-get-appointments-between-dates":{"get":{"operationId":"ecommerce_letmc_diary_diary_controller_get_appointments_between_dates","summary":"A collection of diary appointments linked to a company filtered between specific dates and by appointment type","description":"GET /v3/diary/{shortName}/appointmentsbetweendates","tags":["ecommerce"],"parameters":[{"name":"shortName","in":"query","required":true,"description":"The unique client short-name","schema":{"type":"string","description":"The unique client short-name"}},{"name":"branchID","in":"query","required":true,"description":"The unique ID of the Branch","schema":{"type":"string","description":"The unique ID of the Branch"}},{"name":"startDate","in":"query","required":true,"description":"The search from date","schema":{"type":"string","description":"The search from date"}},{"name":"endDate","in":"query","required":true,"description":"The search to date","schema":{"type":"string","description":"The search to date"}},{"name":"appointmentTypesToSearch","in":"query","required":true,"description":"The appointment IDs to search for","schema":{"type":"array","description":"The appointment IDs to search for"}},{"name":"offset","in":"query","required":true,"description":"The index of the first item to return","schema":{"type":"integer","description":"The index of the first item to return"}},{"name":"count","in":"query","required":true,"description":"The maximum number of items to return (up to 1000 per request)","schema":{"type":"integer","description":"The maximum number of items to return (up to 1000 per request)"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ecommerce:letmc-diary/diary-controller-get-appointment-types":{"get":{"operationId":"ecommerce_letmc_diary_diary_controller_get_appointment_types","summary":"A collection of all diary appointment types","description":"GET /v3/diary/{shortName}/appointmenttypes","tags":["ecommerce"],"parameters":[{"name":"shortName","in":"query","required":true,"description":"The unique client short-name","schema":{"type":"string","description":"The unique client short-name"}},{"name":"offset","in":"query","required":true,"description":"The index of the first item to return","schema":{"type":"integer","description":"The index of the first item to return"}},{"name":"count","in":"query","required":true,"description":"The maximum number of items to return (up to 1000 per request)","schema":{"type":"integer","description":"The maximum number of items to return (up to 1000 per request)"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ecommerce:letmc-diary/company-controller-get-branches":{"get":{"operationId":"ecommerce_letmc_diary_company_controller_get_branches","summary":"All branches defined for a company","description":"GET /v3/diary/{shortName}/company/branches","tags":["ecommerce"],"parameters":[{"name":"shortName","in":"query","required":true,"description":"The unique client short-name","schema":{"type":"string","description":"The unique client short-name"}},{"name":"offset","in":"query","required":true,"description":"The index of the first item to return","schema":{"type":"integer","description":"The index of the first item to return"}},{"name":"count","in":"query","required":true,"description":"The maximum number of items to return (up to 1000 per request)","schema":{"type":"integer","description":"The maximum number of items to return (up to 1000 per request)"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ecommerce:letmc-diary/get-v3-diary-short-name-company-branches-branch-id":{"get":{"operationId":"ecommerce_letmc_diary_get_v3_diary_short_name_company_branches_branch_id","summary":"Get a specific branch given its unique Object ID (OID)","description":"GET /v3/diary/{shortName}/company/branches/{branchID}","tags":["ecommerce"],"parameters":[{"name":"shortName","in":"query","required":true,"description":"The unique client short-name","schema":{"type":"string","description":"The unique client short-name"}},{"name":"branchID","in":"query","required":true,"description":"The unique ID of the Branch","schema":{"type":"string","description":"The unique ID of the Branch"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ecommerce:letmc-diary/diary-controller-get-recurring-appointments":{"get":{"operationId":"ecommerce_letmc_diary_diary_controller_get_recurring_appointments","summary":"Retrieves all recurring appointments:-","description":"GET /v3/diary/{shortName}/recurringappointment","tags":["ecommerce"],"parameters":[{"name":"shortName","in":"query","required":true,"description":"The unique client short-name","schema":{"type":"string","description":"The unique client short-name"}},{"name":"branchID","in":"query","required":true,"description":"The unique ID of the Branch","schema":{"type":"string","description":"The unique ID of the Branch"}},{"name":"appointmentTypesToSearch","in":"query","required":true,"description":"The appointment IDs to search for","schema":{"type":"array","description":"The appointment IDs to search for"}},{"name":"offset","in":"query","required":true,"description":"The index of the first item to return","schema":{"type":"integer","description":"The index of the first item to return"}},{"name":"count","in":"query","required":true,"description":"The maximum number of items to return (up to 1000 per request)","schema":{"type":"integer","description":"The maximum number of items to return (up to 1000 per request)"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ecommerce:letmc-diary/diary-controller-search-guest":{"get":{"operationId":"ecommerce_letmc_diary_diary_controller_search_guest","summary":"Match Guest Parameters with existing applicants","description":"GET /v3/diary/{shortname}/{branchID}/guest/search","tags":["ecommerce"],"parameters":[{"name":"shortname","in":"query","required":true,"schema":{"type":"string"}},{"name":"branchID","in":"query","required":true,"schema":{"type":"string"}},{"name":"forename","in":"query","required":true,"schema":{"type":"string"}},{"name":"emailaddress","in":"query","required":true,"schema":{"type":"string"}},{"name":"surname","in":"query","required":true,"schema":{"type":"string"}},{"name":"offset","in":"query","required":true,"schema":{"type":"integer"}},{"name":"count","in":"query","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key"}},"schemas":{"RunEnvelope":{"type":"object","required":["project","data","timestamp"],"properties":{"project":{"type":"string","example":"dev-tools:hash"},"data":{},"timestamp":{"type":"string","format":"date-time"}}},"ErrorEnvelope":{"type":"object","properties":{"content":{},"message":{"type":"string"},"errors":{"type":"array","items":{}},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}},"responses":{"Error":{"description":"Invalid key, plan gate, rate limit or upstream failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}