API

Core endpoints, health pages, and example requests.

Base endpoints

/v1/

API root with available endpoint overview.

/v1/index.php

Raw API roots for streaming clients. Use these as the client base URL when the app expects a plain OpenAI-compatible endpoint and must not receive the browser HTML console.

/balance/

Bearer-auth JSON balance for the current API key: daily remaining limits, effective remaining limits, promo credits, and fast-mode billing multiplier.

/status/

Global request percentages, error rate, latency, and per-model success stats.

/health/

Health snapshot: provider key counts, recent traffic, and catalog size.

Quick start

curl https://api.bsod.yufic.ru/v1/models/ \ -H "Authorization: Bearer YOUR_KEY" curl https://api.bsod.yufic.ru/v1/chat/completions/ \ -H "Authorization: Bearer YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"gpt-5.4","messages":[{"role":"user","content":"Привет"}],"max_tokens":64}' curl https://api.bsod.yufic.ru/v1/index.php/chat/completions \ -H "Authorization: Bearer YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"gpt-5.4","messages":[{"role":"user","content":"Привет"}],"max_tokens":64}'

Access

Account management, API keys, quota policy, and promo codes.

Create account

Dedicated MD3 registration page.

Open register page

Sign in

Dedicated MD3 login page.

Open login page

Support Project

Donate a provider API key for routing and unlock higher tiers after approval.

Login required

You need an account before sending a key for routing review.

loginOpen login page

Models

176 total models loaded from upstream providers.

OPENAI Available model catalog
128 models
Loading models...
GEMINI Temporarily unavailable
45 models
all api keys died
Gemini is temporarily locked in this console.
PERPLEXITY Available model catalog
3 models
Loading models...

BSOD Playground

openai · babbage-002 · responses

Model Settings

Documentation

Full route reference for the current proxy surface.

How To Connect

Base URL: https://api.bsod.yufic.ru/v1/ · Raw Streaming Base URL: https://api.bsod.yufic.ru/v1/index.php · Compatibility Base URL: https://api.bsod.yufic.ru/v1/index.php · Auth: Authorization: Bearer <API_KEY>

Use https://api.bsod.yufic.ru/v1 for normal API clients. For streaming clients, use the raw OpenAI-compatible base URL https://api.bsod.yufic.ru/v1/index.php or https://api.bsod.yufic.ru/v1/index.php. Do not use the browser console URL / as an API base, because that route can return HTML.

Quick Start Requests

GET /v1/ · GET /v1/models/ · POST /v1/chat/completions/ · POST /v1/responses/

/v1/ returns the API root summary. /v1/models/ returns the live catalog. For classic chat clients, use /chat/completions. For modern OpenAI-style clients, use /responses. Both require bearer auth and JSON.

curl https://api.bsod.yufic.ru/v1/models/ \ -H "Authorization: Bearer YOUR_KEY" curl https://api.bsod.yufic.ru/v1/chat/completions/ \ -H "Authorization: Bearer YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"gpt-5.4","messages":[{"role":"user","content":"Привет"}],"max_tokens":128}' curl https://api.bsod.yufic.ru/v1/index.php/chat/completions \ -H "Authorization: Bearer YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"gpt-5.4","messages":[{"role":"user","content":"Привет"}],"max_tokens":128}' curl https://api.bsod.yufic.ru/v1/responses/ \ -H "Authorization: Bearer YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"gpt-5.4","input":"Напиши короткий ответ"}'

Complete Endpoint Matrix

All client-facing API routes currently routed by the proxy.

Discovery and metadata: GET /v1/, GET /v1/models/, GET /v1/models/<model>/, GET /catalog/, GET /balance/, GET /key-info/, GET /status/, GET /status/raw/, GET /health/.

Text and vectors: POST /v1/chat/completions/, POST /v1/responses/, GET /v1/responses/<id>/, DELETE /v1/responses/<id>/, POST /v1/responses/<id>/cancel/, POST /v1/completions/, POST /v1/embeddings/, POST /v1/moderations/.

Images, audio, video, files: GET /v1/images/, POST /v1/images/generations/, POST /v1/images/edits/, POST /v1/images/variations/, GET /v1/audio/, POST /v1/audio/transcriptions/, POST /v1/audio/translations/, POST /v1/audio/speech/, GET|POST /v1/videos/, GET|POST|DELETE /v1/files/, GET|DELETE /v1/files/<id>/, GET /v1/files/<id>/content/, GET|POST /v1/uploads/, GET|POST /v1/uploads/<id>/, POST /v1/uploads/<id>/parts/, POST /v1/uploads/<id>/complete/.

OpenAI-compatible passthrough surfaces: GET|POST|DELETE|PATCH /v1/assistants/..., /v1/threads/..., /v1/threads/runs/, /v1/batches/..., /v1/fine_tuning/jobs/..., and /v1/vector_stores/.... CORS preflight OPTIONS is supported on API routes.

