Cisco Umbrella API Keys API

The API Keys API from Cisco Umbrella — 3 operation(s) for api keys.

Operations 6

GET /apiKeys List API Keys #
POST /apiKeys Create API Key #
GET /apiKeys/{apiKeyId} Get API Key #
DELETE /apiKeys/{apiKeyId} Delete API Key #
PATCH /apiKeys/{apiKeyId} Update API Key #
POST /apiKeys/{apiKeyId}/refresh Refresh API Key #

Documentation

📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-admin-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-admin-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-managed-providers-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-managed-providers-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-providers-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-providers-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-s3-key-rotation-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-s3-key-rotation-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-users-roles-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-users-roles-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-authentication/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-authentication/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/cloudlock-api-getting-started/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/cloudlock-api-getting-started/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-internal-domains-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-internal-domains-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-internal-networks-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-internal-networks-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-network-devices-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-network-devices-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-network-tunnels-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-network-tunnels-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-networks-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-networks-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-deployment-policies-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-deployment-policies-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-roaming-computers-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-roaming-computers-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-sites-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-sites-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-swg-devices-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-swg-devices-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-tagging-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-tagging-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-virtual-appliances-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-virtual-appliances-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-investigate-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-investigate-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-application-lists-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-application-lists-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-destination-lists-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-destination-lists-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-api-usage-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-api-usage-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-app-discovery-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-app-discovery-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-reports-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-reports-overview/
📖
Documentation
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-reporting-overview/
📖
APIReference
https://developer.cisco.com/docs/cloud-security/umbrella-api-reference-reporting-overview/

Specifications

Other Resources

🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/admin/key-admin.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/admin/managed-providers.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/admin/providers.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/admin/s3-key-rotation.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/admin/service-providers-console.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/admin/users-roles.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/auth/token.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/cloudlock/cloudlock.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/deployments/internal-domains.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/deployments/internal-networks.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/deployments/network-devices.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/deployments/network-tunnels.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/deployments/networks.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/deployments/policies.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/deployments/roaming-computers.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/deployments/sites.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/deployments/swg-devices.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/deployments/tagging.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/deployments/virtual-appliances.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/investigate/investigate.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/policies/application-lists-internet-umb.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/policies/destination-lists.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/reports/api-usage.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/reports/app-discovery.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/reports/provider-consoles.yaml
🔗
OpenAPI Source
https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/reports/reporting.yaml

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/cisco-umbrella-api-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

cisco-umbrella-api-keys-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Cisco Umbrella Key Admin API Keys API
  description: Manage your Umbrella API keys.
  contact:
    name: Cloud Security Developer Community
  x-provenance:
    method: harvested
    authored_by: Cisco Umbrella
    harvested_by: API Evangelist
    harvested_on: '2026-08-19'
    first_party: true
    provider_published: true
    source_host: pubhub.devnetcloud.com
    note: 26 first-party OpenAPI 3.0 documents (256 operations) listed by Cisco's own docs-nav config and fetched anonymously. Byte-identity reconfirmed 2026-08-19 by SHA-256 against the live source.
  x-evidence:
  - type: source
    url: https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/umbrella-config.json
  - type: source
    url: https://developer.cisco.com/docs/cloud-security/
servers:
- url: https://api.umbrella.com/{basePath}
  variables:
    basePath:
      default: admin/v2
