Referência da API

Conversas

Uma conversa é a sua troca de DMs com um lead no X, e o ID dela é o ID do lead. Leia todas as mensagens de uma conversa, liste-as em massa, responda pela sua conta do X e mantenha o quadro de Conversas em ordem. As novas respostas também chegam pelo webhook reply.received.

O objeto conversation

A sua troca de DMs com um lead no X. O ID dela é o ID do lead.

Atributos

  • idstring
    Identificador único da conversa, o mesmo que lead_id.
  • objectstring
    Sempre conversation.
  • lead_idstring
    O lead com quem você está falando.
  • profileobject
    O perfil do lead no X, como no objeto lead.
  • unreadboolean
    Indica se a última mensagem do lead ainda não foi lida.
  • last_message_atstring
    Quando a última mensagem foi enviada, em ISO 8601.
  • messages_countinteger
    Mensagens na conversa.
  • last_messageobject ou null
    A última mensagem.
  • personaobject ou null
    A persona do lead.
  • columnobject ou null
    A coluna do seu quadro de Conversas em que a conversa está, como Interessados. Veja Colunas do pipeline.
  • historystring
    complete quando messages traz a conversa inteira. recent enquanto o Gemlead só guarda as últimas mensagens de uma conversa longa, antes de ler o resto no X uma única vez. Apenas com messages.
    completerecent
  • messagesarray de objects
    Todas as mensagens da conversa, das mais antigas para as mais novas. Ao obter uma única conversa, ou ao listá-las com include_messages.
O objeto conversation
{
  "id": "msgOtJ8dvT",
  "object": "conversation",
  "lead_id": "msgOtJ8dvT",
  "profile": {
    "x_user_id": "1460283925",
    "username": "jane_builds",
    "name": "Jane Doe",
    "bio": "Runs a paid trading community. Daily setups, no hype.",
    "followers_count": 12400,
    "following_count": 380,
    "location": "Austin, TX",
    "website": "https://janedoe.com",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
    "verified": true,
    "url": "https://x.com/jane_builds"
  },
  "unread": true,
  "last_message_at": "2026-11-06T08:12:44.000Z",
  "messages_count": 4,
  "last_message": {
    "id": "1985321409876543210",
    "object": "message",
    "direction": "inbound",
    "text": "Yes, I want to charge for my Discord. How does it work?",
    "created_at": "2026-11-06T08:12:44.000Z",
    "media": [],
    "reactions": [],
    "encrypted": false,
    "reply_to_message_id": null
  },
  "persona": {
    "id": "lvWBPnytpS",
    "name": "Tipsters"
  },
  "column": {
    "id": "q7m2xk4p",
    "name": "Interested"
  }
}

Listar conversas

GET/v1/conversationsScope readMCPlist_conversations

Retorna suas conversas, ordenadas pela mensagem mais recente.

Parâmetros de consulta

  • unreadboolean
    true só para as conversas não lidas.
  • personastring
    Só as conversas com leads da persona com este ID.
  • include_messagesboolean
    true para receber cada conversa com todas as mensagens, das mais antigas para as mais novas, e history. As páginas ficam mais pesadas, então mantenha limit em 25 ou menos.
  • limitinteger
    Quantos objetos retornar, de 1 a 100. O padrão é 25.
  • cursorstring
    O next_cursor da página anterior, para obter a página seguinte. Veja Paginação.

Retorno

Uma lista de objetos conversation, com messages apenas quando include_messages é true.

Erros

  • Um parâmetro tem um valor que a API não aceita. param diz qual.
