API REST v1

Duas APIs, dois fluxos bem separados.

Use uma Inbox para criar tickets sem Discord ou controle um bot conectado. Cada rota deixa claro a qual produto pertence.

Gerar token
Primeira chamada
Troque o token pelo valor gerado na sua conta.
bash
curl "https://api.lnup.pro/v1/inboxes" \
  -H "Authorization: Bearer lup_seu_token"

Token por conta

O segredo é exibido uma vez e armazenado apenas como hash.

Produtos separados

Inboxes têm IA e ferramentas próprias, sem ações ou configurações do Discord.

JSON e tempo real

Mudanças feitas pela API também aparecem nos chats abertos.

Autenticação

Obrigatória em todas as rotas abaixo.

Header

Gere o token em Conta → Configurações → API externa. O mesmo token autentica a conta, mas nunca substitui o token privado de um bot Discord.

Authorization: Bearer lup_seu_token

Erros comuns

400Payload ou operação inválida
401Token ausente, inválido ou revogado
403A conta não possui a permissão
404Recurso não encontrado
Referência

Todas as rotas

26 endpoints documentados individualmente.

Inboxes da API

1
Inbox da APIGET/v1/inboxes
Listar Inboxes da API
Retorna as Inboxes pertencentes à conta do token. Uma Inbox recebe tickets diretamente do seu sistema e não depende de um bot do Discord.

Quando usar

Use para descobrir o inboxId antes de criar ou consultar tickets.

Permissão

O token precisa pertencer ao dono da Inbox.

Exemplo com cURL

bash
curl -X GET "https://api.lnup.pro/v1/inboxes" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
[
  {
    "id": "inbox_ou_object_id",
    "name": "Suporte do aplicativo",
    "description": "Atendimentos criados pelo backend",
    "customDomainHost": null
  }
]

Tickets da Inbox

5
Inbox da APIGET/v1/inboxes/:inboxId/tickets
Listar tickets da Inbox
Lista todos os tickets não excluídos que foram criados nesta Inbox.

Quando usar

Sincronize os atendimentos da Lineup com seu painel ou sistema interno.

Permissão

O token precisa pertencer ao dono da Inbox.

Parâmetros da URL

inboxId

ID interno da Inbox na Lineup.

Exemplo com cURL

bash
curl -X GET "https://api.lnup.pro/v1/inboxes/INBOX_ID/tickets" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
[
  {
    "_id": "ticket_id",
    "workspaceType": "inbox",
    "title": "Dúvida sobre cobrança",
    "reason": "Preciso entender uma cobrança recente.",
    "customerEmail": "maria@exemplo.com",
    "isPrivate": false
  }
]
Inbox da APIPOST/v1/inboxes/:inboxId/tickets
Criar ticket sem bot
Cria um atendimento diretamente pela API e devolve um link de chat autenticado para o cliente.

Quando usar

Chame esta rota no backend do seu produto quando um cliente solicitar suporte.

Permissão

O token precisa pertencer ao dono da Inbox.

Parâmetros da URL

inboxId

ID interno da Inbox na Lineup.

Corpo da requisição

json
{
  "customerId": "cliente_123",
  "customerName": "Maria",
  "customerEmail": "maria@exemplo.com",
  "subject": "Dúvida sobre cobrança",
  "category": "Financeiro",
  "reason": "Preciso entender uma cobrança recente.",
  "metadata": {
    "orderId": "pedido_456"
  }
}

Regras importantes

  • Todos os campos são opcionais.
  • customerId deve ser um identificador estável do cliente no seu sistema.
  • metadata aceita dados JSON úteis para contextualizar o atendimento.
  • O customerAccessToken e o parâmetro access da chatUrl são secretos e temporários.

Exemplo com cURL

bash
curl -X POST "https://api.lnup.pro/v1/inboxes/INBOX_ID/tickets" \
  -H "Authorization: Bearer lup_seu_token" \
  -H "Content-Type: application/json" \
  -d '{
  "customerId": "cliente_123",
  "customerName": "Maria",
  "customerEmail": "maria@exemplo.com",
  "subject": "Dúvida sobre cobrança",
  "category": "Financeiro",
  "reason": "Preciso entender uma cobrança recente.",
  "metadata": {
    "orderId": "pedido_456"
  }
}'

Resposta

