Guía de integración de la API de destino

Método de acceso, modelos disponibles, especificación de solicitudes, reglas de cobro y ejemplos para la API de destino de YlanAI
mar. 25, 2026

Esta página describe la forma estándar de integrar la API de destino de YlanAI.

La interfaz actual sigue el protocolo compatible con OpenAI y está orientada a clientes que admiten chat/completions y completions.

1. Información de acceso

URL, método de solicitud y endpoints estándar
ElementoDescripción
URL base recomendadahttps://ylan.ai/api/openai
URL base compatiblehttps://ylan.ai/api/openai/v1
Método por defectoPOST
Lista de modelosGET /models
Detalle de modeloGET /models/{id}
Endpoint de conversaciónPOST /chat/completions
Endpoint heredado completionsPOST /completions

Para clientes que agregan /v1 automáticamente, usa preferentemente https://ylan.ai/api/openai.

Autenticación

Todas las solicitudes deben incluir:

Authorization: Bearer sk-...

La API key pertenece a la cuenta del usuario actual y el consumo se descuenta del saldo de créditos pagados de esa cuenta.

Para clientes de terceros que no puedan establecer Authorization, también se aceptan los encabezados de compatibilidad api-key: sk-... y x-api-key: sk-....

Conversación multi-turno

Se admite conversación de varias rondas. El cliente puede mantener el contexto enviando el historial dentro del arreglo messages.

2. Alcance y modelos

Alcance del servicio
AlcanceDescripción
Capacidad expuestaSolo está abierta la API de análisis de destino
Chat generalNo disponible
Escenarios compatiblesAnálisis individual y análisis de pareja
Estándar de salidaAlineado con la experiencia interna del producto
Modelos disponibles

La referencia oficial es el resultado en tiempo real de GET /models. El conjunto disponible puede actualizarse según la evolución de la plataforma.

ModeloDescripción
openai/gpt-5.4Adecuado para análisis de destino de alta exigencia
openai/gpt-5.3-chatAdecuado para interpretación general y diálogo multi-turno
deepseek/deepseek-v3.2Adecuado para análisis diversos y diálogo multi-turno

3. Especificación de la solicitud

Formato de respuesta
EscenarioFormato de respuesta
stream=trueFlujo SSE compatible con OpenAI con cargas chat.completion.chunk y cierre data: [DONE]
stream=falseRespuesta JSON estándar chat.completion
POST /completionsRespuesta JSON text_completion compatible con OpenAI o flujo SSE
Cabeceras non-stream exitosasx-ylan-charged-credits y x-ylan-remaining-paid-credits
Parámetros de solicitud
ParámetroTipoDescripción
modelstringNombre del modelo devuelto por GET /models
messagesarrayArreglo de mensajes compatible con OpenAI; debe incluir al menos un mensaje user
promptstringEntrada heredada de completions; puede usarse cuando no se envía messages
inputstringCampo de entrada compatible con algunos clientes de terceros cuando no se envía messages
streambooleanSi se usa salida streaming; valor por defecto false
localestringIdioma de salida, como es, zh o en
topicstringTema de destino, como wealth_pattern o marriage_status
subject_modestringModo de análisis, single o pair
methodstringMétodo de análisis resuelto por la cadena actual
birth_profileobjectEntrada para análisis individual con datos de nacimiento
chart_inputobjectEntrada estructurada para escenarios con carta ya preparada
pair_stateobjectEntrada para análisis de pareja
metadataobjectMetadatos extendidos que pueden complementar topic, locale, birthProfile, pairState y otros campos
Ejemplo streaming individual
curl -N https://ylan.ai/api/openai/chat/completions \
  -H 'Authorization: Bearer sk-your-api-key' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "openai/gpt-5.4",
    "stream": true,
    "locale": "es",
    "topic": "wealth_pattern",
    "subject_mode": "single",
    "birth_profile": {
      "calendar": "solar",
      "birthDate": "1992-08-15",
      "birthTime": "09:30",
      "gender": "male",
      "location": "Shenzhen"
    },
    "messages": [
      {
        "role": "user",
        "content": "Analiza mi tendencia financiera para este año."
      }
    ]
  }'
Ejemplo streaming de pareja
curl -N https://ylan.ai/api/openai/chat/completions \
  -H 'Authorization: Bearer sk-your-api-key' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "deepseek/deepseek-v3.2",
    "stream": true,
    "locale": "es",
    "topic": "marriage_status",
    "subject_mode": "pair",
    "pair_state": {
      "subjects": [
        {
          "birthProfile": {
            "calendar": "solar",
            "birthDate": "1992-08-15",
            "birthTime": "09:30",
            "gender": "male",
            "location": "Shenzhen"
          }
        },
        {
          "birthProfile": {
            "calendar": "solar",
            "birthDate": "1995-03-08",
            "birthTime": "22:15",
            "gender": "female",
            "location": "Guangzhou"
          }
        }
      ]
    },
    "messages": [
      {
        "role": "user",
        "content": "Analiza la dirección a largo plazo de esta relación y los puntos clave de compatibilidad."
      }
    ]
  }'

4. Cobro y tratamiento de errores

Reglas de cobro y momento de confirmación
EscenarioRegla
Análisis individual100 créditos por cada respuesta exitosa
Análisis de pareja200 créditos por cada respuesta exitosa
need_inputNo genera cobro
Alcance de créditosSolo se consumen créditos pagados; los bonos de registro y créditos regalados quedan excluidos
stream=trueEl cobro se confirma cuando llega el primer contenido visible válido
stream=falseEl cobro se confirma cuando la respuesta completa se devuelve correctamente
Timeout, fallo, respuesta vacíaEl cobro no se confirma o se revierte según la regla actual
Códigos de error comunes
Estado HTTPCódigo de errorDescripción
400invalid_messagesLa solicitud no contiene mensajes válidos o falta un mensaje user
400invalid_promptLa solicitud no incluye messages, prompt ni input
400invalid_modelEl modelo solicitado no está dentro de la lista permitida
401invalid_api_keyLa API key es inválida o no fue enviada
402insufficient_paid_creditsLa cuenta no tiene suficientes créditos pagados
500request_timeoutLa solicitud agotó el tiempo
500request_failedLa solicitud falló
500internal_errorError interno del servidor
502empty_responseEl modelo no devolvió contenido visible válido
Respuesta need_input

Cuando faltan datos de nacimiento, datos temáticos o información de pareja, la API puede devolver una respuesta de tipo need_input. Este tipo de respuesta solo sirve para completar las condiciones previas del análisis y no genera cobro.