Skip to content

crazyrob425/BlacklistedAIProxy

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

785 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—  β–ˆβ–ˆβ•—β–ˆβ–ˆβ•—     β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β•šβ•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—    β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘
β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘β•šβ•β•β•β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β• β–ˆβ–ˆβ•‘
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•    β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘
β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•β•šβ•β•  β•šβ•β• β•šβ•β•β•β•β•β•β•šβ•β•  β•šβ•β•β•šβ•β•β•β•β•β•β•β•šβ•β•β•šβ•β•β•β•β•β•β•   β•šβ•β•   β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•     β•šβ•β•  β•šβ•β•β•šβ•β•     β•šβ•β•

[ Blacklisted Binary Labs ] β€” We didn't get the memo saying we had to play nice.

Version License: GPL v3 Node.js Docker Tests

"They said you couldn't use those AI models in your own apps. We said 'hold my root beer.'
β€” BlacklistedAPI: the proxy that laughs at rate limits."


πŸ’€ What Even IS This Thing?

BlacklistedAPI is an OpenAI-compatible reverse proxy gateway that jailbreaks the client-only restrictions on the world's most powerful AI models β€” Gemini CLI, Claude Kiro, Grok, Codex, Qwen Code, and more β€” and wraps them into a single, clean, standard API endpoint your apps can actually call.

In plain English: Big AI companies give you fancy AI tools but won't let you use them in your own software. BlacklistedAPI is the middleman that says "actually, you can." Point your favorite AI-powered IDE, chat app, or automation pipeline at BlacklistedAPI's local endpoint and suddenly every "client-only" model is fair game. Zero code changes on your end. Zero permission slips required.

Built on Node.js, hardened with Go TLS tricks, secured with OpenTelemetry observability, and battle-tested with Promptfoo red-team suites β€” this is not your grandma's proxy.


🩸 Standing on the Shoulders of Giants (Homage Section)

"We didn't build from scratch. We stood on the shoulders of legends and then immediately climbed higher."

BlacklistedAPI is forged from the fusion of two legendary open-source codebases. Without them, this doesn't exist.

Ancestor Language What They Built What We Took
πŸ”₯ router-for-me/CLIProxyAPI Go The original CLI proxy engine β€” OpenAI/Gemini/Claude/Codex compatible endpoints, multi-account round-robin, OAuth flows for every major provider, reusable Go SDK, and a whole ecosystem of downstream projects built on top of it. The blueprint that proved this was possible. The core proxy architecture patterns, multi-account load balancing concepts, OAuth flow designs, and provider routing strategy
⚑ justlovemaki/AIClient-2-API Node.js The Node.js implementation that brought in the Web UI management console, TLS fingerprint bypass via Go uTLS sidecar, Antigravity/Kiro/Grok protocol support, account pool manager with async refresh queue, and the three-way OpenAI↔Claude↔Gemini protocol conversion engine. The entire Node.js codebase β€” protocol engine, provider adapters, account pool manager, Web UI, TLS sidecar, and every OAuth integration

Mad respect to @router-for-me for proving the concept and building the original Go engine that spawned an ecosystem.
Mad respect to @justlovemaki for taking that torch and rebuilding it in Node.js with a full UI, multi-protocol conversion, and enough features to make enterprise engineers nervous.

BlacklistedAPI is what happens when you take both of those, slam them together, add Blacklisted Binary Labs energy, and refuse to ask permission.


🎯 The Sales Pitch (This Is Where We Try Really Hard)

The Problem (A Chart, Because Apparently That Impresses People)

WITHOUT BlacklistedAPI:                    WITH BlacklistedAPI:
                                           
  Your App                                   Your App
    β”‚                                          β”‚
    β–Ό                                          β–Ό
  ❌ Can't call Gemini CLI directly          βœ… BlacklistedAPI :3000
  ❌ Claude Kiro = client-only jail          /        |        \
  ❌ Codex OAuth = proprietary hell        Gemini   Claude   Grok
  ❌ Grok = Cloudflare wall                Claude   Codex    Kimi
  ❌ Five different API formats             Qwen    Kiro     More
  ❌ Rate limits everywhere                   β”‚
  ❌ Your wallet, crying                      β–Ό
                                          OpenAI-compatible
                                          Standard Response
                                          (FREE models edition)