GET/v1/conversations
curl -G https://gemlead.ai/api/v1/conversations \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -d unread=true
Resposta200
{
  "object": "list",
  "data": [
    {
      "id": "msgOtJ8dvT",
      "object": "conversation",
      "lead_id": "msgOtJ8dvT",
      "profile": {
        "x_user_id": "1460283925",
        "username": "jane_builds",
        "name": "Jane Doe",
        "bio": "Runs a paid trading community. Daily setups, no hype.",
        "followers_count": 12400,
        "following_count": 380,
        "location": "Austin, TX",
        "website": "https://janedoe.com",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
        "verified": true,
        "url": "https://x.com/jane_builds"
      },
      "unread": true,
      "last_message_at": "2026-11-06T08:12:44.000Z",
      "messages_count": 4,
      "last_message": {
        "id": "1985321409876543210",
        "object": "message",
        "direction": "inbound",
        "text": "Yes, I want to charge for my Discord. How does it work?",
        "created_at": "2026-11-06T08:12:44.000Z",
        "media": [],
        "reactions": [],
        "encrypted": false,
        "reply_to_message_id": null
      },
      "persona": {
        "id": "lvWBPnytpS",
        "name": "Tipsters"
      },
      "column": {
        "id": "q7m2xk4p",
        "name": "Interested"
      }
    }
  ],
  "has_more": true,
  "next_cursor": "eyJzIjoiMjAyNi0xMS0wNVQxNDowMzo0MC4xMTdaIn0"
}

Obter uma conversa

GET/v1/conversations/:idScope readMCPget_conversation

Retorna uma conversa com todas as mensagens, das mais antigas para as mais novas.

Parâmetros de caminho

  • idstringObrigatório
    O ID da conversa.

Retorno

Um objeto conversation com messages e history.

Erros

GET/v1/conversations/:id
curl https://gemlead.ai/api/v1/conversations/msgOtJ8dvT \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "id": "msgOtJ8dvT",
  "object": "conversation",
  "lead_id": "msgOtJ8dvT",
  "profile": {
    "x_user_id": "1460283925",
    "username": "jane_builds",
    "name": "Jane Doe",
    "bio": "Runs a paid trading community. Daily setups, no hype.",
    "followers_count": 12400,
    "following_count": 380,
    "location": "Austin, TX",
    "website": "https://janedoe.com",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
    "verified": true,
    "url": "https://x.com/jane_builds"
  },
  "unread": true,
  "last_message_at": "2026-11-06T08:12:44.000Z",
  "messages_count": 4,
  "last_message": {
    "id": "1985321409876543210",
    "object": "message",
    "direction": "inbound",
    "text": "Yes, I want to charge for my Discord. How does it work?",
    "created_at": "2026-11-06T08:12:44.000Z",
    "media": [],
    "reactions": [],
    "encrypted": false,
    "reply_to_message_id": null
  },
  "persona": {
    "id": "lvWBPnytpS",
    "name": "Tipsters"
  },
  "column": {
    "id": "q7m2xk4p",
    "name": "Interested"
  },
  "history": "complete",
  "messages": [
    {
      "id": "1985321409876543210",
      "object": "message",
      "direction": "inbound",
      "text": "Yes, I want to charge for my Discord. How does it work?",
      "created_at": "2026-11-06T08:12:44.000Z",
      "media": [],
      "reactions": [],
      "encrypted": false,
      "reply_to_message_id": null
    },
    {
      "id": "1985329981234567890",
      "object": "message",
      "direction": "outbound",
      "text": "Happy to show you. Do you sell picks monthly or per event?",
      "created_at": "2026-11-06T08:20:03.000Z",
      "media": [],
      "reactions": [
        {
          "emoji": "👍",
          "direction": "inbound",
          "created_at": "2026-11-06T08:24:51.000Z"
        }
      ],
      "encrypted": false,
      "reply_to_message_id": "1985321409876543210"
    }
  ]
}

Marcar como lida

POST/v1/conversations/:conversation_id/mark_readScope writeMCPupdate_conversation

Marca a conversa como lida no Gemlead, e no X com uma confirmação de leitura.

Parâmetros de caminho

  • conversation_idstringObrigatório
    O ID da conversa.

Retorno

O objeto conversation.

Erros

  • Nenhuma conversa com este ID na conta da chave.
  • A sessão da conta do X expirou. Reconecte a conta no app e tente de novo.
  • O X ou um serviço do Gemlead não respondeu. Nada mudou, tente de novo em um minuto.
