Ably website screenshot

Ably

Ably is a realtime messaging platform offering pub/sub, presence, push notifications, chat, LiveSync, and integrations over WebSocket and HTTP. Ably publishes its OpenAPI specifications publicly via the ably/open-specs GitHub repository, with separate specs for the Platform API (REST messaging surface) and the Control API (account, app, and key management).

2 APIs 0 Features
RealtimeWebSocketsPub/SubMessagingStreamingPush NotificationsChatLiveSync

APIs

Ably Platform API

The Ably Platform API exposes pub/sub messaging, presence, history, push notifications, and channel/stats endpoints over REST and WebSocket. WebSocket realtime connections use r...

Ably Control API

The Ably Control API manages accounts, apps, API keys, namespaces, queues, integration rules, and webhooks. Used to provision and operate Ably resources programmatically. Authen...

Collections

GraphQL

Ably GraphQL Schema

Conceptual GraphQL schema for the [Ably](https://ably.com/) realtime messaging platform.

GRAPHQL

Pricing Plans

Ably Plans Pricing

5 plans

PLANS

Rate Limits

Ably Rate Limits

8 limits

RATE LIMITS

FinOps

Ably Finops

FINOPS

Event Specifications

Ably Realtime Protocol

AsyncAPI 3.0 description of the Ably realtime messaging surface. Ably exposes pub/sub channels, presence, push notifications, and history over a native WebSocket-based protocol,...

ASYNCAPI

JSON Structure

Ably Structure

0 properties

JSON STRUCTURE

Example Payloads

Resources

🔗
LinkedIn
LinkedIn
🌐
Portal
Portal
🔗
Documentation
Documentation
💰
Pricing
Pricing
👥
GitHub
GitHub
🟢
StatusPage
StatusPage
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
🔗
LlmsText
LlmsText

Sources

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