Resumen general
LemonData expone varios formatos de API para que las herramientas de coding, SDK y frameworks más comunes puedan integrarse con poco glue code.
Esta página es intencionalmente más estricta que una simple matriz de marketing.
Compatible significa que documentamos una ruta de configuración concreta y que LemonData expone la forma de protocolo que esa ruta espera.
Ruta nativa fuerte significa que el repositorio también contiene evidencia directa a nivel de adapter / request-format para esa familia de protocolos.
Best-effort significa que la integración puede funcionar, pero el cliente upstream no trata este workflow de gateway personalizada como un contrato estable.
Los campos no soportados no se manejan de manera uniforme. En rutas de compatibilidad algunos campos se ignoran o normalizan. En rutas Responses nativas pueden devolverse errores explícitos 400 o 503 si el modelo elegido o el canal enrutado no soportan el passthrough requerido.
Endpoint Formato Caso de uso /v1/chat/completionsOpenAI Chat Compatibilidad universal /v1/responsesOpenAI Responses Conversaciones con estado /v1/messagesAnthropic Messages Funciones nativas de Claude /v1beta/models/:model:generateContentGoogle Gemini Funciones nativas de Gemini
Compatibilidad con IDE y CLI
Rutas de herramientas documentadas
Herramienta Nivel de soporte Formato Notas Cursor Compatible con límites OpenAI-compatible Pensado para flujos BYOK estándar de chat / editor, no como reemplazo de funciones gestionadas por Cursor como Tab Completion Claude Code CLI Ruta nativa fuerte Anthropic Ruta nativa /v1/messages con evidencia de adapter para thinking y tool_choice Codex CLI Compatible, pero dependiente de modelo / canal OpenAI Responses Mejor configurado sobre /v1/responses; algunos campos Responses-native dependen del passthrough nativo del modelo / canal Gemini CLI Experimental / best-effort Gemini El flujo de base URL personalizada con LemonData no es un contrato upstream estable OpenCode Compatible OpenAI-compatible Usa primero un provider OpenAI-compatible y cambia a uno basado en Responses solo cuando realmente lo necesites
Otros editores y agent tools OpenAI-compatible suelen funcionar con el mismo patrón de base URL, pero este repositorio no mantiene por ahora regresiones dedicadas para Windsurf, Aider, Continue.dev, Cline/Roo Code o GitHub Copilot.
Ejemplos de configuración
Cursor
Claude Code
OpenCode
Aider
Base URL: https://api.lemondata.cc/v1
API Key: sk-your-lemondata-key
Cursor utiliza internamente el formato de herramientas estilo Anthropic. LemonData admite ambos:
Formato OpenAI: { type: "function", function: { name, parameters } }
Formato Anthropic: { name, input_schema } (sin campo type)
export ANTHROPIC_BASE_URL = "https://api.lemondata.cc"
export ANTHROPIC_API_KEY = "sk-your-lemondata-key"
export OPENAI_API_KEY = "sk-your-lemondata-key"
export LOCAL_ENDPOINT = "https://api.lemondata.cc/v1"
export OPENAI_API_KEY = "sk-your-lemondata-key"
export OPENAI_BASE_URL = "https://api.lemondata.cc/v1"
aider --model gpt-5.4
Compatibilidad con SDK
Rutas documentadas de SDK / frameworks
SDK / Framework Lenguaje Nivel de soporte Notas OpenAI SDK Python/JS/Go Ruta principal compatible Documenta Chat Completions, Embeddings y flujos Responses comunes; algunos campos Responses-native-only dependen del passthrough de modelo / canal Anthropic SDK Python/JS Ruta nativa fuerte Ruta Messages nativa con evidencia directa para tools, thinking y prompt caching Vercel AI SDK TypeScript Patrón de integración recomendado Prefiere @ai-sdk/openai-compatible y usa @ai-sdk/openai solo cuando necesites Responses-native explícitamente LangChain Python/JS Surface estándar compatible El alcance previsto cubre ChatOpenAI y OpenAIEmbeddings; los extras vendor-native quedan fuera LlamaIndex Python Compatible vía OpenAILike Para gateways de terceros como LemonData, usa OpenAILike en lugar de las clases OpenAI integradas Dify - Compatible con límites La ruta prevista es el provider OpenAI y los flujos orientados a chat-completions; no garantiza comportamientos Codex-specific Responses / WebSocket
Parámetros de Chat Completions
Parámetros principales
Parameter Type Description modelstring Identificador del modelo (obligatorio) messagesarray Mensajes de la conversación (obligatorio) max_tokensinteger Máximo de tokens de salida temperaturenumber Temperatura de muestreo (0-2) top_pnumber Muestreo nucleus (0-1) streamboolean Habilitar streaming
Llamada de herramientas
{
"tools" : [
{
"type" : "function" ,
"function" : {
"name" : "get_weather" ,
"description" : "Get weather for a location" ,
"parameters" : {
"type" : "object" ,
"properties" : {
"location" : { "type" : "string" }
}
},
"strict" : true
}
}
],
"tool_choice" : "auto" ,
"parallel_tool_calls" : true
}
Format Example Description String "auto", "none", "required"Selección simple OpenAI Object { "type": "function", "function": { "name": "fn" } }Forzar una función específica Anthropic Object { "type": "tool", "name": "fn", "disable_parallel_tool_use": true }Formato nativo de Anthropic
Parámetros avanzados
Parameter Type Description stream_optionsobject { include_usage: true } para recuentos de tokensreasoning_effortstring "low", "medium", "high" para modelos GPT-5 con razonamiento habilitadoservice_tierstring "auto" o "default"seedinteger Salidas deterministas logprobsboolean Devolver probabilidades logarítmicas top_logprobsinteger Número de logprobs superiores (0-20) logit_biasobject Mapa de sesgo de tokens (-100 a 100) frequency_penaltynumber Penalización por repetición (-2 a 2) presence_penaltynumber Penalización por tema (-2 a 2) stopstring/array Secuencias de parada ninteger Número de completions (1-128) userstring Identificador de usuario para seguimiento
Funciones avanzadas de OpenAI
Parameter Type Description modalitiesarray ["text", "audio"] para multimodalaudioobject Configuración de salida de audio (voz, formato) predictionobject Salida predicha para una finalización más rápida metadataobject Pares clave-valor para seguimiento storeboolean Almacenar para recuperación posterior
Opciones específicas del proveedor
{
"anthropic_options" : {
"thinking" : {
"type" : "enabled" ,
"budget_tokens" : 10000
},
"prompt_caching" : true
},
"google_options" : {
"safety_settings" : [ ... ],
"google_search" : true ,
"code_execution" : true
}
}
Parámetros de Anthropic Messages
Parámetros principales
Parameter Type Description modelstring Identificador del modelo messagesarray Mensajes de la conversación max_tokensinteger Salida máxima (hasta 128000) systemstring/array Prompt del sistema streamboolean Habilitar streaming
Llamada de herramientas
{
"tools" : [
{
"name" : "get_weather" ,
"description" : "Get weather" ,
"input_schema" : {
"type" : "object" ,
"properties" : {
"location" : { "type" : "string" }
}
}
}
],
"tool_choice" : {
"type" : "auto" ,
"disable_parallel_tool_use" : false
}
}
Pensamiento extendido
{
"model" : "claude-opus-4-6" ,
"thinking" : {
"type" : "enabled" ,
"budget_tokens" : 10000
}
}
Parámetros de la API Responses
Parámetros principales
Parameter Type Description modelstring Identificador del modelo inputstring/array Contenido de entrada instructionsstring Instrucciones del sistema max_output_tokensinteger Máximo de tokens de salida previous_response_idstring Continuar conversación
Parámetros avanzados
Parameter Type Description truncation_strategystring "auto" o "disabled"includearray ["reasoning.encrypted_content"]reasoning_effortstring Para modelos de razonamiento service_tierstring Nivel de prioridad
Admite tanto el formato de herramientas de OpenAI como el de Anthropic:
// OpenAI format
{ "type" : "function" , "name" : "fn" , "parameters" : { ... } }
// Anthropic format (Cursor compatibility)
{ "name" : "fn" , "input_schema" : { ... } }
Parámetros de la API Gemini
Parámetros principales
Parameter Type Description contentsarray Contenido de la conversación systemInstructionobject Prompt del sistema generationConfigobject Configuración de generación
Herramientas
{
"tools" : [{
"functionDeclarations" : [{
"name" : "search" ,
"description" : "Search the web" ,
"parameters" : { ... }
}],
"codeExecution" : {},
"googleSearch" : {}
}],
"toolConfig" : {
"functionCallingConfig" : {
"mode" : "AUTO"
}
}
}
Configuración de seguridad
{
"safetySettings" : [
{
"category" : "HARM_CATEGORY_HARASSMENT" ,
"threshold" : "BLOCK_MEDIUM_AND_ABOVE"
}
]
}
Parámetros adicionales
Parameter Type Description cachedContentstring Referencia al contenido en caché responseMimeTypestring "text/plain" o "application/json"responseSchemaobject Esquema JSON para salida estructurada
Streaming
Todos los endpoints admiten streaming con Server-Sent Events (SSE):
# Chat Completions
curl https://api.lemondata.cc/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-d '{"model": "gpt-4o", "messages": [...], "stream": true}'
# With usage tracking
-d '{"...", "stream_options": {"include_usage": true}}'
Manejo de errores
LemonData devuelve respuestas de error compatibles con OpenAI:
{
"error" : {
"message" : "Invalid API key" ,
"type" : "invalid_api_key" ,
"code" : "invalid_api_key"
}
}
Consulta la Guía de manejo de errores para más detalles.
Mejores prácticas
Usar passthrough para parámetros desconocidos
Todos los esquemas usan .passthrough(); los parámetros desconocidos se reenvían a los proveedores upstream.
Preferir stream_options para una facturación precisa
Habilita stream_options.include_usage para obtener recuentos de tokens precisos en respuestas con streaming.
Usar el formato adecuado de tool_choice
Haz coincidir el formato esperado por tu SDK. LemonData acepta tanto el formato OpenAI como el Anthropic.