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

# Criar chave de API

> Create a new API key.



## OpenAPI

````yaml POST /api_keys
openapi: 3.0.0
info:
  description: The Venice.ai API.
  termsOfService: https://venice.ai/legal/tos
  title: Venice.ai API
  version: '20260622.204854'
  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: 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:
    post:
      tags:
        - API Keys
      summary: /api/v1/api_keys
      description: Create a new API key.
      operationId: createApiKey
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                apiKeyType:
                  type: string
                  enum:
                    - INFERENCE
                    - ADMIN
                  description: >-
                    The API Key type. Admin keys have full access to the API
                    while inference keys are only able to call inference
                    endpoints.
                  example: ADMIN
                consumptionLimit:
                  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
                description:
                  type: string
                  maxLength: 64
                  description: The API Key description (max 64 characters)
                  example: Example API Key
                expiresAt:
                  anyOf:
                    - type: string
                      enum:
                        - ''
                    - type: string
                      pattern: ^\d{4}-\d{2}-\d{2}$
                    - type: string
                      pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
                  description: >-
                    The API Key expiration date. If not provided, the key will
                    not expire.
                  example: '2023-10-01T12:00:00.000Z'
              required:
                - apiKeyType
                - description
              additionalProperties: false
              description: >-
                The request body for creating a new API key. API key creation is
                rate limited to 20 requests per minute and a maximum of 500
                active API keys per user. VCU (Legacy Diem) is being deprecated
                in favor of tokenized Diem. Please update your API calls to use
                Diem instead.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      apiKey:
                        type: string
                        description: >-
                          The API Key. This is only shown once, so make sure to
                          save it somewhere safe.
                      apiKeyType:
                        type: string
                        enum:
                          - INFERENCE
                          - ADMIN
                        description: The API Key type
                        example: ADMIN
                      consumptionLimit:
                        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
                      description:
                        type: string
                        description: The API Key description
                        example: Example API Key
                      expiresAt:
                        type: string
                        nullable: true
                        description: The API Key expiration date
                        example: '2023-10-01T12:00:00.000Z'
                      id:
                        type: string
                        description: The API Key ID
                        example: e28e82dc-9df2-4b47-b726-d0a222ef2ab5
                    required:
                      - apiKey
                      - apiKeyType
                      - consumptionLimit
                      - limitPeriod
                      - expiresAt
                      - id
                    additionalProperties: false
                  success:
                    type: boolean
                required:
                  - data
                  - success
                additionalProperties: false
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailedError'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
        '500':
          description: An unknown error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
components:
  schemas:
    DetailedError:
      type: object
      properties:
        details:
          type: object
          properties: {}
          description: Details about the incorrect input
          example:
            _errors: []
            field:
              _errors:
                - Field is required
        error:
          type: string
          description: A description of the error
      required:
        - error
    StandardError:
      type: object
      properties:
        error:
          type: string
          description: A description of the error
      required:
        - error
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````