{"openapi":"3.1.0","info":{"title":"GPT 6 Agent API","version":"1.0.0","description":"OpenAI-совместимый API нашей модели. Подходит любой клиент OpenAI: укажи Base URL и токен из бота. Каждый запрос списывает с баланса его реальную стоимость по токенам."},"servers":[{"url":"https://uncensored-gpt.online/v1","description":"Agent API"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Chat","description":"Генерация ответов"},{"name":"Models","description":"Доступные модели"},{"name":"Account","description":"Баланс, лимиты и расход"}],"paths":{"/models":{"get":{"tags":["Models"],"operationId":"listModels","summary":"Список моделей","description":"Возвращает единственную модель, которую обслуживает API. Проверяет токен.","responses":{"200":{"description":"Список моделей","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelList"},"example":{"object":"list","data":[{"id":"gpt-6-uncensored","object":"model","created":0,"owned_by":"gpt-6-uncensored"}]}}}},"401":{"description":"Токен не передан или отозван","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"invalid_api_key":{"value":{"error":{"message":"Токен недействителен: выпусти новый в боте. / Invalid API key: issue a new one in the bot.","type":"authentication_error","code":"invalid_api_key"}}}}}}}}}},"/me":{"get":{"tags":["Account"],"operationId":"getAccount","summary":"Баланс и расход","description":"Баланс владельца токена, можно ли сейчас отправлять запросы, модель, лимиты и расход за последние сутки и 30 дней. Считаются только списанные запросы. Бесплатно.","responses":{"200":{"description":"Состояние аккаунта","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"},"example":{"object":"account","balance_usd":4.2531,"min_balance_usd":0.1,"can_request":true,"model":"gpt-6-uncensored","max_concurrent_requests":3,"token":{"last4":"a1b2","created":1760000000},"usage":{"last_24h":{"requests":42,"spent_usd":0.318,"input_tokens":512000,"output_tokens":38000},"last_30d":{"requests":610,"spent_usd":4.91,"input_tokens":7800000,"output_tokens":560000}}}}}},"401":{"description":"Токен не передан или отозван","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"invalid_api_key":{"value":{"error":{"message":"Токен недействителен: выпусти новый в боте. / Invalid API key: issue a new one in the bot.","type":"authentication_error","code":"invalid_api_key"}}}}}}}}}},"/chat/completions":{"post":{"tags":["Chat"],"operationId":"createChatCompletion","summary":"Ответ модели","description":"Формат OpenAI Chat Completions. Поддерживаются потоковый ответ (`stream: true`, Server-Sent Events) и вызов инструментов (`tools`). В потоке последний чанк перед `data: [DONE]` содержит `usage`. Одновременно у одного пользователя может идти ограниченное число запросов, лишние получают 429 с заголовком `Retry-After`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCompletionRequest"},"examples":{"simple":{"summary":"Обычный ответ","value":{"model":"gpt-6-uncensored","messages":[{"role":"system","content":"Ты — помощник программиста."},{"role":"user","content":"Напиши функцию сортировки на Python"}]}},"stream":{"summary":"Потоковый ответ","value":{"model":"gpt-6-uncensored","stream":true,"messages":[{"role":"user","content":"Привет!"}]}}}}}},"responses":{"200":{"description":"Ответ модели. При `stream: true` — поток `text/event-stream` из чанков `chat.completion.chunk`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCompletion"},"example":{"id":"chatcmpl-123","object":"chat.completion","created":1760000000,"model":"gpt-6-uncensored","choices":[{"index":0,"finish_reason":"stop","message":{"role":"assistant","content":"def sort_list(items):\n    return sorted(items)"}}],"usage":{"prompt_tokens":24,"completion_tokens":12,"total_tokens":36}}},"text/event-stream":{"schema":{"type":"string"},"example":"data: {\"id\":\"chatcmpl-123\",\"object\":\"chat.completion.chunk\",\"model\":\"gpt-6-uncensored\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Прив\"}}]}\n\ndata: {\"id\":\"chatcmpl-123\",\"object\":\"chat.completion.chunk\",\"model\":\"gpt-6-uncensored\",\"choices\":[],\"usage\":{\"prompt_tokens\":9,\"completion_tokens\":5,\"total_tokens\":14}}\n\ndata: [DONE]\n\n"}}},"400":{"description":"Тело не JSON-объект или нет `messages`; ошибка в параметрах запроса","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"invalid_request":{"value":{"error":{"message":"Нужен JSON-объект с полем messages. / Body must be a JSON object with messages.","type":"invalid_request_error","code":"invalid_request"}}}}}}},"401":{"description":"Токен не передан или отозван","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"invalid_api_key":{"value":{"error":{"message":"Токен недействителен: выпусти новый в боте. / Invalid API key: issue a new one in the bot.","type":"authentication_error","code":"invalid_api_key"}}}}}}},"402":{"description":"Баланс ниже минимального — пополни его в боте","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"insufficient_balance":{"value":{"error":{"message":"Недостаточно средств: пополни баланс в боте. / Insufficient balance: top up in the bot.","type":"insufficient_quota","code":"insufficient_balance"}}}}}}},"413":{"description":"Тело запроса больше допустимого размера","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"request_too_large":{"value":{"error":{"message":"Запрос слишком большой. / Request is too large.","type":"invalid_request_error","code":"request_too_large"}}}}}}},"429":{"description":"Превышено число одновременных запросов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"concurrency_limit":{"value":{"error":{"message":"Слишком много одновременных запросов. / Too many concurrent requests.","type":"rate_limit_error","code":"concurrency_limit"}}}}}}},"502":{"description":"Модель временно недоступна","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"upstream_error":{"value":{"error":{"message":"Модель временно недоступна, попробуй ещё раз. / Model is temporarily unavailable.","type":"server_error","code":"upstream_error"}}}}}}},"503":{"description":"Сервис на обслуживании","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"maintenance":{"value":{"error":{"message":"Сервис на обслуживании, попробуй позже. / Service is under maintenance.","type":"server_error","code":"maintenance"}}}}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"sk-…","description":"Токен выпускается в боте: «ИИ-ассистент для кода» → «Выпустить токен»."}},"schemas":{"Message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["system","user","assistant","tool"]},"content":{"description":"Текст или массив частей сообщения (формат OpenAI).","oneOf":[{"type":"string"},{"type":"array","items":{"type":"object"}},{"type":"null"}]},"name":{"type":"string"},"tool_calls":{"type":"array","items":{"$ref":"#/components/schemas/ToolCall"}},"tool_call_id":{"type":"string","description":"Для `role: tool` — id вызова, на который это ответ."}}},"Tool":{"type":"object","required":["type","function"],"properties":{"type":{"type":"string","enum":["function"]},"function":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"parameters":{"type":"object","description":"JSON Schema аргументов."}}}}},"ToolCall":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["function"]},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}}}}},"ChatCompletionRequest":{"type":"object","required":["messages"],"additionalProperties":true,"properties":{"model":{"type":"string","examples":["gpt-6-uncensored"],"description":"Имя модели. Запрос всегда обслуживает `gpt-6-uncensored`, поле можно не менять."},"messages":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Message"}},"stream":{"type":"boolean","default":false,"description":"Отдавать ответ потоком (SSE)."},"temperature":{"type":"number","minimum":0,"maximum":2},"top_p":{"type":"number","minimum":0,"maximum":1},"max_tokens":{"type":"integer","minimum":1,"description":"Предел длины ответа в токенах."},"stop":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"tools":{"type":"array","items":{"$ref":"#/components/schemas/Tool"}},"tool_choice":{"description":"`auto`, `none`, `required` или конкретная функция.","oneOf":[{"type":"string"},{"type":"object"}]},"response_format":{"type":"object","description":"Например `{\"type\": \"json_object\"}`."}}},"ChatCompletion":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","enum":["chat.completion"]},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer"},"message":{"$ref":"#/components/schemas/Message"},"finish_reason":{"type":["string","null"],"examples":["stop","length","tool_calls"]}}}},"usage":{"$ref":"#/components/schemas/Usage"}}},"Usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}},"UsageWindow":{"type":"object","properties":{"requests":{"type":"integer","description":"Списанных запросов"},"spent_usd":{"type":"number","description":"Списано с баланса, $"},"input_tokens":{"type":"integer"},"output_tokens":{"type":"integer"}}},"Account":{"type":"object","properties":{"object":{"type":"string","enum":["account"]},"balance_usd":{"type":"number","description":"Баланс, $"},"min_balance_usd":{"type":"number","description":"Ниже этого баланса запросы отклоняются с 402"},"can_request":{"type":"boolean","description":"Хватает ли баланса на новый запрос"},"model":{"type":"string"},"max_concurrent_requests":{"type":"integer","description":"Сколько запросов может идти одновременно"},"token":{"type":"object","properties":{"last4":{"type":"string","description":"Последние 4 символа токена"},"created":{"type":"integer","description":"Когда выпущен, Unix time"}}},"usage":{"type":"object","properties":{"last_24h":{"$ref":"#/components/schemas/UsageWindow"},"last_30d":{"$ref":"#/components/schemas/UsageWindow"}}}}},"ModelList":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","enum":["model"]},"created":{"type":"integer"},"owned_by":{"type":"string"}}}}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["message","type"],"properties":{"message":{"type":"string","description":"Текст на русском и английском."},"type":{"type":"string"},"code":{"type":["string","null"]}}}}}}}}