Venice.ai Preview API

The Preview API from Venice.ai — 3 operation(s) for preview.

Operations 3

GET /characters /api/v1/characters #
GET /characters/{slug} /api/v1/characters/{slug} #
GET /characters/{slug}/reviews /api/v1/characters/{slug}/reviews #

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/venice-ai:venice-ai-preview-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

venice-ai-preview-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Venice Ai Preview API
  version: '20261012.214344'
  termsOfService: https://venice.ai/legal/tos
  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.'
  description: 'Operations tagged Preview across 2 of this provider''s published API definitions: venice-ai-swagger.yaml, venice-ai-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.venice.ai/api/v1
security:
- BearerAuth: []
tags:
- name: Preview
paths:
  /characters:
    get:
      description: This is a preview API and may change. Returns a list of characters supported in the API, with filtering by search, tags, categories, model, and sort options.
      operationId: listCharacters
      summary: /api/v1/characters
      tags:
      - Preview
      parameters:
      - schema:
          type: array
          items:
            type: string
            maxLength: 100
          maxItems: 20
          description: Filter by category names. Repeat the parameter for multiple values. Comma-separated values are also accepted.
          example:
          - roleplay
          - philosophy
        required: false
        name: categories
        in: query
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          description: Filter by adult content flag
          example: 'false'
        required: false
        name: isAdult
        in: query
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          description: Filter to only show characters using pro models
          example: 'false'
        required: false
        name: isPro
        in: query
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          description: Filter to only show web-enabled characters
          example: 'true'
        required: false
        name: isWebEnabled
        in: query
      - schema:
          type: integer
          maximum: 100
          default: 50
          description: 'Number of characters to return (max: 100)'
          example: 50
          exclusiveMinimum: 0
        required: false
        name: limit
        in: query
      - schema:
          type: array
          items:
            type: string
            maxLength: 200
          maxItems: 20
          description: Filter by model ID(s). Repeat the parameter for multiple values. Comma-separated values are also accepted.
          example:
          - zai-org-glm-5-1
          - kimi-k2-6
        required: false
        name: modelId
        in: query
      - schema:
          type:
          - integer
          - 'null'
          minimum: 0
          default: 0
          description: Number of characters to skip for pagination
          example: 0
        required: false
        name: offset
        in: query
      - schema:
          type: string
          maxLength: 200
          description: Search characters by name, description, or tags. Hashtag search is supported.
          example: assistant
        required: false
        name: search
        in: query
      - schema:
          type: string
          enum:
          - featured
          - highestRating
          - highlyRated
          - highlyRatedAndRecent
          - imports
          - mostRecent
          - ratingCount
          description: Sort results using a supported character discovery mode
          example: imports
        required: false
        name: sortBy
        in: query
      - schema:
          type: string
          enum:
          - asc
          - desc
          description: Sort order applied to the selected sort mode. Defaults to descending when omitted.
          example: desc
        required: false
        name: sortOrder
        in: query
      - schema:
          type: array
          items:
            type: string
            maxLength: 100
          maxItems: 20
          description: Filter by tag names. Repeat the parameter for multiple values. Comma-separated values are also accepted.
          example:
          - helpful
          - productivity
        required: false
        name: tags
        in: query
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        adult:
                          type: boolean
                          description: Whether the character is considered adult content
                          example: false
                        author:
                          type: string
                          description: Short anonymized identifier derived from the character author
                          example: k3x9q
                        createdAt:
                          type: string
                          description: Date when the character was created
                          example: 2024-12-20 21:28:08.934000+00:00
                        description:
                          type:
                          - string
                          - 'null'
                          description: Description of the character
                          example: Alan Watts (6 January 1915 – 16 November 1973) was a British and American writer, speaker, and self-styled "philosophical entertainer", known for interpreting and popularizing Buddhist, Taoist, and Hindu philosophy for a Western audience.
                        featured:
                          type: boolean
                          description: Whether the character is featured in public discovery surfaces
                          example: false
                        id:
                          type: string
                          description: Unique ID of the character
                          example: 2f460055-7595-4640-9cb6-c442c4c869b0
                        name:
                          type: string
                          description: Name of the character
                          example: Alan Watts
                        shareUrl:
                          type:
                          - string
                          - 'null'
                          description: Share URL of the character
                          example: https://venice.ai/c/alan-watts
                        photoUrl:
                          type:
                          - string
                          - 'null'
                          description: URL of the character photo
                          example: https://outerface.venice.ai/api/characters/2f460055-7595-4640-9cb6-c442c4c869b0/photo
                        slug:
                          type: string
                          description: Slug of the character to be used in the completions API
                          example: alan-watts
                        stats:
                          type: object
                          properties:
                            averageRating:
                              type: number
                              description: Average rating for the character
                              example: 4.7
                            imports:
                              type: number
                              description: Number of imports for the character
                              example: 112
                            ratingCount:
                              type: number
                              description: Number of ratings for the character
                              example: 24
                            ratingSum:
                              type: number
                              description: Sum of all rating values for the character
                              example: 113
                            userRating:
                              type:
                              - number
                              - 'null'
                              description: The authenticated user rating for the character when available
                          required:
                          - averageRating
                          - imports
                          - ratingCount
                          - ratingSum
                          - userRating
                        tags:
                          type: array
                          items:
                            type: string
                          description: Tags associated with the character
                          example:
                          - AlanWatts
                          - Philosophy
                          - Buddhism
                          - Taoist
                          - Hindu
                        updatedAt:
                          type: string
                          description: Date when the character was last updated
                          example: 2025-02-09 03:23:53.708000+00:00
                        webEnabled:
                          type: boolean
                          description: Whether the character is enabled for web use
                          example: true
                        modelId:
                          type: string
                          description: API model ID for the character
                          example: venice-uncensored-1-2
                      required:
                      - adult
                      - author
                      - createdAt
                      - description
                      - featured
                      - id
                      - name
                      - shareUrl
                      - photoUrl
                      - slug
                      - stats
                      - tags
                      - updatedAt
                      - webEnabled
                      - modelId
                  object:
                    type: string
                    enum:
                    - list
                required:
                - data
                - object
        '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'
    servers:
    - url: https://api.venice.ai/api/v1
  /characters/{slug}:
    get:
      description: This is a preview API and may change. Returns a single character by its slug.
      operationId: getCharacterBySlug
      parameters:
      - description: The slug of the character to retrieve
        in: path
        name: slug
        required: true
        schema:
          example: alan-watts
          type: string
      summary: /api/v1/characters/{slug}
      tags:
      - Preview
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      adult:
                        type: boolean
                        description: Whether the character is considered adult content
                        example: false
                      author:
                        type: string
                        description: Short anonymized identifier derived from the character author
                        example: k3x9q
                      createdAt:
                        type: string
                        description: Date when the character was created
                        example: 2024-12-20 21:28:08.934000+00:00
                      description:
                        type:
                        - string
                        - 'null'
                        description: Description of the character
                        example: Alan Watts (6 January 1915 – 16 November 1973) was a British and American writer, speaker, and self-styled "philosophical entertainer", known for interpreting and popularizing Buddhist, Taoist, and Hindu philosophy for a Western audience.
                      featured:
                        type: boolean
                        description: Whether the character is featured in public discovery surfaces
                        example: false
                      id:
                        type: string
                        description: Unique ID of the character
                        example: 2f460055-7595-4640-9cb6-c442c4c869b0
                      name:
                        type: string
                        description: Name of the character
                        example: Alan Watts
                      shareUrl:
                        type:
                        - string
                        - 'null'
                        description: Share URL of the character
                        example: https://venice.ai/c/alan-watts
                      photoUrl:
                        type:
                        - string
                        - 'null'
                        description: URL of the character photo
                        example: https://outerface.venice.ai/api/characters/2f460055-7595-4640-9cb6-c442c4c869b0/photo
                      slug:
                        type: string
                        description: Slug of the character to be used in the completions API
                        example: alan-watts
                      stats:
                        type: object
                        properties:
                          averageRating:
                            type: number
                            description: Average rating for the character
                            example: 4.7
                          imports:
                            type: number
                            description: Number of imports for the character
                            example: 112
                          ratingCount:
                            type: number
                            description: Number of ratings for the character
                            example: 24
                          ratingSum:
                            type: number
                            description: Sum of all rating values for the character
                            example: 113
                          userRating:
                            type:
                            - number
                            - 'null'
                            description: The authenticated user rating for the character when available
                        required:
                        - averageRating
                        - imports
                        - ratingCount
                        - ratingSum
                        - userRating
                      tags:
                        type: array
                        items:
                          type: string
                        description: Tags associated with the character
                        example:
                        - AlanWatts
                        - Philosophy
                        - Buddhism
                        - Taoist
                        - Hindu
                      updatedAt:
                        type: string
                        description: Date when the character was last updated
                        example: 2025-02-09 03:23:53.708000+00:00
                      webEnabled:
                        type: boolean
                        description: Whether the character is enabled for web use
                        example: true
                      modelId:
                        type: string
                        description: API model ID for the character
                        example: venice-uncensored-1-2
                    required:
                    - adult
                    - author
                    - createdAt
                    - description
                    - featured
                    - id
                    - name
                    - shareUrl
                    - photoUrl
                    - slug
                    - stats
                    - tags
                    - updatedAt
                    - webEnabled
                    - modelId
                  object:
                    type: string
                    enum:
                    - character
                required:
                - data
                - object
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
        '403':
          $ref: '#/components/responses/ApiKeyIpRestrictedError'
        '404':
          description: Character not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
        '500':
          description: An unknown error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
    servers:
    - url: https://api.venice.ai/api/v1
  /characters/{slug}/reviews:
    get:
      description: This is a preview API and may change. Returns paginated public reviews for a single character.
      operationId: getCharacterReviews
      summary: /api/v1/characters/{slug}/reviews
      tags:
      - Preview
      parameters:
      - schema:
          type: string
          description: Slug of the character whose reviews should be retrieved
          example: alan-watts
        required: true
        name: slug
        in: path
      - schema:
          type: integer
          default: 1
          description: Page number for pagination
          example: 1
          exclusiveMinimum: 0
        required: false
        name: page
        in: query
      - schema:
          type: integer
          maximum: 100
          default: 20
          description: 'Number of reviews to return per page (max: 100)'
          example: 20
          exclusiveMinimum: 0
        required: false
        name: pageSize
        in: query
      responses:
        '200':
          description: OK
          headers:
            x-pagination-limit:
              schema:
                description: Number of reviews returned per page
                example: 20
                type: number
            x-pagination-page:
              schema:
                description: Current page number
                example: 1
                type: number
            x-pagination-total:
              schema:
                description: Total number of visible reviews
                example: 87
                type: number
            x-pagination-total-pages:
              schema:
                description: Total number of result pages
                example: 5
                type: number
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        characterId:
                          type: string
                          description: Unique ID of the reviewed character
                          example: 2f460055-7595-4640-9cb6-c442c4c869b0
                        createdAt:
                          type: string
                          description: Date when the review was created
                          example: 2025-02-09 03:23:53.708000+00:00
                        id:
                          type: string
                          description: Unique ID of the review
                          example: 1e38fb78-043f-4ce2-b3bc-966089c25467
                        isOwner:
                          type: boolean
                          description: Whether the authenticated user authored this review
                          example: false
                        locale:
                          type:
                          - string
                          - 'null'
                          description: Locale reported by the reviewer when available
                          example: en
                        message:
                          type:
                          - string
                          - 'null'
                          description: Optional written review message
                          example: Thoughtful, grounded, and surprisingly practical.
                        rating:
                          type: integer
                          minimum: 1
                          maximum: 5
                          description: Star rating for the character
                          example: 5
                        userAvatarUrl:
                          type:
                          - string
                          - 'null'
                          description: Avatar URL for the reviewer when available
                          example: https://cdn.venice.ai/avatar.png
                        username:
                          type: string
                          description: Display name chosen by the reviewer
                          example: product_user_42
                      required:
                      - characterId
                      - createdAt
                      - id
                      - isOwner
                      - locale
                      - message
                      - rating
                      - userAvatarUrl
                      - username
                  object:
                    type: string
                    enum:
                    - list
                  pagination:
                    type: object
                    properties:
                      page:
                        type: integer
                        description: Current page number
                        example: 1
                        exclusiveMinimum: 0
                      pageSize:
                        type: integer
                        description: Number of reviews requested per page
                        example: 20
                        exclusiveMinimum: 0
                      total:
                        type: integer
                        minimum: 0
                        description: Total number of visible reviews for the character
                        example: 87
                      totalPages:
                        type: integer
                        minimum: 0
                        description: Total number of pages available
                        example: 5
                    required:
                    - page
                    - pageSize
                    - total
                    - totalPages
                  summary:
                    type: object
                    properties:
                      averageRating:
                        type: number
                        description: Average rating for the character
                        example: 4.7
                      totalReviews:
                        type: integer
                        minimum: 0
                        description: Total number of reviews included in the character stats summary
                        example: 87
                    required:
                    - averageRating
                    - totalReviews
                required:
                - data
                - object
                - pagination
                - summary
        '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'
        '403':
          $ref: '#/components/responses/ApiKeyIpRestrictedError'
        '404':
          description: Character not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
        '500':
          description: An unknown error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
    servers:
    - url: https://api.venice.ai/api/v1
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
    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
    siwx:
      description: 'Wallet-based authentication using the x402 protocol (Sign-In-With-X). Supports EVM SIWE signatures on Base and Ed25519 signatures on Solana mainnet.


        **Header format:** Base64-encoded JSON object with the following fields:

        - `address` — EVM or Solana wallet address

        - `message` — Signed SIWX message. EVM wallets use EIP-4361 SIWE; Solana wallets use the Solana SIWX message format.

        - `signature` — Signature of the message, signed by the wallet''s private key. EVM signatures are hex; Solana signatures may be base58 or base64.

        - `timestamp` — Unix timestamp in milliseconds

        - `chainId` — Chain identity. Use `8453`, `"8453"`, or `"eip155:8453"` for Base; use `"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"` for Solana.

        - `type` — Optional signature type. Use `"ed25519"` for Solana. Omitted means EVM/EIP-191 for backward compatibility.


        **EVM SIWE message fields:**

        - `domain`: `api.venice.ai`

        - `uri`: `https://api.venice.ai`

        - `version`: `"1"`

        - `chainId`: `8453`

        - `nonce`: Random 16-character hex string

        - `issuedAt` / `expirationTime`: ISO timestamps (recommended TTL: 10 minutes)

        - `statement`: `"Sign in to Venice API"`


        **Example (TypeScript):**

        ```

        import { Wallet } from ''ethers''

        import { SiweMessage } from ''siwe''


        const wallet = new Wallet(PRIVATE_KEY)

        const msg = new SiweMessage({ domain: ''api.venice.ai'', address: wallet.address, statement: ''Sign in to Venice API'', uri: ''https://api.venice.ai'', version: ''1'', chainId: 8453, nonce: crypto.randomUUID().replace(/-/g, '''').slice(0, 16), issuedAt: new Date().toISOString(), expirationTime: new Date(Date.now() + 600000).toISOString() })

        const signature = await wallet.signMessage(msg.prepareMessage())

        const header = btoa(JSON.stringify({ address: wallet.address, message: msg.prepareMessage(), signature, timestamp: Date.now(), chainId: 8453 }))

        // Set header: SIGN-IN-WITH-X: <header>

        ```


        **Solana message fields:** The signed message starts with `<domain> wants you to sign in with your Solana account:`, followed by the wallet address and the standard `URI`, `Version`, `Chain ID`, `Nonce`, `Issued At`, and optional `Expiration Time` fields. Use `type: "ed25519"` and `chainId: "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"` in the encoded JSON payload.


        **SDK:** `npm install @venice-ai/x402-client` provides `VeniceClient` and `createAuthFetch` which handle this automatically.


        **Billing:** x402 users pay from a prepaid USDC credit balance. Top up via `POST /x402/top-up`. When balance is insufficient, endpoints return `402` with structured top-up instructions.'
      in: header
      name: SIGN-IN-WITH-X
      type: apiKey
externalDocs:
  description: Venice.ai API documentation
  url: https://docs.venice.ai
x-refined-from:
- venice-ai-swagger.yaml
- venice-ai-openapi.yml
x-provenance:
  method: harvested
  publisher: Venice.ai
  source: https://docs.venice.ai/swagger.yaml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)