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

# List API Keys

> Return a list of API keys.



## OpenAPI

````yaml GET /api_keys
openapi: 3.0.0
info:
  description: The Venice.ai API.
  termsOfService: https://venice.ai/legal/tos
  title: Venice.ai API
  version: '20261006.212130'
  x-guidance: >-
    Venice.ai is an OpenAI-compatible inference API supporting text, image,
    audio, and video generation.


    **Authentication options:**

    - API Key: Use Bearer token in Authorization header

    - x402 Wallet: Use USDC credits via EVM or Solana wallet (no account
    required)


    **For x402 wallet access:**

    1. POST /x402/top-up without headers to get payment requirements

    2. Choose one of the returned Base or Solana payment options and sign a USDC
    payment using the x402 SDK

    3. POST /x402/top-up with PAYMENT-SIGNATURE header to add credits

    4. Call any inference endpoint with SIGN-IN-WITH-X header


    **Pricing:** Prepaid credits consumed per request. Check /models for
    available models and their capabilities.
servers:
  - url: https://api.venice.ai/api/v1
security:
  - BearerAuth: []
tags:
  - description: >-
      Generate speech/audio, transcribe audio, and manage asynchronous audio
      generation jobs.
    name: Audio
  - description: >-
      Given a list of messages comprising a conversation, the model will return
      a response. Supports multimodal inputs including text, images, audio
      (input_audio), and video (video_url) for compatible models.
    name: Chat
  - description: >-
      Create vector embeddings from text. `input` must be a string or an array
      of strings. Token arrays are not supported. LangChain OpenAIEmbeddings
      must set `check_embedding_ctx_length=False` to send text instead of
      tiktoken IDs.
    name: Embeddings
  - description: >-
      Evaluate a state against typed questions and get structured answers
      (yes/no probabilities, option picks with distributions, rubric scores).
      **Beta**: This API is currently in beta and may be unstable.
      Request/response schemas and behavior may change without notice.
    name: Decisions
  - description: List and describe the various models available in the API.
    name: Models
  - description: Generate and manipulate images using AI models.
    name: Image
  - description: Generate videos using AI models.
    name: Video
  - description: List and retrieve character information for use in completions.
    name: Characters
  - description: >-
      Billing and usage analytics. **Beta**: This API is currently in beta and
      may be unstable. Endpoints, request/response schemas, and behavior may
      change without notice.
    name: Billing
  - description: Proxy JSON-RPC requests to blockchain nodes. Billed per credit.
    name: Crypto RPC
  - description: >-
      Wallet-based API access using the x402 protocol. No API key required —
      authenticate with an EVM or Solana wallet.


      **How it works:**

      1. **Authenticate** — Send a `SIGN-IN-WITH-X` header (base64-encoded
      signed SIWX payload) with any request. EVM wallets sign an EIP-4361 SIWE
      message; Solana wallets sign the Solana SIWX message with Ed25519. See the
      `siwx` security scheme for the exact format.

      2. **Top up** — `POST /x402/top-up` without a payment header returns an
      `accepts` array with Base and Solana USDC payment options. Choose one
      entry, sign it using the x402 SDK (`npm install x402`), and re-submit with
      the `PAYMENT-SIGNATURE` header (the legacy `X-402-Payment` and `X-PAYMENT`
      names are also accepted).

      3. **Use any endpoint** — All inference endpoints (chat, image, audio,
      video, embeddings) accept `siwx` as an alternative to `BearerAuth`.
      Charges are deducted from your USDC credit balance.

      4. **Monitor balance** — `GET /x402/balance/{walletAddress}` returns your
      current balance. The `X-Balance-Remaining` response header on inference
      calls also reports it.


      **Quick start (5 lines):**

      ```

      import { VeniceClient } from '@venice-ai/x402-client'

      const venice = new VeniceClient(process.env.WALLET_KEY)

      await venice.topUp(10) // $10 USDC on a supported x402 rail

      const res = await venice.chat({ model: 'zai-org-glm-5-1', messages: [{
      role: 'user', content: 'Hello!' }] })

      ```


      **Payment:** USDC on Base (chain ID 8453) or Solana mainnet. Minimum
      top-up: $5. Alternatively, stake DIEM tokens for daily credits (1 DIEM =
      $1/day).
    name: x402
externalDocs:
  description: Venice.ai API documentation
  url: https://docs.venice.ai