POST/v1/conversations/:conversation_id/mark_read
curl -X POST \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/mark_read \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "id": "msgOtJ8dvT",
  "object": "conversation",
  "lead_id": "msgOtJ8dvT",
  "profile": {
    "x_user_id": "1460283925",
    "username": "jane_builds",
    "name": "Jane Doe",
    "bio": "Runs a paid trading community. Daily setups, no hype.",
    "followers_count": 12400,
    "following_count": 380,
    "location": "Austin, TX",
    "website": "https://janedoe.com",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
    "verified": true,
    "url": "https://x.com/jane_builds"
  },
  "unread": false,
  "last_message_at": "2026-11-06T08:12:44.000Z",
  "messages_count": 4,
  "last_message": {
    "id": "1985321409876543210",
    "object": "message",
    "direction": "inbound",
    "text": "Yes, I want to charge for my Discord. How does it work?",
    "created_at": "2026-11-06T08:12:44.000Z",
    "media": [],
    "reactions": [],
    "encrypted": false,
    "reply_to_message_id": null
  },
  "persona": {
    "id": "lvWBPnytpS",
    "name": "Tipsters"
  },
  "column": {
    "id": "q7m2xk4p",
    "name": "Interested"
  }
}

Marcar como não lida

POST/v1/conversations/:conversation_id/mark_unreadScope writeMCPupdate_conversation

Marca a conversa como não lida no Gemlead.

Parâmetros de caminho

  • conversation_idstringObrigatório
    O ID da conversa.

Retorno

O objeto conversation.

Erros

  • Nenhuma conversa com este ID na conta da chave.
  • A sessão da conta do X expirou. Reconecte a conta no app e tente de novo.
  • O X ou um serviço do Gemlead não respondeu. Nada mudou, tente de novo em um minuto.
POST/v1/conversations/:conversation_id/mark_unread
curl -X POST \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/mark_unread \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "id": "msgOtJ8dvT",
  "object": "conversation",
  "lead_id": "msgOtJ8dvT",
  "profile": {
    "x_user_id": "1460283925",
    "username": "jane_builds",
    "name": "Jane Doe",
    "bio": "Runs a paid trading community. Daily setups, no hype.",
    "followers_count": 12400,
    "following_count": 380,
    "location": "Austin, TX",
    "website": "https://janedoe.com",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
    "verified": true,
    "url": "https://x.com/jane_builds"
  },
  "unread": true,
  "last_message_at": "2026-11-06T08:12:44.000Z",
  "messages_count": 4,
  "last_message": {
    "id": "1985321409876543210",
    "object": "message",
    "direction": "inbound",
    "text": "Yes, I want to charge for my Discord. How does it work?",
    "created_at": "2026-11-06T08:12:44.000Z",
    "media": [],
    "reactions": [],
    "encrypted": false,
    "reply_to_message_id": null
  },
  "persona": {
    "id": "lvWBPnytpS",
    "name": "Tipsters"
  },
  "column": {
    "id": "q7m2xk4p",
    "name": "Interested"
  }
}

Mover uma conversa

POST/v1/conversations/:conversation_id/moveScope writeMCPupdate_conversation

Move a conversa para outra coluna do quadro de Conversas.

Parâmetros de caminho

  • conversation_idstringObrigatório
    O ID da conversa.

Parâmetros do corpo

Retorno

O objeto conversation.

Erros

POST/v1/conversations/:conversation_id/move
curl -X POST \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/move \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "column_id": "z3c6lf8a"
  }'
Resposta200
{
  "id": "msgOtJ8dvT",
  "object": "conversation",
  "lead_id": "msgOtJ8dvT",
  "profile": {
    "x_user_id": "1460283925",
    "username": "jane_builds",
    "name": "Jane Doe",
    "bio": "Runs a paid trading community. Daily setups, no hype.",
    "followers_count": 12400,
    "following_count": 380,
    "location": "Austin, TX",
    "website": "https://janedoe.com",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
    "verified": true,
    "url": "https://x.com/jane_builds"
  },
  "unread": true,
  "last_message_at": "2026-11-06T08:12:44.000Z",
  "messages_count": 4,
  "last_message": {
    "id": "1985321409876543210",
    "object": "message",
    "direction": "inbound",
    "text": "Yes, I want to charge for my Discord. How does it work?",
    "created_at": "2026-11-06T08:12:44.000Z",
    "media": [],
    "reactions": [],
    "encrypted": false,
    "reply_to_message_id": null
  },
  "persona": {
    "id": "lvWBPnytpS",
    "name": "Tipsters"
  },
  "column": {
    "id": "z3c6lf8a",
    "name": "Call booked"
  }
}

