Saltar al contenido principal

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.

Formatos de API compatibles

EndpointFormatoCaso de uso
/v1/chat/completionsOpenAI ChatCompatibilidad universal
/v1/responsesOpenAI ResponsesConversaciones con estado
/v1/messagesAnthropic MessagesFunciones nativas de Claude
/v1beta/models/:model:generateContentGoogle GeminiFunciones nativas de Gemini

Compatibilidad con IDE y CLI

Rutas de herramientas documentadas

HerramientaNivel de soporteFormatoNotas
CursorCompatible con límitesOpenAI-compatiblePensado para flujos BYOK estándar de chat / editor, no como reemplazo de funciones gestionadas por Cursor como Tab Completion
Claude Code CLIRuta nativa fuerteAnthropicRuta nativa /v1/messages con evidencia de adapter para thinking y tool_choice
Codex CLICompatible, pero dependiente de modelo / canalOpenAI ResponsesMejor configurado sobre /v1/responses; algunos campos Responses-native dependen del passthrough nativo del modelo / canal
Gemini CLIExperimental / best-effortGeminiEl flujo de base URL personalizada con LemonData no es un contrato upstream estable
OpenCodeCompatibleOpenAI-compatibleUsa 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

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)

Compatibilidad con SDK

Rutas documentadas de SDK / frameworks

SDK / FrameworkLenguajeNivel de soporteNotas
OpenAI SDKPython/JS/GoRuta principal compatibleDocumenta Chat Completions, Embeddings y flujos Responses comunes; algunos campos Responses-native-only dependen del passthrough de modelo / canal
Anthropic SDKPython/JSRuta nativa fuerteRuta Messages nativa con evidencia directa para tools, thinking y prompt caching
Vercel AI SDKTypeScriptPatrón de integración recomendadoPrefiere @ai-sdk/openai-compatible y usa @ai-sdk/openai solo cuando necesites Responses-native explícitamente
LangChainPython/JSSurface estándar compatibleEl alcance previsto cubre ChatOpenAI y OpenAIEmbeddings; los extras vendor-native quedan fuera
LlamaIndexPythonCompatible vía OpenAILikePara gateways de terceros como LemonData, usa OpenAILike en lugar de las clases OpenAI integradas
Dify-Compatible con límitesLa 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

ParameterTypeDescription
modelstringIdentificador del modelo (obligatorio)
messagesarrayMensajes de la conversación (obligatorio)
max_tokensintegerMáximo de tokens de salida
temperaturenumberTemperatura de muestreo (0-2)
top_pnumberMuestreo nucleus (0-1)
streambooleanHabilitar 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
}

Opciones de Tool Choice

FormatExampleDescription
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

ParameterTypeDescription
stream_optionsobject{ include_usage: true } para recuentos de tokens
reasoning_effortstring"low", "medium", "high" para modelos GPT-5 con razonamiento habilitado
service_tierstring"auto" o "default"
seedintegerSalidas deterministas
logprobsbooleanDevolver probabilidades logarítmicas
top_logprobsintegerNúmero de logprobs superiores (0-20)
logit_biasobjectMapa de sesgo de tokens (-100 a 100)
frequency_penaltynumberPenalización por repetición (-2 a 2)
presence_penaltynumberPenalización por tema (-2 a 2)
stopstring/arraySecuencias de parada
nintegerNúmero de completions (1-128)
userstringIdentificador de usuario para seguimiento

Funciones avanzadas de OpenAI

ParameterTypeDescription
modalitiesarray["text", "audio"] para multimodal
audioobjectConfiguración de salida de audio (voz, formato)
predictionobjectSalida predicha para una finalización más rápida
metadataobjectPares clave-valor para seguimiento
storebooleanAlmacenar 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

ParameterTypeDescription
modelstringIdentificador del modelo
messagesarrayMensajes de la conversación
max_tokensintegerSalida máxima (hasta 128000)
systemstring/arrayPrompt del sistema
streambooleanHabilitar 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

ParameterTypeDescription
modelstringIdentificador del modelo
inputstring/arrayContenido de entrada
instructionsstringInstrucciones del sistema
max_output_tokensintegerMáximo de tokens de salida
previous_response_idstringContinuar conversación

Parámetros avanzados

ParameterTypeDescription
truncation_strategystring"auto" o "disabled"
includearray["reasoning.encrypted_content"]
reasoning_effortstringPara modelos de razonamiento
service_tierstringNivel de prioridad

Formato de herramientas

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

ParameterTypeDescription
contentsarrayContenido de la conversación
systemInstructionobjectPrompt del sistema
generationConfigobjectConfiguració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

ParameterTypeDescription
cachedContentstringReferencia al contenido en caché
responseMimeTypestring"text/plain" o "application/json"
responseSchemaobjectEsquema 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

Todos los esquemas usan .passthrough(); los parámetros desconocidos se reenvían a los proveedores upstream.
Habilita stream_options.include_usage para obtener recuentos de tokens precisos en respuestas con streaming.
Haz coincidir el formato esperado por tu SDK. LemonData acepta tanto el formato OpenAI como el Anthropic.