GPT-5.2-Codex API
GPT-5.2-Codex от OpenAI через один OpenAI-совместимый API Nodul Router: ключ с лимитами, журнал запросов, оплата в рублях.
- Контекст
- 400 000
- Макс. ответ
- 128 000
- Выпущена
- 14.01.2026
Цены в рублях за 1 млн токенов
| Регион | Вход | Выход | Чтение кэша | За запрос | ID модели в запросах |
|---|---|---|---|---|---|
| Глобальный | 192,50 ₽ | 1 540,00 ₽ | 19,25 ₽ | — | global-1/openai/gpt-5.2-codex |
Списываются в PnP по курсу 1 PnP = 100 ₽.
Описание
GPT-5.2-Codex — обновленная версия GPT-5.1-Codex, оптимизированная для разработки ПО и задач программирования. Она рассчитана как на интерактивные сессии разработки, так и на долгое самостоятельное выполнение сложных инженерных задач. Модель умеет создавать проекты с нуля, разрабатывать функциональность, отлаживать код, проводить масштабный рефакторинг и ревью кода. По сравнению с GPT-5.1-Codex 5.2-Codex лучше управляется, точно следует инструкциям разработчика и пишет более чистый и качественный код. Усилие рассуждения настраивается параметром reasoning.effort.
Codex встраивается в среды разработки, включая CLI, расширения для IDE, GitHub и облачные задачи. Модель динамически подстраивает усилие рассуждения: быстро отвечает на небольшие задачи и выдерживает многочасовые прогоны на крупных проектах. Она обучена проводить структурированное ревью кода, находя критические ошибки за счет рассуждений о зависимостях и проверки поведения по тестам. Модель также принимает мультимодальные входные данные, например изображения или скриншоты для разработки UI, и использует инструменты для поиска, установки зависимостей и настройки окружения. Codex предназначен именно для агентного программирования.
Быстрый старт
curl https://router.nodul.ru/api/v1/chat/completions \
-H "Authorization: Bearer $NODUL_ROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "global-1/openai/gpt-5.2-codex",
"messages": [{"role":"user","content":"Hello!"}]
}'import os
from openai import OpenAI
client = OpenAI(
base_url="https://router.nodul.ru/api/v1",
api_key=os.environ["NODUL_ROUTER_API_KEY"],
)
response = client.chat.completions.create(
model="global-1/openai/gpt-5.2-codex",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)
print("cost, PnP:", response.usage.model_extra.get("cost"))import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://router.nodul.ru/api/v1",
apiKey: process.env.NODUL_ROUTER_API_KEY,
});
const response = await client.chat.completions.create({
model: "global-1/openai/gpt-5.2-codex",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);
console.log("cost, PnP:", response.usage?.cost);package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
body := []byte(`{"model":"global-1/openai/gpt-5.2-codex","messages":[{"role":"user","content":"Hello!"}]}`)
req, _ := http.NewRequest("POST", "https://router.nodul.ru/api/v1/chat/completions", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("NODUL_ROUTER_API_KEY"))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
var e struct{ Error struct{ Message string } }
_ = json.NewDecoder(resp.Body).Decode(&e)
fmt.Fprintln(os.Stderr, resp.Status, e.Error.Message)
os.Exit(1)
}
var out struct {
Choices []struct{ Message struct{ Content string } }
Usage struct{ Cost json.Number }
}
if err := json.NewDecoder(resp.Body).Decode(&out); err != nil {
panic(err)
}
fmt.Println(out.Choices[0].Message.Content)
fmt.Println("cost, PnP:", out.Usage.Cost)
}<?php
$body = '{"model":"global-1/openai/gpt-5.2-codex","messages":[{"role":"user","content":"Hello!"}]}';
$ch = curl_init('https://router.nodul.ru/api/v1/chat/completions');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('NODUL_ROUTER_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => $body,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) !== 200) {
fwrite(STDERR, $response['error']['message'] ?? 'request failed');
exit(1);
}
echo $response['choices'][0]['message']['content'], PHP_EOL;
echo 'cost, PnP: ', $response['usage']['cost'], PHP_EOL;Все параметры API · 10
include_reasoningmax_completion_tokensreasoningreasoning_effortresponse_formatseedstructured_outputstool_choicetoolsverbosity