Fixar uma conversa

POST/v1/conversations/:conversation_id/pinScope writeMCPupdate_conversation

Fixa a conversa na sua inbox do X.

Parâmetros de caminho

  • conversation_idstringObrigatório
    O ID da conversa.

Retorno

O objeto conversation.

Erros

  • Nenhuma conversa com este ID na conta da chave.
  • A sessão da conta do X expirou. Reconecte a conta no app e tente de novo.
  • O X ou um serviço do Gemlead não respondeu. Nada mudou, tente de novo em um minuto.
POST/v1/conversations/:conversation_id/pin
curl -X POST \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/pin \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "id": "msgOtJ8dvT",
  "object": "conversation",
  "lead_id": "msgOtJ8dvT",
  "profile": {
    "x_user_id": "1460283925",
    "username": "jane_builds",
    "name": "Jane Doe",
    "bio": "Runs a paid trading community. Daily setups, no hype.",
    "followers_count": 12400,
    "following_count": 380,
    "location": "Austin, TX",
    "website": "https://janedoe.com",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
    "verified": true,
    "url": "https://x.com/jane_builds"
  },
  "unread": true,
  "last_message_at": "2026-11-06T08:12:44.000Z",
  "messages_count": 4,
  "last_message": {
    "id": "1985321409876543210",
    "object": "message",
    "direction": "inbound",
    "text": "Yes, I want to charge for my Discord. How does it work?",
    "created_at": "2026-11-06T08:12:44.000Z",
    "media": [],
    "reactions": [],
    "encrypted": false,
    "reply_to_message_id": null
  },
  "persona": {
    "id": "lvWBPnytpS",
    "name": "Tipsters"
  },
  "column": {
    "id": "q7m2xk4p",
    "name": "Interested"
  }
}

Desafixar uma conversa

POST/v1/conversations/:conversation_id/unpinScope writeMCPupdate_conversation

Desafixa a conversa na sua inbox do X.

Parâmetros de caminho

  • conversation_idstringObrigatório
    O ID da conversa.

Retorno

O objeto conversation.

Erros

  • Nenhuma conversa com este ID na conta da chave.
  • A sessão da conta do X expirou. Reconecte a conta no app e tente de novo.
  • O X ou um serviço do Gemlead não respondeu. Nada mudou, tente de novo em um minuto.
POST/v1/conversations/:conversation_id/unpin
curl -X POST \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/unpin \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "id": "msgOtJ8dvT",
  "object": "conversation",
  "lead_id": "msgOtJ8dvT",
  "profile": {
    "x_user_id": "1460283925",
    "username": "jane_builds",
    "name": "Jane Doe",
    "bio": "Runs a paid trading community. Daily setups, no hype.",
    "followers_count": 12400,
    "following_count": 380,
    "location": "Austin, TX",
    "website": "https://janedoe.com",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
    "verified": true,
    "url": "https://x.com/jane_builds"
  },
  "unread": true,
  "last_message_at": "2026-11-06T08:12:44.000Z",
  "messages_count": 4,
  "last_message": {
    "id": "1985321409876543210",
    "object": "message",
    "direction": "inbound",
    "text": "Yes, I want to charge for my Discord. How does it work?",
    "created_at": "2026-11-06T08:12:44.000Z",
    "media": [],
    "reactions": [],
    "encrypted": false,
    "reply_to_message_id": null
  },
  "persona": {
    "id": "lvWBPnytpS",
    "name": "Tipsters"
  },
  "column": {
    "id": "q7m2xk4p",
    "name": "Interested"
  }
}

Excluir uma conversa

DELETE/v1/conversations/:conversation_idScope writeMCPdelete_conversation

Exclui a conversa no Gemlead e na sua inbox do X. O lead dela sai de todas as campanhas. Essa ação não pode ser desfeita.

Parâmetros de caminho

  • conversation_idstringObrigatório
    O ID da conversa.

Retorno

Um objeto com o id da conversa e deleted igual a true.

Erros

  • Nenhuma conversa com este ID na conta da chave.
  • A sessão da conta do X expirou. Reconecte a conta no app e tente de novo.
  • O X ou um serviço do Gemlead não respondeu. Nada mudou, tente de novo em um minuto.