Streaming

Raw base: https://api.bsod.yufic.ru/v1/index.php · Compatibility raw base: https://api.bsod.yufic.ru/v1/index.php · body field: "stream": true

For streaming, set your client base URL to a raw API root: https://api.bsod.yufic.ru/v1/index.php or https://api.bsod.yufic.ru/v1/index.php. Then call /chat/completions or /responses with "stream": true. The proxy forwards the upstream event stream as SSE. For legacy /v1/completions/, streaming is not implemented here, so use chat or responses instead.

curl https://api.bsod.yufic.ru/v1/index.php/chat/completions \ -H "Authorization: Bearer YOUR_KEY" \ -H "Content-Type: application/json" \ -N \ -d '{"model":"gpt-5.4","stream":true,"messages":[{"role":"user","content":"Считай до десяти"}]}' curl https://api.bsod.yufic.ru/v1/index.php/chat/completions \ -H "Authorization: Bearer YOUR_KEY" \ -H "Content-Type: application/json" \ -N \ -d '{"model":"gpt-5.4","stream":true,"messages":[{"role":"user","content":"Считай до десяти"}]}' curl https://api.bsod.yufic.ru/v1/responses/ \ -H "Authorization: Bearer YOUR_KEY" \ -H "Content-Type: application/json" \ -N \ -d '{"model":"gpt-5.4","stream":true,"input":"Напиши 5 коротких пунктов"}'

Monitoring And Metadata

GET /catalog/ · GET /balance/ · GET /key-info/ · GET /status/ · GET /health/

/catalog/ is the grouped provider/model catalog for the site UI. /balance/ returns the current bearer key balance: daily remaining limits, effective remaining limits, promo credits, and fast-mode cost multiplier. /key-info/ is the legacy alias with the same data. /status/ shows aggregated request statistics, success/error rates, and per-model/per-path breakdowns. /health/ returns a compact service snapshot with provider key counts and recent traffic.

curl https://api.bsod.yufic.ru/balance/ \ -H "Authorization: Bearer YOUR_KEY"

Text Endpoints

POST /v1/chat/completions/ · POST /v1/responses/ · POST /v1/completions/ · POST /v1/embeddings/ · POST /v1/moderations/

Use chat/completions for standard chat clients, responses for Responses API clients, completions for legacy text completion, embeddings for vector generation, and moderations for safety checks. The proxy accepts common token aliases like max_tokens, max_completion_tokens, and max_output_tokens and forwards extra compatible fields without the old strict whitelist.

Fast Mode And Model Routing

Request field: priority="fast" · forwarded as service_tier="priority" · token cost: 2.5x

Fast mode is optional for compatible text requests. Add "priority":"fast" to request priority service tier routing. Fast mode consumes 2.5x text tokens from the BSOD API key. Model availability is shown by /v1/models/ and the Models tab; OpenAI, Gemini, and Perplexity models are normalized behind the same OpenAI-compatible API shape where possible.

Where To Get Images

POST /v1/images/generations/ · POST /v1/images/edits/ · POST /v1/images/variations/ · quota bucket: image

To generate a new image from text, call /v1/images/generations/ with JSON. The image quota bucket covers image generation, edits, and variations, including gpt-image-2. The returned URLs or base64 payloads are the generated images. To edit an existing picture, use /v1/images/edits/ with multipart form-data and upload the source image. To create variations, use /v1/images/variations/ with multipart form-data. If you just need to see what is available in this namespace, open GET /v1/images/.

curl https://api.bsod.yufic.ru/v1/images/generations/ \ -H "Authorization: Bearer YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"gpt-image-2","prompt":"cyberpunk city at night, high detail","size":"1024x1024"}'

Where To Get Audio

POST /v1/audio/transcriptions/ · POST /v1/audio/translations/ · POST /v1/audio/speech/

Use /audio/transcriptions/ to convert uploaded audio into text. Use /audio/translations/ to translate speech into English text. Use /audio/speech/ to generate speech audio from text. Transcription and translation are multipart uploads. Speech synthesis is JSON and returns audio content.

Where To Create And Download Video

POST /v1/videos/ · GET /v1/videos/?id=<video_id> · GET /v1/videos/?id=<video_id>&content=1 · GET /playground/video-status/?id=<video_id>

Create a video job with POST /v1/videos/. The response returns a video job ID. To check status or metadata, call GET /v1/videos/?id=<video_id>. To download the final rendered file, call GET /v1/videos/?id=<video_id>&content=1. The Playground page uses /playground/video-status/ for polling, but API clients should use the /v1/videos/ query route.

