--- title: Web2API emoji: 🧩 colorFrom: blue colorTo: indigo sdk: docker app_port: 9000 pinned: false --- # Web2API Bridge Claude Web sessions to OpenAI / Anthropic compatible APIs. Runs as a Docker Space on Hugging Face. ## Endpoints | Path | Protocol | Description | |------|----------|-------------| | `/claude/v1/models` | OpenAI | List available models | | `/claude/v1/chat/completions` | OpenAI | Chat completions | | `/claude/v1/messages` | Anthropic | Messages API | | `/config` | — | Admin dashboard | ## Supported models | Model ID | Upstream | Tier | Notes | |----------|----------|------|-------| | `claude-sonnet-4.6` | claude-sonnet-4-6 | Free | Sonnet 4.6 (default) | | `claude-sonnet-4-5` | claude-sonnet-4-5 | Free | Sonnet 4.5 | | `claude-sonnet-4-6-thinking` | claude-sonnet-4-6 | Free | Sonnet 4.6 extended thinking | | `claude-sonnet-4-5-thinking` | claude-sonnet-4-5 | Free | Sonnet 4.5 extended thinking | | `claude-haiku-4-5` | claude-haiku-4-5 | Pro | Haiku 4.5 (fastest) | | `claude-haiku-4-5-thinking` | claude-haiku-4-5 | Pro | Haiku 4.5 extended thinking | | `claude-opus-4-6` | claude-opus-4-6 | Pro | Opus 4.6 (most capable) | | `claude-opus-4-6-thinking` | claude-opus-4-6 | Pro | Opus 4.6 extended thinking | Pro models require a Claude Pro subscription and must be enabled in the config page. ## Quick start 1. Set required secrets in Space settings 2. Open `/login` → `/config` 3. Add a proxy group and a Claude account with `auth.sessionKey` 4. (Optional) Enable Pro models toggle if your account has a Pro subscription 5. Call the API: ```bash # OpenAI format (streaming) curl $SPACE_URL/claude/v1/chat/completions \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"claude-sonnet-4.6","stream":true,"messages":[{"role":"user","content":"Hello"}]}' # Anthropic format (streaming) curl $SPACE_URL/claude/v1/messages \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"claude-sonnet-4.6","stream":true,"max_tokens":1024,"messages":[{"role":"user","content":"Hello"}]}' # Extended thinking curl $SPACE_URL/claude/v1/chat/completions \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"claude-sonnet-4-6-thinking","stream":true,"messages":[{"role":"user","content":"Solve this step by step: what is 23 * 47?"}]}' ``` ## Required secrets | Secret | Purpose | |--------|---------| | `WEB2API_AUTH_API_KEY` | API auth key for `/claude/v1/*` | | `WEB2API_AUTH_CONFIG_SECRET` | Password for `/login` and `/config` | | `WEB2API_DATABASE_URL` | PostgreSQL URL for persistent config (optional) | ## Recommended environment variables For a small CPU Space: ``` WEB2API_BROWSER_NO_SANDBOX=true WEB2API_BROWSER_DISABLE_GPU=true WEB2API_BROWSER_DISABLE_GPU_SANDBOX=true WEB2API_SCHEDULER_RESIDENT_BROWSER_COUNT=0 WEB2API_SCHEDULER_TAB_MAX_CONCURRENT=5 WEB2API_BROWSER_CDP_PORT_COUNT=6 ```