DataStax Customer Keys API

Manage customer keys for your Astra organization.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/datastax-customer-keys-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

datastax-customer-keys-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: Use this REST API to manage your DataStax Astra DB organizations and perform lifecycle actions for your Astra DB databases.</br> </br> To get started, use the /v2/clientIdSecrets endpoints to create a token to authenticate your API calls.
  version: 2.3.0
  title: Astra DevOps Access List Customer Keys API
  contact:
    email: ad-astra@datastax.com
servers:
- url: https://api.astra.datastax.com/
security:
- BearerAuth:
  - org-admin
  - org-db-create
  - org-db-terminate
  - org-db-view
  - org-db-expand
  - org-db-suspend
  - org-db-addpeering
  - org-db-readpeering
  - db-keyspace-create
  - db-cql
  - accesslist-write
  - accesslist-read
  - db-manage-privateendpoint
  - db-manage-telemetry
  - db-manage-backupconfiguration
tags:
- name: Customer Keys
  description: Manage customer keys for your Astra organization.
paths:
  /v2/kms:
    post:
      tags:
      - Customer Keys
      summary: Creates a new Customer Key used for serverless database encryption for an organization
      description: A service to create a new Customer Key registration used for serverless database encryption in an organization.
      operationId: CreateServerlessKey
      requestBody:
        description: KMS details that need to be created.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalKMS'
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      tags:
      - Customer Keys
      summary: Retrieves all Serverless keys in an organization
      description: A service to retrieve the existing Customer Keys of an organization.
      operationId: ListServerlessKeys
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllCustomerKeys'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /v2/kms/classic:
    post:
      tags:
      - Customer Keys
      summary: Creates a new Customer Key used for Managed Cluster (Classic) database encryption for an organization
      description: A service to create a new Customer Key registration used for Managed Cluster (Classic) database encryption in an organization.
      operationId: CreateClassicKey
      requestBody:
        description: KMS details that need to be created.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalKMS'
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      tags:
      - Customer Keys
      summary: Retrieves all Managed Cluster (Classic) keys in an organization
      description: A service to retrieve the existing Customer Keys of an organization.
      operationId: ListClassicKeys
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllCustomerKeys'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /v2/kms/provider/{provider}/region/{region}:
    get:
      tags:
      - Customer Keys
      summary: Retrieves a Serverless Customer Key in an organization
      description: Retrieves a Serverless Customer Key in an organization for a given cloud-provider & region combination.
      operationId: GetServerlessKey
      parameters:
      - in: path
        name: provider
        description: 'The name of the provider, such as: aws.'
        required: true
        schema:
          type: string
      - in: path
        name: region
        description: The region in which the key exists.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetParticularCustomerKey'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /v2/kms/classic/provider/{provider}/region/{region}:
    get:
      tags:
      - Customer Keys
      summary: Retrieves a Managed Cluster (Classic) Customer Key in an organization
      description: Retrieves a Managed Cluster (Classic) Customer Key in an organization for a given cloud-provider & region combination.
      operationId: GetClassicKey
      parameters:
      - in: path
        name: provider
        description: 'The name of the provider, such as: aws.'
        required: true
        schema:
          type: string
      - in: path
        name: region
        description: The region in which the key exists.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetParticularCustomerKey'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /v2/kms/provider/{provider}/region/{region}/accounts:
    get:
      tags:
      - Customer Keys
      summary: Retrieves an array of Serverless Storage Cloud provider accounts
      description: Retrieves an array of Cloud provider accounts for a given cloud-provider & region combination to which customers need to grant their KMS keys access to for serverless keys.
      operationId: GetServerlessCloudAccounts
      parameters:
      - in: path
        name: provider
        description: 'The name of the provider, such as: aws.'
        required: true
        schema:
          type: string
      - in: path
        name: region
        description: The region in which the key exists.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCloudProviderAccounts'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /v2/kms/classic/provider/{provider}/accounts:
    post:
      tags:
      - Customer Keys
      summary: Assigns a new cloud account to an organization that will be used for Managed Cluster (Classic) database encryption
      description: Assigns a new cloud account for an organization given a cloud provider that will be used for Managed Cluster (Classic) database encryption.
      operationId: AssignCloudAccount
      responses:
        '201':
          description: Created
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /v2/kms/classic/provider/{provider}/region/{region}/accounts:
    get:
      tags:
      - Customer Keys
      summary: Retrieves an array of Managed Cluster (Classic) Cloud provider accounts
      description: Retrieves an array of Cloud provider accounts for a given cloud-provider & region combination to which customers need to grant their KMS keys access to for Managed Cluster (Classic) keys.
      operationId: GetClassicCloudAccounts
      parameters:
      - in: path
        name: provider
        description: 'The name of the provider, such as: aws.'
        required: true
        schema:
          type: string
      - in: path
        name: region
        description: The region in which the key exists.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCloudProviderAccounts'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    ExternalKMSResponse:
      type: object
      properties:
        OrganizationID:
          type: string
        CloudProvider:
          type: string
        KeyID:
          type: string
        Region:
          type: string
    ExternalKMS:
      type: object
      properties:
        orgId:
          type: string
          format: uuid
          description: The unique identifier for the organization.
          example: 368600f6-a1e7-42f1-8266-2960de5313f3
        aws:
          $ref: '#/components/schemas/AWS-KMS'
        gcp:
          $ref: '#/components/schemas/GCP-KMS'
        azure:
          $ref: '#/components/schemas/AZURE-KMS'
    CloudProviderAccountDetails:
      type: object
      properties:
        organization_id:
          type: string
        provider_id:
          type: string
        provider:
          type: string
    AZURE-KMS:
      type: object
      properties:
        keyID:
          type: string
          description: The unique identifier of the customer-key.
        region:
          type: string
          description: The region in which the key exists.
    GCP-KMS:
      type: object
      properties:
        keyID:
          type: string
          description: The unique identifier of the customer-key.
        region:
          type: string
          description: The region in which the key exists.
    GetAllCustomerKeys:
      type: array
      description: List of Customer Keys in an organization
      items:
        $ref: '#/components/schemas/ExternalKMSResponse'
    Error:
      description: ModelError information that is returned to users
      type: object
      required:
      - id
      - message
      properties:
        ID:
          type: integer
          example: 123
          description: API specific error code
        message:
          type: string
          example: Something is broken
          description: User-friendly description of error
    GetParticularCustomerKey:
      type: object
      description: Retrieves a Customer Key for the specified provider and region combination
      properties:
        orgId:
          type: string
          example: ccd0aa59-facd-4a42-b27f-49dba057833d
        aws:
          type: object
          properties:
            keyID:
              type: string
              example: arn:aws:kms:us-east-1:111111111:key/aabbbb-a00f-4c38-9e92-b46ff1ed181d
            region:
              type: string
              example: us-east-1
    AWS-KMS:
      type: object
      properties:
        keyID:
          type: string
          description: The unique identifier of the customer-key.
        region:
          type: string
          description: The region in which the master key exists.
    Errors:
      description: Errors is a collection of individual Error objects
      type: object
      required:
      - errors
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
    GetCloudProviderAccounts:
      type: array
      description: List of Cloud provider accounts in an organization for a cloud-provider & region combination
      items:
        $ref: '#/components/schemas/CloudProviderAccountDetails'
  responses:
    ServerError:
      description: A server error occurred
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
    Unauthorized:
      description: The user is unauthorized to perform the operation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
    Forbidden:
      description: The user is forbidden to perform the operation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
    NotFound:
      description: The specified database was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
  securitySchemes:
    BearerAuth:
      description: An application token must be passed in header in order to access the API. https://docs.datastax.com/en/astra-db-serverless/administration/manage-application-tokens.html
      type: http
      scheme: bearer