{
  "opencollection": "1.0.0",
  "info": {
    "name": "Platform API",
    "version": "1.1.1"
  },
  "request": {
    "auth": {
      "type": "basic",
      "username": "{{username}}",
      "password": "{{password}}"
    }
  },
  "items": [
    {
      "info": {
        "name": "History",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get message history for a channel",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://rest.ably.io/channels/:channel_id/messages",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "channel_id",
                "value": "",
                "type": "path",
                "description": "The [Channel's ID](https://www.ably.io/documentation/rest/channels)."
              },
              {
                "name": "start",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "end",
                "value": "",
                "type": "query"
              },
              {
                "name": "direction",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Get message history for a channel"
        },
        {
          "info": {
            "name": "Get presence history of a channel",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://rest.ably.io/channels/:channel_id/presence/history",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "channel_id",
                "value": "",
                "type": "path",
                "description": "The [Channel's ID](https://www.ably.io/documentation/rest/channels)."
              },
              {
                "name": "start",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "end",
                "value": "",
                "type": "query"
              },
              {
                "name": "direction",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Get presence on a channel"
        }
      ]
    },
    {
      "info": {
        "name": "Publishing",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Publish a message to a channel",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://rest.ably.io/channels/:channel_id/messages",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "channel_id",
                "value": "",
                "type": "path",
                "description": "The [Channel's ID](https://www.ably.io/documentation/rest/channels)."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Publish a message to the specified channel"
        }
      ]
    },
    {
      "info": {
        "name": "Status",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get presence of a channel",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://rest.ably.io/channels/:channel_id/presence",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "channel_id",
                "value": "",
                "type": "path",
                "description": "The [Channel's ID](https://www.ably.io/documentation/rest/channels)."
              },
              {
                "name": "clientId",
                "value": "",
                "type": "query"
              },
              {
                "name": "connectionId",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Get presence on a channel"
        },
        {
          "info": {
            "name": "Get metadata of a channel",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://rest.ably.io/channels/:channel_id",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "channel_id",
                "value": "",
                "type": "path",
                "description": "The [Channel's ID](https://www.ably.io/documentation/rest/channels)."
              }
            ]
          },
          "docs": "Get metadata of a channel"
        },
        {
          "info": {
            "name": "Enumerate all active channels of the application",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://rest.ably.io/channels",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "prefix",
                "value": "",
                "type": "query",
                "description": "Optionally limits the query to only those channels whose name starts with the given prefix"
              },
              {
                "name": "by",
                "value": "",
                "type": "query",
                "description": "optionally specifies whether to return just channel names (by=id) or ChannelDetails (by=value)"
              }
            ]
          },
          "docs": "Enumerate all active channels of the application"
        }
      ]
    },
    {
      "info": {
        "name": "Push",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List devices registered for receiving push notifications",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://rest.ably.io/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://rest.ably.io/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://rest.ably.io/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://rest.ably.io/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://rest.ably.io/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://rest.ably.io/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://rest.ably.io/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://rest.ably.io/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://rest.ably.io/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://rest.ably.io/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://rest.ably.io/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://rest.ably.io/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://rest.ably.io/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."
        }
      ]
    },
    {
      "info": {
        "name": "Authentication",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Request an access token",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://rest.ably.io/keys/:keyName/requestToken",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "keyName",
                "value": "",
                "type": "path",
                "description": "The [key name](https://www.ably.io/documentation/rest-api/token-request-spec#api-key-format) comprises of the app ID and key ID of an API key."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "This is the means by which clients obtain access tokens to use the service. You can see how to construct an Ably TokenRequest in the [Ably TokenRequest spec](https://www.ably.io/documentation/rest-api/token-request-spec) documentation, although we recommend you use an Ably SDK rather to create a TokenRequest, as the construction of a TokenRequest is complex. The resulting token response object contains the token properties as defined in Ably TokenRequest spec. Authentication is not required if u"
        }
      ]
    },
    {
      "info": {
        "name": "Stats",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Retrieve usage statistics for an application",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://rest.ably.io/stats",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              },
              {
                "name": "start",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "end",
                "value": "",
                "type": "query"
              },
              {
                "name": "direction",
                "value": "",
                "type": "query"
              },
              {
                "name": "unit",
                "value": "",
                "type": "query",
                "description": "Specifies the unit of aggregation in the returned results."
              }
            ]
          },
          "docs": "The Ably system can be queried to obtain usage statistics for a given application, and results are provided aggregated across all channels in use in the application in the specified period. Stats may be used to track usage against account quotas."
        },
        {
          "info": {
            "name": "Get the service time",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://rest.ably.io/time",
            "headers": [
              {
                "name": "X-Ably-Version",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "The response format you would like"
              }
            ]
          },
          "docs": "This returns the service time in milliseconds since the epoch."
        }
      ]
    }
  ],
  "bundled": true
}