openapi: 3.0.1 info: title: Purplebricks.Messaging.Api 2.0 - Backend description: '### Purplebricks Messaging API ### [Purplebricks.Messaging.Api Git Repository](https://dev.azure.com/purplebricks/BackEnd/_git/messaging-api)' version: '2.0' servers: - url: https://api.purplebricks.co.uk/messaging-api paths: /v2/threads: get: tags: - Threads parameters: - name: propertyId in: query schema: type: integer format: int32 - name: fromDate in: query schema: type: string format: date-time - name: includeSystemMessages in: query schema: type: boolean default: false - name: limit in: query schema: type: integer format: int32 default: 50 - name: cursor in: query schema: type: string - name: page in: query schema: $ref: '#/components/schemas/Purplebricks.Messaging.Business.Messages.Models.CursorPaginationType' - name: userId in: query schema: type: integer format: int32 responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Messaging.Business.Messages.Models.ThreadListResponseModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Messaging.Business.Messages.Models.ThreadListResponseModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Messaging.Business.Messages.Models.ThreadListResponseModel' '403': description: Forbidden 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' '400': description: Bad Request 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' /v2/threads/{threadId}: get: tags: - Threads parameters: - name: threadId in: path required: true schema: type: string format: uuid - name: includeSystemMessages in: query schema: type: boolean default: false responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/Purplebricks.Messaging.Business.Messages.Models.ThreadResponseModel' application/json: schema: $ref: '#/components/schemas/Purplebricks.Messaging.Business.Messages.Models.ThreadResponseModel' text/json: schema: $ref: '#/components/schemas/Purplebricks.Messaging.Business.Messages.Models.ThreadResponseModel' '400': description: Bad Request 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' components: schemas: Microsoft.AspNetCore.Mvc.ProblemDetails: type: object properties: type: type: string nullable: true title: type: string nullable: true status: type: integer format: int32 nullable: true detail: type: string nullable: true instance: type: string nullable: true additionalProperties: {} Purplebricks.Messaging.Business.Messages.Models.AddressDetail: type: object properties: line1: type: string nullable: true line2: type: string nullable: true town: type: string nullable: true county: type: string nullable: true postcode: type: string nullable: true additionalProperties: false Purplebricks.Messaging.Business.Messages.Models.CursorPaginationType: enum: - Previous - Next type: string Purplebricks.Messaging.Business.Messages.Models.MessageResponseModel: type: object properties: id: type: integer format: int32 threadId: type: string format: uuid senderId: type: integer format: int32 nullable: true recipientId: type: integer format: int32 propertyId: type: integer format: int32 nullable: true subject: type: string nullable: true body: type: string nullable: true read: type: boolean date: type: string format: date-time cursor: type: string nullable: true isSystemMessage: type: boolean readOnly: true additionalProperties: false Purplebricks.Messaging.Business.Messages.Models.PageInfoResponseModel: type: object properties: requestedPageSize: type: integer format: int32 totalItemCount: type: integer format: int32 hasNextPage: type: boolean hasPreviousPage: type: boolean additionalProperties: false Purplebricks.Messaging.Business.Messages.Models.ParticipantDetail: type: object properties: userId: type: integer format: int32 title: type: string nullable: true forename: type: string nullable: true surname: type: string nullable: true additionalProperties: false Purplebricks.Messaging.Business.Messages.Models.ThreadListResponseModel: type: object properties: threads: type: array items: $ref: '#/components/schemas/Purplebricks.Messaging.Business.Messages.Models.ThreadResponseModel' nullable: true pageInfo: $ref: '#/components/schemas/Purplebricks.Messaging.Business.Messages.Models.PageInfoResponseModel' additionalProperties: false Purplebricks.Messaging.Business.Messages.Models.ThreadResponseModel: type: object properties: id: type: string format: uuid propertyId: type: integer format: int32 nullable: true address: $ref: '#/components/schemas/Purplebricks.Messaging.Business.Messages.Models.AddressDetail' participants: type: array items: type: integer format: int32 nullable: true participantsDetails: type: array items: $ref: '#/components/schemas/Purplebricks.Messaging.Business.Messages.Models.ParticipantDetail' nullable: true date: type: string format: date-time lastMessage: $ref: '#/components/schemas/Purplebricks.Messaging.Business.Messages.Models.MessageResponseModel' cursor: type: string nullable: true additionalProperties: false securitySchemes: Bearer: type: apiKey description: Authorization header using Bearer scheme name: Authorization in: header security: - Bearer: []