π Project Description
[!NOTE]
This is an open-source project developed based on One API
[!IMPORTANT]
π€ 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!
π 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 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 |
π° 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
π‘ 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).
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