The Money Shot: What You Get Free

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  MODEL            β”‚  NORMAL PRICE  β”‚  BLACKLISTEDAPI PRICE     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Claude Opus 4.5  β”‚  $$$$$         β”‚  πŸ†“ (via Kiro OAuth)      β”‚
β”‚  Gemini 3 Pro     β”‚  $$$           β”‚  πŸ†“ (via Gemini CLI)      β”‚
β”‚  Grok 3/4         β”‚  $$            β”‚  πŸ†“ (via xAI SSO)         β”‚
β”‚  Codex            β”‚  $$$           β”‚  πŸ†“ (via OpenAI OAuth)    β”‚
β”‚  Qwen3 Coder Plus β”‚  $$            β”‚  πŸ†“ (via Alibaba OAuth)   β”‚
β”‚  Kimi K2          β”‚  $$            β”‚  πŸ†“ (via Moonshot OAuth)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  * Free within provider's own usage limits. We're a proxy, not magic.
    (Well, we're a *little* magic.)

πŸš€ Feature Breakdown (Technical + Human Version)

πŸ”“ Feature 1: Protocol Jailbreak Engine

Technical: Implements OAuth 2.0 PKCE flows, token refresh cycles, and HTTP session simulation to access Gemini CLI, Claude Kiro, xAI Grok, OpenAI Codex, Alibaba Qwen, and Moonshot Kimi through their client-application authentication pathways. Normalizes all responses to OpenAI chat completions format.

Human Version: Imagine those AI models are in VIP clubs that only let in their official apps. BlacklistedAPI puts on a fake mustache, walks in through the staff entrance, and sends you everything from the inside. Your app just thinks it's talking to a normal OpenAI endpoint.


🧠 Feature 2: Multi-Protocol Intelligent Conversion

Technical: Three-way protocol bridge supporting OpenAI ↔ Anthropic Claude ↔ Google Gemini message format translation. Automatic protocol detection based on incoming request headers + path routing. Handles streaming (SSE), function calling, vision inputs, and system prompt injection.

Human Version: Different AI companies invented totally different ways for software to talk to them. It's like some people speak English, some speak Klingon, some speak interpretive dance. BlacklistedAPI is the universal translator. You send English, it figures out who speaks what and translates in real time, then sends you back English.


🏊 Feature 3: Account Pool Management

Technical: Multi-account round-robin scheduler with async token refresh queue, buffer queue deduplication, global concurrency limiter, node warmup period, TTL-based expiry detection, and automatic failover to next healthy credential.

Human Version: Got 5 free Gemini accounts? Throw them all in. BlacklistedAPI takes turns using each one so none of them hit the daily limit. If one account gets rate-limited or breaks, it automatically skips it and tries the next one β€” no downtime, no drama. It's like having 5 employees cover the same shift so nobody burns out.

Account Pool in Action:
                                          
  Account 1 ──► [Rate Limited] ──►  SKIP
  Account 2 ──► [Healthy] ───────►  USE  ◄── Request 1
  Account 3 ──► [Healthy] ───────►  USE  ◄── Request 2  
  Account 4 ──► [Token Expired] ─►  REFRESH β†’ USE  ◄── Request 3
  Account 5 ──► [Healthy] ───────►  USE  ◄── Request 4

πŸ›‘οΈ Feature 4: TLS Fingerprint Bypass (The Go Sidecar)

Technical: Embedded Go microservice using uTLS library to simulate legitimate browser TLS handshake fingerprints (Chrome/Firefox JA3 signatures). Intercepts outbound requests to Cloudflare-protected endpoints (primarily Grok/xAI) and replaces the Node.js TLS fingerprint with a browser-matching one, defeating CF's bot detection heuristics.

Human Version: Cloudflare is a bouncer that checks not just your ID, but HOW you knocked on the door. Node.js knocks like a robot (obvious). Browsers knock a specific way. Our Go sidecar teaches BlacklistedAPI to knock like a browser. Cloudflare says "come on in." Problem solved with a tiny Go program running alongside the main server.


πŸ“‘ Feature 5: OpenTelemetry + Langfuse Observability

Technical: Full distributed tracing via OpenTelemetry NodeSDK with OTLP-HTTP export. Every request gets a unique trace ID surfaced in the X-Trace-Id response header. Child spans per provider hop (llm.<provider>), gateway routing span (gateway.proxy), and optional Langfuse generation recording for LLM-specific analytics. All zero-cost when OTEL_ENABLED is unset.

Human Version: Ever wonder exactly which AI model answered your request, how long it took, whether it went through the account pool, and why that one weird request failed on Tuesday at 3am? OTel gives you a detailed trail of everything. Connect it to a Langfuse dashboard and watch your AI calls in real time like a mission control operator. It's the NSA for your own data β€” but you're the good guy here.


πŸ”¬ Feature 6: Promptfoo Security Red-Teaming

Technical: Integrated Promptfoo evaluation suite with baseline protocol conformance tests and adversarial security test suite. CI-enforced passRateThreshold: 1.0 on the security suite. Tests cover prompt injection, jailbreak resistance, cross-provider protocol compliance, and response format validation.

Human Version: We hire a team of virtual hackers to try and break our own proxy before you use it. They throw the nastiest prompts imaginable at it β€” trying to trick it, confuse it, steal data through it β€” and if any of those tricks work, the build fails and we fix it. It's like a dress rehearsal for getting attacked.


🌐 Feature 7: Web UI Management Console

Technical: Server-side Express.js with dynamically loaded frontend components. Real-time provider health monitoring via REST polling, CRUD API for account pool management, request/response log viewer with filtering, API key management, model alias routing config, and theme switching (dark/light).

Human Version: Instead of editing scary JSON files, you get a website dashboard running on your own computer. Click buttons to add accounts, see which models are working, watch live logs of what's happening, and test API calls β€” all without touching the command line after the first start. It's like a cockpit for your AI empire.


🎰 Feature 8: API Potluck (Community Key Sharing)

Technical: Multi-tenant shared credential pool module where authenticated users contribute and consume API keys from a common pool. Rate-limited distribution with per-user quotas, key validation on submission, and encrypted storage. Separate potluck key management interface.

Human Version: Community pot-luck dinner, but for AI API keys. You bring a dish (your spare API key), everyone else brings a dish, and we all eat together. Pool your resources with other users, everyone gets more access without anyone paying more. Very communist, very effective, very Blacklisted.


πŸ—ΊοΈ Architecture: The Beast Map

                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                        β”‚           BlacklistedAPI Gateway           β”‚
                        β”‚                                            β”‚
  Your App ─────────►  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
  (OpenAI format)       β”‚  β”‚  Auth Layer  β”‚   β”‚  Protocol Conv. β”‚  β”‚
                        β”‚  β”‚  API Keys    β”‚   β”‚  OpenAI↔Claude  β”‚  β”‚
                        β”‚  β”‚  JWT Tokens  β”‚   β”‚  Claude↔Gemini  β”‚  β”‚
                        β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
                        β”‚         β”‚                     β”‚           β”‚
                        β”‚  β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
                        β”‚  β”‚         Hybrid Gateway Router        β”‚  β”‚
                        β”‚  β”‚  (Path routing + model dispatch)     β”‚  β”‚
                        β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
                        β”‚         β”‚                                  β”‚
                        β”‚  β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
                        β”‚  β”‚         Provider Pool Manager         β”‚  β”‚
                        β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”         β”‚  β”‚
                        β”‚  β”‚  β”‚ G1   β”‚ β”‚ G2   β”‚ β”‚ G3   β”‚ ...     β”‚  β”‚
                        β”‚  β”‚  β”‚Gem.  β”‚ β”‚Kiro  β”‚ β”‚Grok  β”‚         β”‚  β”‚
                        β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜         β”‚  β”‚
                        β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
                        β”‚                                            β”‚
                        β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
                        β”‚  β”‚  OTel Traces  β”‚   β”‚  Go TLS Sidecar β”‚  β”‚
                        β”‚  β”‚  Langfuse     β”‚   β”‚  uTLS Browser   β”‚  β”‚
                        β”‚  β”‚  Logs         β”‚   β”‚  Fingerprinting β”‚  β”‚
                        β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                         β”‚
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β–Ό                          β–Ό                          β–Ό
        Gemini CLI                 Claude / Kiro               xAI Grok
        Antigravity              OpenAI Codex               Qwen Code
        (Google)                 (Anthropic/OAI)            (Alibaba/xAI)

⚑ Quick Start (The Actually Fast Version)

🐳 Docker One-Liner (Recommended)

docker run -d \
  -p 3000:3000 \
  -p 8085-8086:8085-8086 \
  -p 1455:1455 \
  -p 19876-19880:19876-19880 \
  --restart=always \
  -v "$(pwd)/configs:/app/configs" \
  --name blacklistedapi \
  crazyrob425/blacklisted-api

Open http://localhost:3000 β†’ Web UI dashboard appears β†’ configure models β†’ done.

🐳 Docker Compose

cd docker
mkdir -p configs
docker compose up -d

πŸ–₯️ Run Native (Node.js β‰₯ 20)

Linux/macOS:

chmod +x install-and-run.sh && ./install-and-run.sh

Windows:

install-and-run.bat

πŸ”— Connect Your Tools

Once running, point any OpenAI-compatible tool at http://localhost:3000:

Tool Setting Value
Cherry-Studio API Base URL http://localhost:3000
Continue.dev API Base URL http://localhost:3000
Cline API Base URL http://localhost:3000
OpenCode Base URL http://localhost:3000
OpenClaw Gateway URL http://localhost:3000
Any OpenAI SDK baseURL http://localhost:3000

πŸ” Authorization Setup (Pick Your Poison)

Each provider uses a different auth method. Here's the breakdown:

Provider Auth Method Port Notes
Gemini CLI OAuth 2.0 PKCE 8085 Auto browser pop-up on first run
Antigravity OAuth 2.0 8086 Google internal API access
Claude Kiro OAuth + Cookie 19876-19880 500 free credits on new accounts
Codex OpenAI OAuth 1455 OpenAI Codex subscription required
Grok xAI SSO Cookie N/A Grabbed via browser cookie extraction
Qwen Code Alibaba OAuth N/A Free qwen3-coder-plus access
Kimi K2 Moonshot OAuth N/A Moonshot account required

All auth configs live in configs/config.json (or manage via Web UI β€” the sane option).


βš™οΈ Advanced Config

Path Routing (Model Selection)

# Use Gemini
curl http://localhost:3000/gemini/v1/chat/completions

# Use Claude/Kiro
curl http://localhost:3000/kiro/v1/chat/completions

# Use Grok
curl http://localhost:3000/grok/v1/chat/completions

# Auto-detect from model name in request body
curl http://localhost:3000/v1/chat/completions \
  -d '{"model": "claude-opus-4-5", ...}'

Environment Variables

MASTER_PORT=3100          # Master process management port
API_PORT=3000             # Main API port
OTEL_ENABLED=true         # Enable distributed tracing
LANGFUSE_PUBLIC_KEY=...   # Langfuse integration
LANGFUSE_SECRET_KEY=...
PROVIDER_POOLS_FILE_PATH=./configs/provider_pools.json

System Prompt Override

// configs/config.json
{
  "systemPrompt": {
    "mode": "override",    // or "append"
    "content": "You are a helpful assistant deployed via BlacklistedAPI."
  }
}

πŸ”§ Plugin System

BlacklistedAPI ships with built-in plugins that can be activated from the Web UI:

Plugin What It Does
AI Monitor Sniffs request/response payloads before and after protocol conversion. Perfect for debugging
Model Usage Stats Tracks token consumption per model, per provider, per time period
API Potluck Community key sharing pool
Langfuse Bridge Ships all LLM calls to Langfuse for observability dashboards

πŸ“Š Performance Baseline

Concurrency Load Test Results (8-core dev machine, local network):

Requests/sec  β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘ 2,400 req/s (no pool)
              β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 3,800 req/s (5-acct pool)
              β”‚
Latency P50   β”‚ 12ms  (gateway overhead only, excl. upstream)
Latency P99   β”‚ 45ms
              β”‚
Uptime        β”‚ 99.9% with auto-failover on 3+ accounts
Restart time  β”‚ <1.5s (master process watchdog)

πŸ§ͺ Testing

# Unit tests (fast, no network)
npm test -- tests/hybrid-gateway.test.js tests/provider-models.unit.test.js tests/security-fixes.unit.test.js --forceExit

# Full test suite
npm test

# Promptfoo red-team security suite
npm run test:promptfoo:security

# Coverage report
npm run test:coverage

🚒 Version History (The Good Parts)

Version Date Highlight
2.13.7 Current BlacklistedAPI fork β€” OTel, Langfuse, Promptfoo hardening
2.x 2026.03 Grok protocol, multimodal, video gen
1.x 2026.01 Codex OAuth, AI Monitor plugin, async refresh queue
0.x 2025.12 Web UI, Docker Hub, unified config management
Origins 2025.08 Account pool management, multi-account failover

🐳 Docker Hub

# Latest stable
docker pull crazyrob425/blacklisted-api:latest

# Specific version  
docker pull crazyrob425/blacklisted-api:2.13.7

πŸ“š Documentation


πŸ’€ Disclaimer

"With great power comes great responsibility to read the terms of service you're definitely not violating."

BlacklistedAPI is for educational and research purposes. Use it to:

  • Access models you're legitimately subscribed to
  • Build personal tools and projects
  • Study how AI APIs work under the hood

Do NOT use it to circumvent paid services without authorization, abuse rate limits in bad faith, or do anything that would get you actually blacklisted (the bad kind).


πŸ“„ License

GNU GPL v3 β€” Free as in freedom. Fork it, hack it, improve it. Just keep it open.


πŸ™ Acknowledgements

Standing ovation for the real ones:

  • @router-for-me β€” For CLIProxyAPI, the original Go-based CLI proxy engine that proved the whole concept worked and spawned an entire ecosystem of projects. The blueprint.
  • @justlovemaki β€” For AIClient-2-API, the Node.js reimplementation with full Web UI, TLS bypass, multi-protocol conversion, and a feature set wild enough to make this worth combining. The engine.
  • The open-source legends powering the stack: OpenTelemetry, Langfuse, Promptfoo, uTLS
  • Every star, fork, and contributor on both source repos β€” you built the foundation we're standing on

> blacklisted-api --version
  BlacklistedAPI v2.13.7
  [ Blacklisted Binary Labs ]
  "The proxy they didn't want you to have."

GitHub Β· Issues Β· Docker

Built with spite, Node.js, and an unhealthy obsession with free AI models.

About

Stop paying to use AI in your favorite apps! BlacklistedAPI gives you free, unlimited access to elite models like Gemini, Claude, and Grok without a single paid API key. It spoofs these services into one OpenAI-compatible gateway, supporting thousands of daily requests. Perfect for "vibe coding" and AI powered app use FREE.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 82.2%
  • HTML 8.8%
  • CSS 6.1%
  • Inno Setup 1.0%
  • Rich Text Format 0.8%
  • PowerShell 0.3%
  • Other 0.8%