json
{
  "ticket": {
    "_id": "ticket_id",
    "workspaceType": "inbox",
    "title": "Dúvida sobre cobrança"
  },
  "chatUrl": "https://go.lnup.pro/chat/ticket_id?access=token_temporario",
  "customerAccessToken": "token_temporario",
  "accessExpiresAt": "2026-06-21T12:00:00.000Z"
}
Inbox da APIGET/v1/inboxes/:inboxId/tickets/:ticketId
Consultar ticket da Inbox
Retorna dados, contexto, cliente, mensagens contabilizadas e privacidade do ticket.

Quando usar

Consulte o estado atual antes de exibir ou sincronizar um atendimento.

Permissão

O token precisa pertencer ao dono da Inbox.

Parâmetros da URL

inboxId

ID interno da Inbox.

ticketId

ID interno do ticket.

Exemplo com cURL

bash
curl -X GET "https://api.lnup.pro/v1/inboxes/INBOX_ID/tickets/TICKET_ID" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
{
  "_id": "ticket_id",
  "workspaceType": "inbox",
  "title": "Dúvida sobre cobrança",
  "customerEmail": "maria@exemplo.com",
  "category": "Financeiro",
  "metadata": { "orderId": "pedido_456" },
  "isPrivate": false
}
Inbox da APIPATCH/v1/inboxes/:inboxId/tickets/:ticketId
Atualizar ticket da Inbox
Controla se o link aceita novos acessos e se a IA pode responder neste ticket. Inboxes não expõem suspensão nem ações do Discord.

Quando usar

Privatize o atendimento quando o link não deve mais ser compartilhável.

Permissão

O token precisa pertencer ao dono da Inbox.

Parâmetros da URL

inboxId

ID interno da Inbox.

ticketId

ID interno do ticket.

Corpo da requisição

json
{
  "isPrivate": true,
  "virtualAgentEnabled": false
}

Exemplo com cURL

bash
curl -X PATCH "https://api.lnup.pro/v1/inboxes/INBOX_ID/tickets/TICKET_ID" \
  -H "Authorization: Bearer lup_seu_token" \
  -H "Content-Type: application/json" \
  -d '{
  "isPrivate": true,
  "virtualAgentEnabled": false
}'

Resposta

json
{
  "_id": "ticket_id",
  "isPrivate": true,
  "virtualAgentEnabled": false
}
Inbox da APIDELETE/v1/inboxes/:inboxId/tickets/:ticketId
Excluir ticket da Inbox
Remove o ticket das listas, encerra o acesso pelo chat e preserva a marcação interna de exclusão.

Quando usar

Exclua um atendimento quando ele não deve mais ficar disponível.

Permissão

O token precisa pertencer ao dono da Inbox.

Parâmetros da URL

inboxId

ID interno da Inbox.

ticketId

ID interno do ticket.

Exemplo com cURL

bash
curl -X DELETE "https://api.lnup.pro/v1/inboxes/INBOX_ID/tickets/TICKET_ID" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
{ "success": true }

Mensagens da Inbox

3
Inbox da APIGET/v1/inboxes/:inboxId/tickets/:ticketId/messages
Listar mensagens da Inbox
Retorna a conversa do ticket em ordem cronológica.

Quando usar

Sincronize o histórico com seu CRM ou painel interno.

Permissão

O token precisa pertencer ao dono da Inbox.

Parâmetros da URL

inboxId

ID interno da Inbox.

ticketId

ID interno do ticket.

Exemplo com cURL

bash
curl -X GET "https://api.lnup.pro/v1/inboxes/INBOX_ID/tickets/TICKET_ID/messages" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
[
  {
    "_id": "message_id",
    "authorName": "Maria",
    "authorRole": "customer",
    "content": "Olá, preciso de ajuda."
  }
]
Inbox da APIPOST/v1/inboxes/:inboxId/tickets/:ticketId/messages
Enviar mensagem na Inbox
Envia uma mensagem como atendente ou cliente e atualiza o chat em tempo real.

Quando usar

Responda pelo seu próprio sistema mantendo a conversa sincronizada na Lineup.

Permissão

O token precisa pertencer ao dono da Inbox.

Parâmetros da URL

inboxId

ID interno da Inbox.

ticketId

ID interno do ticket.

Corpo da requisição

json
{
  "authorRole": "agent",
  "authorName": "Equipe de suporte",
  "content": "Vamos verificar sua solicitação."
}

Exemplo com cURL

