openapi: 3.2.0 info: title: Purplebricks.Viewings.Api 1.0 - Customer Experience Properties API description: '### Purplebricks Viewings API. ### [Purplebricks.Viewings.Api Git Repository](https://dev.azure.com/purplebricks/BackEnd/_git/viewings)' version: '1.0' servers: - url: https://api.purplebricks.co.uk/viewings-api security: - Bearer: [] tags: - name: Properties paths: /v1/properties/{propertyId}: get: tags: - Properties summary: Returns the basic details of a property for which a viewing appointment can be booked against. parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: The property was successfully retrieved. content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Viewings.Business.ViewModels.PropertyViewModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Viewings.Business.ViewModels.PropertyViewModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Viewings.Business.ViewModels.PropertyViewModel' '404': description: The property could not be found. content: text/plain: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' application/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' text/json: schema: $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails' /v1/creatio/properties/{propertyId}/viewings: get: tags: - Properties parameters: - name: propertyId in: path required: true schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Viewings.Business.Models.ViewingDetail' application/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Viewings.Business.Models.ViewingDetail' text/json: schema: type: array items: $ref: '#/components/schemas/Purplebricks.Viewings.Business.Models.ViewingDetail' '400': description: Bad Request content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '500': description: Server Error components: schemas: Purplebricks.Viewings.Business.Models.ViewingDetail: type: object properties: address: $ref: '#/components/schemas/Purplebricks.Viewings.Business.ViewModels.AddressViewModel' viewingDate: type: string format: date-time status: type: - string - 'null' isSales: type: boolean conductingAppointment: type: - string - 'null' viewingId: type: integer format: int32 propertyId: type: integer format: int32 viewer: $ref: '#/components/schemas/Purplebricks.Viewings.Business.ViewModels.EventUserDetailsViewModel' host: $ref: '#/components/schemas/Purplebricks.Viewings.Business.ViewModels.EventUserDetailsViewModel' seller: $ref: '#/components/schemas/Purplebricks.Viewings.Business.ViewModels.EventUserDetailsViewModel' additionalProperties: false Purplebricks.DatabaseModel.Enumerations.WorkflowStepType: enum: - Create - BookValuation - Valuation - Instruct - CreateAdvert - RejectAdvert - AmendAdvert - ApproveAdvert - SchedulePendingRegCert - Schedule - PublishPendingRegCert - Publish - Withdraw - Suspend - SuspendByUser - SuspendAccount - UnderOffer - SoldSubjectToContract - DiyAdvertStarted - LetSubjectToContract - DeclineOffer - UpdateProperty - AcceptableOffer - ApplicationReceived - AcceptableOfferNotMarketed - WithdrawOffer - UpdateAdvert - DiyAdvertCreated - DiyAdvertRejected - ApprovePhoto - ContractsExchanged - Completion - DiyAdvertAmended - DiyAdvertRejectAmendments - SchedulePendingContract - PublishPendingContract - UpdatePropertyDiary - ContractsExchangedCoolingOffPeriod - ForceSold - ForceSoldSubjectToContract - ForceContractsExchanged - ForceCompletion - SoldSubjectToEscrow - PendingEscrow - Closing - ForceAcceptableOffer - ForceAcceptableOfferNotMarketed - ForceContractsExchangedCoolingOffPeriod - InstantValuation - FakeValuation - Cancelled type: string Purplebricks.Viewings.Business.Models.BookingRequestStatus: enum: - SlotNotAvailable - Confirmed - AwaitingConfirmation - PropertySold - PropertyWithdrawn type: string Purplebricks.Viewings.Business.ViewModels.PropertyViewModel: type: object properties: propertyId: type: - integer - 'null' format: int32 listingId: type: - string - 'null' toLet: type: boolean street: type: - string - 'null' town: type: - string - 'null' county: type: - string - 'null' postcode: type: - string - 'null' fullAddress: type: - string - 'null' tenancyChecksViewModel: $ref: '#/components/schemas/Purplebricks.Viewings.Business.ViewModels.TenancyChecksViewModel' email: type: - string - 'null' loggedIn: type: boolean existingCustomer: type: - boolean - 'null' propertyToSell: type: - boolean - 'null' saleProgression: $ref: '#/components/schemas/Purplebricks.DatabaseModel.Enumerations.Offer.SaleProgressOption' portal: $ref: '#/components/schemas/Purplebricks.DatabaseModel.Enumerations.PortalType' lastActionCompleted: $ref: '#/components/schemas/Purplebricks.DatabaseModel.Enumerations.WorkflowStepType' confirmation: $ref: '#/components/schemas/Purplebricks.Viewings.Business.ViewModels.BookViewingConfirmationViewModel' mainImageUrl: type: - string - 'null' userId: type: integer format: int32 closingDate: type: - string - 'null' format: date-time hasAccompaniedViewing: type: boolean accompaniedViewingExpertId: type: - integer - 'null' format: int32 expertId: type: integer format: int32 additionalProperties: false Purplebricks.Viewings.Business.ViewModels.EventUserDetailsViewModel: type: object properties: id: type: integer format: int32 title: type: - string - 'null' forename: type: - string - 'null' surname: type: - string - 'null' email: type: - string - 'null' phone: type: - string - 'null' additionalProperties: false Purplebricks.Viewings.Business.ViewModels.AddressViewModel: type: object properties: line1: type: - string - 'null' line2: type: - string - 'null' town: type: - string - 'null' county: type: - string - 'null' country: type: - string - 'null' postcode: type: - string - 'null' additionalProperties: false Microsoft.AspNetCore.Mvc.ProblemDetails: type: object properties: type: type: - string - 'null' title: type: - string - 'null' status: type: - integer - 'null' format: int32 detail: type: - string - 'null' instance: type: - string - 'null' additionalProperties: {} Purplebricks.Viewings.Business.ViewModels.BookViewingConfirmationViewModel: type: object properties: eventId: type: - integer - 'null' format: int32 propertyId: type: - integer - 'null' format: int32 listingId: type: - string - 'null' status: $ref: '#/components/schemas/Purplebricks.Viewings.Business.Models.BookingRequestStatus' bookingProcess: $ref: '#/components/schemas/Purplebricks.DatabaseModel.Enumerations.BookingProcess' start: type: string format: date-time end: type: string format: date-time propertyTimeZone: $ref: '#/components/schemas/Purplebricks.DatabaseModel.Enumerations.IanaTimeZone' street: type: - string - 'null' town: type: - string - 'null' county: type: - string - 'null' postcode: type: - string - 'null' isAccompaniedViewing: type: boolean hostName: type: - string - 'null' hostPhoneNumber: type: - string - 'null' expertPhoto: type: - string - 'null' trustPilotId: type: - string - 'null' additionalProperties: false Purplebricks.DatabaseModel.Enumerations.BookingProcess: enum: - SellerBookValuation - BuyerBookViewing - CallCentreBookValuation - CallCentreBookViewing - SellerRearrange - BuyerRearrange - LpeRearrange - LpeBookViewing - BuyingAgentBookViewing - RemortgageInstantValuation - AiVoiceAgent - AiWhatsAppAgent - AiSmsAgent type: string Purplebricks.DatabaseModel.Enumerations.PortalType: enum: - Rightmove - Zoopla - Globrix - PrimeLocation - PropertyPal - PropertyNews - S1Homes - Domain - RealEstate - TradeMe type: string Purplebricks.DatabaseModel.Enumerations.IanaTimeZone: enum: - NotSet - EuropeLondon - AustraliaPerth - AustraliaEucla - AustraliaAdelaide - AustraliaBrokenHill - AustraliaDarwin - AustraliaBrisbane - AustraliaCurrie - AustraliaHobart - AustraliaLindeman - AustraliaMelbourne - AustraliaSydney - AustraliaLordHowe - AntarcticaMacquarie - AmericaLosAngeles - AmericaNewYork - AmericaDetroit - AmericaKentuckyLouisville - AmericaKentuckyMonticello - AmericaIndianaIndianapolis - AmericaIndianaVincennes - AmericaIndianaWinamac - AmericaIndianaMarengo - AmericaIndianaPetersburg - AmericaIndianaVevay - AmericaChicago - AmericaIndianaTellCity - AmericaIndianaKnox - AmericaMenominee - AmericaNorthDakotaCenter - AmericaNorthDakotaNewSalem - AmericaNorthDakotaBeulah - AmericaBoise - AmericaPhoenix - AmericaAnchorage - AmericaJuneau - AmericaSitka - AmericaYakutat - AmericaNome - AmericaAdak - AmericaMetlakatla - PacificHonolulu - AmericaDenver - PacificAuckland type: string Purplebricks.DatabaseModel.Enumerations.Offer.SaleProgressOption: enum: - NotOnTheMarket - OnTheMarket - SSTC - Pending type: string Purplebricks.Viewings.Business.ViewModels.TenancyChecksViewModel: type: object properties: dhsPermitted: type: boolean petsPermitted: type: boolean smokersPermitted: type: boolean dhsBlocked: type: boolean petsBlocked: type: boolean smokersBlocked: type: boolean studentLet: type: boolean shared: type: boolean additionalProperties: false securitySchemes: Bearer: type: apiKey description: Authorization header using Bearer scheme name: Authorization in: header