openapi: 3.1.0 info: title: Pushwoosh Messaging API version: "1.3" description: | Pushwoosh is a customer engagement platform offering push notifications, in-app messaging, email, SMS, and Live Activities for mobile and web. The Messaging API (v1.3) exposes JSON-RPC-style endpoints for creating and managing messages, targeted campaigns, and message details. Authentication is performed by including the `auth` field (API access token from the Pushwoosh Control Panel) in the JSON request body. contact: name: Pushwoosh url: https://www.pushwoosh.com/ externalDocs: description: Pushwoosh platform API reference url: https://docs.pushwoosh.com/platform-docs/api-reference servers: - url: https://api.pushwoosh.com/json/1.3 description: Pushwoosh JSON Messaging API tags: - name: Messages paths: /createMessage: post: tags: [Messages] summary: Create a message (deprecated, use createTargetedMessage or Messaging API v2) operationId: createMessage requestBody: required: true content: application/json: schema: type: object required: [request] properties: request: type: object required: [auth, application, notifications] properties: auth: type: string description: API access token. application: type: string description: Pushwoosh application code. notifications: type: array items: $ref: '#/components/schemas/Notification' responses: "200": description: Standard JSON response envelope. content: application/json: schema: $ref: '#/components/schemas/StandardResponse' /createTargetedMessage: post: tags: [Messages] summary: Create a targeted message operationId: createTargetedMessage requestBody: required: true content: application/json: schema: type: object required: [request] properties: request: type: object required: [auth, devices_filter, send_date, content] properties: auth: type: string description: API access token. devices_filter: type: string description: | Targeting filter expression. Combines app selectors (`A("APP-CODE")`) and tag predicates (`T("Tag", EQ, "value")`) using boolean operators. send_date: type: string description: '`now` or `YYYY-MM-DD HH:mm`.' content: oneOf: - type: string - type: object additionalProperties: type: string description: Notification text or locale map of texts. ios_title: type: string android_header: type: string page_id: type: integer data: type: object additionalProperties: true responses: "200": description: Standard JSON response envelope. content: application/json: schema: $ref: '#/components/schemas/StandardResponse' /deleteMessage: post: tags: [Messages] summary: Delete a queued message operationId: deleteMessage requestBody: required: true content: application/json: schema: type: object required: [request] properties: request: type: object required: [auth, message] properties: auth: type: string message: type: string description: Message code returned by createMessage. responses: "200": description: Standard JSON response envelope. content: application/json: schema: $ref: '#/components/schemas/StandardResponse' /getMessageDetails: post: tags: [Messages] summary: Retrieve message details operationId: getMessageDetails requestBody: required: true content: application/json: schema: type: object required: [request] properties: request: type: object required: [auth, message] properties: auth: type: string message: type: string description: Message code or message ID. responses: "200": description: Standard JSON response envelope with message metadata. content: application/json: schema: $ref: '#/components/schemas/StandardResponse' components: schemas: Notification: type: object description: Single notification payload inside createMessage.notifications. additionalProperties: true properties: send_date: type: string description: '`now` or `YYYY-MM-DD HH:mm`.' content: oneOf: - type: string - type: object additionalProperties: type: string devices: type: array maxItems: 1000 items: type: string users: type: array maxItems: 1000 items: type: string filter: type: string description: Named filter to apply. conditions: type: array items: type: array description: '`[TagName, Operator, Value]` tuple (operators include EQ, IN, BETWEEN, NOTEQ, GTE, LTE, NOTSET, ANY).' data: type: object additionalProperties: true ios_title: type: string android_header: type: string page_id: type: integer StandardResponse: type: object description: Standard Pushwoosh response envelope. properties: status_code: type: integer description: 200 success, 210 argument error, 400 malformed, 500 internal error. status_message: type: string response: type: object additionalProperties: true