bash
curl -X POST "https://api.lnup.pro/v1/inboxes/INBOX_ID/tickets/TICKET_ID/messages" \
  -H "Authorization: Bearer lup_seu_token" \
  -H "Content-Type: application/json" \
  -d '{
  "authorRole": "agent",
  "authorName": "Equipe de suporte",
  "content": "Vamos verificar sua solicitação."
}'

Resposta

json
{
  "_id": "message_id",
  "authorRole": "agent",
  "content": "Vamos verificar sua solicitação."
}
Inbox da APIGET/v1/inboxes/:inboxId/tickets/:ticketId/transcript
Baixar transcript da Inbox
Gera um arquivo HTML com participantes, mensagens, anexos e confirmações de leitura.

Quando usar

Arquive ou entregue uma cópia legível do atendimento.

Permissão

O token precisa pertencer ao dono da Inbox.

Parâmetros da URL

inboxId

ID interno da Inbox.

ticketId

ID interno do ticket.

Exemplo com cURL

bash
curl -X GET "https://api.lnup.pro/v1/inboxes/INBOX_ID/tickets/TICKET_ID/transcript" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
<!doctype html>...

IA da Inbox

3
Inbox da APIGET/v1/inboxes/:inboxId/tickets/:ticketId/tool-requests
Listar solicitações de ferramentas da Inbox
Retorna as ferramentas que a IA pediu para executar em um ticket da Inbox.

Quando usar

Use quando seu sistema externo também precisa acompanhar aprovações pendentes.

Permissão

O token precisa pertencer ao dono da Inbox.

Parâmetros da URL

inboxId

ID interno da Inbox.

ticketId

ID interno do ticket.

Exemplo com cURL

bash
curl -X GET "https://api.lnup.pro/v1/inboxes/INBOX_ID/tickets/TICKET_ID/tool-requests" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
[
  {
    "_id": "request-id",
    "inboxId": "inbox-id",
    "toolName": "Buscar pedido",
    "status": "pending",
    "input": { "orderId": "pedido_456" }
  }
]
Inbox da APIPOST/v1/inboxes/:inboxId/tickets/:ticketId/tool-requests/:requestId/approve
Aprovar ferramenta da Inbox
Executa uma ferramenta pendente e permite que a IA responda usando o resultado.

Quando usar

Aprove manualmente uma chamada sensível quando o modo da IA for Aprovar por mim.

Permissão

O token precisa pertencer ao dono da Inbox.

Parâmetros da URL

inboxId

ID interno da Inbox.

ticketId

ID interno do ticket.

requestId

ID da solicitação pendente.

Exemplo com cURL

bash
curl -X POST "https://api.lnup.pro/v1/inboxes/INBOX_ID/tickets/TICKET_ID/tool-requests/REQUEST_ID/approve" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
{
  "_id": "request-id",
  "status": "executed",
  "result": "{\"status\":\"paid\"}"
}
Inbox da APIPOST/v1/inboxes/:inboxId/tickets/:ticketId/tool-requests/:requestId/reject
Rejeitar ferramenta da Inbox
Cancela a ferramenta pendente e registra a decisão no chat do ticket.

Quando usar

Use quando a IA pediu uma ação que não deve ser executada.

Permissão

O token precisa pertencer ao dono da Inbox.

Parâmetros da URL

inboxId

ID interno da Inbox.

ticketId

ID interno do ticket.

requestId

ID da solicitação pendente.

Exemplo com cURL

bash
curl -X POST "https://api.lnup.pro/v1/inboxes/INBOX_ID/tickets/TICKET_ID/tool-requests/REQUEST_ID/reject" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
{
  "_id": "request-id",
  "status": "rejected",
  "approvedBy": "user-id"
}

Bots Discord

1
Bot DiscordGET/v1/bots
Listar bots acessíveis
Retorna os bots que a conta dona do token pode acessar, incluindo bots próprios e bots compartilhados com a equipe.

Quando usar

Use esta rota para descobrir o botId antes de criar ou consultar tickets.

Permissão

A conta precisa ter acesso ao bot.

Exemplo com cURL

bash
curl -X GET "https://api.lnup.pro/v1/bots" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
[
  {
    "id": "6a28d690368ebb8eae63f15d",
    "name": "Suporte",
    "status": "active",
    "access": {
      "isOwner": true,
      "roleName": "Dono",
      "permissions": ["view", "reply", "suspend"]
    }
  }
]

Tickets do Bot

5
Bot DiscordGET/v1/bots/:botId/tickets
Listar tickets
Lista os tickets não excluídos do bot, dos mais recentes para os mais antigos.

Quando usar

