Guia de Integração da API de Destino

Forma de acesso, modelos disponíveis, especificação das requisições, regras de cobrança e exemplos de uso da API de destino da YlanAI
mar 25, 2026

Esta página descreve o padrão de integração da API de destino da YlanAI.

A interface atual segue o protocolo compatível com OpenAI e foi pensada para clientes que suportem chat/completions e completions.

1. Informações de acesso

URL, método de requisição e endpoints padrão
ItemDescrição
URL base recomendadahttps://ylan.ai/api/openai
URL base de compatibilidadehttps://ylan.ai/api/openai/v1
Método padrãoPOST
Lista de modelosGET /models
Detalhe do modeloGET /models/{id}
Endpoint de conversaPOST /chat/completions
Endpoint legado completionsPOST /completions

Para clientes de terceiros que acrescentam /v1 automaticamente, use https://ylan.ai/api/openai como URL base configurada.

Autenticação

Todas as requisições devem incluir:

Authorization: Bearer sk-...

A API key pertence à conta do usuário atual, e o consumo é debitado do saldo de créditos pagos dessa conta.

Para clientes que não conseguem definir Authorization, a compatibilidade também aceita api-key: sk-... e x-api-key: sk-....

Conversa multi-turn

Conversas em múltiplas rodadas são suportadas. O cliente pode enviar o histórico no array messages para preservar o contexto.

2. Escopo e modelos

Escopo do serviço
EscopoDescrição
Capacidade expostaApenas a API de análise de destino está aberta
Chat geralNão está disponível
Cenários suportadosHá suporte para análise individual e análise de casal
Padrão de saídaSegue a mesma referência do produto interno
Modelos disponíveis

O resultado em tempo real de GET /models é a referência oficial. O conjunto disponível pode mudar conforme a evolução da plataforma.

ModeloDescrição
openai/gpt-5.4Adequado para análises de destino com maior exigência de qualidade
openai/gpt-5.3-chatAdequado para interpretação geral e diálogo multi-turno
deepseek/deepseek-v3.2Adequado para análises variadas e diálogo multi-turno

3. Especificação da requisição

Formato de resposta
CenárioFormato de resposta
stream=trueRetorna um fluxo SSE compatível com OpenAI usando payloads chat.completion.chunk e encerramento com data: [DONE]
stream=falseRetorna um JSON padrão chat.completion
POST /completionsRetorna um JSON text_completion compatível com OpenAI ou fluxo SSE
Headers non-stream bem-sucedidosInclui x-ylan-charged-credits e x-ylan-remaining-paid-credits
Parâmetros da requisição
ParâmetroTipoDescrição
modelstringNome do modelo retornado por GET /models
messagesarrayArray de mensagens compatível com OpenAI; é necessário ao menos um item user
promptstringEntrada legada de completions; pode ser usada quando messages é omitido
inputstringCampo de entrada de compatibilidade para alguns clientes terceiros quando messages é omitido
streambooleanDefine se a resposta será em streaming. O padrão é false
localestringIdioma de saída, como pt, zh ou en
topicstringTema de destino, como wealth_pattern ou marriage_status
subject_modestringModo de análise: single ou pair
methodstringMétodo de análise interpretado pela cadeia atual
birth_profileobjectEntrada com dados de nascimento para análise individual
chart_inputobjectEntrada estruturada para cenários com mapa já preparado
pair_stateobjectEntrada para análise de casal
metadataobjectMetadados estendidos que podem complementar topic, locale, birthProfile, pairState e outros campos
Exemplo 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": "pt",
    "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": "Analise minha tendência financeira para este ano."
      }
    ]
  }'
Exemplo streaming de casal
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": "pt",
    "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": "Analise a direção de longo prazo desta relação e os principais pontos de compatibilidade."
      }
    ]
  }'

4. Cobrança e tratamento de erros

Regras de cobrança e momento de confirmação
CenárioRegra
Análise individual100 créditos por resposta bem-sucedida
Análise de casal200 créditos por resposta bem-sucedida
need_inputNão gera cobrança
Escopo dos créditosApenas créditos pagos podem ser consumidos; bônus de cadastro e créditos concedidos não são aceitos
stream=trueA cobrança é confirmada quando o primeiro conteúdo visível válido é retornado
stream=falseA cobrança é confirmada depois que a resposta completa é retornada com sucesso
Timeout, falha ou resposta vaziaA cobrança não é confirmada ou é revertida conforme a regra vigente
Códigos de erro comuns
Status HTTPCódigo de erroDescrição
400invalid_messagesA requisição não contém mensagens válidas ou não possui mensagem user
400invalid_promptA requisição não contém messages, prompt nem input
400invalid_modelO modelo solicitado não está na allowlist atual
401invalid_api_keyA API key está ausente ou inválida
402insufficient_paid_creditsA conta não possui créditos pagos suficientes
500request_timeoutA requisição excedeu o tempo limite
500request_failedA requisição falhou
500internal_errorErro interno do servidor
502empty_responseO modelo não retornou conteúdo visível válido
Respostas need_input

Quando dados de nascimento, dados do tópico ou informações de casal estão incompletos, a API pode retornar uma resposta no estilo need_input. Esse tipo de resposta serve apenas para complementar os pré-requisitos da análise e não é cobrado.