openapi: 3.0.1 info: title: Bird Channels Conversations API description: REST API for Bird (formerly MessageBird), an omnichannel CRM. The Bird platform APIs at https://api.bird.com cover Channels/Messaging (send and receive across SMS, WhatsApp, email, and more), Contacts, Conversations, and Numbers. The legacy MessageBird REST API at https://rest.messagebird.com (SMS, Voice, Verify, Lookup) is documented here for existing integrations. All endpoints authenticate with an AccessKey token via the Authorization header. termsOfService: https://bird.com/legal/terms-of-service contact: name: Bird Support url: https://docs.bird.com/ version: '1.0' servers: - url: https://api.bird.com description: Bird platform API - url: https://rest.messagebird.com description: Legacy MessageBird REST API security: - AccessKey: [] tags: - name: Conversations description: Manage threaded omnichannel conversations. paths: /workspaces/{workspaceId}/conversations: post: operationId: createConversation tags: - Conversations summary: Create a conversation parameters: - $ref: '#/components/parameters/WorkspaceId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateConversation' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/Conversation' /workspaces/{workspaceId}/conversations/{conversationId}/messages: post: operationId: createConversationMessage tags: - Conversations summary: Send a conversation message parameters: - $ref: '#/components/parameters/WorkspaceId' - $ref: '#/components/parameters/ConversationId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateMessage' responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/Message' /workspaces/{workspaceId}/conversations/{conversationId}/messages/{messageId}: get: operationId: getConversationMessage tags: - Conversations summary: Get a conversation message parameters: - $ref: '#/components/parameters/WorkspaceId' - $ref: '#/components/parameters/ConversationId' - name: messageId in: path required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Message' components: schemas: CreateMessage: type: object required: - receiver properties: receiver: $ref: '#/components/schemas/Receiver' body: $ref: '#/components/schemas/MessageBody' template: type: object description: Template reference and variables (required when body is absent). tags: type: array items: type: string Conversation: type: object properties: id: type: string status: type: string channelId: type: string createdAt: type: string format: date-time Receiver: type: object properties: contacts: type: array items: type: object properties: identifierValue: type: string identifierKey: type: string Message: type: object properties: id: type: string status: type: string direction: type: string enum: - incoming - outgoing sender: type: object receiver: $ref: '#/components/schemas/Receiver' body: $ref: '#/components/schemas/MessageBody' createdAt: type: string format: date-time MessageBody: type: object properties: type: type: string enum: - text - image - file - html text: type: object properties: text: type: string CreateConversation: type: object properties: channelId: type: string participants: type: array items: type: object parameters: ConversationId: name: conversationId in: path required: true schema: type: string WorkspaceId: name: workspaceId in: path required: true description: Bird workspace identifier. schema: type: string securitySchemes: AccessKey: type: apiKey in: header name: Authorization description: AccessKey token. Send as the Authorization header value "AccessKey {your-access-key}".