Use para sincronizar tickets com um CRM, painel interno ou automação externa.

Permissão

view

Parâmetros da URL

botId

ID interno do bot na Lineup.

Exemplo com cURL

bash
curl -X GET "https://api.lnup.pro/v1/bots/BOT_ID/tickets" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
[
  {
    "_id": "6a29f9299be71546096a1461",
    "title": "Cliente API: Compra duplicada",
    "reason": "Compra duplicada",
    "status": "open",
    "messageCount": 4,
    "virtualAgentEnabled": true,
    "isPrivate": false,
    "archivedAt": null
  }
]
Bot DiscordPOST/v1/bots/:botId/tickets
Criar ticket
Cria um atendimento fora do Discord e registra o cliente como participante inicial.

Quando usar

Use quando um formulário, checkout, aplicativo ou sistema próprio precisar abrir um ticket na Lineup.

Permissão

view

Parâmetros da URL

botId

ID interno do bot na Lineup.

Corpo da requisição

json
{
  "title": "Problema com pagamento",
  "reason": "O cliente identificou uma cobrança duplicada.",
  "guildId": "external-store",
  "guildName": "Loja virtual",
  "customerId": "customer_9281",
  "customerName": "Marina",
  "customerAvatarUrl": "https://example.com/avatar.png"
}

Regras importantes

  • Todos os campos são opcionais.
  • Se customerId não for enviado, a Lineup gera uma identidade externa.
  • guildId e guildName podem representar o sistema que originou o ticket.

Exemplo com cURL

bash
curl -X POST "https://api.lnup.pro/v1/bots/BOT_ID/tickets" \
  -H "Authorization: Bearer lup_seu_token" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "Problema com pagamento",
  "reason": "O cliente identificou uma cobrança duplicada.",
  "guildId": "external-store",
  "guildName": "Loja virtual",
  "customerId": "customer_9281",
  "customerName": "Marina",
  "customerAvatarUrl": "https://example.com/avatar.png"
}'

Resposta

json
{
  "_id": "6a29f9299be71546096a1461",
  "botId": "6a28d690368ebb8eae63f15d",
  "title": "Problema com pagamento",
  "reason": "O cliente identificou uma cobrança duplicada.",
  "status": "open",
  "participants": [
    {
      "id": "customer_9281",
      "name": "Marina",
      "role": "customer"
    }
  ]
}
Bot DiscordGET/v1/bots/:botId/tickets/:ticketId
Consultar ticket
Retorna estado, origem, participantes, contagem de mensagens e configurações atuais do ticket.

Quando usar

Use antes de executar uma ação ou para refletir o estado atual em outro sistema.

Permissão

view

Parâmetros da URL

botId

ID interno do bot.

ticketId

ID interno do ticket.

Exemplo com cURL

bash
curl -X GET "https://api.lnup.pro/v1/bots/BOT_ID/tickets/TICKET_ID" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
{
  "_id": "6a29f9299be71546096a1461",
  "status": "open",
  "isPrivate": false,
  "virtualAgentEnabled": true,
  "archivedAt": null,
  "messageCount": 4,
  "participants": []
}
Bot DiscordPATCH/v1/bots/:botId/tickets/:ticketId
Atualizar ticket
Suspende, reabre, arquiva, torna privado ou altera a IA de um ticket.

Quando usar

Use para reproduzir pela API as ações disponíveis na administração do ticket.

Permissão

suspend para status, close para arquivamento, reply para IA e manage_people para privacidade.

Parâmetros da URL

botId

ID interno do bot.

ticketId

ID interno do ticket.

Corpo da requisição

json
{
  "status": "suspended",
  "archived": false,
  "virtualAgentEnabled": false,
  "isPrivate": true
}

Regras importantes

  • Envie somente os campos que deseja alterar.
  • status aceita open ou suspended. Fechamento direto não é permitido.
  • archived: true resolve e arquiva o ticket.
  • isPrivate: true bloqueia novos acessos pelo link público.

Exemplo com cURL

bash
curl -X PATCH "https://api.lnup.pro/v1/bots/BOT_ID/tickets/TICKET_ID" \
  -H "Authorization: Bearer lup_seu_token" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "suspended",
  "archived": false,
  "virtualAgentEnabled": false,
  "isPrivate": true
}'

Resposta

json
{
  "_id": "6a29f9299be71546096a1461",
  "status": "suspended",
  "isPrivate": true,
  "virtualAgentEnabled": false
}
Bot DiscordDELETE/v1/bots/:botId/tickets/:ticketId
Excluir ticket
Remove o ticket das listas, marca o atendimento como resolvido e bloqueia o acesso público.

