PushEvent: PushEvent() constructor

Baseline 2023

Newly available

Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is only available in Service Workers.

The PushEvent() constructor creates a new PushEvent object. Note that this constructor is exposed only to a service worker context.


new PushEvent(type)
new PushEvent(type, options)



A string with the name of the event. It is case-sensitive and browsers set it to push or pushsubscriptionchange.

options Optional

An object that, in addition of the properties defined in ExtendableEvent(), can have the following properties:


The data you want the PushEvent to contain, if any. When the constructor is invoked, the PushEvent.data property of the resulting object will be set to a new PushMessageData object containing these bytes.

Return value

A new PushEvent object.


const dataInit = {
  data: "Some sample text",

const myPushEvent = new PushEvent("push", dataInit);

myPushEvent.data.text(); // should return 'Some sample text'


Push API
# dom-pushevent-constructor

Browser compatibility

BCD tables only load in the browser

See also