Conecta tus herramientas a la API de Reeva en cinco minutos
Por Equipo Reeva · 2 de octubre de 2026 · Actualizado 15 de octubre de 2026
La API de modelos de IA de Reeva habla el protocolo de OpenAI. Si una herramienta o librería puede hablar con OpenAI, puede hablar con Reeva: cambias dos configuraciones y eliges un modelo. Aquí se explica cómo.
Qué necesitas
- Una clave API de Reeva. Elige un plan en la página de API de modelos de IA. Tu primera clave se emite en cuanto se confirma el pago por PayPal.
- La URL base:
https://api.reeva.me/v1 - Un nombre de modelo:
deepseek-v4.1-flashpara chat, texto, código y agentes, oqwen-imagepara imágenes. - También disponible:
qwen3.6-35b-a3b(Qwen 3.6), un modelo ligero para tareas cortas y rápidas. - Embeddings, en Pro y Scale:
nemotron-embed-8bpara documentos ynemotron-embed-8b-querypara preguntas de búsqueda.
Crea una clave separada para cada herramienta, con un nombre que reconozcas. Puedes tener hasta 10, y revocar una no afecta a las demás. Guarda las claves en una variable de entorno, no en tu código. Los ejemplos a continuación leen la clave desde REEVA_API_KEY.
Python
Instala la librería oficial de OpenAI con pip install openai, luego apúntala a Reeva:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.reeva.me/v1",
api_key=os.environ["REEVA_API_KEY"],
)
r = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user",
"content": "Summarize this email in three bullets"}],
)
print(r.choices[0].message.content)
Node.js
Instala la librería con npm install openai, luego guarda esto como index.mjs y ejecútalo con node index.mjs:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.reeva.me/v1",
apiKey: process.env.REEVA_API_KEY,
});
const r = await client.chat.completions.create({
model: "deepseek-v4.1-flash",
messages: [{ role: "user", content: "Write a Python function that checks a number with the Luhn algorithm." }],
});
console.log(r.choices[0].message.content);
curl
Una solicitud de chat:
curl https://api.reeva.me/v1/chat/completions \
-H "Authorization: Bearer $REEVA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"messages": [{"role": "user", "content": "Translate to French: Same-day repairs, guaranteed."}]
}'
Una imagen:
curl https://api.reeva.me/v1/images/generations \
-H "Authorization: Bearer $REEVA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-image",
"prompt": "A winter campaign banner in pink and purple, no text",
"n": 1
}'
Una imagen tarda más en volver que una respuesta de texto.
Herramientas de codificación
opencode, Cline, Continue, Aider y Roo Code pueden usar un proveedor compatible con OpenAI. Cada una tiene su propia pantalla de configuración o archivo de configuración, pero configuras las mismas cosas en cada una:
- Proveedor: Compatible con OpenAI, u OpenAI con una URL base personalizada
- URL base:
https://api.reeva.me/v1 - Clave API: tu clave de Reeva
- Modelo:
deepseek-v4.1-flashpara codificación, agentes, ediciones rápidas y chat
En Aider, por ejemplo, se configura con dos variables de entorno y un nombre de modelo:
export OPENAI_API_BASE=https://api.reeva.me/v1
export OPENAI_API_KEY=$REEVA_API_KEY
aider --model openai/deepseek-v4.1-flash
Embeddings (Pro y Scale)
Pro y Scale incluyen embeddings en /v1/embeddings, con Nemotron-3-Embed-8B de nvidia. El modelo tiene
dos ids, y una búsqueda necesita los dos: nemotron-embed-8b para los documentos que guardas y
nemotron-embed-8b-query para las preguntas con las que buscas. Usar un mismo id para ambos no da
ningún error, pero la búsqueda ordena los resultados mucho peor.
docs = ["Invoices are due 30 days after issue.",
"Refunds go back to the original card."]
d = client.embeddings.create(model="nemotron-embed-8b", input=docs)
q = client.embeddings.create(model="nemotron-embed-8b-query",
input="When is an invoice due?")
# The vectors are normalized: a dot product is the cosine similarity.
qv = q.data[0].embedding
scores = [sum(a * b for a, b in zip(qv, x.embedding)) for x in d.data]
print(docs[scores.index(max(scores))])
Los vectores tienen 4096 dimensiones. Una petición admite hasta 64 entradas y 120 000 caracteres en total.
Cada entrada se procesa hasta 4096 tokens, y el texto más largo se corta sin error (el
usage.prompt_tokens de la respuesta se queda en 4096), así que divide los documentos largos en
fragmentos antes de generar sus embeddings. El límite de tamaño por petición de tu plan es para el chat
y no se aplica aquí, pero los tokens de embeddings cuentan igual que los del chat.
Límites y errores
Los tokens son ilimitados, pero cada plan establece límites por minuto, de peticiones a la vez y por solicitud. Esto es lo que pasa cuando superas uno.
- HTTP 429, demasiadas peticiones por minuto. La ventana se reinicia cada minuto, así que reintenta dentro de un minuto. Mini permite 5 peticiones por minuto, Starter 20, Pro 60 y Scale 120.
- Demasiadas peticiones a la vez: la petición espera. Empieza en cuanto termine una de tus peticiones en ejecución. Si no se libera un hueco en dos minutos, se rechaza con HTTP 429. Mini ejecuta 1 petición a la vez, Starter 2, Pro 4 y Scale 8.
- HTTP 429, demasiadas imágenes en una petición. Una petición puede pedir hasta 3 imágenes (
n) en Mini, 10 en Starter y 16 en Pro y Scale. Unnmayor se rechaza al instante; pide menos. - Uso razonable. El uso intensivo ralentiza tus peticiones. Solo el uso extremo mantenido durante un día entero se pausa hasta que remita; durante la pausa, las peticiones reciben HTTP 429.
- HTTP 400,
request_too_large. La solicitud es más grande de lo que tu plan permite: 32k tokens en Mini y 128k en Starter y Pro. Scale no tiene un límite propio, solo el contexto de 256k tokens de DeepSeek v4.1. El tamaño cuenta tu prompt más losmax_tokensque solicites, y se verifica antes de que se ejecute la solicitud. Acorta el prompt o bajamax_tokens. Qwen 3.6 tiene su propio límite de 32k tokens por petición en todos los planes; una petición mayor también se rechaza con HTTP 400.gpt-oss-20bse ha retirado y las peticiones que lo nombran se rechazan. Usadeepseek-v4.1-flashpara código y agentes. - HTTP 401. La clave no es válida, por ejemplo porque fue revocada.
Los SDK de OpenAI para Python y Node.js reintentan un 429 por su cuenta, con retardo exponencial.
Próximos pasos
Elige tu plan en la página de API de modelos de IA, o lee el anuncio de lanzamiento para la comparación completa de planes.