Quando usar

Use somente quando o ticket não deve mais aparecer na operação.

Permissão

Somente o dono do bot.

Parâmetros da URL

botId

ID interno do bot.

ticketId

ID interno do ticket.

Regras importantes

  • A exclusão é lógica: o ticket deixa de ser acessível, mas os dados permanecem armazenados.
  • Baixe o transcript antes da exclusão quando precisar preservar uma cópia externa.

Exemplo com cURL

bash
curl -X DELETE "https://api.lnup.pro/v1/bots/BOT_ID/tickets/TICKET_ID" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
{
  "success": true
}

Mensagens do Bot

3
Bot DiscordGET/v1/bots/:botId/tickets/:ticketId/messages
Listar mensagens
Retorna o histórico completo em ordem cronológica, incluindo anexos e confirmações de leitura.

Quando usar

Use para espelhar conversas, criar auditorias ou montar uma interface própria.

Permissão

view

Parâmetros da URL

botId

ID interno do bot.

ticketId

ID interno do ticket.

Exemplo com cURL

bash
curl -X GET "https://api.lnup.pro/v1/bots/BOT_ID/tickets/TICKET_ID/messages" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
[
  {
    "_id": "message-id",
    "authorId": "customer_9281",
    "authorName": "Marina",
    "authorRole": "customer",
    "content": "Preciso de ajuda com a cobrança.",
    "attachments": [],
    "readBy": ["customer_9281"],
    "createdAt": "2026-06-14T18:00:00.000Z"
  }
]
Bot DiscordPOST/v1/bots/:botId/tickets/:ticketId/messages
Enviar mensagem
Publica uma mensagem no ticket e transmite a atualização em tempo real para quem estiver no chat.

Quando usar

Use para enviar mensagens de clientes, visitantes ou atendentes a partir do seu sistema.

Permissão

view para customer/guest. reply para mensagens com authorRole agent.

Parâmetros da URL

botId

ID interno do bot.

ticketId

ID interno do ticket.

Corpo da requisição

json
{
  "content": "Consultei o pedido e encontrei a cobrança.",
  "authorId": "agent_42",
  "authorName": "Equipe financeira",
  "authorRole": "agent",
  "authorAvatarUrl": "https://example.com/agent.png",
  "attachments": [
    {
      "name": "comprovante.pdf",
      "type": "application/pdf",
      "size": 183204,
      "dataUrl": "data:application/pdf;base64,..."
    }
  ]
}

Regras importantes

  • content aceita até 4.000 caracteres.
  • Até 4 anexos em data URL, com no máximo 2 MB cada.
  • Quando um atendente responde, a IA é desativada automaticamente no ticket.
  • Mensagens de customer e guest podem disparar a IA se ela estiver ativa.

Exemplo com cURL

bash
curl -X POST "https://api.lnup.pro/v1/bots/BOT_ID/tickets/TICKET_ID/messages" \
  -H "Authorization: Bearer lup_seu_token" \
  -H "Content-Type: application/json" \
  -d '{
  "content": "Consultei o pedido e encontrei a cobrança.",
  "authorId": "agent_42",
  "authorName": "Equipe financeira",
  "authorRole": "agent",
  "authorAvatarUrl": "https://example.com/agent.png",
  "attachments": [
    {
      "name": "comprovante.pdf",
      "type": "application/pdf",
      "size": 183204,
      "dataUrl": "data:application/pdf;base64,..."
    }
  ]
}'

Resposta

json
{
  "_id": "message-id",
  "authorName": "Equipe financeira",
  "authorRole": "agent",
  "content": "Consultei o pedido e encontrei a cobrança.",
  "readBy": ["agent_42"]
}
Bot DiscordGET/v1/bots/:botId/tickets/:ticketId/transcript
Baixar transcript
Gera um documento HTML com o ticket, participantes e toda a conversa.

Quando usar

Use para auditoria, backup ou anexação em outro sistema antes de excluir um ticket.

Permissão

view

Parâmetros da URL

botId

ID interno do bot.

ticketId

ID interno do ticket.

Exemplo com cURL

bash
curl -X GET "https://api.lnup.pro/v1/bots/BOT_ID/tickets/TICKET_ID/transcript" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

text
Resposta HTML com Content-Disposition: attachment; filename="lineup-ticket-transcript.html".

Participantes do Bot

