> ## Documentation Index
> Fetch the complete documentation index at: https://docs.athenahq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List API Keys

> Lists API key metadata for the authenticated key's organization, including each key's creator (ID, current name and email), creation date, scope and revocation status. Requires a global API key; website-scoped keys receive 403. No organization ID is accepted. Secrets and hashes are never returned. Revoked keys are included so you can detect a key created and revoked between polls. Results are ordered by creation date ascending, then ID ascending.

For new-key alerts, first record a baseline of key IDs. On each poll, pin `until` to now minus one minute, overlap `since` with the previous successful window, and keep both bounds fixed while incrementing `page_num` until `pagination.has_more` is false. Both time bounds are inclusive. Deduplicate alerts by key ID and advance your saved window only after all pages succeed. Filter `is_revoked` locally if you need active keys only.

This is a current inventory, not a durable audit log or webhook: deleting a creator's account removes their keys, and concurrent deletions can shift pages. Overlapping windows reduce polling gaps but cannot guarantee detection of every creation. The MCP tool `list_api_keys` exposes the same fields and filters to global API keys and organization-admin OAuth connections, subject to MCP permissions.



## OpenAPI

````yaml /api-reference/openapi.json get /api/v1/api-keys
openapi: 3.1.0
info:
  title: AthenaHQ API
  description: >-
    AthenaHQ API provides programmatic access to manage your websites and
    prompts for AI-powered content optimization.
  version: 1.0.0
  contact:
    email: support@athenahq.ai
servers:
  - url: https://api.athenahq.ai
    description: Production server
security:
  - apiKey: []
tags:
  - name: Basics
    description: Core API operations for managing websites and prompts
  - name: Metrics
    description: Metrics and analytics endpoints for tracking AI visibility
  - name: Billing
    description: Billing and credits endpoints for managing usage
  - name: Team Management
    description: Endpoints for managing team members and invitations
  - name: Groups
    description: Endpoints for managing groups of websites
  - name: Content
    description: >-
      Endpoints for accessing Content Hub data — tabs, tracked URLs, and per-URL
      prompt breakdowns.
  - name: Pitch Workspace
    description: >-
      Endpoints for accessing pitch workspace reports — org-scoped pitch runs
      with competitors, prompts, attributes, and aggregate metrics.
  - name: Knowledge Base
    description: >-
      Endpoints for reading the brand Knowledge Base — approved brand facts and
      the pillars that organize them.
paths:
  /api/v1/api-keys:
    get:
      tags:
        - Basics
      summary: List API Keys
      description: >-
        Lists API key metadata for the authenticated key's organization,
        including each key's creator (ID, current name and email), creation
        date, scope and revocation status. Requires a global API key;
        website-scoped keys receive 403. No organization ID is accepted. Secrets
        and hashes are never returned. Revoked keys are included so you can
        detect a key created and revoked between polls. Results are ordered by
        creation date ascending, then ID ascending.


        For new-key alerts, first record a baseline of key IDs. On each poll,
        pin `until` to now minus one minute, overlap `since` with the previous
        successful window, and keep both bounds fixed while incrementing
        `page_num` until `pagination.has_more` is false. Both time bounds are
        inclusive. Deduplicate alerts by key ID and advance your saved window
        only after all pages succeed. Filter `is_revoked` locally if you need
        active keys only.


        This is a current inventory, not a durable audit log or webhook:
        deleting a creator's account removes their keys, and concurrent
        deletions can shift pages. Overlapping windows reduce polling gaps but
        cannot guarantee detection of every creation. The MCP tool
        `list_api_keys` exposes the same fields and filters to global API keys
        and organization-admin OAuth connections, subject to MCP permissions.
      operationId: listApiKeys
      parameters:
        - name: since
          in: query
          required: false
          description: Include keys created at or after this ISO 8601 timestamp.
          schema:
            type: string
            format: date-time
        - name: until
          in: query
          required: false
          description: >-
            Include keys created at or before this ISO 8601 timestamp. Keep
            fixed while paging.
          schema:
            type: string
            format: date-time
        - name: page_num
          in: query
          required: false
          description: Zero-based page number.
          schema:
            type: integer
            minimum: 0
            default: 0
        - name: page_size
          in: query
          required: false
          description: Number of keys per page, up to 100.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 100
      responses:
        '200':
          description: API key metadata, including revoked keys.
          content:
            application/json:
              schema:
                type: object
                required:
                  - api_keys
                  - pagination
                properties:
                  api_keys:
                    type: array
                    items:
                      type: object
                      required:
                        - id
                        - name
                        - key_prefix
                        - created_at
                        - created_by
                        - is_global
                        - website_ids
                        - is_revoked
                      properties:
                        id:
                          type: string
                          format: uuid
                        name:
                          type: string
                        key_prefix:
                          type: string
                          description: >-
                            Non-secret identifying prefix. Secrets and hashes
                            are never returned.
                        created_at:
                          type: string
                          format: date-time
                        created_by:
                          type: object
                          required:
                            - id
                            - name
                            - email
                          properties:
                            id:
                              type: string
                              format: uuid
                            name:
                              type: string
                              nullable: true
                            email:
                              type: string
                        is_global:
                          type: boolean
                        website_ids:
                          type: array
                          items:
                            type: string
                            format: uuid
                          description: >-
                            Allowed website IDs for a scoped key; empty for a
                            global key.
                        is_revoked:
                          type: boolean
                          description: Whether the key has been revoked.
                  pagination:
                    type: object
                    required:
                      - page_num
                      - page_size
                      - has_more
                    properties:
                      page_num:
                        type: integer
                      page_size:
                        type: integer
                      has_more:
                        type: boolean
        '400':
          description: Invalid query parameters or since is after until.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '403':
          description: A global API key is required.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API key for authentication. You can create one
        [here](https://app.athenahq.ai/organization?tab=api).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.