API

Una API compatible con OpenAI y Anthropic

Chat Completions, Responses, Images y Messages con una sola clave. Aquí están las direcciones, modelos, endpoints y errores; la configuración de Cursor, Claude Code, Codex y otros IDE está en Integraciones.

01

Crea una clave

En tu perfil, pestaña API. La clave empieza por sk-slafy- y solo se muestra una vez, guárdala.

02

Elige un modelo

Los ID de los modelos están abajo y en la página de precios. Por ejemplo, claude-sonnet-5-5.

03

Indica la dirección y la clave

Para el formato OpenAI la dirección es https://slafy.co/v1; para Anthropic, https://slafy.co. La clave se envía como Bearer o x-api-key.

Dirección base
https://slafy.co/v1
Para el SDK de Anthropic
https://slafy.co; el SDK añade /v1 por sí solo
Clave
cabecera Authorization: Bearer sk-slafy-… o x-api-key: sk-slafy-…
Lista de modelos
GET /v1/models; precios en la página Precios
Esfuerzo del modelo
reasoning_effort (en Responses, reasoning.effort): low, medium, high, xhigh, max o ultra; es el máximo para el modelo elegido. Si el modelo no admite el valor, Slafy usará el más cercano, y en los modelos sin ajuste de esfuerzo eliminará el parámetro

OpenAI SDK

Python y Node.js, cualquier modelo mediante Chat Completions

Python

from openai import OpenAI

client = OpenAI(base_url="https://slafy.co/v1", api_key="sk-slafy-tu_clave")
r = client.chat.completions.create(
    model="claude-sonnet-5-5",
    messages=[{"role": "user", "content": "Hola"}],
)
print(r.choices[0].message.content)

Node.js

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://slafy.co/v1", apiKey: process.env.SLAFY_API_KEY });
const r = await client.chat.completions.create({
  model: "gpt-6-luna",
  messages: [{ role: "user", content: "Hola" }],
});
console.log(r.choices[0].message.content);

Anthropic SDK

Python y Node.js, modelos Claude mediante Messages

Python

import anthropic

client = anthropic.Anthropic(base_url="https://slafy.co", api_key="sk-slafy-tu_clave")
m = client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hola"}],
)
print(m.content[0].text)

Node.js

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({ baseURL: "https://slafy.co", apiKey: process.env.SLAFY_API_KEY });
const m = await client.messages.create({
  model: "claude-sonnet-5-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hola" }],
});
console.log(m.content[0].text);

curl

Comprueba la clave y el modelo desde la terminal

Chat Completions

curl https://slafy.co/v1/chat/completions \
  -H "Authorization: Bearer sk-slafy-tu_clave" \
  -H "Content-Type: application/json" \
  -d '{"model": "claude-sonnet-5-5", "messages": [{"role": "user", "content": "Hola"}]}'

Messages, streaming

curl https://slafy.co/v1/messages \
  -H "x-api-key: sk-slafy-tu_clave" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "claude-sonnet-5-5", "max_tokens": 512, "stream": true,
       "messages": [{"role": "user", "content": "Cuéntame un chiste"}]}'

Generación de imágenes

El modelo dibuja dentro de la respuesta o mediante la Images API

Una imagen cuesta 0,199 $, es decir, 500.000 tokens del saldo. Los errores y las solicitudes rechazadas no se cobran.

Pedir al modelo que dibuje

Añade la herramienta {"type": "image_generation"} a una solicitud de Responses. El modelo decide cuándo dibujar y devuelve la imagen en un elemento image_generation_call (PNG en base64, campo result). Así dibujan Codex y los agentes hechos con el SDK de OpenAI.

curl https://slafy.co/v1/responses \
  -H "Authorization: Bearer sk-slafy-tu_clave" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-6-astra", "input": "Dibuja un icono de app: una ballena azul, estilo plano",
       "tools": [{"type": "image_generation", "quality": "low"}]}'

Los modelos GPT pueden dibujar: gpt-6.1-sol, gpt-6.1-terra, gpt-6-astra, gpt-6-luna. Al precio de la imagen se suman los tokens del texto de la respuesta.

Images API

from openai import OpenAI
import base64

client = OpenAI(base_url="https://slafy.co/v1", api_key="sk-slafy-tu_clave")
r = client.images.generate(model="gpt-image-2.5-sunburst", prompt="Una ballena azul, estilo plano", size="1024x1024")
open("whale.png", "wb").write(base64.b64decode(r.data[0].b64_json))

Los nombres gpt-image-2, gpt-image-1, dall-e-3 también funcionan: Slafy los envía a gpt-image-2.5-sunburst. Así, los scripts y skills hechos para OpenAI funcionan sin cambios.

Modelos

ID para el campo model y formatos de API con los que funciona cada modelo. Los precios están en la página de precios.

Anthropic
  • Claude Opus 5.5claude-opus-5-5chat/completions · responses · messages
  • Claude Sonnet 5.5claude-sonnet-5-5chat/completions · responses · messages
  • Claude Haiku 5.5claude-haiku-5-5chat/completions · responses · messages
  • Claude Fable 5.1claude-fable-5-1chat/completions · responses · messages
OpenAI
  • GPT-6.1 Solgpt-6.1-solchat/completions · responses · messages
  • GPT-6.1 Terragpt-6.1-terrachat/completions · responses
  • GPT-6 Astragpt-6-astrachat/completions · responses · messages
  • GPT-6 Lunagpt-6-lunachat/completions · responses · messages
  • GPT Image 2.5 Sunburstgpt-image-2.5-sunburstimages
Google
  • Gemini 4 Argongemini-4-argonchat/completions
  • Gemini 3.8 Flashgemini-3.8-flashchat/completions
xAI
  • Grok 4.7grok-4.7chat/completions · responses · messages
DeepSeek
  • DeepSeek V4 Prodeepseek-v4-prochat/completions
  • DeepSeek V4.1 Flash 1017deepseek-v4.1-flash-1017chat/completions
Moonshot AI
  • Kimi K3.1 Prokimi-k3.1-prochat/completions
Zhipu AI
  • GLM 5.3glm-5.3chat/completions · responses · messages
  • GLM 5.3 Flashglm-5.3-flashchat/completions · responses · messages

Endpoints

Método y rutaFormato
POST /v1/chat/completionsOpenAI Chat Completions, con streaming
POST /v1/responsesOpenAI Responses, streaming y la herramienta image_generation
POST /v1/messagesAnthropic Messages, con streaming
POST /v1/messages/count_tokensAnthropic, recuento de tokens, gratis
POST /v1/images/generationsOpenAI Images, respuesta en b64_json
POST /v1/images/editsOpenAI Images, multipart/form-data
GET /v1/modelsLista de modelos disponibles

Qué modelo funciona con qué endpoint lo puedes ver en los precios.

Errores

HTTPCódigoQué hacer
401invalid_api_keyClave no encontrada o desactivada. Cópiala completa desde tu perfil.
402insufficient_balanceTe has quedado sin tokens; recarga el saldo.
402key_limit_reachedLa clave ha alcanzado su límite de gasto; súbelo en la pestaña API.
404model_not_foundNo existe ese modelo. Comprueba el nombre con GET /v1/models.
429rate_limit_exceededDemasiado rápido. Vuelve a intentarlo en unos segundos.
5xxupstream_errorFallo por parte del modelo; la solicitud no se cobra. Vuelve a intentarlo.

Cada respuesta incluye la cabecera x-request-id, con la que puedes encontrar la solicitud en el historial.