curl https://api.bsod.yufic.ru/v1/videos/ \ -H "Authorization: Bearer YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"sora-2","prompt":"slow cinematic drone shot above snowy mountains"}' curl "https://api.bsod.yufic.ru/v1/videos/?id=video_123" curl "https://api.bsod.yufic.ru/v1/videos/?id=video_123&content=1" \ -H "Authorization: Bearer YOUR_KEY" \ -o result.mp4

Realtime Sessions

GET /v1/realtime/ · POST /v1/realtime/sessions/ currently returns 403

The namespace route /v1/realtime/ describes the realtime child route. Session creation is intentionally disabled until usage can be metered end-to-end, so POST /v1/realtime/sessions/ returns 403.

Files And Uploads

GET /v1/files/ · POST /v1/files/ · GET /v1/files/<id>/ · GET /v1/files/<id>/content/ · GET /v1/uploads/ · POST /v1/uploads/ · GET /v1/uploads/<id>/ · POST /v1/uploads/<id>/parts/ · POST /v1/uploads/<id>/complete/

Use /v1/files/ for file listing and multipart file creation. Use /v1/files/<id>/content/ to download a stored file. Use /v1/uploads/ if your client follows the multipart upload flow with upload objects, upload parts, and explicit completion.

Discovery And Model Detail

GET /v1/ · GET /v1/models/ · GET /v1/models/<model>/ · GET /v1/images/ · GET /v1/audio/ · GET /v1/realtime/ · GET /v1/fine_tuning/

/v1/ gives the root summary. /v1/models/ lists the catalog. /v1/models/<model>/ fetches detail for a specific model ID. The namespace routes images, audio, realtime, and fine_tuning describe what child routes exist without actually generating media.

Assistants, Threads, Batches, Vector Stores, Fine-Tuning

GET|POST|DELETE|PATCH /v1/assistants/... · /v1/batches/... · /v1/fine_tuning/jobs/... · /v1/vector_stores/... · /v1/threads/...

These routes are passthrough compatibility surfaces. The proxy forwards the active HTTP method to upstream and automatically adds OpenAI-Beta: assistants=v2 where required for assistants, threads, and vector stores. Supported routed patterns include /assistants/<id>, /threads/<thread_id>/messages, /threads/<thread_id>/runs, /threads/<thread_id>/runs/<run_id>, /threads/runs, /batches/<id>, /fine_tuning/jobs/<id>, and /vector_stores/<id>. They use the same bearer auth as the rest of the API.

Playground And Browser Routes

GET / · GET /playground/ · GET /playground/catalog/ · POST /playground/run/ · POST /playground/live-session/ · GET /playground/video-status/?id=... · POST /playground/submit/

/ is the main console. /playground/ redirects to the Playground tab. Playground routes are intended for the site UI and use the logged-in browser session where applicable. API clients should prefer the bearer-auth /v1/... routes unless they are specifically integrating with the UI workflow.

Web UI And Account Routes

GET|POST /login/ · GET|POST /register/ · GET|POST /forgot-password/ · POST /logout/ · POST /create-key/ · POST /key-action/ · POST /redeem-code/ · POST /admin/promocodes/ · POST /admin/users/ · POST /admin/donations/ · POST /admin/recheck-keys/ · POST /admin/ban-unlock/ · POST /telegram/auth/ · POST /telegram/webhook/

These routes are browser/admin/bot-facing rather than normal API-client endpoints. Browser POST routes require CSRF. Admin routes require an admin session. Telegram routes are used by the Telegram bot and WebApp login flow.

Error Handling And Method Help

Structured JSON 404/405 for API routes · Allow header on known method mismatches

If a known endpoint is called with the wrong method, the proxy returns a structured 405 method_not_allowed response with an Allow header and a usage hint. Unknown API paths under /v1/, /catalog/, /status/, and /health/ return JSON 404 invalid_request_error.

Limits, Promo Credits, And Permissions

BASE text: 500k/day · PRO text: 100k/day · Images: 10/day · Audio: 25/day · Sora 2 Pro: 1/day · Sora 2: 3/day · Other video: 5/day · Files: 5/day

Daily caps apply to regular users and may be narrowed per API key by key management settings. Promo credits are additive one-time grants and are shown in /balance/ under promo_credits and effective_remaining. Text promo buckets are text.base and text.pro; media buckets are image, audio, file, video.sora2pro, video.sora2, and video.other. Key permissions can disable PRO models, images, audio, video, files, balance display, or realtime. A successful media generation/upload reserves and consumes the matching media bucket; failed upstream media calls refund the reservation.

Status Codes

200/2xx success · 400 bad request · 401 invalid API key · 403 permission/ban/disabled feature · 404 not found · 405 wrong method · 429 quota exceeded · 503 temporary quota/upstream/provider problem

Quota errors are JSON. 429 means the request is valid but the relevant daily or promo balance is exhausted or too small. 503 quota check temporarily unavailable means SQLite/provider availability failed temporarily and the client should retry. Known API routes return an Allow header on method mismatch.