QuantumNous

    QuantumNous/new-api

    #42 this week

    A unified AI model hub for aggregation & distribution. It supports cross-converting various LLMs into OpenAI-compatible, Claude-compatible, or Gemini-compatible formats. A centralized gateway for personal and enterprise model management.

    ai
    ai-gateway
    claude
    deepseek
    gemini
    newapi
    Go
    AGPL-3.0
    48.7K stars
    11.7K forks
    48.7K GitHub watchers
    Updated 9/23/2026
    View on GitHub

    Build with Backblaze B2

    SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.

    Explore Backblaze Labs

    Loading star history...

    Use Cases & Benefits

    • Provides a unified AI model hub that aggregates, manages, and distributes various large language models with cross-format compatibility.
    • Enables seamless conversion between OpenAI, Claude, and Google Gemini model formats, centralizing personal and enterprise AI model management.
    • Use for integrating multiple LLMs into a single gateway to simplify AI model deployment and access in enterprise environments.
    • Use for building applications requiring multi-format AI model support and intelligent routing with retry and rate limiting features.
    • Use for managing AI model billing, permissions, and usage analytics with support for pay-per-use and token grouping.

    About new-api

    new-api

    New API

    🍥 Next-Generation LLM Gateway and AI Asset Management System

    简体中文 | 繁體中文 | English | Français | 日本語

    license release docker GoReportCard

    QuantumNous%2Fnew-api | Trendshift
    Featured|HelloGitHub New API - All-in-one AI asset management gateway. | Product Hunt

    Quick StartKey FeaturesDeploymentDocumentationHelp

    📝 Project Description

    [!IMPORTANT]


    🤝 Trusted Partners

    No particular order

    Cherry Studio Aion UI Peking University UCloud Alibaba Cloud IO.NET


    🙏 Special Thanks

    JetBrains Logo

    Thanks to JetBrains for providing free open-source development license for this project


    🚀 Quick Start

    # Clone the project
    git clone https://github.com/QuantumNous/new-api.git
    cd new-api
    
    # Edit docker-compose.yml configuration
    nano docker-compose.yml
    
    # Start the service
    docker-compose up -d
    
    Using Docker Commands
    # Pull the latest image
    docker pull calciumion/new-api:latest
    
    # Using SQLite (default)
    docker run --name new-api -d --restart always \
      -p 3000:3000 \
      -e TZ=Asia/Shanghai \
      -v ./data:/data \
      calciumion/new-api:latest
    
    # Using MySQL
    docker run --name new-api -d --restart always \
      -p 3000:3000 \
      -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" \
      -e TZ=Asia/Shanghai \
      -v ./data:/data \
      calciumion/new-api:latest
    

    💡 Tip: -v ./data:/data will save data in the data folder of the current directory, you can also change it to an absolute path like -v /your/custom/path:/data


    🎉 After deployment is complete, visit http://localhost:3000 to start using!

    📖 For more deployment methods, please refer to Deployment Guide


    📚 Documentation

    Quick Navigation:

    CategoryLink
    🚀 Deployment GuideInstallation Documentation
    ⚙️ Environment ConfigurationEnvironment Variables
    📡 API DocumentationAPI Documentation
    ❓ FAQFAQ
    💬 Community InteractionCommunication Channels

    ✨ Key Features

    For detailed features, please refer to Features Introduction

    🎨 Core Functions

    FeatureDescription
    🎨 New UIModern user interface design
    🌍 Multi-languageSupports Simplified Chinese, Traditional Chinese, English, French, Japanese
    🔄 Data CompatibilityFully compatible with the original One API database
    📈 Data DashboardVisual console and statistical analysis
    🔒 Permission ManagementToken grouping, model restrictions, user management

    💰 Payment and Billing

    • ✅ Online recharge (EPay, Stripe)
    • ✅ Pay-per-use model pricing
    • ✅ Cache billing support (OpenAI, Azure, DeepSeek, Claude, Qwen and all supported models)
    • ✅ Flexible billing policy configuration

    🔐 Authorization and Security

    • 😈 Discord authorization login
    • 🤖 LinuxDO authorization login
    • 📱 Telegram authorization login
    • 🔑 OIDC unified authentication
    • 🔍 Key quota query usage (with neko-api-key-tool)

    🚀 Advanced Features

    API Format Support:

    Intelligent Routing:

    • ⚖️ Channel weighted random
    • 🔄 Automatic retry on failure
    • 🚦 User-level model rate limiting

    Format Conversion:

    • 🔄 OpenAI Compatible ⇄ Claude Messages
    • 🔄 OpenAI Compatible → Google Gemini
    • 🔄 Google Gemini → OpenAI Compatible - Text only, function calling not supported yet
    • 🚧 OpenAI Compatible ⇄ OpenAI Responses - In development
    • 🔄 Thinking-to-content functionality

    Reasoning Effort Support:

    View detailed configuration

    OpenAI series models:

    • o3-mini-high - High reasoning effort
    • o3-mini-medium - Medium reasoning effort
    • o3-mini-low - Low reasoning effort
    • gpt-5-high - High reasoning effort
    • gpt-5-medium - Medium reasoning effort
    • gpt-5-low - Low reasoning effort

    Claude thinking models:

    • claude-3-7-sonnet-20250219-thinking - Enable thinking mode

    Google Gemini series models:

    • gemini-2.5-flash-thinking - Enable thinking mode
    • gemini-2.5-flash-nothinking - Disable thinking mode
    • gemini-2.5-pro-thinking - Enable thinking mode
    • gemini-2.5-pro-thinking-128 - Enable thinking mode with thinking budget of 128 tokens
    • You can also append -low, -medium, or -high to any Gemini model name to request the corresponding reasoning effort (no extra thinking-budget suffix needed).

    🤖 Model Support

    For details, please refer to API Documentation - Relay Interface

    Model TypeDescriptionDocumentation
    🤖 OpenAI-CompatibleOpenAI compatible modelsDocumentation
    🤖 OpenAI ResponsesOpenAI Responses formatDocumentation
    🎨 Midjourney-ProxyMidjourney-Proxy(Plus)Documentation
    🎵 Suno-APISuno APIDocumentation
    🔄 RerankCohere, JinaDocumentation
    💬 ClaudeMessages formatDocumentation
    🌐 GeminiGoogle Gemini formatDocumentation
    🔧 DifyChatFlow mode-
    🎯 CustomSupports complete call address-

    📡 Supported Interfaces

    View complete interface list

    🚢 Deployment

    [!TIP] Latest Docker image: calciumion/new-api:latest

    📋 Deployment Requirements

    ComponentRequirement
    Local databaseSQLite (Docker must mount /data directory)
    Remote databaseMySQL ≥ 5.7.8 or PostgreSQL ≥ 9.6
    Container engineDocker / Docker Compose

    ⚙️ Environment Variable Configuration

    Common environment variable configuration
    Variable NameDescriptionDefault Value
    SESSION_SECRETSession secret (required for multi-machine deployment)-
    CRYPTO_SECRETEncryption secret (required for Redis)-
    SQL_DSNDatabase connection string-
    REDIS_CONN_STRINGRedis connection string-
    STREAMING_TIMEOUTStreaming timeout (seconds)300
    STREAM_SCANNER_MAX_BUFFER_MBMax per-line buffer (MB) for the stream scanner; increase when upstream sends huge image/base64 payloads64
    MAX_REQUEST_BODY_MBMax request body size (MB, counted after decompression; prevents huge requests/zip bombs from exhausting memory). Exceeding it returns 41332
    AZURE_DEFAULT_API_VERSIONAzure API version2025-04-01-preview
    ERROR_LOG_ENABLEDError log switchfalse
    PYROSCOPE_URLPyroscope server address-
    PYROSCOPE_APP_NAMEPyroscope application namenew-api
    PYROSCOPE_BASIC_AUTH_USERPyroscope basic auth user-
    PYROSCOPE_BASIC_AUTH_PASSWORDPyroscope basic auth password-
    PYROSCOPE_MUTEX_RATEPyroscope mutex sampling rate5
    PYROSCOPE_BLOCK_RATEPyroscope block sampling rate5
    HOSTNAMEHostname tag for Pyroscopenew-api

    📖 Complete configuration: Environment Variables Documentation

    🔧 Deployment Methods

    Method 1: Docker Compose (Recommended)
    # Clone the project
    git clone https://github.com/QuantumNous/new-api.git
    cd new-api
    
    # Edit configuration
    nano docker-compose.yml
    
    # Start service
    docker-compose up -d
    
    Method 2: Docker Commands

    Using SQLite:

    docker run --name new-api -d --restart always \
      -p 3000:3000 \
      -e TZ=Asia/Shanghai \
      -v ./data:/data \
      calciumion/new-api:latest
    

    Using MySQL:

    docker run --name new-api -d --restart always \
      -p 3000:3000 \
      -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" \
      -e TZ=Asia/Shanghai \
      -v ./data:/data \
      calciumion/new-api:latest
    

    💡 Path explanation:

    • ./data:/data - Relative path, data saved in the data folder of the current directory
    • You can also use absolute path, e.g.: /your/custom/path:/data
    Method 3: BaoTa Panel
    1. Install BaoTa Panel (≥ 9.2.0 version)
    2. Search for New-API in the application store
    3. One-click installation

    📖 Tutorial with images

    ⚠️ Multi-machine Deployment Considerations

    [!WARNING]

    • Must set SESSION_SECRET - Otherwise login status inconsistent
    • Shared Redis must set CRYPTO_SECRET - Otherwise data cannot be decrypted

    🔄 Channel Retry and Cache

    Retry configuration: Settings → Operation Settings → General Settings → Failure Retry Count

    Cache configuration:

    • REDIS_CONN_STRING: Redis cache (recommended)
    • MEMORY_CACHE_ENABLED: Memory cache

    Upstream Projects

    ProjectDescription
    One APIOriginal project base
    Midjourney-ProxyMidjourney interface support

    Supporting Tools

    ProjectDescription
    neko-api-key-toolKey quota query tool
    new-api-horizonNew API high-performance optimized version

    💬 Help Support

    📖 Documentation Resources

    ResourceLink
    📘 FAQFAQ
    💬 Community InteractionCommunication Channels
    🐛 Issue FeedbackIssue Feedback
    📚 Complete DocumentationOfficial Documentation

    🤝 Contribution Guide

    Welcome all forms of contribution!

    • 🐛 Report Bugs
    • 💡 Propose New Features
    • 📝 Improve Documentation
    • 🔧 Submit Code

    📜 License

    This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3).

    This is an open-source project developed based on One API (MIT License).

    If your organization's policies do not permit the use of AGPLv3-licensed software, or if you wish to avoid the open-source obligations of AGPLv3, please contact us at: [email protected]


    🌟 Star History

    Star History Chart


    💖 Thank you for using New API

    If this project is helpful to you, welcome to give us a ⭐️ Star!

    Official DocumentationIssue FeedbackLatest Release

    Built with ❤️ by QuantumNous

    Discover Repositories

    Search across tracked repositories by name or description