openapi: 3.0.1
info:
title: Control API v1 apps keys 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: keys
paths:
/apps/{app_id}/keys:
get:
summary: Lists app keys
description: Lists the API keys associated with the application ID.
tags:
- keys
parameters:
- name: app_id
description: The application ID.
in: path
required: true
schema:
type: string
security:
- bearer_auth: []
responses:
'200':
description: Key list
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/key_response'
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: App not found
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'504':
description: Gateway timeout
content:
application/json:
schema:
$ref: '#/components/schemas/error'
post:
summary: Creates a key
description: Creates an API key for the application specified.
tags:
- keys
parameters:
- name: app_id
description: The application ID.
in: path
required: true
schema:
type: string
security:
- bearer_auth: []
responses:
'201':
description: Key created
content:
application/json:
schema:
$ref: '#/components/schemas/key_response'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: App not found
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'422':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/key_post'
/apps/{app_id}/keys/{key_id}:
patch:
summary: Updates a key
description: Update the API key with the specified key ID, for the application with the specified application ID.
tags:
- keys
parameters:
- name: app_id
description: The application ID.
in: path
required: true
schema:
type: string
- name: key_id
description: The API key ID.
in: path
required: true
schema:
type: string
security:
- bearer_auth: []
responses:
'200':
description: Key updated
content:
application/json:
schema:
$ref: '#/components/schemas/key_response'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: App not found
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'422':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'504':
description: Gateway timeout
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/key_patch'
/apps/{app_id}/keys/{key_id}/revoke:
post:
summary: Revokes a key
description: Revokes the API key with the specified ID, with the Application ID. This deletes the key.
tags:
- keys
parameters:
- name: app_id
description: The application ID.
in: path
required: true
schema:
type: string
- name: key_id
description: The key ID.
in: path
required: true
schema:
type: string
security:
- bearer_auth: []
responses:
'200':
description: Key revoked
content: {}
'401':
description: Authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'504':
description: Gateway timeout
content:
application/json:
schema:
$ref: '#/components/schemas/error'
components:
schemas:
key_response:
type: object
additionalProperties: false
properties:
appId:
description: The Ably application ID which this key is associated with.
type: string
example: 28GY6a
id:
description: The key ID.
type: string
example: G8dabc
name:
description: The name for your API key. This is a friendly name for your reference.
type: string
example: My key name
status:
description: The status of the key. `0` is enabled, `1` is revoked.
type: integer
key:
description: The complete API key including API secret.
type: string
capability:
description: The capabilities that this key has. More information on capabilities can be found in the Ably capabilities docs.
type: object
additionalProperties:
type: array
description: An array of strings setting the capability operations for the resource.
items:
type: string
example:
channel1:
- publish
- subscribe
channel2:
- history
created:
type: integer
description: Unix timestamp representing the date and time of creation of the key.
example: 1602844091815
modified:
type: integer
description: Unix timestamp representing the date and time of the last modification of the key.
example: 1614679682091
key_post:
type: object
additionalProperties: false
properties:
name:
description: The name for your API key. This is a friendly name for your reference.
type: string
example: My key name
capability:
description: These are the capability operations described in the capabilities docs.
type: object
additionalProperties:
type: array
description: An array of strings setting the capability operations for the resource.
items:
type: string
example:
name: My key name
capability:
channel1:
- publish
- subscribe
channel2:
- history
required:
- name
- capability
key_patch:
type: object
additionalProperties: false
properties:
name:
description: The name for your API key. This is a friendly name for your reference.
type: string
example: My key name
capability:
description: These are the capability operations described in the Ably capabilities docs.
type: object
additionalProperties:
type: array
description: An array of strings setting the capability operations for the resource.
items:
type: string
example:
name: My key name
capability:
channel1:
- publish
- subscribe
channel2:
- history
error:
type: object
additionalProperties: false
properties:
message:
type: string
description: The error message.
code:
type: integer
description: The HTTP status code returned.
statusCode:
type: integer
description: The Ably error code.
href:
type: string
description: The URL to documentation about the error code.
details:
type: object
nullable: true
description: Any additional details about the error message.
required:
- message
- code
- statusCode
- href
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.