Integra Vortixy Chat nei tuoi progetti con una chiave Bearer. Stesse quote del tuo piano. Crea chiave in Dashboard → La tua API
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
// 2026-09-26 FASE4x EXTRA M2 openai-resets-hint (research 2026 OpenAI
// rate-limits https://developers.openai.com/api/docs/guides/rate-limits.md +
// spec ChatCompletionsResponse resetsInSeconds/resetsAt top-level fuera de
// usage + runtime completions non-streaming: el ejemplo solo mostraba usage y
// el integrador derivaba el reset con su reloj (drift). Solo comentarios,
// mismo CodeBlock/diseño, sin keys i18n).
// res.resetsInSeconds / res.resetsAt => countdown absoluto 00:00 UTC (no derives con tu reloj)
// 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=os.environ["VORTIXY_API_KEY"])
# 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-*.
Mensile o annuale?
Risparmi il 17% con la fatturazione annuale.