Sign inSign up

prnake/new-api

By prnake

โ€ขUpdated 3 months ago

self deploy version

Image
0

4.4K

prnake/new-api repository overview

โ ๐Ÿ“ 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

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!

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:

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
โ ๐Ÿ’ฐ 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โ 

Model TypeDescriptionDocumentation
๐Ÿค– OpenAI-CompatibleOpenAI compatible modelsDocumentationโ 
๐Ÿค– OpenAI ResponsesOpenAI Responses formatDocumentationโ 
๐ŸŽจ Midjourney-ProxyMidjourney-Proxy(Plus)โ Documentationโ 
๐ŸŽต Suno-APISuno APIโ Documentationโ 
๐Ÿ”„ RerankCohere, JinaDocumentationโ 
๐Ÿ’ฌ ClaudeMessages formatDocumentationโ 
๐ŸŒ GeminiGoogle Gemini formatDocumentationโ 
๐Ÿ”ง DifyChatFlow mode-
๐ŸŽฏ Custom upstreamSupports configuring legally authorized upstream endpoints-
โ ๐Ÿ“ก 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 APIโ Original project base
Midjourney-Proxyโ Midjourney interface support
โ Supporting Tools
ProjectDescription
new-api-key-toolโ Key quota query tool
new-api-horizonโ New 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)โ .

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: [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 Documentationโ  โ€ข Issue Feedbackโ  โ€ข Latest Releaseโ 

Built with โค๏ธ by QuantumNous

Tag summary

Content type

Image

Digest

sha256:afe352291โ€ฆ

Size

60.2 MB

Last updated

3 months ago

docker pull prnake/new-api