DELETE/v1/conversations/:conversation_id
curl -X DELETE \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "id": "msgOtJ8dvT",
  "object": "conversation",
  "deleted": true
}

O objeto message

Uma DM numa conversa, enviada por você ou pelo lead.

Atributos

  • idstring
    O ID da mensagem no X.
  • objectstring
    Sempre message.
  • directionstring
    inbound quando o lead escreveu, outbound quando foi você.
    inboundoutbound
  • textstring
    O texto da mensagem.
  • created_atstring
    Quando ela foi enviada, em ISO 8601.
  • mediaarray de objects
    O que está anexado à mensagem, cada item com type e url. As imagens do X chegam por um link do Gemlead.
  • reactionsarray de objects
    As reações com emoji na mensagem, das mais antigas para as mais novas, uma por pessoa e por emoji.
  • encryptedboolean
    true para uma mensagem do X Chat que o Gemlead ainda não consegue ler. O text e o media dela ficam vazios até o código do X Chat desbloquear a mensagem.
  • reply_to_message_idstring ou null
    O ID da mensagem a que ela responde, null quando não responde a nenhuma.
O objeto message
{
  "id": "1985321409876543210",
  "object": "message",
  "direction": "inbound",
  "text": "Yes, I want to charge for my Discord. How does it work?",
  "created_at": "2026-11-06T08:12:44.000Z",
  "media": [],
  "reactions": [],
  "encrypted": false,
  "reply_to_message_id": null
}

Listar mensagens

GET/v1/conversations/:conversation_id/messagesScope readMCPlist_messages

Retorna todo o histórico de uma conversa no X, das mensagens mais novas para as mais antigas, página por página.

Parâmetros de caminho

  • conversation_idstringObrigatório
    O ID da conversa.

Parâmetros de consulta

  • limitinteger
    Quantas mensagens retornar, de 1 a 50. O padrão é 25.
  • cursorstring
    O next_cursor da página anterior, para mensagens mais antigas.

Retorno

Uma lista de objetos message.

Erros

  • Nenhuma conversa com este ID na conta da chave.
  • Um parâmetro tem um valor que a API não aceita. param diz qual.
  • A sessão da conta do X expirou. Reconecte a conta no app e tente de novo.
  • O X ou um serviço do Gemlead não respondeu. Nada mudou, tente de novo em um minuto.
GET/v1/conversations/:conversation_id/messages
curl -G \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/messages \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -d limit=50
Resposta200
{
  "object": "list",
  "data": [
    {
      "id": "1985329981234567890",
      "object": "message",
      "direction": "outbound",
      "text": "Happy to show you. Do you sell picks monthly or per event?",
      "created_at": "2026-11-06T08:20:03.000Z",
      "media": [],
      "reactions": [
        {
          "emoji": "👍",
          "direction": "inbound",
          "created_at": "2026-11-06T08:24:51.000Z"
        }
      ],
      "encrypted": false,
      "reply_to_message_id": "1985321409876543210"
    },
    {
      "id": "1985321409876543210",
      "object": "message",
      "direction": "inbound",
      "text": "Yes, I want to charge for my Discord. How does it work?",
      "created_at": "2026-11-06T08:12:44.000Z",
      "media": [],
      "reactions": [],
      "encrypted": false,
      "reply_to_message_id": null
    }
  ],
  "has_more": true,
  "next_cursor": "eyJzIjoiMjAyNi0xMS0wNVQxNDowMzo0MC4xMTdaIn0"
}

Enviar uma mensagem

POST/v1/conversations/:conversation_id/messagesScope writeMCPsend_message

Envia uma DM para o lead pela sua conta do X, na hora. Envie texto, um arquivo ou os dois. O destinatário sempre vem da conversa.

Parâmetros de caminho

  • conversation_idstringObrigatório
    O ID da conversa.

