Cargando
Cargando
Integra Vortixy Chat en tus propios proyectos con una clave Bearer. Mismas cuotas que tu plan. Crear clave en Dashboard → Tu API
Vortixy es un espacio de trabajo con IA tranquilo para estudiar, escribir, investigar, planificar y trabajar cada día. La API pública expone el mismo Chat que usas en /chat para que puedas llamarlo desde tu propia app, script o espacio de trabajo. Cada clave hereda los límites de tu plan actual — Free, Go $2, Pro $5 o Max $9 — y todas las cuotas se comparten entre web y API.
https://www.vortixy.net/api/v1Authorization: Bearer vtx_live_...application/jsonEnvía tu clave en el header Authorization. Nunca la expongas en código cliente o query params.
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. Las claves comparten las cuotas de tu plan.
Envía un mensaje con historial de conversación, activa la búsqueda web o ajusta la profundidad de análisis. Se descuenta del límite diario de mensajes y tokens de tu plan.
Listo para chatbots: añade system para la persona de tu bot (8k caracteres), stream:true para deltas NDJSON, webSearch para fuentes en vivo. Cada llamada descuenta tokens, solicitudes y búsquedas web — compartidas con la web (reinicio 00:00 UTC).
Todos los campos JSON para POST /api/v1/chat. Solo message es obligatorio — el resto es opcional.
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| message | string | yes | Mensaje del usuario (1–32.000 caracteres). |
| history | array | no | Turnos previos: [{ role: 'user' | 'assistant', content: string }] (máx. 20). |
| system | string | no | Persona del bot / instrucciones (máx. 8k). También acepta alias instructions. |
| provider | string | no | gemini (gestionado, por defecto). Para BYOK, guarda tu clave en Dashboard → Ajustes → Claves de IA y luego usa provider openai / anthropic / deepseek / gemini con un modelo BYOK. |
| model | string | no | ID del modelo — ver tabla abajo. Debe estar permitido para tu proveedor y plan. |
| thinkingLevel | enum | no | none | low | medium | high | xhigh | max (xhigh/max solo para GPT-5.6). |
| webSearch | boolean | no | true para activar la búsqueda web en vivo. Cuenta en tu cuota diaria. |
| stream | boolean | no | true para streaming NDJSON (delta → done). Por defecto false (JSON). |
Consejo: omite provider/model para usar el mejor modelo de tu plan. Usa stream:true para chatbots.
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 | Descripción |
|---|---|
| none | Sin razonamiento — más rápido, menor consumo de tokens. |
| low | Razonamiento ligero — respuestas rápidas con un poco de reflexión. |
| medium | Razonamiento equilibrado — bueno para la mayoría de tareas. |
| high | Razonamiento profundo — para análisis y planificación complejos. |
| xhigh | Muy profundo — solo modelos frontera, para problemas difíciles. |
| max | Máximo — usa todo el presupuesto de razonamiento, más lento y costoso. |
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.
| Modelo | Proveedor | Access | Pensamiento | Contexto |
|---|---|---|---|---|
| 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.
Las ventanas de contexto varían según el modelo y llegan hasta 1M (3.8/3.7) / 256k (resto) tokens. Cada petición también tiene el límite de tu plan: Free 10k, Go 20k, Pro 35k o Max 50k tokens. En Vortixy Chat (/chat), los turnos antiguos se compactan automáticamente al superar el 85% del presupuesto aplicable. La API pública (/api/v1/chat) no guarda estado: conserva el historial en tu app y reenvíalo en `history` en cada llamada.
El contexto útil por petición es el menor entre el límite de tu plan (10k/20k/35k/50k tokens) y la ventana del modelo elegido (hasta 1M (3.8/3.7) / 256k (resto)). En integraciones, envía solo el historial que quepa en ese presupuesto y resume tú los turnos antiguos; las peticiones demasiado grandes pueden rechazarse en vez de aceptarse silenciosamente.
// 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}'El streaming emite delta → done (NDJSON, Content-Type: application/x-ndjson). Con webSearch:true también recibes fuentes verificadas vía búsqueda web (cuenta en tu cuota diaria).
Lista los modelos que tu plan actual puede usar (limitados por plan, sin coste de cuota). Úsalo para poblar un selector de modelos en tu chatbot.
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 incluye solo el modo Fast; Go, Pro y Max incluyen los modos Fast, Smart y Auto — las cuotas escalan con el plan (12k/50k/120k/250k tokens al día, 5/20/50/100 respuestas). Los modelos BYOK necesitan tu clave y no aparecen aquí.
Trae tu propia clave de OpenAI, Anthropic, DeepSeek o Gemini. Configúrala una vez en la app y úsala en todos lados — web y API comparten las mismas claves guardadas y las mismas cuotas diarias (reinicio 00:00 UTC).
Ejemplo 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.modelSi falta la clave recibes 403 byokMissing — añádela en el Dashboard y reintenta. Las peticiones BYOK también descuentan tokens/solicitudes/búsquedas de tu plan.
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.
Genera imágenes en modo estándar o de calidad. Se descuenta del límite diario de imágenes de tu plan.
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" (rápido, bajo coste) o "quality" (alta calidad). Descuenta de tu cuota diaria de imágenes (Free 2/día, Go 8, Pro 30, Max 60).
Consulta tu plan actual y tus cuotas restantes sin gastar tokens.
curl https://www.vortixy.net/api/v1/usage -H "Authorization: Bearer vtx_live_..."{ "plan":"pro","limits":{"aiTokensPerDay":120000,"aiRequestsPerDay":50},"resetsInSeconds": 43200 }Establece webSearch: true para que Vortixy consulte información actualizada de la web cuando sea útil. El modo investigación divide preguntas complejas en subconsultas paralelas y devuelve fuentes citadas.
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 (por defecto, sin web) | true (búsqueda avanzada web, 5 resultados, fuentes citadas). Cada llamada true cuenta en tu cuota diaria de búsquedas web (Free 10/día, Go 25/día, Pro 50/día, Max 100/día).
Mantente organizado con Proyectos y tareas programadas. Adminístralos desde el Dashboard o el Chat — la API respeta los mismos límites del plan para espacios, archivos y tareas.
Ejemplo: escribe en el Chat "Recuérdame cada lunes a las 9 am resumir mi semana" — Vortixy crea una tarea programada que puedes ver en el 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/openapiTodos los errores siguen RFC 9457 con mensaje localizado. Revisa el campo code para manejo programático.
{ "error": "You reached the daily quota. Try again after 2h.", "code": "quotaExceeded", "retryAfter": 7200 }| Status | Code | When |
|---|---|---|
| 400 | validation | JSON inválido o campo fuera de rango |
| 401 | apiKeyInvalid | Clave Bearer faltante o inválida |
| 403 | planRequired | Modelo no permitido para tu plan |
| 403 | byokMissing | Falta la clave BYOK de este proveedor — guárdala en Dashboard → Ajustes → Claves de IA |
| 429 | quotaExceeded | Cuota diaria de tokens / solicitudes / búsquedas alcanzada |
| 502 | aiEngineFailed | Error del modelo origen |
Cabeceras: RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, Retry-After, WWW-Authenticate on 401.
Copia, pega y ejecuta. Node 18+ ya trae fetch — no necesitas paquetes extra.
// 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"])