2
Bot DiscordPOST/v1/bots/:botId/tickets/:ticketId/participants
Adicionar participante
Inclui ou atualiza uma pessoa no ticket usando um ID controlado pelo seu sistema.

Quando usar

Use quando outro cliente, colaborador ou atendente precisar fazer parte do atendimento.

Permissão

manage_people

Parâmetros da URL

botId

ID interno do bot.

ticketId

ID interno do ticket.

Corpo da requisição

json
{
  "id": "customer_1042",
  "name": "Rafael",
  "avatarUrl": "https://example.com/rafael.png",
  "role": "customer"
}

Regras importantes

  • id é obrigatório e deve ser estável no seu sistema.
  • role aceita customer, agent ou guest.
  • Enviar um ID existente atualiza nome, avatar, papel e último acesso.

Exemplo com cURL

bash
curl -X POST "https://api.lnup.pro/v1/bots/BOT_ID/tickets/TICKET_ID/participants" \
  -H "Authorization: Bearer lup_seu_token" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "customer_1042",
  "name": "Rafael",
  "avatarUrl": "https://example.com/rafael.png",
  "role": "customer"
}'

Resposta

json
{
  "_id": "ticket-id",
  "participants": [
    {
      "id": "customer_1042",
      "name": "Rafael",
      "role": "customer"
    }
  ]
}
Bot DiscordDELETE/v1/bots/:botId/tickets/:ticketId/participants/:participantId
Remover participante
Retira uma pessoa da lista de participantes do ticket.

Quando usar

Use quando uma pessoa não deve mais participar ou acessar o atendimento.

Permissão

manage_people

Parâmetros da URL

botId

ID interno do bot.

ticketId

ID interno do ticket.

participantId

ID informado ao adicionar a pessoa.

Exemplo com cURL

bash
curl -X DELETE "https://api.lnup.pro/v1/bots/BOT_ID/tickets/TICKET_ID/participants/PARTICIPANT_ID" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
{
  "_id": "ticket-id",
  "participants": []
}

IA do Bot

3
Bot DiscordGET/v1/bots/:botId/tickets/:ticketId/tool-requests
Listar solicitações de ferramentas
Retorna as ferramentas que a IA pediu para executar e o estado de cada solicitação.

Quando usar

Use para construir uma fila externa de aprovações humanas.

Permissão

view

Parâmetros da URL

botId

ID interno do bot.

ticketId

ID interno do ticket.

Exemplo com cURL

bash
curl -X GET "https://api.lnup.pro/v1/bots/BOT_ID/tickets/TICKET_ID/tool-requests" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
[
  {
    "_id": "request-id",
    "toolName": "Consultar pedido",
    "reason": "O cliente perguntou sobre o pedido 9281.",
    "input": { "orderId": "9281" },
    "status": "pending"
  }
]
Bot DiscordPOST/v1/bots/:botId/tickets/:ticketId/tool-requests/:requestId/approve
Aprovar ferramenta
Autoriza a execução de uma ferramenta pendente e permite que a IA responda usando o resultado.

Quando usar

Use quando o bot estiver no modo Aprovar por mim e seu sistema tiver confirmado a ação.

Permissão

reply

Parâmetros da URL

botId

ID interno do bot.

ticketId

ID interno do ticket.

requestId

ID da solicitação pendente.

Exemplo com cURL

bash
curl -X POST "https://api.lnup.pro/v1/bots/BOT_ID/tickets/TICKET_ID/tool-requests/REQUEST_ID/approve" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
{
  "_id": "request-id",
  "status": "executed",
  "approvedBy": "user-id",
  "result": "Pedido encontrado."
}
Bot DiscordPOST/v1/bots/:botId/tickets/:ticketId/tool-requests/:requestId/reject
Rejeitar ferramenta
Cancela uma solicitação pendente e informa no ticket que a execução foi recusada.

Quando usar

Use quando a ação for sensível, desnecessária ou estiver com dados incorretos.

Permissão

reply

Parâmetros da URL

botId

ID interno do bot.

ticketId

ID interno do ticket.

requestId

ID da solicitação pendente.

Exemplo com cURL

bash
curl -X POST "https://api.lnup.pro/v1/bots/BOT_ID/tickets/TICKET_ID/tool-requests/REQUEST_ID/reject" \
  -H "Authorization: Bearer lup_seu_token"

Resposta

json
{
  "_id": "request-id",
  "status": "rejected",
  "approvedBy": "user-id"
}