Parâmetros do corpo

  • textstring
    A mensagem, com até 10 000 caracteres. Obrigatória sem media.
  • mediaobject
    Um arquivo para enviar com a mensagem. Informe a url dele, ou o data com o mime_type. O Gemlead identifica o tipo pelo próprio arquivo. Imagens vão até 5 MB e GIFs até 15 MB. Vídeos e mensagens de voz podem ser tão grandes quanto o X aceitar. Envie uma url para os que forem grandes demais para o corpo de uma requisição.
  • reply_to_message_idstring
    Responde a esta mensagem, uma das últimas 20 da conversa. Uma resposta com mídia precisa de uma conversa do X Chat.

Retorno

A mensagem enviada, com conversation_id, reply_to_message_id e transport, x_chat ou classic.

Erros

POST/v1/conversations/:conversation_id/messages
curl -X POST \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/messages \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Happy to show you. Do you sell picks monthly or per event?"
  }'
Resposta200
{
  "id": "1985329981234567890",
  "object": "message",
  "conversation_id": "msgOtJ8dvT",
  "direction": "outbound",
  "text": "Happy to show you. Do you sell picks monthly or per event?",
  "created_at": "2026-11-06T08:20:03.000Z",
  "media": [],
  "reactions": [],
  "encrypted": false,
  "reply_to_message_id": null,
  "transport": "x_chat"
}

Adicionar uma reação

POST/v1/conversations/:conversation_id/messages/:message_id/reactionsScope writeMCPreact_to_message

Reage a uma mensagem com um emoji, pela sua conta do X.

Parâmetros de caminho

  • conversation_idstringObrigatório
    O ID da conversa.
  • message_idstringObrigatório
    O ID da mensagem, uma das últimas 20 da conversa.

Parâmetros do corpo

  • emojistringObrigatório
    O emoji, como ❤️ ou 👍.

Retorno

Um objeto com o conversation_id, o message_id e o emoji.

Erros

POST/v1/conversations/:conversation_id/messages/:message_id/reactions
curl -X POST \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/messages/1985321409876543210/reactions \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "emoji": "👍"
  }'
Resposta200
{
  "object": "reaction",
  "conversation_id": "msgOtJ8dvT",
  "message_id": "1985321409876543210",
  "emoji": "👍"
}

Remover uma reação

DELETE/v1/conversations/:conversation_id/messages/:message_id/reactionsScope writeMCPreact_to_message

Remove a sua reação de uma mensagem.

Parâmetros de caminho

  • conversation_idstringObrigatório
    O ID da conversa.
  • message_idstringObrigatório
    O ID da mensagem, uma das últimas 20 da conversa.

Parâmetros de consulta

  • emojistringObrigatório
    O emoji a remover.

Retorno

A reação com deleted igual a true.

Erros

DELETE/v1/conversations/:conversation_id/messages/:message_id/reactions
curl -X DELETE \
  "https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/messages/1985321409876543210/reactions?emoji=%F0%9F%91%8D" \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "object": "reaction",
  "conversation_id": "msgOtJ8dvT",
  "message_id": "1985321409876543210",
  "emoji": "👍",
  "deleted": true
}

Apagar uma mensagem

DELETE/v1/conversations/:conversation_id/messages/:message_idScope writeMCPdelete_message

Apaga uma mensagem para você, ou para os dois lados quando ela é sua e a conversa está no X Chat.

Parâmetros de caminho

  • conversation_idstringObrigatório
    O ID da conversa.
  • message_idstringObrigatório
    O ID da mensagem, uma das últimas 20 da conversa.

Parâmetros de consulta

  • for_everyoneboolean
    true apaga para os dois lados, apenas nas suas próprias mensagens no X Chat. O padrão é false.

Retorno

Um objeto com o id da mensagem, o conversation_id dela, deleted igual a true e for_everyone.

Erros

  • Nenhuma mensagem com este ID na conta da chave.
  • Um parâmetro tem um valor que a API não aceita. param diz qual.
  • A sessão da conta do X expirou. Reconecte a conta no app e tente de novo.
  • O X ou um serviço do Gemlead não respondeu. Nada mudou, tente de novo em um minuto.
DELETE/v1/conversations/:conversation_id/messages/:message_id
curl -X DELETE \
  "https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/messages/1985329981234567890?for_everyone=true" \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "id": "1985329981234567890",
  "object": "message",
  "conversation_id": "msgOtJ8dvT",
  "deleted": true,
  "for_everyone": true
}

