OneSignal · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Onesignal Notifications API

15 actions 15 updates phrasing extends openapi/onesignal-notifications-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for OneSignal's API. It is a proposal applied on top of the contract, not a document OneSignal publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 15

$.info
$.paths['/notifications/{message_id}/history'].post
$.paths['/notifications/{message_id}/export_events'].post
$.paths['/notifications?c=email'].post
$.paths['/notifications?c=push'].post
$.paths['/notifications?c=sms'].post
$.paths['/notifications?app_id={app_id}&limit={limit}&offset={offset}&kind={kind}&template_id={template_id}&time_offset={time_offset}'].get
$.paths['/notifications/{message_id}?app_id={app_id}'].get
$.paths['/notifications/{message_id}?app_id={app_id}'].delete
$.paths['/notifications'].get
$.paths['/notifications'].post
$.paths['/notifications/{notification_id}'].get
$.paths['/notifications/{notification_id}'].delete
$.paths['/notifications/{notification_id}/history'].post
$.paths['/notifications/{notification_id}/export_events?app_id={app_id}'].post

OpenAPI Overlay

Raw ↑
# 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'