paths:
  /api_keys:
    get:
      tags:
        - API Keys
      summary: /api/v1/api_keys
      description: Return a list of API keys.
      operationId: getApiKeys
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        apiKeyType:
                          type: string
                          enum:
                            - INFERENCE
                            - ADMIN
                          description: API Key type
                          example: ADMIN
                        consumptionLimits:
                          type: object
                          properties:
                            usd:
                              anyOf:
                                - type: number
                                  minimum: 0
                                  maximum: 9999999999
                                - nullable: true
                                  title: 'null'
                                - nullable: true
                                  title: 'null'
                              description: USD limit
                              example: 50
                            diem:
                              anyOf:
                                - type: number
                                  minimum: 0
                                  maximum: 9999999999
                                - nullable: true
                                  title: 'null'
                                - nullable: true
                                  title: 'null'
                              description: Diem limit
                              example: 10
                            vcu:
                              anyOf:
                                - type: number
                                  minimum: 0
                                  maximum: 9999999999
                                - nullable: true
                                  title: 'null'
                                - nullable: true
                                  title: 'null'
                              description: VCU limit (deprecated - use Diem instead)
                              deprecated: true
                              example: 100
                          description: >-
                            The API Key consumption limits, evaluated against
                            the window selected by `limitPeriod`.
                          example:
                            usd: 50
                            diem: 10
                            vcu: 30
                        limitPeriod:
                          type: string
                          enum:
                            - EPOCH
                            - MONTH
                            - LIFETIME
                          description: >-
                            Reset window the consumption limits apply to.
                            `EPOCH` resets every UTC day (legacy default).
                            `MONTH` resets on the 1st of each UTC calendar
                            month. `LIFETIME` never resets, so the limit acts as
                            a permanent cap on the key.
                          example: MONTH
                        modelPrivacy:
                          type: string
                          enum:
                            - ALL
                            - PRIVATE_TEXT
                            - PRIVATE_ONLY
                          description: >-
                            Which models this key may call, by privacy tier.
                            `ALL` allows every model. `PRIVATE_TEXT` requires
                            text and embedding models to be Private, TEE, or
                            E2EE while other modalities may be Anonymous or
                            Private. `PRIVATE_ONLY` requires every model to be
                            Private, TEE, or E2EE; Anonymous models are
                            rejected.
                          example: ALL
                        createdAt:
                          type: string
                          nullable: true
                          description: API Key creation date
                          example: '2023-10-01T12:00:00.000Z'
                        description:
                          type: string
                          description: API Key description
                          example: Example API Key
                        expiresAt:
                          type: string
                          nullable: true
                          description: API Key expiration date
                          example: '2023-10-01T12:00:00.000Z'
                        id:
                          type: string
                          description: API Key ID
                          example: e28e82dc-9df2-4b47-b726-d0a222ef2ab5
                        ipAllowlist:
                          type: array
                          items:
                            type: string
                          maxItems: 100
                          description: >-
                            Globally reachable IPv4 or IPv6 addresses and CIDR
                            subnets allowed to use this key. An empty list
                            allows requests from any IP address. Entries are
                            returned in canonical CIDR notation.
                          example:
                            - 11.22.33.44/32
                            - 11.22.33.0/24
                            - 2a00:1::/48
                        last6Chars:
                          type: string
                          description: Last 6 characters of the API Key
                          example: 2V2jNW
                        lastUsedAt:
                          type: string
                          nullable: true
                          description: API Key last used date
                          example: '2023-10-01T12:00:00.000Z'
                        usage:
                          type: object
                          properties:
                            trailingSevenDays:
                              type: object
                              properties:
                                usd:
                                  type: string
                                  description: >-
                                    USD budget usage in the trailing 7 days,
                                    including bundled credits
                                  example: '10.2424'
                                vcu:
                                  type: string
                                  description: >-
                                    VCU usage in the trailing 7 days (deprecated
                                    - use Diem instead)
                                  deprecated: true
                                  example: '42.2315'
                                diem:
                                  type: string
                                  description: Diem usage in the trailing 7 days
                                  example: '4.2231'
                              required:
                                - usd
                                - vcu
                                - diem
                          required:
                            - trailingSevenDays
                        currentPeriodUsage:
                          type: object
                          properties:
                            usd:
                              type: string
                              description: >-
                                USD budget usage in the current limit period,
                                including bundled credits
                              example: '5.1234'
                            diem:
                              type: string
                              description: Diem usage in the current limit period
                              example: '2.5000'
                          required:
                            - usd
                            - diem
                          description: >-
                            Usage within the current limit period window. Only
                            present for keys that have consumption limits set.
                      required:
                        - apiKeyType
                        - consumptionLimits
                        - limitPeriod
                        - modelPrivacy
                        - createdAt
                        - expiresAt
                        - id
                        - ipAllowlist
                        - last6Chars
                        - lastUsedAt
                      additionalProperties: false
                    description: List of active API keys
                  object:
                    type: string
                    enum:
                      - list
                required:
                  - data
                  - object
                additionalProperties: false
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
        '403':
          $ref: '#/components/responses/ApiKeyIpRestrictedError'
        '500':
          description: An unknown error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
components:
  schemas:
    StandardError:
      type: object
      properties:
        error:
          type: string
          description: A description of the error
      required:
        - error
    ApiKeyIpRestrictedError:
      type: object
      properties:
        error:
          type: string
          enum:
            - >-
              This API key is restricted to configured IP addresses, and this
              request's source IP is not allowed
          description: A description of the error
          example: >-
            This API key is restricted to configured IP addresses, and this
            request's source IP is not allowed
      required:
        - error
  responses:
    ApiKeyIpRestrictedError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiKeyIpRestrictedError'
      description: >-
        This API key is restricted to configured IP addresses, and this
        request's source IP is not allowed
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````

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