O objeto conversation translation

Se as mensagens de uma conversa são traduzidas e para qual idioma.

Atributos

  • objectstring
    Sempre conversation_translation.
  • conversation_idstring
    O ID da conversa.
  • enabledboolean
    Indica se as mensagens dela são traduzidas conforme chegam.
  • decidedboolean
    Indica se alguém ativou ou desativou a tradução, em vez do padrão do Gemlead.
  • source_languagestring ou null
    O idioma do lead, depois de detectado.
  • languagestring ou null
    O idioma para o qual as mensagens são traduzidas.
  • shownboolean
    Indica se o app mostra as mensagens traduzidas.
O objeto conversation translation
{
  "object": "conversation_translation",
  "conversation_id": "msgOtJ8dvT",
  "enabled": true,
  "decided": true,
  "source_language": "es",
  "language": "en",
  "shown": true
}

Obter as configurações de tradução

GET/v1/conversations/:conversation_id/translationScope readMCPupdate_conversation_translation

Retorna se a conversa é traduzida e para qual idioma.

Parâmetros de caminho

  • conversation_idstringObrigatório
    O ID da conversa.

Retorno

Um objeto conversation translation.

Erros

GET/v1/conversations/:conversation_id/translation
curl \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/translation \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "object": "conversation_translation",
  "conversation_id": "msgOtJ8dvT",
  "enabled": true,
  "decided": true,
  "source_language": "es",
  "language": "en",
  "shown": true
}

Atualizar as configurações de tradução

PATCH/v1/conversations/:conversation_id/translationScope writeMCPupdate_conversation_translation

Ativa ou desativa a tradução da conversa e define se o app mostra as mensagens traduzidas.

Parâmetros de caminho

  • conversation_idstringObrigatório
    O ID da conversa.

Parâmetros do corpo

  • enabledboolean
    Traduz as mensagens conforme chegam, as suas e as do lead.
  • shownboolean
    Mostra as mensagens traduzidas no app. Exige enabled.
  • languagestring
    O idioma para o qual traduzir. O padrão é o seu idioma no Gemlead, senão inglês.
    enfresitderuptnljazhkoartrhiidplukvithsv

Retorno

O objeto conversation translation atualizado.

Erros

PATCH/v1/conversations/:conversation_id/translation
curl -X PATCH \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/translation \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": true,
    "shown": true,
    "language": "en"
  }'
Resposta200
{
  "object": "conversation_translation",
  "conversation_id": "msgOtJ8dvT",
  "enabled": true,
  "decided": true,
  "source_language": "es",
  "language": "en",
  "shown": true
}

Traduzir mensagens

POST/v1/conversations/:conversation_id/translateScope writeMCPtranslate_messages

Traduz as mensagens recentes da conversa. Com a tradução desativada, traduza uma mensagem por vez.

Parâmetros de caminho

  • conversation_idstringObrigatório
    O ID da conversa.

Parâmetros do corpo

  • message_idsarray de strings
    As mensagens a traduzir, entre as últimas 20. O padrão são todas, com a tradução ativada.
  • languagestring
    O idioma para o qual traduzir. O padrão é o seu idioma no Gemlead, senão inglês.
    enfresitderuptnljazhkoartrhiidplukvithsv

Retorno

Um objeto com o conversation_id, o language e, em data, o message_id, o text e a translation de cada mensagem.

Erros

  • Nenhuma conversa com este ID na conta da chave.
  • Um parâmetro tem um valor que a API não aceita. param diz qual.
  • A tradução está desativada e você pediu mais de uma mensagem.
  • O X ou um serviço do Gemlead não respondeu. Nada mudou, tente de novo em um minuto.
POST/v1/conversations/:conversation_id/translate
curl -X POST \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/translate \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "message_ids": ["1985321409876543210"],
    "language": "en"
  }'
Resposta200
{
  "object": "message_translations",
  "conversation_id": "msgOtJ8dvT",
  "language": "en",
  "data": [
    {
      "message_id": "1985321409876543210",
      "text": "Sí, quiero cobrar por mi Discord. Cómo funciona?",
      "translation": "Yes, I want to charge for my Discord. How does it work?"
    }
  ]
}