# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Onesignal Notifications API version: 1.0.0 extends: openapi/onesignal-notifications-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 14 - target: $.paths['/notifications/{message_id}/history'].post update: x-apievangelist-phrasing: intent: See which subscriptions received a message effect: read questions: - Which subscriptions were sent or clicked a particular message? - Can I get the recipient history of a message emailed to me as a file? instructions: - text: Show the {events} history for message {message_id} in app {app_id}. slots: events: requestBody.events message_id: path.message_id app_id: requestBody.app_id - text: Email the {events} recipient list of message {message_id} in app {app_id} to {email}. slots: events: requestBody.events message_id: path.message_id app_id: requestBody.app_id email: requestBody.email method: generated generated: '2026-09-26' - target: $.paths['/notifications/{message_id}/export_events'].post update: x-apievangelist-phrasing: intent: Export a message's audience activity as CSV effect: read questions: - How do I download delivered, clicked and unsubscribed data for a message across push, email and SMS? - Can I export audience-level engagement for one message to a spreadsheet? instructions: - text: Export the audience activity CSV for message {message_id} in app {app_id}. slots: message_id: path.message_id app_id: query.app_id - text: Build a compressed CSV of sends, clicks and failures across channels for message {message_id}, app {app_id}. slots: message_id: path.message_id app_id: query.app_id method: generated generated: '2026-09-26' - target: $.paths['/notifications?c=email'].post update: x-apievangelist-phrasing: intent: Send an email message effect: write questions: - How do I send an email campaign to a segment through OneSignal? - Can I set a custom from name and reply-to address on an email send? - Is it possible to schedule an email for a specific time of day? instructions: - text: Email segment {included_segments} in app {app_id} with subject {email_subject} and body {email_body}. slots: included_segments: requestBody.included_segments app_id: requestBody.app_id email_subject: requestBody.email_subject email_body: requestBody.email_body - text: Send an email to {email_to} from app {app_id} with subject {email_subject}, body {email_body}, from {email_from_name}. slots: email_to: requestBody.email_to app_id: requestBody.app_id email_subject: requestBody.email_subject email_body: requestBody.email_body email_from_name: requestBody.email_from_name method: generated generated: '2026-09-26' - target: $.paths['/notifications?c=push'].post update: x-apievangelist-phrasing: intent: Send a push notification effect: write questions: - How do I send a push notification with an image and action buttons? - Can I throttle a push send to a set number per minute? - What's the way to send a push to just iOS or just Android devices? instructions: - text: Send a push saying {contents} to segment {included_segments} in app {app_id}. slots: contents: requestBody.contents included_segments: requestBody.included_segments app_id: requestBody.app_id - text: Push {contents} with title {headings} to users {include_aliases} in app {app_id} and open {url} on tap. slots: contents: requestBody.contents headings: requestBody.headings include_aliases: requestBody.include_aliases app_id: requestBody.app_id url: requestBody.url method: generated generated: '2026-09-26' - target: $.paths['/notifications?c=sms'].post update: x-apievangelist-phrasing: intent: Send an SMS or MMS message effect: write questions: - How do I text a message to specific phone numbers? - Can I attach images to an SMS to send it as MMS? instructions: - text: Text {contents} to phone numbers {include_phone_numbers} from app {app_id} over channel {target_channel}. slots: contents: requestBody.contents include_phone_numbers: requestBody.include_phone_numbers app_id: requestBody.app_id target_channel: requestBody.target_channel - text: Send SMS {contents} from number {sms_from} to segment {included_segments} in app {app_id} on channel {target_channel}. slots: contents: requestBody.contents sms_from: requestBody.sms_from included_segments: requestBody.included_segments app_id: requestBody.app_id target_channel: requestBody.target_channel method: generated generated: '2026-09-26' - target: $.paths['/notifications?app_id={app_id}&limit={limit}&offset={offset}&kind={kind}&template_id={template_id}&time_offset={time_offset}'].get update: x-apievangelist-phrasing: intent: List sent messages, filterable by template effect: read questions: - Which messages were sent using a particular template? - Can I list only the messages sent since a certain time offset? instructions: - text: List messages in app {app_id} that used template {template_id}. slots: app_id: query.app_id template_id: query.template_id - text: Show {limit} messages from app {app_id} of kind {kind} since time offset {time_offset}. slots: limit: query.limit app_id: query.app_id kind: query.kind time_offset: query.time_offset method: generated generated: '2026-09-26' - target: $.paths['/notifications/{message_id}?app_id={app_id}'].get update: x-apievangelist-phrasing: intent: View one message with its outcome metrics effect: read questions: - How did a single message perform on clicks and conversion outcomes? - Can I see outcomes for one message broken down by platform? instructions: - text: Show message {message_id} in app {app_id} with outcomes {outcome_names}. slots: message_id: path.message_id app_id: query.app_id outcome_names: query.outcome_names - text: Get message {message_id} from app {app_id} with outcomes over {outcome_time_range}. slots: message_id: path.message_id app_id: query.app_id outcome_time_range: query.outcome_time_range method: generated generated: '2026-09-26' - target: $.paths['/notifications/{message_id}?app_id={app_id}'].delete update: x-apievangelist-phrasing: intent: Cancel a scheduled or sending message effect: destructive questions: - How do I stop a message that's already going out? - Can I cancel a scheduled message before it sends? instructions: - text: Cancel message {message_id} in app {app_id}. slots: message_id: path.message_id app_id: path.app_id - text: Halt the outgoing message {message_id} for app {app_id} right now. slots: message_id: path.message_id app_id: path.app_id method: generated generated: '2026-09-26' - target: $.paths['/notifications'].get update: x-apievangelist-phrasing: intent: List notifications (legacy endpoint) effect: read questions: - Is there an older endpoint that lists an app's notifications with paging? - What does the legacy notifications list return for API-sent versus dashboard notifications? instructions: - text: Use the legacy notifications list for app {app_id}. slots: app_id: query.app_id - text: Page through {limit} notifications of kind {kind} at offset {offset} in app {app_id} via the older list. slots: limit: query.limit kind: query.kind offset: query.offset app_id: query.app_id method: generated generated: '2026-09-26' - target: $.paths['/notifications'].post update: x-apievangelist-phrasing: intent: Create a notification on any channel (general endpoint) effect: write questions: - Can one general endpoint send push, email or SMS depending on the target channel? - How do I target a notification at users by their external ID? instructions: - text: Create a notification through the general notifications endpoint, scheduled for {send_after}. slots: send_after: requestBody.send_after - text: Send a notification to my users via the multi-channel create endpoint. method: generated generated: '2026-09-26' - target: $.paths['/notifications/{notification_id}'].get update: x-apievangelist-phrasing: intent: View a single notification (legacy endpoint) effect: read questions: - Is there an older call to fetch one notification by its notification ID? - What details does the legacy single-notification lookup return? instructions: - text: Fetch notification {notification_id} for app {app_id} with the legacy lookup. slots: notification_id: path.notification_id app_id: query.app_id - text: Look up notification ID {notification_id} in app {app_id} through the older endpoint. slots: notification_id: path.notification_id app_id: query.app_id method: generated generated: '2026-09-26' - target: $.paths['/notifications/{notification_id}'].delete update: x-apievangelist-phrasing: intent: Stop a notification (legacy endpoint) effect: destructive questions: - Is there a legacy endpoint to stop a notification by notification ID? - Which older call halts a scheduled notification? instructions: - text: Stop notification {notification_id} in app {app_id} using the legacy cancel. slots: notification_id: path.notification_id app_id: query.app_id - text: Call the older stop endpoint on scheduled notification {notification_id} for app {app_id}. slots: notification_id: path.notification_id app_id: query.app_id method: generated generated: '2026-09-26' - target: $.paths['/notifications/{notification_id}/history'].post update: x-apievangelist-phrasing: intent: List devices sent a notification (legacy, paid plan) effect: read questions: - Can I see which devices got a notification in the last 7 days on a paid plan? - Which older endpoint lists the devices that were sent a push or email notification? instructions: - text: List the devices sent notification {notification_id} using the legacy history call. slots: notification_id: path.notification_id - text: Get the {events} device history for notification {notification_id} in app {app_id} from the older endpoint. slots: events: requestBody.events notification_id: path.notification_id app_id: requestBody.app_id method: generated generated: '2026-09-26' - target: $.paths['/notifications/{notification_id}/export_events?app_id={app_id}'].post update: x-apievangelist-phrasing: intent: Export a notification's events CSV (legacy endpoint) effect: read questions: - Why does the events CSV URL take several minutes to become available? - Is there a legacy call that generates an events CSV for a notification ID? instructions: - text: Generate the legacy events CSV for notification {notification_id} in app {app_id}. slots: notification_id: path.notification_id app_id: query.app_id - text: Request the older export of all event data for notification {notification_id}, app {app_id}. slots: notification_id: path.notification_id app_id: query.app_id method: generated generated: '2026-09-26'