Загрузка
Загрузка
Интегрируйте Vortixy Chat в свои проекты с одним Bearer-ключом. Те же лимиты, что и у вашего тарифа. Создать ключ в Панель → Ваш API
Vortixy — спокойное рабочее пространство ИИ для учёбы, письма, исследований, планирования и повседневной работы. Публичный API открывает тот же Chat, который вы используете на /chat, чтобы вы могли вызывать его из своего приложения, скрипта или рабочего пространства. Каждый ключ наследует лимиты вашего текущего тарифа — Free, Go $2, Pro $5 или Max $9 — и все квоты общие для веба и API.
https://www.vortixy.net/api/v1Authorization: Bearer vtx_live_...application/jsonОтправляйте ключ в заголовке Authorization. Никогда не раскрывайте его в клиентском коде или query-параметрах.
curl https://www.vortixy.net/api/v1/chat \
-H "Authorization: Bearer vtx_live_abc123..." \
-H "Content-Type: application/json" \
-d '{"message":"Hello Vortixy"}'Scopes: chat, images, search, tasks, usage. Ключи используют лимиты вашего тарифа.
Отправьте сообщение с необязательной историей диалога, включите веб-поиск или настройте глубину обдумывания. Учитывается в дневном лимите сообщений и токенов вашего плана.
Готово для чат-ботов: добавьте system для персоны бота (8k символов), stream:true для NDJSON-дельт, webSearch для живых источников. Каждый вызов списывает токены, запросы и поиски web — общие с вебом (сброс 00:00 UTC).
Все JSON-поля для POST /api/v1/chat. Обязательно только message — остальное опционально.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| message | string | yes | Сообщение пользователя (1–32 000 символов). |
| history | array | no | Предыдущие ходы: [{ role: 'user' | 'assistant', content: string }] (макс. 20). |
| system | string | no | Персона бота / инструкции (макс. 8k). Также принимает алиас instructions. |
| provider | string | no | gemini (управляемый, по умолчанию). Для BYOK сохраните ключ в Dashboard → Настройки → Ключи ИИ, затем используйте provider openai / anthropic / deepseek / gemini с BYOK-идентификатором модели. |
| model | string | no | ID модели — см. таблицу ниже. Должна быть разрешена для провайдера + тарифа. |
| thinkingLevel | enum | no | none | low | medium | high | xhigh | max (xhigh/max только для GPT-5.6). |
| webSearch | boolean | no | true для живого поиска в сети. Учитывается в дневном лимите. |
| stream | boolean | no | true для NDJSON-стриминга (delta → done). По умолчанию false (JSON). |
Совет: опустите provider/model чтобы использовать лучшую модель тарифа. Установите stream:true для чат-ботов.
Reasoning is now automatic per mode — Fast uses low, Smart uses high, Auto chooses intelligently based on your question. You no longer need to pick a level. The API still accepts thinkingLevel but it is optional and overridden by the mode.
| Level | Описание |
|---|---|
| none | Без размышлений — быстрее всего, минимальный расход токенов. |
| low | Лёгкое размышление — быстрые ответы с небольшой обдумкой. |
| medium | Сбалансированное — подходит для большинства задач. |
| high | Глубокое — для сложного анализа и планирования. |
| xhigh | Очень глубокое — только флагманские модели, для сложных задач. |
| max | Максимум — использует весь бюджет размышлений, самое медленное и дорогое. |
Fast → low/medium, Smart → medium/high, Auto → chooses low→high per query. No user selector needed — the system is intelligent per moment.
Pick a mode, not a model. Vortixy routes intelligently to make the most of your quota — no need to choose a specific model. All modes share your plan quotas (00:00 UTC).
| Mode | When to use | Thinking | Speed |
|---|---|---|---|
| Fast | Quick answers for simple tasks — fastest, most efficient. | low / medium | Fastest |
| Smart | Thorough reasoning for complex tasks — deeper, step-by-step. | medium / high | Thorough |
| Auto | Vortixy chooses the best mode automatically per question (heuristic, zero extra cost). | auto (low → high) | Auto-chooses |
Smart has an animated glow when selected (shimmer border). Auto is the default — recommended for most tasks.
Save your provider key once in Dashboard → Settings → AI keys (AES-256-GCM encrypted, never exposed) — then call with provider + model. Same 00:00 UTC quotas as managed.
| Модель | Провайдер | Access | Размышление | Контекст |
|---|---|---|---|---|
| gemini-3.8-flash:byok | gemini | Free — needs key | none, low, medium, high | 1049k |
| gemini-3.7-flash:byok | gemini | Free — needs key | none, low, medium, high | 1049k |
| gemini-3.6-flash:byok | gemini | Free — needs key | none, low, medium, high | 256k |
| gpt-5.6-sol | openai | Free — needs key | none, low, medium, high, xhigh, max | 256k |
| gpt-5.6-terra | openai | Free — needs key | none, low, medium, high, xhigh, max | 256k |
| gpt-5.6-luna | openai | Free — needs key | none, low, medium, high, xhigh, max | 256k |
| claude-fable-5 | anthropic | Free — needs key | none, high | 256k |
| claude-opus-5 | anthropic | Free — needs key | none, high | 256k |
| claude-sonnet-5 | anthropic | Free — needs key | none, high | 256k |
| claude-haiku-4-5 | anthropic | Free — needs key | none, high | 200k |
| deepseek-v4-pro | deepseek | Free — needs key | none, high | 256k |
| deepseek-v4-flash | deepseek | Free — needs key | none, high | 256k |
BYOK catalog: gpt-5.6-sol/terra/luna (openai), claude-opus-5/fable-5/sonnet-5/haiku-4-5 (anthropic), deepseek-v4-pro/flash (deepseek), gemini-3.8-flash:byok / gemini-3.7-flash:byok (gemini). All available on Free when key is present — no upgrade needed.
Окна контекста различаются по моделям и достигают 1M (3.8/3.7) / 256k токенов. Каждый запрос также ограничен тарифом: Free 10k, Go 20k, Pro 35k или Max 50k токенов. После 85% применимого бюджета старые ходы автоматически сжимаются. Публичный API не хранит состояние: повторно передавайте историю в `history` при каждом вызове.
Полезный контекст равен меньшему из лимита тарифа (10k/20k/35k/50k токенов) и окна модели (до 1M (3.8/3.7) / 256k (остальные)). Для интеграций отправляйте только подходящую историю и суммируйте старые ходы; слишком большие запросы могут быть отклонены.
// Basic — only required field
{ "message": "Explain quantum computing simply" }
// With system persona (chatbot) — 8k chars
{
"message": "What do you sell?",
"system": "You are a friendly shop assistant for Acme. Answer briefly in Spanish."
}
// With history — multi-turn conversation
{
"message": "And what about entanglement?",
"history": [
{ "role": "user", "content": "Hi" },
{ "role": "assistant", "content": "Hello! How can I help?" },
{ "role": "user", "content": "Explain quantum computing" }
]
}
// Full request — all variants together
{
"message": "Latest AI breakthroughs with sources",
"history": [{ "role": "user", "content": "Hi" }],
"system": "You are Acme support. Be concise.",
"provider": "gemini", // managed (default) — BYOK dashboard-only for other providers
"model": "gemini-3.5-flash", // any available managed model from the table above
"thinkingLevel": "high", // none | low | medium | high | xhigh | max
"webSearch": true, // true = live web grounding + sources[]
"stream": false // false = JSON, true = NDJSON deltas
}// 200 OK — non-streaming response
{
"answer": "Quantum computing uses qubits...",
"model": "gemini-3.5-flash",
"usage": { "tokensEstimated": 42, "tokensReserved": 42, "webSearch": true },
"sources": [{ "title": "Quantum computing — Wikipedia", "url": "https://en.wikipedia.org/wiki/Quantum_computing" }],
"plan": "pro"
}// Streaming (NDJSON) — ideal for chatbots
const res = await fetch("https://www.vortixy.net/api/v1/chat", {
method: "POST",
headers: { Authorization: "Bearer " + process.env.VORTIXY_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ message: "Hello!", system: "Be concise.", stream: true, thinkingLevel: "medium" })
});
for await (const line of res.body.pipeThrough(new TextDecoderStream()).pipeThrough(splitNDJSON())) {
const evt = JSON.parse(line);
if (evt.type === "delta") process.stdout.write(evt.delta);
if (evt.type === "sources") console.log("sources", evt.sources);
if (evt.type === "done") console.log("\nusage", evt.usage);
}
// curl variants — pick the one you need
// 1) Basic
curl -X POST https://www.vortixy.net/api/v1/chat -H "Authorization: Bearer $VORTIXY_API_KEY" -H "Content-Type: application/json" -d '{"message":"Hello"}'
// 2) With web search + high thinking
curl -X POST https://www.vortixy.net/api/v1/chat -H "Authorization: Bearer $VORTIXY_API_KEY" -H "Content-Type: application/json" -d '{"message":"Latest AI news","webSearch":true,"thinkingLevel":"high"}'
// 3) Chatbot persona + streaming (NDJSON)
curl -N -X POST https://www.vortixy.net/api/v1/chat -H "Authorization: Bearer $VORTIXY_API_KEY" -H "Content-Type: application/json" -d '{"message":"Hi","system":"You are Acme bot.","stream":true}'Стриминг отдаёт delta → done (NDJSON, Content-Type: application/x-ndjson). С webSearch:true вы также получаете подтверждённые источники через веб-поиск (учитывается в лимите).
Список моделей, доступных на вашем тарифе (ограничено тарифом, без затрат квоты). Используйте для пикера моделей в чат-боте.
curl https://www.vortixy.net/api/v1/models -H "Authorization: Bearer vtx_live_..."// 200 OK — example for Pro plan (more models on Max, fewer on Free)
{
"plan": "pro",
"defaultModel": "gemini-3.5-flash",
"models": [
{ "id": "gemini-3.5-flash", "label": "Gemini 3.5 Flash", "provider": "gemini", "thinkingLevels": ["none","low","medium","high"] },
{ "id": "gemini-3.5-flash-lite", "label": "Gemini 3.5 Flash Lite", "provider": "gemini", "thinkingLevels": ["none","low","medium","high"] },
{ "id": "gemini-3.1-flash-lite", "label": "Gemini 3.1 Flash Lite", "provider": "gemini", "thinkingLevels": ["none","low","medium","high"] }
]
}Note: gemini-3.8-flash/gemini-3.7-flash/gemini-3.6-flash temporarily paused (effective 3.5+lite) — example shows effective models only.
Free включает только режим Fast; Go, Pro и Max включают режимы Fast, Smart и Auto — квоты растут с планом (12k/50k/120k/250k токенов в день, 5/20/50/100 запросов). Модели BYOK требуют ваш ключ и здесь не указаны.
Принесите свой ключ OpenAI, Anthropic, DeepSeek или Gemini. Настройте один раз в приложении и используйте везде — веб и API используют одни и те же сохранённые ключи и одинаковые дневные лимиты (сброс 00:00 UTC).
Пример BYOK
# 1) Save your provider key once in Vortixy (Dashboard → Settings → AI keys)
# OpenAI sk-..., Anthropic sk-ant-..., DeepSeek sk-..., Gemini AQ./AIza...
# 2) Call the API with the same Vortixy Bearer key, but specify the BYOK provider+model
curl https://www.vortixy.net/api/v1/chat \
-H "Authorization: Bearer vtx_live_..." \
-H "Content-Type: application/json" \
-d '{
"message": "Explain quantum computing with deep reasoning",
"provider": "openai",
"model": "gpt-5.6-terra",
"thinkingLevel": "high",
"stream": false
}'
# Anthropic example
curl https://www.vortixy.net/api/v1/chat \
-H "Authorization: Bearer vtx_live_..." \
-H "Content-Type: application/json" \
-d '{"message":"Write a haiku about the sea","provider":"anthropic","model":"claude-opus-5"}'
# DeepSeek example
curl https://www.vortixy.net/api/v1/chat \
-H "Authorization: Bearer vtx_live_..." \
-H "Content-Type: application/json" \
-d '{"message":"Solve this algorithm","provider":"deepseek","model":"deepseek-v4-pro","thinkingLevel":"high"}'// JS — BYOK via Vortixy API (same quotas, same Bearer key)
const res = await fetch("https://www.vortixy.net/api/v1/chat", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.VORTIXY_API_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({
message: "Deep research with my own OpenAI key",
provider: "openai",
model: "gpt-5.6-sol",
thinkingLevel: "xhigh", // xhigh/max only on GPT-5.6 — works via BYOK
webSearch: true,
stream: false
})
});
const data = await res.json();
// data.answer, data.sources, data.usage, data.modelЕсли ключа нет, вы получите 403 byokMissing — добавьте его в Dashboard и повторите. Запросы BYOK также учитываются в токенах / запросах / поисках вашего тарифа.
BYOK catalog: gpt-5.6-sol / terra / luna (openai), claude-opus-5 / fable-5 / sonnet-5 / haiku-4-5 (anthropic), deepseek-v4-pro / flash (deepseek), gemini-3.8-flash:byok / gemini-3.7-flash:byok / gemini-3.6-flash:byok (gemini). Managed Gemini models stay available without BYOK.
Создавайте изображения в стандартном или качественном режиме. Учитывается в дневном лимите изображений вашего плана.
curl https://www.vortixy.net/api/v1/images \
-H "Authorization: Bearer vtx_live_..." \
-H "Content-Type: application/json" \
-d '{"prompt":"a cozy minimalist living room, warm light","quality":"quality"}'{ "image": { "mimeType": "image/png", "base64": "..." }, "remaining": 49 }quality: "standard" (быстро, дешево) или "quality" (высокая детализация). Списывается с дневного лимита изображений (Free 2/день, Go 8, Pro 30, Max 60).
Проверьте текущий тариф и оставшиеся квоты без траты токенов.
curl https://www.vortixy.net/api/v1/usage -H "Authorization: Bearer vtx_live_..."{ "plan":"pro","limits":{"aiTokensPerDay":120000,"aiRequestsPerDay":50},"resetsInSeconds": 43200 }Укажите webSearch: true, чтобы Vortixy получал актуальную информацию из сети при необходимости. Режим исследования разбивает сложные вопросы на параллельные подзапросы и возвращает цитируемые источники.
await fetch("https://www.vortixy.net/api/v1/chat", {
method: "POST",
headers: { Authorization: "Bearer " + process.env.VORTIXY_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ message: "Latest AI breakthroughs with sources", webSearch: true })
});webSearch: false (по умолчанию, без сети) | true (расширенный веб-поиск, 5 результатов, цитируемые источники). Каждый вызов true засчитывается как 1 к дневной квоте поиска (Free 10/день, Go 25/день, Pro 50/день, Max 100/день).
Оставайтесь организованными с Проектами и запланированными задачами. Управляйте ими через Dashboard или Chat — API соблюдает те же лимиты плана для пространств, файлов и задач.
Пример: напишите в Chat «Напомни мне каждый понедельник в 9:00 подвести итог недели» — Vortixy создаст запланированную задачу, которую можно увидеть в Dashboard.
Guarda conversaciones en Vortixy para no reenviar el historial cada vez. Mismo límite que tu plan (Free 30, Go 100, Pro 300, Max 400).
GET /api/v1/chats # lista tus chats
POST /api/v1/chats # {title} -> crea uno
GET /api/v1/chats/:id # detalle
PATCH /api/v1/chats/:id # {title} renombra
DELETE /api/v1/chats/:id
GET /api/v1/chats/:id/messages?limit=50
POST /api/v1/chats/:id/messages # {role, content}// POST /api/v1/chats
{ "title": "Mi proyecto Tesis" }
// -> { "chat": { "id": "uuid", "title": "Mi proyecto Tesis" } }
// POST /api/v1/chats/uuid/messages
{ "role": "user", "content": "Hola" }Sube PDFs, Word, texto o imágenes (20 MiB) para usarlos luego en el chat. Cuenta como artefacto diario (Free 3/día, Go 10/día, Pro 25/día, Max 60/día).
curl https://www.vortixy.net/api/v1/files \
-H "Authorization: Bearer vtx_live_..." -F file=@tarea.pdf
# JSON alternativo
curl -X POST https://www.vortixy.net/api/v1/files \
-H "Authorization: Bearer vtx_live_..." -H "Content-Type: application/json" \
-d '{"name":"tarea.pdf","mimeType":"application/pdf","base64":"..."}'GET /api/v1/files?limit=20 -> { "files": [{ "id": "...", "name": "tarea.pdf" }] }Crea espacios con instrucciones fijas. Límites Free 1 / Go 3 / Pro 8 / Max 15.
GET /api/v1/projects
POST /api/v1/projects # {title, subject, instructions}
GET /api/v1/projects/:id
PATCH /api/v1/projects/:id
DELETE /api/v1/projects/:idGenera flashcards o quiz desde un texto (Free 2/día, Go 5/día, Pro 12/día, Max 20/día). Luego puedes exportar a Anki.
curl https://www.vortixy.net/api/v1/study/generate \
-H "Authorization: Bearer vtx_live_..." -H "Content-Type: application/json" \
-d '{"content":"texto largo de apuntes...","kind":"flashcards","count":10}'{ "kind": "flashcards", "items": [{ "front": "¿Qué es...?", "back": "Es..." }] }Mismo chat pero con formato OpenAI: {messages:[{role,content}]}. Ideal para usar cualquier SDK de OpenAI cambiando solo la URL base a https://www.vortixy.net/api/v1.
// OpenAI SDK
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://www.vortixy.net/api/v1",
apiKey: process.env.VORTIXY_API_KEY
});
const res = await client.chat.completions.create({
model: "gemini-3.5-flash",
messages: [{role:"user", content:"Hola"}]
});
console.log(res.choices[0].message.content);curl https://www.vortixy.net/api/v1/chat/completions \
-H "Authorization: Bearer vtx_live_..." -H "Content-Type: application/json" \
-d '{"messages":[{"role":"user","content":"Hola"}],"stream":false}'Vortixy expone un espejo 100% compatible con el formato de OpenAI Chat Completions (2026). Cambia solo baseURL y tu apiKey — el mismo código funciona con el SDK oficial de OpenAI, Vercel AI SDK, LangChain o cualquier cliente compatible. Streaming usa SSE estándar data: {...} + data: [DONE] (como OpenAI 2026). Las mismas cuotas del plan (tokens/requests/búsquedas) se comparten con /api/v1/chat.
// OpenAI JS SDK — sin cambiar lógica
import OpenAI from "openai";
const vortixy = new OpenAI({
baseURL: "https://www.vortixy.net/api/v1",
apiKey: process.env.VORTIXY_API_KEY, // vtx_live_...
});
const res = await vortixy.chat.completions.create({
model: "gemini-3.5-flash",
messages: [
{ role: "system", content: "Eres un tutor amable." },
{ role: "user", content: "Explícame fotosíntesis en 3 bullets" }
],
stream: false,
// web_search / webSearch también soportado (alias):
// web_search: true
});
console.log(res.choices[0].message.content);
// res.usage => { prompt_tokens, completion_tokens, total_tokens }
// res.sources => [{title, url}] si webSearch:true
// Streaming SSE (igual que OpenAI 2026)
const stream = await vortixy.chat.completions.create({
model: "gemini-3.5-flash",
messages: [{ role: "user", content: "Hola" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || "");
}// Vercel AI SDK (2026)
import { createOpenAI } from "@ai-sdk/openai";
const vortixy = createOpenAI({
baseURL: "https://www.vortixy.net/api/v1",
apiKey: process.env.VORTIXY_API_KEY,
});
const { text } = await generateText({
model: vortixy("gemini-3.5-flash"),
prompt: "Resume este PDF en 5 puntos",
});curl https://www.vortixy.net/api/v1/chat/completions \
-H "Authorization: Bearer vtx_live_..." -H "Content-Type: application/json" \
-d '{
"model": "gemini-3.5-flash",
"messages": [{"role":"user","content":"Hola"}],
"stream": false
}'
# con búsqueda web (alias 2026 tolerante):
# "web_search": true o "webSearch": true -> grounding Tavily + sources[]
# Python
# from openai import OpenAI
# client = OpenAI(base_url="https://www.vortixy.net/api/v1", api_key="vtx_live_...")
# res = client.chat.completions.create(model="gemini-3.5-flash", messages=[{"role":"user","content":"Hola"}])Nota 2026: formato idéntico a OpenAI — id: chatcmpl-..., object: chat.completion, choices[0].message, usage y streaming data: {choices: [{delta: {content: "..."}}]} + data: [DONE]. Envelope SSE estándar (OpenAI-compatible). 401 sin Bearer, 429 con Retry-After/RateLimit-*.
Recibe avisos en tu servidor cuando algo pasa. Máx 5 por cuenta.
GET /api/v1/webhooks # lista
POST /api/v1/webhooks # {url, events:["chat.completed","task.completed","quota.warning"]}
DELETE /api/v1/webhooks?id=uuidSpec completo en GET /api/v1/openapi para importar en Postman, Insomnia o generar SDK.
curl https://www.vortixy.net/api/v1/openapiВсе ошибки соответствуют RFC 9457 с локализованным сообщением. Проверьте поле code для программной обработки.
{ "error": "You reached the daily quota. Try again after 2h.", "code": "quotaExceeded", "retryAfter": 7200 }| Status | Code | When |
|---|---|---|
| 400 | validation | Неверный JSON или поле вне диапазона |
| 401 | apiKeyInvalid | Отсутствует или неверный Bearer-ключ |
| 403 | planRequired | Модель не разрешена для вашего тарифа |
| 403 | byokMissing | Ключ BYOK для этого провайдера отсутствует — сохраните его в Dashboard → Настройки → AI ключи |
| 429 | quotaExceeded | Достигнут дневной лимит токенов / запросов / поисков |
| 502 | aiEngineFailed | Ошибка внешней модели |
Заголовки: RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, Retry-After, WWW-Authenticate on 401.
Скопируйте, вставьте и запустите. Node 18+ уже имеет fetch — без доп. пакетов.
// Node 18+ — no install needed
const res = await fetch("https://www.vortixy.net/api/v1/chat", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.VORTIXY_API_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({
message: "Turn these notes into a plan: ...",
system: "You are a concise assistant.",
thinkingLevel: "medium",
webSearch: false,
stream: false
})
});
const data = await res.json();
console.log(data.answer);
// Streaming chatbot
const streamRes = await fetch("https://www.vortixy.net/api/v1/chat", {
method: "POST",
headers: { Authorization: "Bearer " + process.env.VORTIXY_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ message: "Hello!", stream: true })
});
for await (const chunk of streamRes.body) {
// parse NDJSON lines: {type:"delta", delta:"..."} -> {type:"done", answer:"..."}
}
// Image
const imgRes = await fetch("https://www.vortixy.net/api/v1/images", {
method: "POST",
headers: { Authorization: "Bearer " + process.env.VORTIXY_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ prompt: "minimalist logo for Vortixy", quality: "quality" })
});
const { image } = await imgRes.json();
// image.base64 -> save as PNG
// Python — same API
// import requests
// r = requests.post("https://www.vortixy.net/api/v1/chat",
// headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
// json={"message": "Hello!", "thinkingLevel": "high", "webSearch": True})
// print(r.json()["answer"])