> ## Documentation Index
> Fetch the complete documentation index at: https://heygen-1fa696a7.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Current API Key

> Returns non-secret metadata, expiration, and permission scopes for the API key used to authenticate this request. This endpoint accepts API-key authentication only and does not require the key to grant itself a permission scope.



## OpenAPI

````yaml /openapi/external-api.json get /v3/api_keys/self
openapi: 3.1.0
info:
  title: HeyGen External API
  version: 1.0.0
  description: >-
    HeyGen's external API for programmatic AI video creation. See
    https://docs.heygen.com for full documentation.
  contact:
    name: HeyGen Product Infra
    url: https://heygen.com
servers:
  - url: https://api.heygen.com
    description: Production
security:
  - ApiKeyAuth: []
  - BearerAuth: []
tags:
  - name: Video Agent
    description: Create videos from text prompts using AI
  - name: Videos
    description: Create, list, retrieve, and delete videos
  - name: Templates
    description: Generate videos from reusable templates by replacing their variables
  - name: Voices
    description: Text-to-speech and voice management
  - name: Audio
    description: Search the background-music and sound-effects catalog
  - name: Video Translate
    description: Translate videos into other languages
  - name: AI Clipping
    description: Turn long-form videos into ready-to-share short clips with captions
  - name: Batches
    description: Create and track batches of videos.
  - name: Video Translation Batches
    description: Create and track batches of video translations.
  - name: Lipsync Batches
    description: Create and track batches of lipsyncs.
  - name: Asset Batches
    description: Create and track batches of direct-to-S3 asset uploads.
  - name: User
    description: Account information and billing
  - name: API Keys
    description: Inspect the API key authenticating the current request
  - name: Avatars
    description: List and manage avatars and looks
  - name: Assets
    description: Upload files for use in video creation
  - name: Webhooks
    description: Manage webhook endpoints and events
  - name: Lipsync
    description: Dub or replace audio on existing videos
  - name: Brand
    description: >-
      Brand-related resources — brand kits (colors, fonts, logos) and brand
      glossaries (custom term translations)
  - name: Custom Agents
    description: >-
      Custom agents — installed agent registry + per-agent video generation.
      Chiron (Apple-app tips) is the first agent.
  - name: HyperFrames
    description: Render HyperFrames composition zips into video — separate from /v3/videos
  - name: Filler Word Removal
    description: ''
paths:
  /v3/api_keys/self:
    get:
      tags:
        - API Keys
      summary: Get Current API Key
      description: >-
        Returns non-secret metadata, expiration, and permission scopes for the
        API key used to authenticate this request. This endpoint accepts API-key
        authentication only and does not require the key to grant itself a
        permission scope.
      operationId: getCurrentApiKeyV3
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CurrentAPIKeyResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/StandardAPIError'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/StandardAPIError'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired API key. Verify your x-api-key header.
                  param: null
                  doc_url: null
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/StandardAPIError'
              example:
                error:
                  code: rate_limit_exceeded
                  message: >-
                    Too many requests. Retry after the duration specified in the
                    Retry-After header.
                  param: null
                  doc_url: null
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
      security:
        - ApiKeyAuth: []
components:
  schemas:
    CurrentAPIKeyResponse:
      properties:
        key_id:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Stable identifier for this key, matching the key_id shown in the
            dashboard. Null for legacy keys issued before key identifiers
            existed.
          title: Key Id
        key_name:
          anyOf:
            - type: string
            - type: 'null'
          description: Human-readable name assigned to this API key.
          title: Key Name
        status:
          const: active
          description: >-
            Current key status. A successful response always means the key is
            active.
          title: Status
          type: string
        scope_mode:
          description: >-
            Permission mode applied to this key: full access, read-only access,
            or an explicit custom allowlist.
          enum:
            - full
            - read_only
            - custom
          title: Scope Mode
          type: string
        scopes:
          description: >-
            Permission grants held by this key, always present and never empty.
            Custom keys list their explicit grants. Full-access keys report the
            wildcard '*:*' and read-only keys report '*:read'; both wildcards
            also cover permissions added to the catalog after the key was
            issued, which an expanded list could not express. Match these
            against an operation's x-heygen-required-scopes in the published
            OpenAPI spec to decide whether this key may call it.
          items:
            type: string
          title: Scopes
          type: array
        created_at:
          description: UTC timestamp when this key was created.
          format: date-time
          title: Created At
          type: string
        updated_at:
          description: UTC timestamp when this key was last edited.
          format: date-time
          title: Updated At
          type: string
        expires_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: UTC expiration timestamp, or null when this key never expires.
          title: Expires At
        expires_in_seconds:
          anyOf:
            - minimum: 0
              type: integer
            - type: 'null'
          description: Whole seconds until expiration, or null when this key never expires.
          title: Expires In Seconds
      required:
        - key_id
        - key_name
        - status
        - scope_mode
        - scopes
        - created_at
        - updated_at
        - expires_at
        - expires_in_seconds
      title: CurrentAPIKeyResponse
      type: object
    StandardAPIError:
      type: object
      properties:
        code:
          type: string
          description: Machine-readable error code
          example: invalid_parameter
        message:
          type: string
          description: Human-readable error message
          example: Video not found
        param:
          type:
            - string
            - 'null'
          description: Which request field caused the error
        doc_url:
          type:
            - string
            - 'null'
          description: Link to error documentation
        errors:
          type: array
          description: >-
            Per-item error details for batch/multi-node failures (e.g. graph
            compilation errors by node).
          items:
            $ref: '#/components/schemas/StandardAPIErrorDetail'
      required:
        - code
        - message
    StandardAPIErrorDetail:
      type: object
      properties:
        code:
          type: string
          description: Machine-readable error code
          example: unknown_node_type
        message:
          type: string
          description: Human-readable error message
          example: Unknown node type
        node_id:
          type: string
          description: Graph node id this error pertains to, if applicable
        port:
          type: string
          description: Port name on the node this error pertains to, if applicable
        path:
          type: string
          description: Field path within the item this error pertains to, if applicable
      required:
        - code
        - message
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: HeyGen API key. Obtain from your HeyGen dashboard.
    BearerAuth:
      type: http
      scheme: bearer
      description: OAuth2 bearer token.

````