security:
- oauthFlow: []
tags:
- name: API Keys
paths:
  /apiKeys:
    get:
      summary: List API Keys
      description: List the API keys created by your organization.
      tags:
      - API Keys
      operationId: getAPIKeys
      security:
      - oauthFlow:
        - admin.apikeys:read
      parameters:
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/KeysResponseList'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '403':
          $ref: '#/components/responses/forbiddenError'
        '503':
          $ref: '#/components/responses/serviceUnavailableError'
        default:
          $ref: '#/components/responses/invalidRequestError'
    post:
      summary: Create API Key
      description: 'Create an API key with certain scopes, name, description, allowed IP addresses and CIDR blocks, and expiration.

        The `description` and `allowedIPs` fields are optional.'
      tags:
      - API Keys
      operationId: createAPIKeys
      security:
      - oauthFlow:
        - admin.apikeys:create
      requestBody:
        $ref: '#/components/requestBodies/KeysRequest'
      responses:
        '201':
          $ref: '#/components/responses/KeyResponseWithSecret'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '403':
          $ref: '#/components/responses/forbiddenError'
        '409':
          $ref: '#/components/responses/alreadyExistsError'
        '415':
          $ref: '#/components/responses/unsupportedMediaError'
        '503':
          $ref: '#/components/responses/serviceUnavailableError'
        default:
          $ref: '#/components/responses/invalidRequestError'
  /apiKeys/{apiKeyId}:
    get:
      summary: Get API Key
      description: Get an API key.
      tags:
      - API Keys
      operationId: getAPIKey
      parameters:
      - $ref: '#/components/parameters/apiKeyId'
      security:
      - oauthFlow:
        - admin.apikeys:read
      responses:
        '200':
          $ref: '#/components/responses/KeyResponse'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '403':
          $ref: '#/components/responses/forbiddenError'
        '404':
          $ref: '#/components/responses/notFoundError'
        '503':
          $ref: '#/components/responses/serviceUnavailableError'
        default:
          $ref: '#/components/responses/invalidRequestError'
    delete:
      summary: Delete API Key
      description: Delete an API key.
      tags:
      - API Keys
      operationId: deleteAPIKey
      parameters:
      - $ref: '#/components/parameters/apiKeyId'
      security:
      - oauthFlow:
        - admin.apikeys:delete
      responses:
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '403':
          $ref: '#/components/responses/forbiddenError'
        '404':
          $ref: '#/components/responses/notFoundError'
        '503':
          $ref: '#/components/responses/serviceUnavailableError'
        default:
          $ref: '#/components/responses/invalidRequestError'
    patch:
      summary: Update API Key
      description: Update the name, description, scopes, and allowed IPs for an API key.
      tags:
      - API Keys
      operationId: patchAPIKey
      parameters:
      - $ref: '#/components/parameters/apiKeyId'
      security:
      - oauthFlow:
        - admin.apikeys:update
      requestBody:
        $ref: '#/components/requestBodies/KeyRequestPatch'
      responses:
        '200':
          $ref: '#/components/responses/KeyResponse'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '403':
          $ref: '#/components/responses/forbiddenError'
        '404':
          $ref: '#/components/responses/notFoundError'
        '415':
          $ref: '#/components/responses/unsupportedMediaError'
        '503':
          $ref: '#/components/responses/serviceUnavailableError'
        default:
          $ref: '#/components/responses/invalidRequestError'
  /apiKeys/{apiKeyId}/refresh:
    post:
      summary: Refresh API Key
      description: Refresh the API key and secret.
      operationId: refreshApiKey
      tags:
      - API Keys
      security:
      - oauthFlow:
        - admin.apikeys:refresh
      parameters:
      - $ref: '#/components/parameters/apiKeyId'
      responses:
        '200':
          $ref: '#/components/responses/KeyResponseRefreshSecret'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '403':
          $ref: '#/components/responses/forbiddenError'
        '404':
          $ref: '#/components/responses/notFoundError'
        '415':
          $ref: '#/components/responses/unsupportedMediaError'
        '503':
          $ref: '#/components/responses/serviceUnavailableError'
        default:
          $ref: '#/components/responses/invalidRequestError'
