This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The toJSON() method of the PushSubscription interface is a standard serializer: it returns a JSON representation of the subscription properties, providing a useful shortcut.


​mySubscription = subscription.toJSON()




A JSON object. It currently only contains the subscription endpoint, as an endpoint member.


navigator.serviceWorker.ready.then(function(reg) {
  reg.pushManager.getSubscription().then(function(subscription) {
    var mySubscription = subscription.toJSON();
    // do something with subscription details


Specification Status Comment
Push API
The definition of 'PushSubscription (see serializer listed in the WebIDL)' in that specification.
Working Draft Initial definition.

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 42.0 46.0 (46.0)[1] No support ? No support
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support No support No support 48.0 (48)[2] No support No support No support No support 42.0

Document Tags and Contributors

 Contributors to this page: chrisdavidmills, kitcambridge
 Last updated by: chrisdavidmills,