API
Core endpoints, health pages, and example requests.
Base endpoints
API root with available endpoint overview.
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.
Bearer-auth JSON balance for the current API key: daily remaining limits, effective remaining limits, promo credits, and fast-mode billing multiplier.
Global request percentages, error rate, latency, and per-model success stats.
Health snapshot: provider key counts, recent traffic, and catalog size.
Quick start
Access
Account management, API keys, quota policy, and promo codes.
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.
Models
176 total models loaded from upstream providers.
BSOD Playground
openai · babbage-002 · responsesModel Settings
Documentation
Full route reference for the current proxy surface.
How To Connect
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
/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.
Complete Endpoint Matrix
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
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.
Monitoring And Metadata
/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.
Text Endpoints
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
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
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/.
Where To Get Audio
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
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.
Realtime Sessions
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
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
/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
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
/ 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
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
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
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
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.