Saltar al contenido principal

Overview

LemonData expone múltiples formatos de API para que las herramientas de codificación comunes, SDKs y frameworks puedan integrarse con una cantidad mínima de código puente. Esta página es intencionalmente más limitada que una matriz de marketing:
  • Supported significa que documentamos una ruta de configuración concreta y que LemonData expone la forma de protocolo que esa ruta espera.
  • Strong native path significa que el repositorio también tiene adaptadores directos o evidencia de formato de solicitud para esa familia de protocolos.
  • Best-effort significa que la integración puede funcionar, pero el cliente upstream no trata este flujo de gateway personalizado como un contrato estable.
Los campos no soportados no se manejan de forma uniforme. En rutas de compatibilidad, algunos campos se ignoran o normalizan. En /v1/responses, los campos no soportados pueden devolver errores explícitos 400 o 503 cuando esa ruta no puede garantizar el comportamiento solicitado.

Supported API Formats

EndpointFormatUse Case
/v1/chat/completionsOpenAI ChatUniversal compatibility
/v1/responsesOpenAI ResponsesStateful conversations
/v1/messagesAnthropic MessagesClaude native features
/v1beta/models/:model:generateContentGoogle GeminiGemini native features

IDE & CLI Compatibility

Documented Tool Paths

ToolSupport LevelFormatNotes
CursorSupported with limitsOpenAI-compatibleWorks for BYOK standard chat/editor flows, not as a replacement for Cursor-managed features like Tab Completion
Claude Code CLIStrong native pathAnthropicNative /v1/messages route with adapter coverage for thinking and tool_choice
Codex CLISupported with model/path limitsOpenAI ResponsesTreat /v1/responses as an advanced path for Codex-specific workflows; some Responses-only fields are not guaranteed across every model and routed path
Gemini CLIBest-effort / experimentalGeminiCustom LemonData base URL flow is not a stable upstream contract
OpenCodeSupportedOpenAI-compatibleUse an OpenAI-compatible provider by default; move to a Responses-based provider only when you explicitly need it
Otros editores y herramientas de agentes compatibles con OpenAI suelen funcionar con el mismo patrón de base URL, pero este repositorio no mantiene actualmente cobertura de regresión específica para herramientas como Windsurf, Aider, Continue.dev, Cline/Roo Code, GitHub Copilot y clientes similares.

Configuration Examples

Base URL: https://api.lemondata.cc/v1
API Key: sk-your-lemondata-key
Cursor usa internamente el formato de herramientas estilo Anthropic. LemonData soporta ambos:
  • OpenAI format: { type: "function", function: { name, parameters } }
  • Anthropic format: { name, input_schema } (no type field)

SDK Compatibility

Documented SDK & Framework Paths

SDK / FrameworkLanguageSupport LevelNotes
OpenAI SDKPython/JS/GoSupported core pathChat Completions and Embeddings are the default documented path; some Responses-only fields are not guaranteed across every model and routed path
Anthropic SDKPython/JSStrong native pathNative Messages route with direct evidence for tools, thinking, and prompt caching
Vercel AI SDKTypeScriptRecommended integration patternPrefer @ai-sdk/openai-compatible; use @ai-sdk/openai only when you explicitly want Responses-native behavior
LangChainPython/JSSupported standard surfacesChatOpenAI and OpenAIEmbeddings are the intended scope; vendor-native extras are out of scope
LlamaIndexPythonSupported via OpenAILikeUse OpenAILike, not the built-in OpenAI classes, for third-party gateways such as LemonData
Dify-Supported with scope limitsOpenAI provider and chat-completions-oriented flows are the intended path; not a fit for Codex-specific Responses or WebSocket behavior

Chat Completions Parameters

Core Parameters

ParameterTypeDescription
modelstringModel identifier (required)
messagesarrayConversation messages (required)
max_tokensintegerMaximum output tokens
temperaturenumberSampling temperature (0-2)
top_pnumberNucleus sampling (0-1)
streambooleanEnable streaming

Tool Calling

{
  "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
}

Tool Choice Options

