{
  "opencollection": "1.0.0",
  "info": {
    "name": "Control API v1 apps Push API",
    "version": "1.0.32"
  },
  "items": [
    {
      "info": {
        "name": "Push",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List devices registered for receiving push notifications",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://control.ably.net/v1/push/deviceRegistrations",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "deviceId",
                "value": "",
                "type": "query",
                "description": "Optional filter to restrict to devices associated with that deviceId."
              },
              {
                "name": "clientId",
                "value": "",
                "type": "query",
                "description": "Optional filter to restrict to devices associated with that clientId."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "The maximum number of records to return."
              }
            ]
          },
          "docs": "List of device details of devices registed for push notifications."
        },
        {
          "info": {
            "name": "Register a device for receiving push notifications",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://control.ably.net/v1/push/deviceRegistrations",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Register a device’s details, including the information necessary to deliver push notifications to it. Requires \"push-admin\" capability."
        },
        {
          "info": {
            "name": "Unregister matching devices for push notifications",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://control.ably.net/v1/push/deviceRegistrations",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "deviceId",
                "value": "",
                "type": "query",
                "description": "Optional filter to restrict to devices associated with that deviceId. Cannot be used with clientId."
              },
              {
                "name": "clientId",
                "value": "",
                "type": "query",
                "description": "Optional filter to restrict to devices associated with that clientId. Cannot be used with deviceId."
              }
            ]
          },
          "docs": "Unregisters devices. All their subscriptions for receiving push notifications through channels will also be deleted."
        },
        {
          "info": {
            "name": "Get a device registration",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://control.ably.net/v1/push/deviceRegistrations/:device_id",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "device_id",
                "value": "",
                "type": "path",
                "description": "Device's ID."
              }
            ]
          },
          "docs": "Get the full details of a device."
        },
        {
          "info": {
            "name": "Update a device registration",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://control.ably.net/v1/push/deviceRegistrations/:device_id",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "device_id",
                "value": "",
                "type": "path",
                "description": "Device's ID."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Device registrations can be upserted (the existing registration is replaced entirely) with a PUT operation. Only clientId, metadata and push.recipient are mutable."
        },
        {
          "info": {
            "name": "Update a device registration",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://control.ably.net/v1/push/deviceRegistrations/:device_id",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "device_id",
                "value": "",
                "type": "path",
                "description": "Device's ID."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Specific attributes of an existing registration can be updated. Only clientId, metadata and push.recipient are mutable."
        },
        {
          "info": {
            "name": "Unregister a single device for push notifications",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://control.ably.net/v1/push/deviceRegistrations/:device_id",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "device_id",
                "value": "",
                "type": "path",
                "description": "Device's ID."
              }
            ]
          },
          "docs": "Unregisters a single device by its device ID. All its subscriptions for receiving push notifications through channels will also be deleted."
        },
        {
          "info": {
            "name": "Reset a registered device's update token",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://control.ably.net/v1/push/deviceRegistrations/:device_id/resetUpdateToken",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "device_id",
                "value": "",
                "type": "path",
                "description": "Device's ID."
              }
            ]
          },
          "docs": "Gets an updated device details object."
        },
        {
          "info": {
            "name": "List channel subscriptions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://control.ably.net/v1/push/channelSubscriptions",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "channel",
                "value": "",
                "type": "query",
                "description": "Filter to restrict to subscriptions associated with that channel."
              },
              {
                "name": "deviceId",
                "value": "",
                "type": "query",
                "description": "Optional filter to restrict to devices associated with that deviceId. Cannot be used with clientId."
              },
              {
                "name": "clientId",
                "value": "",
                "type": "query",
                "description": "Optional filter to restrict to devices associated with that clientId. Cannot be used with deviceId."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "The maximum number of records to return."
              }
            ]
          },
          "docs": "Get a list of push notification subscriptions to channels."
        },
        {
          "info": {
            "name": "Subscribe a device to a channel",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://control.ably.net/v1/push/channelSubscriptions",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Subscribe either a single device or all devices associated with a client ID to receive push notifications from messages sent to a channel."
        },
        {
          "info": {
            "name": "Delete a registered device's update token",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://control.ably.net/v1/push/channelSubscriptions",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "channel",
                "value": "",
                "type": "query",
                "description": "Filter to restrict to subscriptions associated with that channel."
              },
              {
                "name": "deviceId",
                "value": "",
                "type": "query",
                "description": "Must be set when clientId is empty, cannot be used with clientId."
              },
              {
                "name": "clientId",
                "value": "",
                "type": "query",
                "description": "Must be set when deviceId is empty, cannot be used with deviceId."
              }
            ]
          },
          "docs": "Delete a device details object."
        },
        {
          "info": {
            "name": "List all channels with at least one subscribed device",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://control.ably.net/v1/push/channels",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              }
            ]
          },
          "docs": "Returns a paginated response of channel names."
        },
        {
          "info": {
            "name": "Publish a push notification to device(s)",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://control.ably.net/v1/push/publish",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "A convenience endpoint to deliver a push notification payload to a single device or set of devices identified by their client identifier."
        }
      ]
    }
  ],
  "bundled": true
}