๐ Project Description
[!IMPORTANT]
- This project is intended solely for lawful and authorized AI API gateway, organization-level authentication, multi-model management, usage analytics, cost accounting, and private deployment scenarios.
- Users must lawfully obtain upstream API keys, accounts, model services, and interface permissions, and must comply with upstream terms of service and applicable laws and regulations.
- Users should ensure their use complies with upstream terms of service and applicable laws and regulations.
- When providing generative AI services to the public, users should comply with applicable regulatory requirements and fulfill all filing, licensing, content safety, real-name verification, log retention, tax, and upstream authorization obligations required by their jurisdiction.
๐ค Trusted Partners
No particular order
๐ Special Thanks
Thanks to JetBrains for providing free open-source development license for this project
๐ Quick Start
Using Docker Compose (Recommended)
# 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!
[!WARNING]
When operating this project as a public generative AI service or API resale service, users should first complete all required filing, licensing, content safety, real-name verification, log retention, tax, payment, and upstream authorization obligations.
๐ For more deployment methods, please refer to Deployment Guide
๐ Documentation
Quick Navigation:
โจ Key Features
For detailed features, please refer to Features Introduction
๐จ Core Functions
| Feature |
Description |
| ๐จ New UI |
Modern user interface design |
| ๐ Multi-language |
Supports Simplified Chinese, Traditional Chinese, English, French, Japanese |
| ๐ Data Compatibility |
Fully compatible with the original One API database |
| ๐ Data Dashboard |
Visual console and statistical analysis |
| ๐ Permission Management |
Token grouping, model restrictions, user management |
๐ฐ Authorized Usage Accounting and Billing
- โ
Internal top-up and quota allocation for lawful authorized scenarios (EPay, Stripe)
- โ
Organization-level per-request, usage-based, and cache-hit cost accounting
- โ
Cache billing statistics for OpenAI, Azure, DeepSeek, Claude, Qwen, and supported models
- โ
Flexible billing policies for internal management or authorized enterprise customers
๐ Authorization and Security
- ๐ Discord authorization login
- ๐ค LinuxDO authorization login
- ๐ฑ Telegram authorization login
- ๐ OIDC unified authentication
- ๐ Key quota query usage (with new-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 - Gateway Interface
๐ก Supported Interfaces
View complete interface list
๐ข Deployment
[!TIP]
Latest Docker image: calciumion/new-api:latest
๐ Deployment Requirements
| Component |
Requirement |
| Local database |
SQLite (Docker must mount /data directory) |
| Remote database |
MySQL โฅ 5.7.8 or PostgreSQL โฅ 9.6 |
| Container engine |
Docker / Docker Compose |
โ๏ธ Environment Variable Configuration
Common environment variable configuration
| Variable Name |
Description |
Default Value |
SESSION_SECRET |
Session secret (required for multi-machine deployment) |
- |
CRYPTO_SECRET |
Encryption secret (required for Redis) |
- |
SQL_DSN |
Database connection string |
- |
REDIS_CONN_STRING |
Redis connection string |
- |
STREAMING_TIMEOUT |
Streaming timeout (seconds) |
300 |
STREAM_SCANNER_MAX_BUFFER_MB |
Max per-line buffer (MB) for the stream scanner; increase when upstream sends huge image/base64 payloads |
64 |
MAX_REQUEST_BODY_MB |
Max request body size (MB, counted after decompression; prevents huge requests/zip bombs from exhausting memory). Exceeding it returns 413 |
32 |
AZURE_DEFAULT_API_VERSION |
Azure API version |
2025-04-01-preview |
ERROR_LOG_ENABLED |
Error log switch |
false |
PYROSCOPE_URL |
Pyroscope server address |
- |
PYROSCOPE_APP_NAME |
Pyroscope application name |
new-api |
PYROSCOPE_BASIC_AUTH_USER |
Pyroscope basic auth user |
- |
PYROSCOPE_BASIC_AUTH_PASSWORD |
Pyroscope basic auth password |
- |
PYROSCOPE_MUTEX_RATE |
Pyroscope mutex sampling rate |
5 |
PYROSCOPE_BLOCK_RATE |
Pyroscope block sampling rate |
5 |
HOSTNAME |
Hostname tag for Pyroscope |
new-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
- Install BaoTa Panel (โฅ 9.2.0 version)
- Search for New-API in the application store
- 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
๐ฌ Help Support
๐ Documentation Resources
๐ค 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).
Additional terms under AGPLv3 Section 7 apply. Modified versions must preserve
the author attribution notice Frontend design and development by New API contributors. in the appropriate legal notices and in any prominent about,
legal, footer, or attribution location presented by the user interface.
Modified versions that present a user interface must also preserve a visible
link to the original project: https://github.com/QuantumNous/new-api.
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: support@quantumnous.com
๐ Star History