components:
  headers:
    Date:
      schema:
        type: string
        pattern: ^[0-90-90-90-9-0-90-9-0-90-9T0-90-9:0-90-9:0-90-9Z]+$
      description: The timestamp of the response.
      example: '2023-03-14T18:34:25Z'
    Content-Type:
      schema:
        type: string
      description: The MIME content type of the response body.
      example: application/json
  schemas:
    lastRefreshedAt:
      type: string
      format: date-time
      description: The date and time when the key was last refreshed, specified in the ISO 8601 format.
      example: '2021-12-02T20:00:00Z'
    clientSecret:
      type: string
      description: 'The client secret. The client secret is used with the client ID to attain a token for making API calls.

        '
      example: '1023845394834890324032948233'
    createdAt:
      type: string
      format: date-time
      description: The date and time when the key was created, specified in the ISO 8601 format.
      example: '2021-10-02T20:00:00Z'
    KeyForList:
      type: object
      description: The API key information.
      properties:
        name:
          $ref: '#/components/schemas/name'
        id:
          $ref: '#/components/schemas/id'
        clientId:
          $ref: '#/components/schemas/clientId'
        creatorKeyId:
          $ref: '#/components/schemas/creatorKeyId'
        creatorName:
          $ref: '#/components/schemas/creatorName'
        creatorEmail:
          $ref: '#/components/schemas/creatorEmail'
        createdAt:
          $ref: '#/components/schemas/createdAt'
        description:
          $ref: '#/components/schemas/description'
        expireAt:
          $ref: '#/components/schemas/expireAt'
        modifiedAt:
          $ref: '#/components/schemas/modifiedAt'
        lastUsedAt:
          $ref: '#/components/schemas/lastUsedAt'
        lastRefreshedAt:
          $ref: '#/components/schemas/lastRefreshedAt'
        scopes:
          $ref: '#/components/schemas/scopes'
      required:
      - id
      - creatorName
      - creatorEmail
      - createdAt
      - expireAt
      - modifiedAt
      - lastUsedAt
      - lastRefreshedAt
      - scopes
      example:
        name: Networks RW
        id: 39b18499-4cf3-470d-997b-960e55ee0085
        clientId: '1023845394834890324032948234'
        creatorName: Name of API key creator
        creatorEmail: yourname@cisco.com
        createdAt: '2021-10-02T20:00:00Z'
        description: An API key to create and modify network deployments.
        expireAt: '2023-12-05T19:34:00Z'
        lastUsedAt: '2021-10-05T19:34:00Z'
        modifiedAt: '2021-10-02T20:00:00Z'
        lastRefreshedAt: '2021-10-02T20:00:00Z'
        scopes:
        - deployments.networks:read
        - deployments.networks:write
    Key:
      type: object
      description: The API key information.
      properties:
        name:
          $ref: '#/components/schemas/name'
        id:
          $ref: '#/components/schemas/id'
        clientId:
          $ref: '#/components/schemas/clientId'
        creatorKeyId:
          $ref: '#/components/schemas/creatorKeyId'
        creatorName:
          $ref: '#/components/schemas/creatorName'
        creatorEmail:
          $ref: '#/components/schemas/creatorEmail'
        createdAt:
          $ref: '#/components/schemas/createdAt'
        description:
          $ref: '#/components/schemas/description'
        expireAt:
          $ref: '#/components/schemas/expireAt'
        modifiedAt:
          $ref: '#/components/schemas/modifiedAt'
        lastUsedAt:
          $ref: '#/components/schemas/lastUsedAt'
        lastRefreshedAt:
          $ref: '#/components/schemas/lastRefreshedAt'
        scopes:
          $ref: '#/components/schemas/scopes'
        allowedIPs:
          $ref: '#/components/schemas/allowedIPs'
      required:
      - id
      - creatorName
      - creatorEmail
      - createdAt
      - expireAt
      - modifiedAt
      - lastUsedAt
      - lastRefreshedAt
      - scopes
      example:
        name: Networks RW
        id: 39b18499-4cf3-470d-997b-960e55ee0085
        clientId: '1023845394834890324032948234'
        creatorName: Name of API key creator
        creatorEmail: yourname@cisco.com
        createdAt: '2021-10-02T20:00:00Z'
        description: An API key to create and modify network deployments.
        expireAt: '2023-12-05T19:34:00Z'
        lastUsedAt: '2021-10-05T19:34:00Z'
        modifiedAt: '2021-10-02T20:00:00Z'
        lastRefreshedAt: '2021-10-02T20:00:00Z'
        scopes:
        - deployments.networks:read
        - deployments.networks:write
        allowedIPs:
        - 2001:420:c0c4:1006::427
        - 143.10.10.0/24
    creatorEmail:
      type: string
      description: The email address of the user who created the key.
      example: yourname@cisco.com
    creatorKeyId:
      type: string
      description: The ID of the KeyAdmin key that generated the key.
      example: 130eec4c3825463e8d06f1dd9c0b2c19
    description:
      type: string
      maxLength: 256
      description: The text that describes the purpose of the API key.
      example: An API key to create and modify network deployments.
    allowedIPs:
      type: array
      description: The list of public IP addresses and CIDR blocks that can make API requests with the API key.
      items:
        type: string
        description: An IP address that can make API requests with the API key.
        example: 2001:420:c0c4:1006::427
      example:
      - 2001:420:c0c4:1006::427
    lastUsedAt:
      type: string
      format: date-time
      description: The date and time when the key was last used, specified in the ISO 8601 format.
      example: '2021-10-02T20:00:00'
    clientId:
      type: string
      description: 'The client ID associated with the API key. The client ID is used with the client secret to attain a token for making API calls.

        '
      example: '1023845394834890324032948234'
    expireAt:
      type: string
      description: 'The date and time when the key is set to expire. The timestamp is specified as an ISO 8601 formatted string,

        or an empty string (`''''`).  An empty string indicates that the key never expires.

        '
      example: '2022-10-02T20:00:00Z'
    creatorName:
      type: string
      description: The name of the user who created the key.
      example: The name of API key creator.
    modifiedAt:
      type: string
      format: date-time
      description: The date and time when the key was updated, specified in the ISO 8601 format.
      example: '2021-11-02T20:00:00Z'
    KeyWithSecret:
      type: object
      description: The API key information including the client id and secret.
      properties:
        name:
          $ref: '#/components/schemas/name'
        id:
          $ref: '#/components/schemas/id'
        clientId:
          $ref: '#/components/schemas/clientId'
        clientSecret:
          $ref: '#/components/schemas/clientSecret'
        creatorKeyId:
          $ref: '#/components/schemas/creatorKeyId'
        creatorName:
          $ref: '#/components/schemas/creatorName'
        creatorEmail:
          $ref: '#/components/schemas/creatorEmail'
        createdAt:
          $ref: '#/components/schemas/createdAt'
        description:
          $ref: '#/components/schemas/description'
        expireAt:
          $ref: '#/components/schemas/expireAt'
        modifiedAt:
          $ref: '#/components/schemas/modifiedAt'
        lastUsedAt:
          $ref: '#/components/schemas/lastUsedAt'
        lastRefreshedAt:
          $ref: '#/components/schemas/lastRefreshedAt'
        scopes:
          $ref: '#/components/schemas/scopes'
        allowedIPs:
          $ref: '#/components/schemas/allowedIPs'
      required:
      - id
      - clientId
      - clientSecret
      - creatorName
      - creatorEmail
      - createdAt
      - expireAt
      - modifiedAt
      - lastUsedAt
      - lastRefreshedAt
      - scopes
      example:
        name: Networks RW
        id: 39b18499-4cf3-470d-997b-960e55ee0085
        clientId: '1023845394834890324032948234'
        clientSecret: '1023845394834890324032948233'
        creatorKeyId: 130eec4c3825463e8d06f1dd9c0b2c19
        creatorName: Name of API key creator
        creatorEmail: ''
        createdAt: '2021-10-02T20:00:00Z'
        description: An API key to create and modify network deployments.
        expireAt: '2022-01-12T20:00:00Z'
        lastUsedAt: '2021-10-05T19:34:00Z'
        modifiedAt: '2021-10-02T20:00:00Z'
        lastRefreshedAt: '2021-10-02T20:00:00Z'
        scopes:
        - deployments.networks:read
        - deployments.networks:write
        allowedIPs:
        - 2001:420:c0c4:1006::427
    KeyRefreshSecret:
      type: object
      description: The API key information including the client id and secret.
      properties:
        name:
          $ref: '#/components/schemas/name'
        id:
          $ref: '#/components/schemas/id'
        clientId:
          $ref: '#/components/schemas/clientId'
        clientSecret:
          $ref: '#/components/schemas/clientSecret'
        creatorKeyId:
          $ref: '#/components/schemas/creatorKeyId'
        creatorName:
          $ref: '#/components/schemas/creatorName'
        creatorEmail:
          $ref: '#/components/schemas/creatorEmail'
        createdAt:
          $ref: '#/components/schemas/createdAt'
        description:
          $ref: '#/components/schemas/description'
        expireAt:
          $ref: '#/components/schemas/expireAt'
        modifiedAt:
          $ref: '#/components/schemas/modifiedAt'
        lastUsedAt:
          $ref: '#/components/schemas/lastUsedAt'
        lastRefreshedAt:
          $ref: '#/components/schemas/lastRefreshedAt'
        scopes:
          $ref: '#/components/schemas/scopes'
      required:
      - id
      - clientId
      - clientSecret
      - creatorName
      - creatorEmail
      - createdAt
      - expireAt
      - modifiedAt
      - lastUsedAt
      - lastRefreshedAt
      - scopes
      example:
        name: Networks RW
        id: 39b18499-4cf3-470d-997b-960e55ee0085
        clientId: '1023845394834890324032948234'
        clientSecret: '1023845394834890324032948233'
        creatorKeyId: 130eec4c3825463e8d06f1dd9c0b2c19
        creatorName: Name of API key creator
        creatorEmail: ''
        createdAt: '2021-10-02T20:00:00Z'
        description: An API key to create and modify network deployments.
        expireAt: '2022-01-12T20:00:00Z'
        lastUsedAt: '2021-10-05T19:34:00Z'
        modifiedAt: '2021-10-02T20:00:00Z'
        lastRefreshedAt: '2021-10-02T20:00:00Z'
        scopes:
        - deployments.networks:read
        - deployments.networks:write
    scopes:
      type: array
      description: A list of scopes and permissions attached to the API key.
      items:
        type: string
      example:
      - deployments.networks:read
      - deployments.networks:write
    id:
      type: string
      description: A unique identifier for the key.
      example: 39b18499-4cf3-470d-997b-960e55ee0085
    name:
      description: The unique descriptive label for the API key.
      type: string
      pattern: ^[a-zA-Z0-9:.-_+=\s]+$
      maxLength: 256
      example: Network deployments
  responses:
    invalidRequestError:
      description: Bad Request
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
        Date:
          $ref: '#/components/headers/Date'
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
              description:
                type: string
            example:
              message: error
              description: Bad Request
    unsupportedMediaError:
      description: Unsupported Media Type
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
        Date:
          $ref: '#/components/headers/Date'
      content:
        application/json:
          schema:
            type: object
            description: The request failed because the Content-Type was not an allowed media type.
            properties:
              message:
                type: string
                example: error
                enum:
                - success
                - error
              description:
                type: string
            example:
              message: error
              description: Unsupported Media Type
    unauthorizedError:
      description: Unauthorized
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
        Date:
          $ref: '#/components/headers/Date'
        WWW-Authenticate:
          schema:
            type: string
          description: A challenge response for the intended resource.
      content:
        application/json:
          schema:
            type: object
            description: The request is not authorized.
            properties:
              message:
                type: string
                example: success
                enum:
                - success
                - error
              description:
                type: string
            example:
              message: error
              description: Unauthorized request
    KeyResponseWithSecret:
      description: Created
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
        Date:
          $ref: '#/components/headers/Date'
      content:
        application/json:
          schema:
            type: object
            description: Successfully created an API key.
            properties:
              message:
                type: string
                description: The status message that describes the response.
                enum:
                - success
                - error
                example: success
              key:
                $ref: '#/components/schemas/KeyWithSecret'
          example:
            message: success
            key:
              name: Networks RW
              id: 39b18499-4cf3-470d-997b-960e55ee0085
              clientId: '1023845394834890324032948234'
              clientSecret: '1023845394834890324032948233'
              creatorKeyId: 130eec4c3825463e8d06f1dd9c0b2c19
              creatorName: ''
              creatorEmail: ''
              createdAt: '2022-10-02T20:00:00Z'
              description: An API key to create and modify network deployments.
              expireAt: ''
              lastUsedAt: '2022-10-05T19:34:00Z'
              modifiedAt: '2022-10-02T20:00:00Z'
              lastRefreshedAt: '2022-10-05T20:00:00Z'
              scopes:
              - deployments.networks:read
              - deployments.networks:write
    KeyResponseRefreshSecret:
      description: OK
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
        Date:
          $ref: '#/components/headers/Date'
      content:
        application/json:
          schema:
            type: object
            description: Successfully refreshed an API key.
            properties:
              message:
                type: string
                description: The status message that describes the response.
                enum:
                - success
                - error
                example: success
              key:
                $ref: '#/components/schemas/KeyRefreshSecret'
          example:
            message: success
            key:
              name: Networks RW
              id: 39b18499-4cf3-470d-997b-960e55ee0085
              clientId: '1023845394834890324032948234'
              clientSecret: '1023845394834890324032948233'
              creatorKeyId: 130eec4c3825463e8d06f1dd9c0b2c19
              creatorName: ''
              creatorEmail: ''
              createdAt: '2022-10-02T20:00:00Z'
              description: An API key to create and modify network deployments.
              expireAt: ''
              lastUsedAt: '2022-10-05T19:34:00Z'
              modifiedAt: '2022-10-02T20:00:00Z'
              lastRefreshedAt: '2022-10-05T20:00:00Z'
              scopes:
              - deployments.networks:read
              - deployments.networks:write
    serviceUnavailableError:
      description: Service Unavailable
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
        Date:
          $ref: '#/components/headers/Date'
      content:
        application/json:
          schema:
            type: object
            description: The request failed because a dependent service is temporarily unavailable.
            properties:
              message:
                type: string
                example: error
                enum:
                - success
                - error
              description:
                type: string
            example:
              message: error
              description: Service Unavailable
    KeyResponse:
      description: OK
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
        Date:
          $ref: '#/components/headers/Date'
      content:
        application/json:
          schema:
            type: object
            description: Successfully created an API key.
            properties:
              message:
                type: string
                description: The status message that describes the response.
              key:
                $ref: '#/components/schemas/Key'
          example:
            message: success
            key:
              name: Networks RW
              id: 39b18499-4cf3-470d-997b-960e55ee0085
              clientId: '1023845394834890324032948234'
              creatorKeyId: ''
              creatorName: Name of API key creator
              creatorEmail: yourname@cisco.com
              createdAt: '2021-10-02T20:00:00Z'
              description: An API key to create and modify network deployments.
              expireAt: 2022-01-12T20:00:00Z00:00
              lastUsedAt: '2021-10-05T19:34:00Z'
              modifiedAt: '2021-10-02T20:00:00Z'
              lastRefreshedAt: '2021-10-02T20:00:00Z'
              scopes:
              - deployments.networks:read
              - deployments.networks:write
              allowedIPs:
              - 2001:420:c0c4:1006::427
              - 143.10.10.0/24
    alreadyExistsError:
      description: Already Exists
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
        Date:
          $ref: '#/components/headers/Date'
      content:
        application/json:
          schema:
            type: object
            description: The request failed because the `APIKey` with that `name` already exists.
            properties:
              message:
                type: string
                example: error
                enum:
                - success
                - error
              description:
                type: string
            example:
              message: error
              description: Already Exists
    KeysResponseList:
      description: OK
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
        Date:
          $ref: '#/components/headers/Date'
      content:
        application/json:
          schema:
            type: object
            description: List the key information.
            properties:
              message:
                type: string
                example: success
                enum:
                - success
                - error
                description: The status message that describes the response.
              offset:
                type: integer
                format: int64
                description: The place to start reading in the collection. The default offset is 0.
                example: 1
              limit:
                type: integer
                format: int64
                description: 'The number of items to return in the page. The default limit is 0, which

                  designates no limit.'
                example: 10
              total:
                type: integer
                format: int64
                example: 1
                description: The total number of items read in the collection.
              keys:
                type: array
                items:
                  $ref: '#/components/schemas/KeyForList'
          example:
            message: success
            offset: 0
            limit: 100
            total: 40
            keys:
            - id: 39b18499-4cf3-470d-997b-960e55ee0085
              creatorName: Name of the API key creator
              creatorEmail: yourname@cisco.com
              createdAt: '2021-10-02T20:00:00'
              description: An API key to create and modify network deployments.
              expireAt: 2022-01-12T20:00:00Z00:00
              lastUsedAt: '2021-10-05T19:34:00'
              modifiedAt: '2021-10-02T20:00:00'
              lastRefreshedAt: '2021-10-02T20:00:00Z'
              scopes:
              - deployments.networks:read
              - deployments.networks:write
    notFoundError:
      description: Not Found
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
        Date:
          $ref: '#/components/headers/Date'
      content:
        application/json:
          schema:
            type: object
            description: The request failed because the resource doesn't exist.
            properties:
              message:
                type: string
                example: error
                enum:
                - success
                - error
              description:
                type: string
            example:
              message: error
              description: Not Found
    forbiddenError:
      description: Forbidden
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
        Date:
          $ref: '#/components/headers/Date'
      content:
        application/json:
          schema:
            type: object
            description: The request is forbidden.
            properties:
              message:
                type: string
                example: success
                enum:
                - success
                - error
              description:
                type: string
            example:
              message: error
              description: Forbidden
  parameters:
    offset:
      in: query
      name: offset
      description: The place to start reading in the collection. The default offset is 0.
      schema:
        type: integer
        format: int64
        default: 0
      example: 1
    apiKeyId:
      in: path
      name: apiKeyId
      required: true
      description: The ID of the API key.
      schema:
        type: string
      example: 39b18499-4cf3-470d-997b-960e55ee0085
    limit:
      in: query
      name: limit
      description: The number of items to return in the page. The default limit is 0, which designates no limit.
      schema:
        type: integer
        format: int64
        default: 0
      example: 25
  requestBodies:
    KeyRequestPatch:
      description: Request body for updating an API key.
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              name:
                $ref: '#/components/schemas/name'
              description:
                $ref: '#/components/schemas/description'
              scopes:
                $ref: '#/components/schemas/scopes'
              allowedIPs:
                $ref: '#/components/schemas/allowedIPs'
            required:
            - name
            - scopes
          example:
            name: Network RW
            scopes:
            - deployments.networks:write
            description: An API key to create and modify network deployments.
            allowedIPs:
            - 2001:420:c0c4:1006::427
            - 143.10.10.0/24
    KeysRequest:
      description: Request body for creating an API key.
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              name:
                $ref: '#/components/schemas/name'
              description:
                $ref: '#/components/schemas/description'
              scopes:
                $ref: '#/components/schemas/scopes'
              expireAt:
                type: string
                description: 'The date and time when the key is set to expire. Specify an ISO 8601-formatted timestamp or

                  an empty string (`''''`). Use an empty string to set the API key to never expire.

                  '
              allowedIPs:
                $ref: '#/components/schemas/allowedIPs'
            required:
            - name
            - scopes
          example:
            name: Network RW
            scopes:
            - deployments.networks:write
            description: An API key to create and modify network deployments.
  securitySchemes:
    oauthFlow:
      type: oauth2
      description: client credential flow
      flows:
        clientCredentials:
          tokenUrl: https://api.umbrella.com/auth/v2/token
          scopes:
            admin.apikeys:create: Create admin API keys
            admin.apikeys:read: Read admin API keys
            admin.apikeys:delete: Delete admin API keys
            admin.apikeys:update: Update admin API keys
            admin.apikeys:refresh: Refresh admin API keys
x-provenance:
  method: harvested
  first_party: true
  harvested: '2026-08-19'
  source: https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/admin/key-admin.yaml
  publisher: Cisco Systems, Inc. (Cisco DevNet Cloud Security docs)
x-evidence:
  fetched: '2026-08-19'
  url: https://pubhub.devnetcloud.com/media/cloud-security-apis-in-eft/docs/reference/admin/key-admin.yaml
  http_status: 200
  docs: https://developer.cisco.com/docs/cloud-security/