openapi: 3.2.0 info: title: Purplebricks Performance Report API version: '1.0' description: 'Operations tagged PerformanceReport across 2 of this provider''s published API definitions: purplebricks-property-v1-openapi.yml, purplebricks-property-v2-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://api.purplebricks.co.uk/property-api security: - Bearer: [] tags: - name: PerformanceReport paths: /v1/performancereport/{id}: get: tags: - PerformanceReport parameters: - name: id in: path required: true schema: type: integer format: int32 - name: userId in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportResult' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportResult' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportResult' servers: - url: https://api.purplebricks.co.uk/property-api /v1/performancereport/getadvertperformance: get: tags: - PerformanceReport parameters: - name: propertyId in: query schema: type: integer format: int32 - name: from in: query schema: type: string format: date-time - name: to in: query schema: type: string format: date-time responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertResult' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertResult' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertResult' '400': description: Bad Request content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '404': description: Not 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' '401': description: Unauthorized 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' servers: - url: https://api.purplebricks.co.uk/property-api /v2/performancereport/{id}: get: tags: - PerformanceReport parameters: - name: id in: path required: true schema: type: integer format: int32 - name: userId in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportResult' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportResult' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportResult' servers: - url: https://api.purplebricks.co.uk/property-api /v2/performancereport/getadvertperformance: get: tags: - PerformanceReport parameters: - name: propertyId in: query schema: type: integer format: int32 - name: from in: query schema: type: string format: date-time - name: to in: query schema: type: string format: date-time responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertResult' application/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertResult' text/json: schema: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertResult' '400': description: Bad Request content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '404': description: Not 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' '401': description: Unauthorized 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' servers: - url: https://api.purplebricks.co.uk/property-api components: schemas: Purplebricks.Property.Domain.Enums.OfferStatus: enum: - OfferMade - Acceptable - Declined - CounterOfferMade - WithdrawOffer - Aborted - OfferUpdated - WithdrawAcceptance - WithdrawCounterOffer - Accepted - ExpertNegotiating - ExpertNotNegotiating - RenegotiationOfferMade - RenegotiationCounterOfferMade - RenegotiationOfferWithdrawn - RenegotiationCounterOfferWithdrawn type: string Purplebricks.Property.Business.ViewModels.Property: type: object properties: address: type: - string - 'null' isRegionScotland: type: boolean toLet: type: boolean publishDate: type: - string - 'null' format: date-time marketDate: type: - string - 'null' format: date-time imageUrl: type: - string - 'null' marketPrice: type: - number - 'null' format: double minAdvertPrice: type: - integer - 'null' format: int32 maxAdvertPrice: type: - integer - 'null' format: int32 priceText: type: - string - 'null' lastActionCompleted: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.WorkflowStepType' rentFrequency: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.RentFrequency' isAuction: type: boolean postcode: type: - string - 'null' propertyTypeName: type: - string - 'null' latitude: type: - number - 'null' format: double longitude: type: - number - 'null' format: double additionalProperties: false Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertModel: type: object properties: date: type: string format: date-time searches: type: integer format: int32 views: type: integer format: int32 viewings: type: integer format: int32 additionalProperties: false Purplebricks.Property.Business.ViewModels.Viewing: type: object properties: appointmentReference: type: - string - 'null' format: uuid dateBooked: type: string format: date-time dateViewed: type: string format: date-time viewerName: type: - string - 'null' email: type: - string - 'null' viewerId: type: - integer - 'null' format: int32 primaryContactNumber: type: - string - 'null' isCancelled: type: boolean isRearranged: type: boolean isConfirmed: type: boolean isAttended: type: - boolean - 'null' buyerAdditionalData: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.BuyerData' tenantAdditionalData: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.TenantData' whoNeedsToConfirm: type: - string - 'null' bookingId: type: integer format: int32 rearrangedBookingId: type: - integer - 'null' format: int32 feedbackPresentation: type: - integer - 'null' format: int32 feedbackSuitability: type: - integer - 'null' format: int32 feedbackPrice: type: - integer - 'null' format: int32 additionalProperties: false Purplebricks.Property.Domain.Enums.RentFrequency: enum: - Yearly - Quarterly - Monthly - Weekly - Daily type: string Purplebricks.Property.Business.ViewModels.TenantData: type: object properties: lettingTerms: type: - string - 'null' employmentStatus: type: - string - 'null' poorCreditHistory: type: - string - 'null' havePets: type: - string - 'null' otherPets: type: - string - 'null' isSmoker: type: - string - 'null' moveTimeframe: type: - string - 'null' additionalProperties: false Purplebricks.Property.Business.ViewModels.PerformanceReportResult: type: object properties: propertyDetails: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Property' daysOnMarket: type: integer format: int32 numberTracking: type: integer format: int32 numberOfNotesOfInterest: type: integer format: int32 upcomingViewingsCount: type: integer format: int32 attendedViewingsCount: type: integer format: int32 upcomingOrAttendedViewingsCount: type: integer format: int32 viewingsAwaitingConfirmationCount: type: integer format: int32 viewingsCancelledCount: type: integer format: int32 unattendedViewingsCount: type: integer format: int32 unconfirmedViewingsCancelledCount: type: integer format: int32 offersReceivedCount: type: integer format: int32 newOffersCount: type: integer format: int32 negotiatingOffersCount: type: integer format: int32 declinedOffersCount: type: integer format: int32 activeOffersCount: type: integer format: int32 timesViewed: type: integer format: int32 timesViewedLastSeven: type: integer format: int32 contractDownloadsCount: type: integer format: int32 awaitingFeedbackCount: type: integer format: int32 averageFeedback: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.AverageFeedbackStatistics' offers: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Offer' viewings: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Viewing' blockedViewings: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.BlockedViewing' rightmovePerformance: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.RightmoveAdvertPerformance' notesOfInterestDetails: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.NotesOfInterest' upcomingOrAttendedViewings: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Viewing' viewingsAwaitingConfirmation: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Viewing' viewingsCancelled: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Viewing' unconfirmedViewingsCancelled: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Viewing' unattendedViewings: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.Viewing' propertyTimeZone: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.IanaTimeZone' 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.Property.Business.ViewModels.BlockedViewing: type: object properties: userId: type: integer format: int32 name: type: - string - 'null' email: type: - string - 'null' attemptDate: type: string format: date-time blockedForPets: type: boolean blockedForSmoker: type: boolean blockedForDhs: type: boolean additionalProperties: false Purplebricks.Property.Business.ViewModels.AverageFeedbackStatistics: type: object properties: count: type: integer format: int32 presentation: type: integer format: int32 suitability: type: integer format: int32 price: type: integer format: int32 additionalProperties: false Purplebricks.Property.Domain.Enums.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.Property.Business.ViewModels.RightmoveAdvertPerformance: type: object properties: totalViews: type: integer format: int32 viewsInLast7Days: type: integer format: int32 totalSearchHits: type: integer format: int32 searchHitsInLast7Days: type: integer format: int32 totalEnquiries: type: integer format: int32 rightmoveEnquiries: type: integer format: int32 searchHitsAndViewsLastUpdatedDate: type: - string - 'null' format: date-time enquiriesLastUpdatedDate: type: - string - 'null' format: date-time additionalProperties: false Purplebricks.Property.Business.ViewModels.BuyerData: type: object properties: moveTimeframe: type: - string - 'null' timeOnMarket: type: - string - 'null' viewingPurpose: type: - string - 'null' hasPortfolio: type: - string - 'null' propertyToSell: type: - string - 'null' saleProgression: type: - string - 'null' mortgageRequired: type: - string - 'null' mortgageStatus: type: - string - 'null' additionalProperties: false Purplebricks.Property.Business.ViewModels.NotesOfInterest: type: object properties: name: type: - string - 'null' phoneNumber: type: - string - 'null' email: type: - string - 'null' userId: type: integer format: int32 additionalProperties: false Purplebricks.Property.Domain.Enums.IanaTimeZone: enum: - Not Set - Europe/London - Australia/Perth - Australia/Eucla - Australia/Adelaide - Australia/Broken_Hill - Australia/Darwin - Australia/Brisbane - Australia/Currie - Australia/Hobart - Australia/Lindeman - Australia/Melbourne - Australia/Sydney - Australia/Lord_Howe - Antarctica/Macquarie - America/Los_Angeles - America/New_York - America/Detroit - America/Kentucky/Louisville - America/Kentucky/Monticello - America/Indiana/Indianapolis - America/Indiana/Vincennes - America/Indiana/Winamac - America/Indiana/Marengo - America/Indiana/Petersburg - America/Indiana/Vevay - America/Chicago - America/Indiana/Tell_City - America/Indiana/Knox - America/Menominee - America/North_Dakota/Center - America/North_Dakota/New_Salem - America/North_Dakota/Beulah - America/Boise - America/Phoenix - America/Anchorage - America/Juneau - America/Sitka - America/Yakutat - America/Nome - America/Adak - America/Metlakatla - Pacific/Honolulu - America/Denver - Pacific/Auckland type: string Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertResult: type: object properties: earlierDataAvailable: type: boolean laterDataAvailable: type: boolean dates: type: - array - 'null' items: $ref: '#/components/schemas/Purplebricks.Property.Business.ViewModels.PerformanceReportAdvertModel' additionalProperties: false Purplebricks.Property.Business.ViewModels.Offer: type: object properties: date: type: - string - 'null' format: date-time name: type: - string - 'null' email: type: - string - 'null' userId: type: - integer - 'null' format: int32 price: type: number format: double status: $ref: '#/components/schemas/Purplebricks.Property.Domain.Enums.OfferStatus' additionalProperties: false securitySchemes: Bearer: type: apiKey description: Authorization header using Bearer scheme name: Authorization in: header x-refined-from: - purplebricks-property-v1-openapi.yml - purplebricks-property-v2-openapi.yml