FormatExampleDescription
String"auto", "none", "required"Simple selection
OpenAI Object{ "type": "function", "function": { "name": "fn" } }Force specific function
Anthropic Object{ "type": "tool", "name": "fn", "disable_parallel_tool_use": true }Anthropic native format

Advanced Parameters

ParameterTypeDescription
stream_optionsobject{ include_usage: true } for token counts
reasoning_effortstring"low", "medium", "high" for reasoning-enabled GPT-5 models
service_tierstring"auto" or "default"
seedintegerDeterministic outputs
logprobsbooleanReturn log probabilities
top_logprobsintegerNumber of top logprobs (0-20)
logit_biasobjectToken bias map (-100 to 100)
frequency_penaltynumberRepetition penalty (-2 to 2)
presence_penaltynumberTopic penalty (-2 to 2)
stopstring/arrayStop sequences
nintegerNumber of completions (1-128)
userstringUser identifier for tracking

OpenAI Advanced Features

ParameterTypeDescription
modalitiesarray["text", "audio"] for multimodal
audioobjectAudio output config (voice, format)
predictionobjectPredicted output for faster completion
metadataobjectKey-value pairs for tracking
storebooleanStore for later retrieval

Provider-Specific Options

{
  "anthropic_options": {
    "thinking": {
      "type": "enabled",
      "budget_tokens": 10000
    },
    "prompt_caching": true
  },
  "google_options": {
    "safety_settings": [...],
    "google_search": true,
    "code_execution": true
  }
}

Anthropic Messages Parameters

Core Parameters

ParameterTypeDescription
modelstringModel identifier
messagesarrayConversation messages
max_tokensintegerMaximum output (up to 128000)
systemstring/arraySystem prompt
streambooleanEnable streaming

Tool Calling

{
  "tools": [
    {
      "name": "get_weather",
      "description": "Get weather",
      "input_schema": {
        "type": "object",
        "properties": {
          "location": { "type": "string" }
        }
      }
    }
  ],
  "tool_choice": {
    "type": "auto",
    "disable_parallel_tool_use": false
  }
}

Extended Thinking

{
  "model": "claude-opus-4-6",
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  }
}

Responses API Parameters

Core Parameters

ParameterTypeDescription
modelstringModel identifier
inputstring/arrayInput content
instructionsstringSystem instructions
max_output_tokensintegerMaximum output tokens
previous_response_idstringContinue conversation

Advanced Parameters

ParameterTypeDescription
truncation_strategystring"auto" or "disabled"
includearray["reasoning.encrypted_content"]
reasoning_effortstringFor reasoning models
service_tierstringPriority tier

Tool Format

Supports both OpenAI and Anthropic tool formats:
// OpenAI format
{ "type": "function", "name": "fn", "parameters": {...} }

// Anthropic format (Cursor compatibility)
{ "name": "fn", "input_schema": {...} }

Gemini API Parameters

Core Parameters

ParameterTypeDescription
contentsarrayConversation content
systemInstructionobjectSystem prompt
generationConfigobjectGeneration settings

Tools

{
  "tools": [{
    "functionDeclarations": [{
      "name": "search",
      "description": "Search the web",
      "parameters": {...}
    }],
    "codeExecution": {},
    "googleSearch": {}
  }],
  "toolConfig": {
    "functionCallingConfig": {
      "mode": "AUTO"
    }
  }
}

Safety Settings

{
  "safetySettings": [
    {
      "category": "HARM_CATEGORY_HARASSMENT",
      "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    }
  ]
}

Additional Parameters

ParameterTypeDescription
cachedContentstringCached content reference
responseMimeTypestring"text/plain" or "application/json"
responseSchemaobjectJSON schema for structured output

Streaming

Todos los endpoints soportan Server-Sent Events (SSE) para streaming:
# 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}}'

Error Handling

LemonData devuelve respuestas de error compatibles con OpenAI:
{
  "error": {
    "message": "Invalid API key",
    "type": "invalid_api_key",
    "code": "invalid_api_key"
  }
}
See Error Handling Guide for details.

Best Practices

All schemas use .passthrough() - unknown parameters are forwarded to upstream providers.
Enable stream_options.include_usage for accurate token counts in streaming responses.
Match your SDK’s expected format. LemonData accepts both OpenAI and Anthropic formats.