openapi: 3.0.1
info:
title: Control API v1 apps Status API
version: 1.0.32
description: 'Use the Control API to manage your applications, namespaces, keys, queues, rules, and more.
Detailed information on using this API can be found in the Ably Control API docs.
Control API is currently in Preview.
'
servers:
- url: https://control.ably.net/v1
tags:
- name: Status
paths:
/channels/{channel_id}/presence:
parameters:
- $ref: '#/components/parameters/versionHeader'
- $ref: '#/components/parameters/responseFormat'
get:
summary: Get presence of a channel
operationId: getPresenceOfChannel
description: Get presence on a channel
tags:
- Status
parameters:
- $ref: '#/components/parameters/channelId'
- name: clientId
in: query
schema:
type: string
- name: connectionId
in: query
schema:
type: string
- name: limit
in: query
schema:
type: integer
default: 100
responses:
'200':
description: OK
headers:
link:
$ref: '#/components/headers/Link'
x-ably-serverid:
$ref: '#/components/headers/ServerId'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PresenceMessage'
application/x-msgpack:
schema:
type: array
items:
$ref: '#/components/schemas/PresenceMessage'
text/html:
schema:
type: string
default:
$ref: '#/components/responses/Error'
/channels/{channel_id}:
parameters:
- $ref: '#/components/parameters/versionHeader'
- $ref: '#/components/parameters/responseFormat'
get:
summary: Get metadata of a channel
operationId: getMetadataOfChannel
description: Get metadata of a channel
tags:
- Status
parameters:
- $ref: '#/components/parameters/channelId'
responses:
'200':
description: OK
headers:
x-ably-serverid:
$ref: '#/components/headers/ServerId'
content:
application/json:
schema:
$ref: '#/components/schemas/ChannelDetails'
default:
$ref: '#/components/responses/Error'
/channels:
parameters:
- $ref: '#/components/parameters/versionHeader'
- $ref: '#/components/parameters/responseFormat'
get:
summary: Enumerate all active channels of the application
operationId: getMetadataOfAllChannels
description: Enumerate all active channels of the application
tags:
- Status
parameters:
- in: query
name: limit
schema:
type: integer
default: 100
- in: query
name: prefix
schema:
type: string
description: Optionally limits the query to only those channels whose name starts with the given prefix
- in: query
name: by
schema:
type: string
enum:
- value
- id
description: optionally specifies whether to return just channel names (by=id) or ChannelDetails (by=value)
responses:
2XX:
description: OK
headers:
link:
$ref: '#/components/headers/Link'
content:
application/json:
schema:
oneOf:
- type: array
items:
$ref: '#/components/schemas/ChannelDetails'
- type: array
items:
type: string
application/x-msgpack:
schema:
oneOf:
- type: array
items:
$ref: '#/components/schemas/ChannelDetails'
- type: array
items:
type: string
text/html:
schema:
type: string
default:
$ref: '#/components/responses/Error'
components:
schemas:
ChannelDetails:
type: object
properties:
channelId:
type: string
description: The required name of the channel including any qualifier, if any.
region:
type: string
description: In events relating to the activity of a channel in a specific region, this optionally identifies the region.
isGlobalMaster:
type: boolean
description: In events relating to the activity of a channel in a specific region, this optionally identifies whether or not that region is responsible for global coordination of the channel.
status:
$ref: '#/components/schemas/ChannelStatus'
required:
- channelId
PresenceMessage:
type: object
properties:
id:
description: Unique ID assigned by Ably to this presence update.
type: string
readOnly: true
action:
description: The event signified by a PresenceMessage.
type: string
enum:
- ABSENT
- PRESENT
- ENTER
- LEAVE
- UPDATE
readOnly: true
data:
description: The presence update payload, if provided.
type: string
clientId:
description: The client ID of the publisher of this presence update.
type: string
connectionId:
description: The connection ID of the publisher of this presence update.
type: string
timestamp:
description: Timestamp when the presence update was received by Ably, as milliseconds since the epoch.
type: integer
format: int64
readOnly: true
encoding:
description: This will typically be empty as all presence updates received from Ably are automatically decoded client-side using this value. However, if the message encoding cannot be processed, this attribute will contain the remaining transformations not applied to the data payload.
type: string
extras:
$ref: '#/components/schemas/Extras'
Occupancy:
type: object
description: An Occupancy instance indicating the occupancy of a channel. For events indicating regional activity of a channel this indicates activity in that region, not global activity.
properties:
publishers:
type: integer
description: The number of connections attached to the channel that are authorised to publish.
subscribers:
type: integer
description: The number of connections attached that are authorised to subscribe to messages.
presenceSubscribers:
type: integer
description: The number of connections that are authorised to subscribe to presence messages.
presenceConnections:
type: integer
description: The number of connections that are authorised to enter members into the presence channel.
presenceMembers:
type: integer
description: The number of members currently entered into the presence channel.
Extras:
type: object
description: Extras object. Currently only allows for [push](https://www.ably.io/documentation/general/push/publish#channel-broadcast-example) extra.
properties:
push:
$ref: '#/components/schemas/Push'
Push:
type: object
properties:
data:
description: Arbitrary [key-value string-to-string payload](https://www.ably.io/documentation/general/push/publish#channel-broadcast-example).
type: string
notification:
$ref: '#/components/schemas/Notification'
apns:
description: Extends and overrides generic values when delivering via APNs. [See examples](https://www.ably.io/documentation/general/push/publish#payload-structure)
type: object
properties:
notification:
$ref: '#/components/schemas/Notification'
fcm:
description: Extends and overrides generic values when delivering via GCM/FCM. [See examples](https://www.ably.io/documentation/general/push/publish#payload-structure)
type: object
properties:
notification:
$ref: '#/components/schemas/Notification'
web:
description: Extends and overrides generic values when delivering via web. [See examples](https://www.ably.io/documentation/general/push/publish#payload-structure)
type: object
properties:
notification:
$ref: '#/components/schemas/Notification'
ChannelStatus:
type: object
description: A ChannelStatus instance.
properties:
isActive:
type: boolean
description: A required boolean value indicating whether the channel that is the subject of the event is active. For events indicating regional activity of a channel this indicates activity in that region, not global activity.
occupancy:
$ref: '#/components/schemas/Occupancy'
required:
- isActive
Notification:
type: object
properties:
title:
description: Title to display at the notification.
type: string
body:
description: Text below title on the expanded notification.
type: string
icon:
description: Platform-specific icon for the notification.
type: string
sound:
description: Platform-specific sound for the notification.
type: string
collapseKey:
description: Platform-specific, used to group notifications together.
type: string
Error:
type: object
description: Returned error from failed REST.
properties:
message:
type: string
description: Message explaining the error's cause.
code:
type: integer
description: Error code.
statusCode:
type: integer
description: Status error code.
href:
type: string
description: Link to help with error.
serverId:
type: string
description: Server ID with which error was encountered.
headers:
ErrorCode:
description: The error code.
schema:
type: integer
Link:
description: Links to related resources, in the format defined by [RFC 5988](https://tools.ietf.org/html/rfc5988#section-5). This will potentially include a link with relation type `next`, `first`, and `current`, where appropiate.
schema:
type: string
pattern: (<(.*)?>; rel=\"(first|current|last)?\",)*(<(.*)?>; rel=\"(first|current|last)?\")+
required: true
ServerId:
description: The ID for the server communicated with.
schema:
type: string
required: true
ErrorMessage:
description: The error message.
schema:
type: string
parameters:
responseFormat:
in: query
name: format
schema:
type: string
enum:
- json
- jsonp
- msgpack
- html
description: The response format you would like
versionHeader:
in: header
name: X-Ably-Version
schema:
type: string
description: The version of the API you wish to use.
channelId:
name: channel_id
in: path
schema:
type: string
required: true
description: The [Channel's ID](https://www.ably.io/documentation/rest/channels).
responses:
Error:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
application/x-msgpack:
schema:
$ref: '#/components/schemas/Error'
text/html:
schema:
$ref: '#/components/schemas/Error'
headers:
x-ably-errorcode:
$ref: '#/components/headers/ErrorCode'
x-ably-errormessage:
$ref: '#/components/headers/ErrorMessage'
x-ably-serverid:
$ref: '#/components/headers/ServerId'
securitySchemes:
bearer_auth:
type: http
scheme: bearer
description: Control API uses bearer authentication. You need to generate an access token for use with this API. More details can be found in the Ably docs.