{
  "aboutHtml": "<p>Grok Build 0.1 — ориентированная на программирование модель Grok от разработчика для агентной разработки ПО, инженерных задач и рабочих процессов. Она принимает письменные материалы и изображения и генерирует текст, включая код и структурированные результаты. Карточка модели указывает окно контекста в 256 000 токенов и перечисляет рассуждения, вызов функций и структурированные ответы среди возможностей.</p><p>Для задачи программирования предоставьте желаемое поведение, соответствующую реализацию и наблюдаемый сбой или требуемое изменение. Укажите интерфейсы и зависимости, совместимость которых нужно сохранить. Полезным результатом может быть предлагаемый патч, объяснение причины и проверки для оценки изменения. Сосредоточьте исходные материалы и запрашиваемый вывод на определённой задаче.</p><p>Графический ввод добавляет визуальные доказательства к инженерному заданию или задаче интерфейса. Передайте изображение с вопросом, связанным с видимой особенностью, и добавьте письменную спецификацию, необходимую для её понимания. Например, скриншот может поддержать описание проблемы интерфейса, а исходный код и наблюдаемое поведение устанавливают, как приложение её реализует.</p><p>Вызов функций связывает предложенный моделью шаг с инструментом приложения. Определите функцию и её аргументы, дайте модели запросить вызов, выполните его в приложении и верните фактический результат. Разработчик различает этот путь с исполнением на стороне клиента и свои серверные инструменты. Сохраняйте вызов и результат вместе, чтобы продолжение опиралось на наблюдение, а не на предположение об успехе предложенной команды.</p><p>Структурированные ответы могут организовать извлечение данных или отчёт вокруг заданных полей. Передайте нужную схему и смысл задачи, затем изучите сведения, содержащиеся в возвращённом материале. Разработчик поддерживает практическое подмножество JSON Schema; некоторые сложные или слишком объёмные ограничения соблюдаются по мере возможностей. Поэтому проверка формата отличается от проверки корректности извлечённых фактов или предлагаемого кода.</p><p>Для задачи рассуждений задайте требуемое заключение и условия, которым оно должно отвечать. Карточка разработчика также отмечает, что пакетная обработка для этой модели не поддерживается. Запросите итоговый материал, указывающий предлагаемое изменение, использованные доказательства и оставшееся условие для проверки. Так вывод модели программирования остаётся связан с реальной задачей разработки приложения.</p>",
  "aboutText": "Grok Build 0.1 — ориентированная на программирование модель Grok от разработчика для агентной разработки ПО, инженерных задач и рабочих процессов. Она принимает письменные материалы и изображения и генерирует текст, включая код и структурированные результаты. Карточка модели указывает окно контекста в 256 000 токенов и перечисляет рассуждения, вызов функций и структурированные ответы среди возможностей.\n\nДля задачи программирования предоставьте желаемое поведение, соответствующую реализацию и наблюдаемый сбой или требуемое изменение. Укажите интерфейсы и зависимости, совместимость которых нужно сохранить. Полезным результатом может быть предлагаемый патч, объяснение причины и проверки для оценки изменения. Сосредоточьте исходные материалы и запрашиваемый вывод на определённой задаче.\n\nГрафический ввод добавляет визуальные доказательства к инженерному заданию или задаче интерфейса. Передайте изображение с вопросом, связанным с видимой особенностью, и добавьте письменную спецификацию, необходимую для её понимания. Например, скриншот может поддержать описание проблемы интерфейса, а исходный код и наблюдаемое поведение устанавливают, как приложение её реализует.\n\nВызов функций связывает предложенный моделью шаг с инструментом приложения. Определите функцию и её аргументы, дайте модели запросить вызов, выполните его в приложении и верните фактический результат. Разработчик различает этот путь с исполнением на стороне клиента и свои серверные инструменты. Сохраняйте вызов и результат вместе, чтобы продолжение опиралось на наблюдение, а не на предположение об успехе предложенной команды.\n\nСтруктурированные ответы могут организовать извлечение данных или отчёт вокруг заданных полей. Передайте нужную схему и смысл задачи, затем изучите сведения, содержащиеся в возвращённом материале. Разработчик поддерживает практическое подмножество JSON Schema; некоторые сложные или слишком объёмные ограничения соблюдаются по мере возможностей. Поэтому проверка формата отличается от проверки корректности извлечённых фактов или предлагаемого кода.\n\nДля задачи рассуждений задайте требуемое заключение и условия, которым оно должно отвечать. Карточка разработчика также отмечает, что пакетная обработка для этой модели не поддерживается. Запросите итоговый материал, указывающий предлагаемое изменение, использованные доказательства и оставшееся условие для проверки. Так вывод модели программирования остаётся связан с реальной задачей разработки приложения.",
  "editorialOverlay": {
    "copy_fields": {
      "practical_html": "<h3>Практическая задача</h3><p>Технический пример на английском</p><pre><code>Patch an unsafe retry counter\n\nFix this pseudocode: attempts=0; while attempts &lt; 3: try send(); on success return; on failure continue; attempts += 1. It can retry forever. Provide a corrected bounded loop that attempts send at most three times, stops on success and reports failure after exhaustion. Include test scenarios for immediate success and three failures, without claiming actual sends.</code></pre><h4>Ожидаемый результат</h4><pre><code>Corrected framework-neutral pseudocode plus two tests with expected attempt counts and terminal outcomes.</code></pre><h4>Проверка результата</h4><pre><code>The failure path increments the counter, total attempts never exceed three, and success terminates immediately.</code></pre>"
    },
    "copy_sha256": "0646a0605ad0cddf97da874811f3f4cb8b223123e7fb80db3f4dfa4a84a217db",
    "copy_source": {
      "locale": "ru",
      "pack_sha256": "0f56d90ba41881e1134accf82e57338f246f8753ca4c0cee929aaffada5d10e7",
      "record_model_id": "x-ai/grok-build-0.1",
      "source_facts_sha256": "c357a9daefbfc79b5e1e52fd09bf61b3fcf79b0415cc220f3dc71a1e84acac27",
      "validation_sha256": "a2ac2f28056280fc0b2ea34a501bf156d5ce155406e57e708edf30bfdf6bfdc6"
    },
    "html_sha256": "f59dc94b81f071a4703c16a7a8c5bda203cc8fff0eb865ed8ce9236fe1802a41",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ru",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">SpaceXAI: Grok Build 0.1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Закрыть\">×</button></div><div class=\"idline\"><span>SpaceXAI /</span><code>x-ai/grok-build-0.1</code><button type=\"button\" id=\"copy-id\">Скопировать ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Разделы карточки модели\"><button type=\"button\" data-card-jump=\"overview\">Начало</button><button type=\"button\" data-card-jump=\"methods\">Входные данные и методы</button><button type=\"button\" data-card-jump=\"pricing\">Тарифы</button><button type=\"button\" data-card-jump=\"examples\">Примеры</button><button type=\"button\" data-card-jump=\"results\">Результаты</button><button type=\"button\" data-card-jump=\"aliases\">Псевдонимы</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Методы API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|x-ai%2Fgrok-build-0.1\">Chat</button><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|x-ai%2Fgrok-build-0.1\">Messages</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Начало</h3><p class=\"mdesc-full\">Grok Build 0.1 — модель программирования для агентной разработки ПО, инженерных задач и рабочих процессов. Она принимает текст и изображения, выдаёт текст и сочетает рассуждения, вызов функций и структурированные ответы в контексте на 256 000 токенов.</p><dl class=\"card-io\" data-card-io><div><dt>Допустимые входные данные</dt><dd>Текст</dd></div><div><dt>Результаты</dt><dd>Текст</dd></div></dl><details class=\"card-about\"><summary>О модели</summary><p class=\"note-s\" data-model-method-boundary>Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.</p><div class=\"mabout\" id=\"m-about\"><p>Grok Build 0.1 — ориентированная на программирование модель Grok от разработчика для агентной разработки ПО, инженерных задач и рабочих процессов. Она принимает письменные материалы и изображения и генерирует текст, включая код и структурированные результаты. Карточка модели указывает окно контекста в 256 000 токенов и перечисляет рассуждения, вызов функций и структурированные ответы среди возможностей.</p><p>Для задачи программирования предоставьте желаемое поведение, соответствующую реализацию и наблюдаемый сбой или требуемое изменение. Укажите интерфейсы и зависимости, совместимость которых нужно сохранить. Полезным результатом может быть предлагаемый патч, объяснение причины и проверки для оценки изменения. Сосредоточьте исходные материалы и запрашиваемый вывод на определённой задаче.</p><p>Графический ввод добавляет визуальные доказательства к инженерному заданию или задаче интерфейса. Передайте изображение с вопросом, связанным с видимой особенностью, и добавьте письменную спецификацию, необходимую для её понимания. Например, скриншот может поддержать описание проблемы интерфейса, а исходный код и наблюдаемое поведение устанавливают, как приложение её реализует.</p><p>Вызов функций связывает предложенный моделью шаг с инструментом приложения. Определите функцию и её аргументы, дайте модели запросить вызов, выполните его в приложении и верните фактический результат. Разработчик различает этот путь с исполнением на стороне клиента и свои серверные инструменты. Сохраняйте вызов и результат вместе, чтобы продолжение опиралось на наблюдение, а не на предположение об успехе предложенной команды.</p><p>Структурированные ответы могут организовать извлечение данных или отчёт вокруг заданных полей. Передайте нужную схему и смысл задачи, затем изучите сведения, содержащиеся в возвращённом материале. Разработчик поддерживает практическое подмножество JSON Schema; некоторые сложные или слишком объёмные ограничения соблюдаются по мере возможностей. Поэтому проверка формата отличается от проверки корректности извлечённых фактов или предлагаемого кода.</p><p>Для задачи рассуждений задайте требуемое заключение и условия, которым оно должно отвечать. Карточка разработчика также отмечает, что пакетная обработка для этой модели не поддерживается. Запросите итоговый материал, указывающий предлагаемое изменение, использованные доказательства и оставшееся условие для проверки. Так вывод модели программирования остаётся связан с реальной задачей разработки приложения.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Доступно в Ailoot · входные данные и методы</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Чат OpenAI</b> <code>POST /v1/chat/completions</code></summary><dl class=\"method-capabilities\"><div><dt>Входные данные</dt><dd><code>text</code></dd></div><div><dt>Результат</dt><dd><code>text</code></dd></div><div><dt>Выходной формат</dt><dd>json или SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Поле</th><th>Тип</th><th>Требование</th><th>Значения и ограничения</th><th>По умолчанию</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Обязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>x-ai/grok-build-0.1</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>message[]</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Обязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Минимум элементов: 1</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Обязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Примеры: system, user, assistant, tool, function</div><div>Условия: Эти роли явно представлены типами совместимости исходного кода; точный набор ролей зависит от модели.</div><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string|content_part[]|null</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">messages[].tool_calls</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>tool_call[]</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">messages[].tool_call_id</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Применяется, когда: role=tool; используйте фактически возвращённый ID</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">messages[].name</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">messages[].reasoning_content</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Применяется, когда: Передавайте обратно фактически возвращённые рассуждения, если эта модель их использует</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">messages[].reasoning_details</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>object|array</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>integer</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Минимум: 1</div><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">max_completion_tokens</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>integer</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Минимум: 1</div><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>boolean</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span></td><td data-cell-label=\"По умолчанию\" data-default=\"known\"><span class=\"card-cell-label\">По умолчанию</span>false</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">stream_options.include_usage</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>boolean</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">temperature</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>number</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">top_p</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>number</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">stop</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string|string[]</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">tools</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>function_tool[]</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">tools[].type</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>function</div><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">tools[].function.name</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Обязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Применяется, когда: передан инструмент-функция</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">tools[].function.description</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">tools[].function.parameters</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>JSON_schema</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">tool_choice</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string|object</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">parallel_tool_calls</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>boolean</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>object</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">reasoning_effort</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">reasoning</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>object</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">service_tier</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_compatibility\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">instructions</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Поле совместимости</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">functions</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>function[]</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">function_call</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string|object</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">prompt_cache_options</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>object</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div class=\"note-s\">Зависит от модели</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">modalities</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string[]</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>text</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>object</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Условия: provider.options отклоняется на этом текстовом маршруте Ultra</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">cache_control.ttl</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Условия: 1h отклоняется в фактических местах настройки кэша запросов</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Сочетания входных материалов</summary><p class=\"note-s\"><b>Текст</b> · Текст UTF8</p><p class=\"note-s\"><code>messages[].content</code></p></details><details class=\"note-s\" data-method-contract><summary>Параметры и жизненный цикл метода</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Параметр</th><th>Контракт</th></tr></thead><tbody><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>content_type</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>application/json</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>required</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>model, messages</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>material_types</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>text</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>messages</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>массив сообщений со структурой role/content</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>file_material</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>фактический документ UTF-8 вставляется как буквальный текст; ID файла не выводится из него</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>optional_controls</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>stream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>control_scope</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>зависит от модели; пользовательские инструменты-функции отличаются от инструментов, выполняемых на стороне сервиса</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>output_modalities</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>text</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>hosted_operations</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>false</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>multimodal_input_binding</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>null</td></tr></tbody></table></div><p>Жизненный цикл: <code>synchronous_or_streamed</code></p><p class=\"note-s\">Отправляйте точный ID модели вместе с messages.</p><p class=\"note-s\">Длина контекста не является пределом выхода.</p><p class=\"note-s\">Текстовый файл может передавать буквальный текст; входные изображения, аудио и файловые объекты требуют точной привязки.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Тарифы</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.</p><dl data-price-conditions><dt>Быстрый режим</dt><dd>Стандартный тариф <span class=\"note-s\">При выборе быстрого режима</span></dd><dt>Режим flex</dt><dd>Стандартный тариф <span class=\"note-s\">При выборе режима flex</span></dd><dt>Максимальная интенсивность рассуждений</dt><dd>Стандартный тариф <span class=\"note-s\">При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ставки Ailoot</h4><h4>Цены по конфигурациям</h4><p class=\"note-s\">Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Конфигурация</th><th>Шкала ставок</th><th>Токенов контекста больше</th><th>Токенов контекста не более, включительно</th><th>Плата</th></tr></thead><tbody><tr><th data-cell-label=\"Конфигурация\" scope=\"row\"><span class=\"card-cell-label\">Конфигурация</span>Базовые ставки за токены</th><td data-cell-label=\"Шкала ставок\"><span class=\"card-cell-label\">Шкала ставок</span>Базовая ставка</td><td data-cell-label=\"Токенов контекста больше\"><span class=\"card-cell-label\">Токенов контекста больше</span>—</td><td data-cell-label=\"Токенов контекста не более, включительно\"><span class=\"card-cell-label\">Токенов контекста не более, включительно</span>Без верхней границы</td><td data-cell-label=\"Плата\"><span class=\"card-cell-label\">Плата</span><div><span>Вход · Входные токены</span> <b>$0.002</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Выход · Выходные токены</span> <b>$0.004</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Чтение кэша</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Запись в кэш</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Запись в кэш, 1 час</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div></td></tr><tr><th data-cell-label=\"Конфигурация\" scope=\"row\"><span class=\"card-cell-label\">Конфигурация</span>Уровень 1 по длине запроса</th><td data-cell-label=\"Шкала ставок\"><span class=\"card-cell-label\">Шкала ставок</span>—</td><td data-cell-label=\"Токенов контекста больше\"><span class=\"card-cell-label\">Токенов контекста больше</span>0</td><td data-cell-label=\"Токенов контекста не более, включительно\"><span class=\"card-cell-label\">Токенов контекста не более, включительно</span>200 000</td><td data-cell-label=\"Плата\"><span class=\"card-cell-label\">Плата</span><div><span>Вход · Входные токены</span> <b>$0.002</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Выход · Выходные токены</span> <b>$0.004</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Чтение кэша</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Запись в кэш</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Запись в кэш, 1 час</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div></td></tr><tr><th data-cell-label=\"Конфигурация\" scope=\"row\"><span class=\"card-cell-label\">Конфигурация</span>Уровень 2 по длине запроса</th><td data-cell-label=\"Шкала ставок\"><span class=\"card-cell-label\">Шкала ставок</span>—</td><td data-cell-label=\"Токенов контекста больше\"><span class=\"card-cell-label\">Токенов контекста больше</span>200 000</td><td data-cell-label=\"Токенов контекста не более, включительно\"><span class=\"card-cell-label\">Токенов контекста не более, включительно</span>Без верхней границы</td><td data-cell-label=\"Плата\"><span class=\"card-cell-label\">Плата</span><div><span>Вход · Входные токены</span> <b>$0.004</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Выход · Выходные токены</span> <b>$0.008</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Чтение кэша</span> <b>$0.0008</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Запись в кэш</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Запись в кэш, 1 час</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. <a href=\"/docs/ru/billing/reserve/\">Как работают резервирование и расчёт →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Примеры запросов</h3><h4>Ailoot Ultra · Чат OpenAI</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Варианты кода\"><button class=\"cg-tab\" id=\"model-code-2714-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2714-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-2714-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2714-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</button><button class=\"cg-tab\" id=\"model-code-2714-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2714-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Поток Python</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Скопировать код\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2714-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2714-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;x-ai/grok-build-0.1&quot;, &quot;messages&quot;: [{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Explain the difference between an observation and a hypothesis in three sentences.&quot;}]}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nfor x in r.get(&quot;choices&quot;,[]):\n    if x.get(&quot;message&quot;,{}).get(&quot;content&quot;): print(x[&quot;message&quot;][&quot;content&quot;])\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2714-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2714-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.chat.completions.create(model=&#39;x-ai/grok-build-0.1&#39;,messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Explain observations and hypotheses in three sentences.&quot;}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nsave_result(result.to_dict(mode=&quot;json&quot;))\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2714-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2714-tab-2\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nwith client.chat.completions.stream(model=&#39;x-ai/grok-build-0.1&#39;,messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Explain observations and hypotheses in three sentences.&quot;}]) as stream:\n    with Path(&quot;stream-events.jsonl&quot;).open(&quot;w&quot;,encoding=&quot;utf-8&quot;) as log:\n        for event in stream:\n            payload=event.to_dict(mode=&quot;json&quot;)\n            log.write(json.dumps(payload,ensure_ascii=False)+&quot;\\n&quot;); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=&quot;json&quot;),&quot;stream-result&quot;)\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Получить и сохранить результаты</h3><h4>Ailoot Ultra · Чат OpenAI</h4><p class=\"note-s\">json или SSE</p><div class=\"card-result-process\" data-all-results><h5>Сохраняйте все готовые результаты</h5><p class=\"note-s\">Сохраняйте каждый полностью полученный ответ, файл и элемент содержимого.</p><p class=\"note-s\">Сохраняйте каждый вариант ответа с его содержимым, вызовами инструментов и рассуждениями. В SSE собирайте изменения по индексам варианта и инструмента, сохраняйте итоговую причину завершения и данные использования.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Если нужно проверить исходный ответ</h5><p class=\"note-s\">Сохраняйте ID запросов и ответов, а также заголовки. Общий URL получения текстового задания не предоставлен.</p></div><details class=\"card-about\" data-output-fields><summary>Поля ответа</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Поле</th><th>Тип</th></tr></thead><tbody><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">choices[].index</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>integer</td></tr><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">choices[].message.content</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>string|null</td></tr><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">choices[].message.tool_calls</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>tool_call[]</td></tr><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">choices[].message.reasoning_content</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>string</td></tr><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">choices[].message.reasoning_details</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>object|array</td></tr><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">choices[].finish_reason</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>string|null</td></tr><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Ошибки и дальнейшие шаги</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Ответ</th><th>Условие</th><th>Следующий шаг</th></tr></thead><tbody><tr><th data-cell-label=\"Ответ\" scope=\"row\"><span class=\"card-cell-label\">Ответ</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Условие\"><span class=\"card-cell-label\">Условие</span>Неверные обязательные поля, представление материалов или значение параметра</td><td data-cell-label=\"Следующий шаг\"><span class=\"card-cell-label\">Следующий шаг</span>Исправьте указанные поля перед новым запросом на создание.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Псевдонимы</h3><h4>Псевдонимы моделей</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=x-ai%2Fgrok-build-0.1&amp;route=Ultra&amp;caller=x-ai%2Fgrok-build-0.1&amp;fmt=chat\"><code>x-ai/grok-build-0.1</code></a></span></p><h4>Псевдонимы путей метода</h4><p class=\"note-s\">Используйте пути методов, указанные выше.</p><h4>Связанные ID для вызова</h4><p class=\"note-s\"><a href=\"#m=x-ai%2Fgrok-build-0.1&amp;route=Ultra&amp;caller=x-ai%2Fgrok-build-0.1&amp;fmt=chat\"><code>x-ai/grok-build-0.1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "x-ai/grok-build-0.1",
        "fmt": "chat",
        "http": "POST",
        "path": "/v1/chat/completions",
        "request_model_id": "x-ai/grok-build-0.1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|chat|/v1/chat/completions|x-ai%2Fgrok-build-0.1",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0.4,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Неверные обязательные поля, представление материалов или значение параметра",
                "http_status": 400,
                "recovery": "Исправьте указанные поля перед новым запросом на создание.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "A model-dependent field needs the exact published model profile; unspecified defaults/enums are not guessed.",
              "Tool calls propose actions; the client application returns actual observations with the returned call ID.",
              "Guarded canonical keys must occur once; duplicate or case-varied model/tools/cap fields are rejected."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Сохраняйте ID запросов и ответов, а также заголовки. Общий URL получения текстового задания не предоставлен."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "Текст UTF8"
              }
            ],
            "operation_modes": [
              "conversation",
              "function_tool_continuation",
              "streaming"
            ],
            "outputs": {
              "all_results": "Сохраняйте каждый вариант ответа с его содержимым, вызовами инструментов и рассуждениями. В SSE собирайте изменения по индексам варианта и инструмента, сохраняйте итоговую причину завершения и данные использования.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json или SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "x-ai/grok-build-0.1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "conditions": "Эти роли явно представлены типами совместимости исходного кода; точный набор ролей зависит от модели.",
                "default": null,
                "default_known": false,
                "enum": [
                  "system",
                  "user",
                  "assistant",
                  "tool",
                  "function"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string|content_part[]|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_calls",
                "required": false,
                "type": "tool_call[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_call_id",
                "required": false,
                "type": "string",
                "when": "role=tool; используйте фактически возвращённый ID"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].name",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_content",
                "required": false,
                "type": "string",
                "when": "Передавайте обратно фактически возвращённые рассуждения, если эта модель их использует"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_details",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_completion_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stream_options.include_usage",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "top_p",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stop",
                "required": false,
                "type": "string|string[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "required": false,
                "type": "function_tool[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": [
                  "function"
                ],
                "enum_known": true,
                "name": "tools[].type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.name",
                "required": true,
                "type": "string",
                "when": "передан инструмент-функция"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.description",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.parameters",
                "required": false,
                "type": "JSON_schema"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tool_choice",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "parallel_tool_calls",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "response_format",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning_effort",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_compatibility",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "instructions",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "functions",
                "required": false,
                "type": "function[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "function_call",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "prompt_cache_options",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "text"
                ],
                "enum_known": true,
                "name": "modalities",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options отклоняется на этом текстовом маршруте Ultra",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "1h отклоняется в фактических местах настройки кэша запросов",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "cache_control.ttl",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "Отправляйте точный ID модели вместе с messages.",
            "Длина контекста не является пределом выхода.",
            "Текстовый файл может передавать буквальный текст; входные изображения, аудио и файловые объекты требуют точной привязки."
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "зависит от модели; пользовательские инструменты-функции отличаются от инструментов, выполняемых на стороне сервиса",
            "file_material": "фактический документ UTF-8 вставляется как буквальный текст; ID файла не выводится из него",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "массив сообщений со структурой role/content",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream",
              "temperature",
              "top_p",
              "stop",
              "max_tokens",
              "max_completion_tokens",
              "reasoning",
              "response_format",
              "tools",
              "tool_choice"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Базовые ставки за токены",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": 200000,
              "min_context_tokens_exclusive": 0
            },
            "label": "Уровень 1 по длине запроса",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 200000
            },
            "label": "Уровень 2 по длине запроса",
            "units": [
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000008",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000008",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"x-ai/grok-build-0.1\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain the difference between an observation and a hypothesis in three sentences.\"}]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model='x-ai/grok-build-0.1',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          },
          {
            "code": "from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nwith client.chat.completions.stream(model='x-ai/grok-build-0.1',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}]) as stream:\n    with Path(\"stream-events.jsonl\").open(\"w\",encoding=\"utf-8\") as log:\n        for event in stream:\n            payload=event.to_dict(mode=\"json\")\n            log.write(json.dumps(payload,ensure_ascii=False)+\"\\n\"); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=\"json\"),\"stream-result\")\n",
            "label": "Python SDK streaming · all events",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 2,
        "input": [
          "text"
        ],
        "label": "Чат OpenAI",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 4,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Быстрый режим",
            "value": "Стандартный тариф",
            "when": "При выборе быстрого режима"
          },
          {
            "label": "Режим flex",
            "value": "Стандартный тариф",
            "when": "При выборе режима flex"
          },
          {
            "label": "Максимальная интенсивность рассуждений",
            "value": "Стандартный тариф",
            "when": "При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": 200000,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 200000
            },
            "label": "Request-length tier 2",
            "units": [
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000008",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000008",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "x-ai/grok-build-0.1",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": 0.4,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 2,
            "input_multiplier": null,
            "interval_boundary": "min_exclusive_max_inclusive",
            "max": 200000,
            "max_tokens": 200000,
            "min": 0,
            "min_tokens": 0,
            "null_rate_policy": "unknown or inherited; never zero",
            "out": 4,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          },
          {
            "cache_read": 0.8,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 4,
            "input_multiplier": null,
            "interval_boundary": "min_exclusive_max_inclusive",
            "max": null,
            "max_tokens": null,
            "min": 200000,
            "min_tokens": 200000,
            "null_rate_policy": "unknown or inherited; never zero",
            "out": 8,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 1,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.002000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000002",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000004",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    },
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">SpaceXAI: Grok Build 0.1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Закрыть\">×</button></div><div class=\"idline\"><span>SpaceXAI /</span><code>x-ai/grok-build-0.1</code><button type=\"button\" id=\"copy-id\">Скопировать ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Разделы карточки модели\"><button type=\"button\" data-card-jump=\"overview\">Начало</button><button type=\"button\" data-card-jump=\"methods\">Входные данные и методы</button><button type=\"button\" data-card-jump=\"pricing\">Тарифы</button><button type=\"button\" data-card-jump=\"examples\">Примеры</button><button type=\"button\" data-card-jump=\"results\">Результаты</button><button type=\"button\" data-card-jump=\"aliases\">Псевдонимы</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Методы API\"><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|x-ai%2Fgrok-build-0.1\">Chat</button><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|x-ai%2Fgrok-build-0.1\">Messages</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-1\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Начало</h3><p class=\"mdesc-full\">Grok Build 0.1 — модель программирования для агентной разработки ПО, инженерных задач и рабочих процессов. Она принимает текст и изображения, выдаёт текст и сочетает рассуждения, вызов функций и структурированные ответы в контексте на 256 000 токенов.</p><dl class=\"card-io\" data-card-io><div><dt>Допустимые входные данные</dt><dd>Текст</dd></div><div><dt>Результаты</dt><dd>json · sse</dd></div></dl><details class=\"card-about\"><summary>О модели</summary><p class=\"note-s\" data-model-method-boundary>Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.</p><div class=\"mabout\" id=\"m-about\"><p>Grok Build 0.1 — ориентированная на программирование модель Grok от разработчика для агентной разработки ПО, инженерных задач и рабочих процессов. Она принимает письменные материалы и изображения и генерирует текст, включая код и структурированные результаты. Карточка модели указывает окно контекста в 256 000 токенов и перечисляет рассуждения, вызов функций и структурированные ответы среди возможностей.</p><p>Для задачи программирования предоставьте желаемое поведение, соответствующую реализацию и наблюдаемый сбой или требуемое изменение. Укажите интерфейсы и зависимости, совместимость которых нужно сохранить. Полезным результатом может быть предлагаемый патч, объяснение причины и проверки для оценки изменения. Сосредоточьте исходные материалы и запрашиваемый вывод на определённой задаче.</p><p>Графический ввод добавляет визуальные доказательства к инженерному заданию или задаче интерфейса. Передайте изображение с вопросом, связанным с видимой особенностью, и добавьте письменную спецификацию, необходимую для её понимания. Например, скриншот может поддержать описание проблемы интерфейса, а исходный код и наблюдаемое поведение устанавливают, как приложение её реализует.</p><p>Вызов функций связывает предложенный моделью шаг с инструментом приложения. Определите функцию и её аргументы, дайте модели запросить вызов, выполните его в приложении и верните фактический результат. Разработчик различает этот путь с исполнением на стороне клиента и свои серверные инструменты. Сохраняйте вызов и результат вместе, чтобы продолжение опиралось на наблюдение, а не на предположение об успехе предложенной команды.</p><p>Структурированные ответы могут организовать извлечение данных или отчёт вокруг заданных полей. Передайте нужную схему и смысл задачи, затем изучите сведения, содержащиеся в возвращённом материале. Разработчик поддерживает практическое подмножество JSON Schema; некоторые сложные или слишком объёмные ограничения соблюдаются по мере возможностей. Поэтому проверка формата отличается от проверки корректности извлечённых фактов или предлагаемого кода.</p><p>Для задачи рассуждений задайте требуемое заключение и условия, которым оно должно отвечать. Карточка разработчика также отмечает, что пакетная обработка для этой модели не поддерживается. Запросите итоговый материал, указывающий предлагаемое изменение, использованные доказательства и оставшееся условие для проверки. Так вывод модели программирования остаётся связан с реальной задачей разработки приложения.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Доступно в Ailoot · входные данные и методы</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Сообщения Anthropic</b> <code>POST /v1/messages</code></summary><dl class=\"method-capabilities\"><div><dt>Входные данные</dt><dd><code>text</code></dd></div><div><dt>Результат</dt><dd><code>json</code>, <code>sse</code></dd></div><div><dt>Выходной формат</dt><dd>JSON или SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Поле</th><th>Тип</th><th>Требование</th><th>Значения и ограничения</th><th>По умолчанию</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Обязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>x-ai/grok-build-0.1</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>message[]</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Обязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Обязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>user, assistant</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Обязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>integer</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Обязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>boolean</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span></td><td data-cell-label=\"По умолчанию\" data-default=\"known\"><span class=\"card-cell-label\">По умолчанию</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Сочетания входных материалов</summary><p class=\"note-s\"><b>Текст</b> · Текст UTF-8</p><p class=\"note-s\"><code>строка messages[].content</code></p></details><details class=\"note-s\" data-method-contract><summary>Параметры и жизненный цикл метода</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Параметр</th><th>Контракт</th></tr></thead><tbody><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>content_type</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>application/json</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>required</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>model, messages, max_tokens</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>optional_controls</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>stream</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>material_types</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>text</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>text_file_material</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>Прочитайте фактический документ UTF-8 и поместите его текст в указанную строку входа или содержимого сообщения.</td></tr></tbody></table></div><p>Жизненный цикл: <code>synchronous_or_streamed</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Тарифы</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.</p><dl data-price-conditions><dt>Быстрый режим</dt><dd>Стандартный тариф <span class=\"note-s\">При выборе быстрого режима</span></dd><dt>Режим flex</dt><dd>Стандартный тариф <span class=\"note-s\">При выборе режима flex</span></dd><dt>Максимальная интенсивность рассуждений</dt><dd>Стандартный тариф <span class=\"note-s\">При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ставки Ailoot</h4><h4>Цены по конфигурациям</h4><p class=\"note-s\">Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Конфигурация</th><th>Шкала ставок</th><th>Токенов контекста больше</th><th>Токенов контекста не более, включительно</th><th>Плата</th></tr></thead><tbody><tr><th data-cell-label=\"Конфигурация\" scope=\"row\"><span class=\"card-cell-label\">Конфигурация</span>Базовые ставки за токены</th><td data-cell-label=\"Шкала ставок\"><span class=\"card-cell-label\">Шкала ставок</span>Базовая ставка</td><td data-cell-label=\"Токенов контекста больше\"><span class=\"card-cell-label\">Токенов контекста больше</span>—</td><td data-cell-label=\"Токенов контекста не более, включительно\"><span class=\"card-cell-label\">Токенов контекста не более, включительно</span>Без верхней границы</td><td data-cell-label=\"Плата\"><span class=\"card-cell-label\">Плата</span><div><span>Вход · Входные токены</span> <b>$0.002</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Выход · Выходные токены</span> <b>$0.004</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Чтение кэша</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Запись в кэш</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Запись в кэш, 1 час</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div></td></tr><tr><th data-cell-label=\"Конфигурация\" scope=\"row\"><span class=\"card-cell-label\">Конфигурация</span>Уровень 1 по длине запроса</th><td data-cell-label=\"Шкала ставок\"><span class=\"card-cell-label\">Шкала ставок</span>—</td><td data-cell-label=\"Токенов контекста больше\"><span class=\"card-cell-label\">Токенов контекста больше</span>0</td><td data-cell-label=\"Токенов контекста не более, включительно\"><span class=\"card-cell-label\">Токенов контекста не более, включительно</span>200 000</td><td data-cell-label=\"Плата\"><span class=\"card-cell-label\">Плата</span><div><span>Вход · Входные токены</span> <b>$0.002</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Выход · Выходные токены</span> <b>$0.004</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Чтение кэша</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Запись в кэш</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Запись в кэш, 1 час</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div></td></tr><tr><th data-cell-label=\"Конфигурация\" scope=\"row\"><span class=\"card-cell-label\">Конфигурация</span>Уровень 2 по длине запроса</th><td data-cell-label=\"Шкала ставок\"><span class=\"card-cell-label\">Шкала ставок</span>—</td><td data-cell-label=\"Токенов контекста больше\"><span class=\"card-cell-label\">Токенов контекста больше</span>200 000</td><td data-cell-label=\"Токенов контекста не более, включительно\"><span class=\"card-cell-label\">Токенов контекста не более, включительно</span>Без верхней границы</td><td data-cell-label=\"Плата\"><span class=\"card-cell-label\">Плата</span><div><span>Вход · Входные токены</span> <b>$0.004</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Выход · Выходные токены</span> <b>$0.008</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Чтение кэша</span> <b>$0.0008</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Запись в кэш</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Запись в кэш, 1 час</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. <a href=\"/docs/ru/billing/reserve/\">Как работают резервирование и расчёт →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Примеры запросов</h3><h4>Ailoot Ultra · Сообщения Anthropic</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Варианты кода\"><button class=\"cg-tab\" id=\"model-code-2715-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2715-panel-0\" aria-selected=\"true\" tabindex=\"0\">Полное минимальное тело запроса в формате JSON</button><button class=\"cg-tab\" id=\"model-code-2715-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2715-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · используйте свой документ UTF-8</button><button class=\"cg-tab\" id=\"model-code-2715-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2715-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python · сохраните полный результат</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Скопировать код\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2715-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2715-tab-0\"><pre data-lang=\"json\"><code>{\n  &quot;model&quot;: &quot;x-ai/grok-build-0.1&quot;,\n  &quot;max_tokens&quot;: 128,\n  &quot;messages&quot;: [\n    {\n      &quot;role&quot;: &quot;user&quot;,\n      &quot;content&quot;: &quot;Summarize the incident report.&quot;\n    }\n  ],\n  &quot;stream&quot;: false\n}</code></pre></div><div class=\"cg-pane\" id=\"model-code-2715-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2715-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;x-ai/grok-build-0.1&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nPath(&#39;request.json&#39;).write_text(json.dumps(payload, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H &quot;x-api-key: $AILOOT_API_KEY&quot; -H &#39;anthropic-version: 2023-06-01&#39; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2715-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2715-tab-2\" hidden><pre data-lang=\"python\"><code>import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;x-ai/grok-build-0.1&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ[&#39;AILOOT_API_KEY&#39;]\nif not api_key.strip():\n    raise SystemExit(&#39;Set AILOOT_API_KEY before making a request&#39;)\nheaders = {&#39;x-api-key&#39;: &#39;PLACEHOLDER_KEY&#39;, &#39;anthropic-version&#39;: &#39;2023-06-01&#39;, &#39;Content-Type&#39;: &#39;application/json&#39;}\nheaders[&#39;x-api-key&#39;] = api_key\nrequest = Request(&#39;https://api.ailoot.ai/v1/messages&#39;, data=json.dumps(payload, ensure_ascii=False).encode(&#39;utf-8&#39;), headers=headers, method=&#39;POST&#39;)\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path(&#39;response-headers.txt&#39;).write_text(str(response.headers), encoding=&#39;utf-8&#39;)\nexcept HTTPError as error:\n    Path(&#39;result.json&#39;).write_bytes(error.read())\n    Path(&#39;response-headers.txt&#39;).write_text(str(error.headers), encoding=&#39;utf-8&#39;)\n    raise\nPath(&#39;result.json&#39;).write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Получить и сохранить результаты</h3><h4>Ailoot Ultra · Сообщения Anthropic</h4><p class=\"note-s\">JSON или SSE</p><div class=\"card-result-process\" data-all-results><h5>Сохраняйте все готовые результаты</h5><p class=\"note-s\">Сохраняйте каждый полностью полученный ответ, файл и элемент содержимого.</p><p class=\"note-s\">Сохраняйте все блоки содержимого, подписи рассуждений и фактические ID обращений к инструментам. Собирайте все изменения блоков SSE; первый текстовый блок не является полным выходом.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Если нужно проверить исходный ответ</h5><p class=\"note-s\">Сохраняйте ID запросов и ответов, а также заголовки. Общий URL получения текстового задания не предоставлен.</p></div><details class=\"card-about\" data-output-fields><summary>Поля ответа</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Поле</th><th>Тип</th></tr></thead><tbody><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>string</td></tr><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>string</td></tr><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">content[]</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>text|thinking|tool_use|other content block</td></tr><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">stop_reason</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>string|null</td></tr><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Ошибки и дальнейшие шаги</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Ответ</th><th>Условие</th><th>Следующий шаг</th></tr></thead><tbody><tr><th data-cell-label=\"Ответ\" scope=\"row\"><span class=\"card-cell-label\">Ответ</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Условие\"><span class=\"card-cell-label\">Условие</span>Неверные обязательные поля, представление материалов или значение параметра</td><td data-cell-label=\"Следующий шаг\"><span class=\"card-cell-label\">Следующий шаг</span>Исправьте указанные поля перед новым запросом на создание.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Псевдонимы</h3><h4>Псевдонимы моделей</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=x-ai%2Fgrok-build-0.1&amp;route=Ultra&amp;caller=x-ai%2Fgrok-build-0.1&amp;fmt=messages\"><code>x-ai/grok-build-0.1</code></a></span></p><h4>Псевдонимы путей метода</h4><p class=\"note-s\">Используйте пути методов, указанные выше.</p><h4>Связанные ID для вызова</h4><p class=\"note-s\"><a href=\"#m=x-ai%2Fgrok-build-0.1&amp;route=Ultra&amp;caller=x-ai%2Fgrok-build-0.1&amp;fmt=messages\"><code>x-ai/grok-build-0.1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "x-ai/grok-build-0.1",
        "fmt": "messages",
        "http": "POST",
        "path": "/v1/messages",
        "request_model_id": "x-ai/grok-build-0.1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|messages|/v1/messages|x-ai%2Fgrok-build-0.1",
      "ordinal": 1,
      "rawMethod": {
        "available": null,
        "cache_read": 0.4,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "Неверные обязательные поля, представление материалов или значение параметра",
                "http_status": 400,
                "recovery": "Исправьте указанные поля перед новым запросом на создание.",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "x-ai/grok-build-0.1",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Сохраняйте ID запросов и ответов, а также заголовки. Общий URL получения текстового задания не предоставлен."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "строка messages[].content",
                "required_material": "Текст UTF-8"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "Сохраняйте все блоки содержимого, подписи рассуждений и фактические ID обращений к инструментам. Собирайте все изменения блоков SSE; первый текстовый блок не является полным выходом.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON или SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "x-ai/grok-build-0.1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "x-ai/grok-build-0.1"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "x-ai/grok-build-0.1",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "Прочитайте фактический документ UTF-8 и поместите его текст в указанную строку входа или содержимого сообщения."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Базовые ставки за токены",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": 200000,
              "min_context_tokens_exclusive": 0
            },
            "label": "Уровень 1 по длине запроса",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 200000
            },
            "label": "Уровень 2 по длине запроса",
            "units": [
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000008",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000008",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"x-ai/grok-build-0.1\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'x-ai/grok-build-0.1', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'x-ai/grok-build-0.1', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "messages",
        "http": "POST",
        "in": 2,
        "input": [
          "text"
        ],
        "label": "Сообщения Anthropic",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 4,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Быстрый режим",
            "value": "Стандартный тариф",
            "when": "При выборе быстрого режима"
          },
          {
            "label": "Режим flex",
            "value": "Стандартный тариф",
            "when": "При выборе режима flex"
          },
          {
            "label": "Максимальная интенсивность рассуждений",
            "value": "Стандартный тариф",
            "when": "При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": 200000,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 200000
            },
            "label": "Request-length tier 2",
            "units": [
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000008",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000008",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "x-ai/grok-build-0.1",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": 0.4,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 2,
            "input_multiplier": null,
            "max": 200000,
            "max_tokens": 200000,
            "min": 0,
            "min_tokens": 0,
            "out": 4,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          },
          {
            "cache_read": 0.8,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 4,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 200000,
            "min_tokens": 200000,
            "out": 8,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 1,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.002000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000002",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000004",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "x-ai/grok-build-0.1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "c9086a00977d3f55f0a2e4d4188e7ef6b6b0d6882514fa0cb5bbebb5b0fec25f",
    "input_html_sha256": "71ee830d6353bc3fe2c6c3183e02921738fff2d707a3cae0d09904638c2ac72e",
    "private_audit_sha256": "f5629221e217a5bda73d3d3b6506db58d22407dde4ca4bdecb9378e6ce83b34b",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ru/x-ai-grok-build-0-1/",
    "description": "Grok Build 0.1 — модель программирования для агентной разработки ПО, инженерных задач и рабочих процессов. Она принимает текст и изображения, выдаёт текст и сочетает рассуждения, вызов функций и структурированные ответы в контексте на 256 000 токенов.",
    "locale": "ru",
    "md_url": "https://ailoot.ai/models/ru/x-ai-grok-build-0-1/index.md",
    "title": "SpaceXAI: Grok Build 0.1 — Ailoot",
    "url": "https://ailoot.ai/models/ru/x-ai-grok-build-0-1/"
  },
  "practicalHtml": "<h3>Практическая задача</h3><p>Технический пример на английском</p><pre><code>Patch an unsafe retry counter\n\nFix this pseudocode: attempts=0; while attempts &lt; 3: try send(); on success return; on failure continue; attempts += 1. It can retry forever. Provide a corrected bounded loop that attempts send at most three times, stops on success and reports failure after exhaustion. Include test scenarios for immediate success and three failures, without claiming actual sends.</code></pre><h4>Ожидаемый результат</h4><pre><code>Corrected framework-neutral pseudocode plus two tests with expected attempt counts and terminal outcomes.</code></pre><h4>Проверка результата</h4><pre><code>The failure path increments the counter, total attempts never exceed three, and success terminates immediately.</code></pre>",
  "practicalText": "Практическая задача Технический пример на английском Patch an unsafe retry counter Fix this pseudocode: attempts=0; while attempts < 3: try send(); on success return; on failure continue; attempts += 1. It can retry forever. Provide a corrected bounded loop that attempts send at most three times, stops on success and reports failure after exhaustion. Include test scenarios for immediate success and three failures, without claiming actual sends. Ожидаемый результат Corrected framework-neutral pseudocode plus two tests with expected attempt counts and terminal outcomes. Проверка результата The failure path increments the counter, total attempts never exceed three, and success terminates immediately.",
  "rawModel": {
    "about": "Grok Build 0.1 — ориентированная на программирование модель Grok от разработчика для агентной разработки ПО, инженерных задач и рабочих процессов. Она принимает письменные материалы и изображения и генерирует текст, включая код и структурированные результаты. Карточка модели указывает окно контекста в 256 000 токенов и перечисляет рассуждения, вызов функций и структурированные ответы среди возможностей.\n\nДля задачи программирования предоставьте желаемое поведение, соответствующую реализацию и наблюдаемый сбой или требуемое изменение. Укажите интерфейсы и зависимости, совместимость которых нужно сохранить. Полезным результатом может быть предлагаемый патч, объяснение причины и проверки для оценки изменения. Сосредоточьте исходные материалы и запрашиваемый вывод на определённой задаче.\n\nГрафический ввод добавляет визуальные доказательства к инженерному заданию или задаче интерфейса. Передайте изображение с вопросом, связанным с видимой особенностью, и добавьте письменную спецификацию, необходимую для её понимания. Например, скриншот может поддержать описание проблемы интерфейса, а исходный код и наблюдаемое поведение устанавливают, как приложение её реализует.\n\nВызов функций связывает предложенный моделью шаг с инструментом приложения. Определите функцию и её аргументы, дайте модели запросить вызов, выполните его в приложении и верните фактический результат. Разработчик различает этот путь с исполнением на стороне клиента и свои серверные инструменты. Сохраняйте вызов и результат вместе, чтобы продолжение опиралось на наблюдение, а не на предположение об успехе предложенной команды.\n\nСтруктурированные ответы могут организовать извлечение данных или отчёт вокруг заданных полей. Передайте нужную схему и смысл задачи, затем изучите сведения, содержащиеся в возвращённом материале. Разработчик поддерживает практическое подмножество JSON Schema; некоторые сложные или слишком объёмные ограничения соблюдаются по мере возможностей. Поэтому проверка формата отличается от проверки корректности извлечённых фактов или предлагаемого кода.\n\nДля задачи рассуждений задайте требуемое заключение и условия, которым оно должно отвечать. Карточка разработчика также отмечает, что пакетная обработка для этой модели не поддерживается. Запросите итоговый материал, указывающий предлагаемое изменение, использованные доказательства и оставшееся условие для проверки. Так вывод модели программирования остаётся связан с реальной задачей разработки приложения.",
    "alias_of": null,
    "aliases": [],
    "author": "SpaceXAI",
    "available": null,
    "canonical_model": "x-ai/grok-build-0.1",
    "capabilities": {
      "context_length": 256000,
      "manufacturer_input": [
        "text",
        "image",
        "file"
      ],
      "manufacturer_output": [
        "text"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.002000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000002",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000004",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "Полная информация о ценах конфигурации — в подробностях."
      }
    ],
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "chat",
      "messages"
    ],
    "id": "x-ai/grok-build-0.1",
    "input": [
      "text"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0.4,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Неверные обязательные поля, представление материалов или значение параметра",
                "http_status": 400,
                "recovery": "Исправьте указанные поля перед новым запросом на создание.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "A model-dependent field needs the exact published model profile; unspecified defaults/enums are not guessed.",
              "Tool calls propose actions; the client application returns actual observations with the returned call ID.",
              "Guarded canonical keys must occur once; duplicate or case-varied model/tools/cap fields are rejected."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Сохраняйте ID запросов и ответов, а также заголовки. Общий URL получения текстового задания не предоставлен."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "Текст UTF8"
              }
            ],
            "operation_modes": [
              "conversation",
              "function_tool_continuation",
              "streaming"
            ],
            "outputs": {
              "all_results": "Сохраняйте каждый вариант ответа с его содержимым, вызовами инструментов и рассуждениями. В SSE собирайте изменения по индексам варианта и инструмента, сохраняйте итоговую причину завершения и данные использования.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json или SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "x-ai/grok-build-0.1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "conditions": "Эти роли явно представлены типами совместимости исходного кода; точный набор ролей зависит от модели.",
                "default": null,
                "default_known": false,
                "enum": [
                  "system",
                  "user",
                  "assistant",
                  "tool",
                  "function"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string|content_part[]|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_calls",
                "required": false,
                "type": "tool_call[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_call_id",
                "required": false,
                "type": "string",
                "when": "role=tool; используйте фактически возвращённый ID"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].name",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_content",
                "required": false,
                "type": "string",
                "when": "Передавайте обратно фактически возвращённые рассуждения, если эта модель их использует"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_details",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_completion_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stream_options.include_usage",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "top_p",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stop",
                "required": false,
                "type": "string|string[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "required": false,
                "type": "function_tool[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": [
                  "function"
                ],
                "enum_known": true,
                "name": "tools[].type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.name",
                "required": true,
                "type": "string",
                "when": "передан инструмент-функция"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.description",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.parameters",
                "required": false,
                "type": "JSON_schema"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tool_choice",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "parallel_tool_calls",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "response_format",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning_effort",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_compatibility",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "instructions",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "functions",
                "required": false,
                "type": "function[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "function_call",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "prompt_cache_options",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "text"
                ],
                "enum_known": true,
                "name": "modalities",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options отклоняется на этом текстовом маршруте Ultra",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "1h отклоняется в фактических местах настройки кэша запросов",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "cache_control.ttl",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "Отправляйте точный ID модели вместе с messages.",
            "Длина контекста не является пределом выхода.",
            "Текстовый файл может передавать буквальный текст; входные изображения, аудио и файловые объекты требуют точной привязки."
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "зависит от модели; пользовательские инструменты-функции отличаются от инструментов, выполняемых на стороне сервиса",
            "file_material": "фактический документ UTF-8 вставляется как буквальный текст; ID файла не выводится из него",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "массив сообщений со структурой role/content",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream",
              "temperature",
              "top_p",
              "stop",
              "max_tokens",
              "max_completion_tokens",
              "reasoning",
              "response_format",
              "tools",
              "tool_choice"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Базовые ставки за токены",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": 200000,
              "min_context_tokens_exclusive": 0
            },
            "label": "Уровень 1 по длине запроса",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 200000
            },
            "label": "Уровень 2 по длине запроса",
            "units": [
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000008",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000008",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"x-ai/grok-build-0.1\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain the difference between an observation and a hypothesis in three sentences.\"}]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model='x-ai/grok-build-0.1',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          },
          {
            "code": "from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nwith client.chat.completions.stream(model='x-ai/grok-build-0.1',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}]) as stream:\n    with Path(\"stream-events.jsonl\").open(\"w\",encoding=\"utf-8\") as log:\n        for event in stream:\n            payload=event.to_dict(mode=\"json\")\n            log.write(json.dumps(payload,ensure_ascii=False)+\"\\n\"); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=\"json\"),\"stream-result\")\n",
            "label": "Python SDK streaming · all events",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 2,
        "input": [
          "text"
        ],
        "label": "Чат OpenAI",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 4,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Быстрый режим",
            "value": "Стандартный тариф",
            "when": "При выборе быстрого режима"
          },
          {
            "label": "Режим flex",
            "value": "Стандартный тариф",
            "when": "При выборе режима flex"
          },
          {
            "label": "Максимальная интенсивность рассуждений",
            "value": "Стандартный тариф",
            "when": "При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": 200000,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 200000
            },
            "label": "Request-length tier 2",
            "units": [
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000008",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000008",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "x-ai/grok-build-0.1",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": 0.4,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 2,
            "input_multiplier": null,
            "interval_boundary": "min_exclusive_max_inclusive",
            "max": 200000,
            "max_tokens": 200000,
            "min": 0,
            "min_tokens": 0,
            "null_rate_policy": "unknown or inherited; never zero",
            "out": 4,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          },
          {
            "cache_read": 0.8,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 4,
            "input_multiplier": null,
            "interval_boundary": "min_exclusive_max_inclusive",
            "max": null,
            "max_tokens": null,
            "min": 200000,
            "min_tokens": 200000,
            "null_rate_policy": "unknown or inherited; never zero",
            "out": 8,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 1,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.002000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000002",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000004",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "available": null,
        "cache_read": 0.4,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "Неверные обязательные поля, представление материалов или значение параметра",
                "http_status": 400,
                "recovery": "Исправьте указанные поля перед новым запросом на создание.",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "x-ai/grok-build-0.1",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Сохраняйте ID запросов и ответов, а также заголовки. Общий URL получения текстового задания не предоставлен."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "строка messages[].content",
                "required_material": "Текст UTF-8"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "Сохраняйте все блоки содержимого, подписи рассуждений и фактические ID обращений к инструментам. Собирайте все изменения блоков SSE; первый текстовый блок не является полным выходом.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON или SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "x-ai/grok-build-0.1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "x-ai/grok-build-0.1"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "x-ai/grok-build-0.1",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "Прочитайте фактический документ UTF-8 и поместите его текст в указанную строку входа или содержимого сообщения."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Базовые ставки за токены",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": 200000,
              "min_context_tokens_exclusive": 0
            },
            "label": "Уровень 1 по длине запроса",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 200000
            },
            "label": "Уровень 2 по длине запроса",
            "units": [
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000008",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000008",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"x-ai/grok-build-0.1\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'x-ai/grok-build-0.1', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'x-ai/grok-build-0.1', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "messages",
        "http": "POST",
        "in": 2,
        "input": [
          "text"
        ],
        "label": "Сообщения Anthropic",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 4,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Быстрый режим",
            "value": "Стандартный тариф",
            "when": "При выборе быстрого режима"
          },
          {
            "label": "Режим flex",
            "value": "Стандартный тариф",
            "when": "При выборе режима flex"
          },
          {
            "label": "Максимальная интенсивность рассуждений",
            "value": "Стандартный тариф",
            "when": "При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": 200000,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.002000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000002",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 200000
            },
            "label": "Request-length tier 2",
            "units": [
              {
                "amount": "0.004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000008",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000008",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "x-ai/grok-build-0.1",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": 0.4,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 2,
            "input_multiplier": null,
            "max": 200000,
            "max_tokens": 200000,
            "min": 0,
            "min_tokens": 0,
            "out": 4,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          },
          {
            "cache_read": 0.8,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 4,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 200000,
            "min_tokens": 200000,
            "out": 8,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 1,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.002000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000002",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000004",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "x-ai/grok-build-0.1",
        "request_model_id": "x-ai/grok-build-0.1",
        "route_label": "Ultra"
      }
    ],
    "name": "SpaceXAI: Grok Build 0.1",
    "price": {
      "in": 2,
      "in_label": null,
      "out": 4,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 2,
      "sort_out": 4,
      "varies": true
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "OpenAI Chat · Base token rates",
        "units": [
          {
            "amount": "0.002000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000002",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000004",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "dimensions": {
          "max_context_tokens_inclusive": 200000,
          "min_context_tokens_exclusive": 0
        },
        "label": "OpenAI Chat · Request-length tier 1",
        "units": [
          {
            "amount": "0.002000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000002",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000004",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "dimensions": {
          "max_context_tokens_inclusive": null,
          "min_context_tokens_exclusive": 200000
        },
        "label": "OpenAI Chat · Request-length tier 2",
        "units": [
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.008000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000008",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.0008000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.0000008",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Anthropic Messages · Base token rates",
        "units": [
          {
            "amount": "0.002000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000002",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000004",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "dimensions": {
          "max_context_tokens_inclusive": 200000,
          "min_context_tokens_exclusive": 0
        },
        "label": "Anthropic Messages · Request-length tier 1",
        "units": [
          {
            "amount": "0.002000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000002",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000004",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "dimensions": {
          "max_context_tokens_inclusive": null,
          "min_context_tokens_exclusive": 200000
        },
        "label": "Anthropic Messages · Request-length tier 2",
        "units": [
          {
            "amount": "0.004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.008000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000008",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.0008000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.0000008",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "public_id": "x-ai/grok-build-0.1",
    "short": "Grok Build 0.1 — модель программирования для агентной разработки ПО, инженерных задач и рабочих процессов. Она принимает текст и изображения, выдаёт текст и сочетает рассуждения, вызов функций и структурированные ответы в контексте на 256 000 токенов."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        },
        {
          "contract_json_pointer": "/methods/1/rawMethod/contract",
          "html_json_pointer": "/methods/1/html",
          "method_ordinal": 1
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod",
        "/methods/1/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Grok Build 0.1 — модель программирования для агентной разработки ПО, инженерных задач и рабочих процессов. Она принимает текст и изображения, выдаёт текст и сочетает рассуждения, вызов функций и структурированные ответы в контексте на 256 000 токенов.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "da3fec80c54616bec74688d96baab212cb43585d5fd7f4f314a9afea17416bea",
    "renderer_sha256": "aa692ffec412026bdeaf316df24a58e6c5083045e5246f6033f898d132afa5ff"
  },
  "sourceRevision": "95f4bcffccdabf36310a1b166582b184ec497eb93a72bd09949e6f5e59c70058"
}
