Référence API

Conversations

Une conversation est ton fil de DM avec un lead sur X, et son ID est celui du lead. Lis tous les messages d'un fil, liste-les en masse, réponds depuis ton compte X et garde ton tableau des conversations à jour. Les nouvelles réponses arrivent aussi par le webhook reply.received.

L'objet conversation

Ton fil de DM avec un lead sur X. Son ID est celui du lead.

Attributs

  • idstring
    Identifiant unique de la conversation, le même que lead_id.
  • objectstring
    Toujours conversation.
  • lead_idstring
    Le lead avec qui tu échanges.
  • profileobject
    Le profil X du lead, comme dans l'objet lead.
  • unreadboolean
    Vaut true quand le dernier message du lead n'est pas encore lu.
  • last_message_atstring
    Date du dernier message, en ISO 8601.
  • messages_countinteger
    Messages dans le fil.
  • last_messageobject ou null
    Le dernier message.
  • personaobject ou null
    Le persona du lead.
  • columnobject ou null
    La colonne du tableau des conversations où elle se trouve, comme Intéressés. Voir Colonnes du pipeline.
  • historystring
    complete quand messages contient tout le fil. recent tant que Gemlead ne garde que les derniers messages d'un long fil, avant de lire le reste sur X une seule fois. Seulement avec messages.
    completerecent
  • messagestableau d'objects
    Tous les messages du fil, du plus ancien au plus récent. Quand tu récupères une conversation, ou quand tu les listes avec include_messages.
L'objet 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"
  }
}

Lister les conversations

GET/v1/conversationsScope readMCPlist_conversations

Renvoie tes conversations, triées par dernier message, du plus récent au plus ancien.

Paramètres de requête

  • unreadboolean
    true pour les conversations non lues uniquement.
  • personastring
    Seulement les conversations des leads du persona avec cet ID.
  • include_messagesboolean
    true pour obtenir chaque conversation avec tous ses messages, du plus ancien au plus récent, et history. Les pages sont plus lourdes, garde donc limit à 25 ou moins.
  • limitinteger
    Nombre d'objets à renvoyer, de 1 à 100. 25 par défaut.
  • cursorstring
    Le next_cursor de la page précédente, pour obtenir la suivante. Voir Pagination.

Renvoie

Une liste d'objets conversation, avec messages seulement quand include_messages vaut true.

Erreurs

  • Un paramètre a une valeur que l'API n'accepte pas. param indique lequel.
GET/v1/conversations
curl -G https://gemlead.ai/api/v1/conversations \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -d unread=true
Réponse200
{
  "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"
}

Récupérer une conversation

GET/v1/conversations/:idScope readMCPget_conversation

Renvoie une conversation avec tous ses messages, du plus ancien au plus récent.

Paramètres de chemin

  • idstringObligatoire
    L'ID de la conversation.

Renvoie

Un objet conversation avec messages et history.

Erreurs

GET/v1/conversations/:id
curl https://gemlead.ai/api/v1/conversations/msgOtJ8dvT \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Réponse200
{
  "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"
    }
  ]
}

Marquer comme lu

POST/v1/conversations/:conversation_id/mark_readScope writeMCPupdate_conversation

Marque la conversation comme lue dans Gemlead, et sur X avec un accusé de lecture.

Paramètres de chemin

  • conversation_idstringObligatoire
    L'ID de la conversation.

Renvoie

L'objet conversation.

Erreurs

  • Aucune conversation avec cet ID sur le compte de la clé.
  • La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
  • X ou un service Gemlead n'a pas répondu. Rien n'a changé, réessaie dans une minute.
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"
Réponse200
{
  "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"
  }
}

Marquer comme non lu

POST/v1/conversations/:conversation_id/mark_unreadScope writeMCPupdate_conversation

Marque la conversation comme non lue dans Gemlead.

Paramètres de chemin

  • conversation_idstringObligatoire
    L'ID de la conversation.

Renvoie

L'objet conversation.

Erreurs

  • Aucune conversation avec cet ID sur le compte de la clé.
  • La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
  • X ou un service Gemlead n'a pas répondu. Rien n'a changé, réessaie dans une minute.
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"
Réponse200
{
  "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"
  }
}

Déplacer une conversation

POST/v1/conversations/:conversation_id/moveScope writeMCPupdate_conversation

Déplace la conversation dans une autre colonne du tableau des conversations.

Paramètres de chemin

  • conversation_idstringObligatoire
    L'ID de la conversation.

Paramètres du corps

Renvoie

L'objet conversation.

Erreurs

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"
  }'
Réponse200
{
  "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"
  }
}

Épingler une conversation

POST/v1/conversations/:conversation_id/pinScope writeMCPupdate_conversation

Épingle la conversation dans ton inbox X.

Paramètres de chemin

  • conversation_idstringObligatoire
    L'ID de la conversation.

Renvoie

L'objet conversation.

Erreurs

  • Aucune conversation avec cet ID sur le compte de la clé.
  • La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
  • X ou un service Gemlead n'a pas répondu. Rien n'a changé, réessaie dans une minute.
POST/v1/conversations/:conversation_id/pin
curl -X POST \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/pin \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Réponse200
{
  "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"
  }
}

Désépingler une conversation

POST/v1/conversations/:conversation_id/unpinScope writeMCPupdate_conversation

Désépingle la conversation dans ton inbox X.

Paramètres de chemin

  • conversation_idstringObligatoire
    L'ID de la conversation.

Renvoie

L'objet conversation.

Erreurs

  • Aucune conversation avec cet ID sur le compte de la clé.
  • La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
  • X ou un service Gemlead n'a pas répondu. Rien n'a changé, réessaie dans une minute.
POST/v1/conversations/:conversation_id/unpin
curl -X POST \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/unpin \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Réponse200
{
  "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"
  }
}

Supprimer une conversation

DELETE/v1/conversations/:conversation_idScope writeMCPdelete_conversation

Supprime la conversation dans Gemlead et dans ton inbox X. Son lead sort de toutes les campagnes. C'est irréversible.

Paramètres de chemin

  • conversation_idstringObligatoire
    L'ID de la conversation.

Renvoie

Un objet avec l'id de la conversation et deleted à true.

Erreurs

  • Aucune conversation avec cet ID sur le compte de la clé.
  • La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
  • X ou un service Gemlead n'a pas répondu. Rien n'a changé, réessaie dans une minute.
DELETE/v1/conversations/:conversation_id
curl -X DELETE \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Réponse200
{
  "id": "msgOtJ8dvT",
  "object": "conversation",
  "deleted": true
}

L'objet message

Un DM d'une conversation, envoyé par toi ou par le lead.

Attributs

  • idstring
    L'ID du message sur X.
  • objectstring
    Toujours message.
  • directionstring
    inbound quand le lead l'a écrit, outbound quand c'est toi.
    inboundoutbound
  • textstring
    Le texte du message.
  • created_atstring
    Date d'envoi, en ISO 8601.
  • mediatableau d'objects
    Les pièces jointes du message, chacune avec son type et son url. Les images de X passent par un lien Gemlead.
  • reactionstableau d'objects
    Les réactions emoji sur le message, de la plus ancienne à la plus récente, une par personne et par emoji.
  • encryptedboolean
    true pour un message X Chat que Gemlead ne peut pas encore lire. Ses text et media restent vides jusqu'à ce que le code X Chat le déverrouille.
  • reply_to_message_idstring ou null
    L'ID du message auquel il répond, null s'il ne répond à aucun.
L'objet 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
}

Lister les messages

GET/v1/conversations/:conversation_id/messagesScope readMCPlist_messages

Renvoie tout l'historique d'une conversation depuis X, du plus récent au plus ancien, page par page.

Paramètres de chemin

  • conversation_idstringObligatoire
    L'ID de la conversation.

Paramètres de requête

  • limitinteger
    Nombre de messages à renvoyer, de 1 à 50. 25 par défaut.
  • cursorstring
    Le next_cursor de la page précédente, pour les messages plus anciens.

Renvoie

Une liste d'objets message.

Erreurs

  • Aucune conversation avec cet ID sur le compte de la clé.
  • Un paramètre a une valeur que l'API n'accepte pas. param indique lequel.
  • La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
  • X ou un service Gemlead n'a pas répondu. Rien n'a changé, réessaie dans une minute.
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
Réponse200
{
  "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"
}

Envoyer un message

POST/v1/conversations/:conversation_id/messagesScope writeMCPsend_message

Envoie immédiatement un DM au lead depuis ton compte X. Envoie du texte, un fichier, ou les deux. Le destinataire vient toujours de la conversation.

Paramètres de chemin

  • conversation_idstringObligatoire
    L'ID de la conversation.

Paramètres du corps

  • textstring
    Le message, 10 000 caractères au plus. Obligatoire sans media.
  • mediaobject
    Un fichier à envoyer avec le message. Donne son url, ou ses data avec son mime_type. Gemlead lit son type dans le fichier lui-même. Les images vont jusqu'à 5 Mo et les GIF jusqu'à 15 Mo. Les vidéos et les messages vocaux peuvent aller jusqu'à la taille maximale acceptée par X. Envoie une url pour ceux qui sont trop gros pour le corps d'une requête.
  • reply_to_message_idstring
    Répondre à ce message, l'un des 20 derniers de la conversation. Une réponse avec un média nécessite une conversation X Chat.

Renvoie

Le message envoyé, avec son conversation_id, son reply_to_message_id et son transport, x_chat ou classic.

Erreurs

  • Aucune conversation avec cet ID sur le compte de la clé.
  • Il manque un paramètre obligatoire. param indique lequel.
  • Un paramètre a une valeur que l'API n'accepte pas. param indique lequel.
  • La conversation n'accepte pas ce type de fichier, comme un message vocal sans X Chat.
  • X limite les DM du compte pour le moment. Retry-After indique quand ils reprennent.
  • Plus de 10 DM dans la minute.
  • Déjà 300 DM sur la journée UTC en cours, ou le quota journalier que X fixe pour le compte.
  • X a refusé, le lead a fermé ses DM ou bloqué le compte.
  • La conversation n'a pas encore d'utilisateur X à qui écrire.
  • La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
  • X ou un service Gemlead n'a pas répondu. Rien n'a changé, réessaie dans une minute.
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?"
  }'
Réponse200
{
  "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"
}

Ajouter une réaction

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

Réagit à un message avec un emoji, depuis ton compte X.

Paramètres de chemin

  • conversation_idstringObligatoire
    L'ID de la conversation.
  • message_idstringObligatoire
    L'ID du message, l'un des 20 derniers de la conversation.

Paramètres du corps

  • emojistringObligatoire
    L'emoji, comme ❤️ ou 👍.

Renvoie

Un objet avec le conversation_id, le message_id et l'emoji.

Erreurs

  • Aucun message avec cet ID sur le compte de la clé.
  • Il manque un paramètre obligatoire. param indique lequel.
  • La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
  • X ou un service Gemlead n'a pas répondu. Rien n'a changé, réessaie dans une minute.
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": "👍"
  }'
Réponse200
{
  "object": "reaction",
  "conversation_id": "msgOtJ8dvT",
  "message_id": "1985321409876543210",
  "emoji": "👍"
}

Retirer une réaction

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

Retire ta réaction d'un message.

Paramètres de chemin

  • conversation_idstringObligatoire
    L'ID de la conversation.
  • message_idstringObligatoire
    L'ID du message, l'un des 20 derniers de la conversation.

Paramètres de requête

  • emojistringObligatoire
    L'emoji à retirer.

Renvoie

La réaction avec deleted à true.

Erreurs

  • Aucun message avec cet ID sur le compte de la clé.
  • Il manque un paramètre obligatoire. param indique lequel.
  • La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
  • X ou un service Gemlead n'a pas répondu. Rien n'a changé, réessaie dans une minute.
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"
Réponse200
{
  "object": "reaction",
  "conversation_id": "msgOtJ8dvT",
  "message_id": "1985321409876543210",
  "emoji": "👍",
  "deleted": true
}

Supprimer un message

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

Supprime un message pour toi, ou pour vous deux quand il est de toi et que la conversation est sur X Chat.

Paramètres de chemin

  • conversation_idstringObligatoire
    L'ID de la conversation.
  • message_idstringObligatoire
    L'ID du message, l'un des 20 derniers de la conversation.

Paramètres de requête

  • for_everyoneboolean
    true le supprime pour vous deux, seulement pour tes propres messages sur X Chat. false par défaut.

Renvoie

Un objet avec l'id du message, son conversation_id, deleted à true et for_everyone.

Erreurs

  • Aucun message avec cet ID sur le compte de la clé.
  • Un paramètre a une valeur que l'API n'accepte pas. param indique lequel.
  • La session du compte X a expiré. Reconnecte-le dans l'app, puis réessaie.
  • X ou un service Gemlead n'a pas répondu. Rien n'a changé, réessaie dans une minute.
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"
Réponse200
{
  "id": "1985329981234567890",
  "object": "message",
  "conversation_id": "msgOtJ8dvT",
  "deleted": true,
  "for_everyone": true
}

L'objet traduction de conversation

Si les messages d'une conversation sont traduits, et dans quelle langue.

Attributs

  • objectstring
    Toujours conversation_translation.
  • conversation_idstring
    L'ID de la conversation.
  • enabledboolean
    Si ses messages sont traduits à mesure qu'ils arrivent.
  • decidedboolean
    Si quelqu'un l'a activée ou désactivée à la main, au lieu du réglage par défaut de Gemlead.
  • source_languagestring ou null
    La langue du lead, une fois détectée.
  • languagestring ou null
    La langue dans laquelle les messages sont traduits.
  • shownboolean
    Si l'app affiche les messages traduits.
L'objet traduction de conversation
{
  "object": "conversation_translation",
  "conversation_id": "msgOtJ8dvT",
  "enabled": true,
  "decided": true,
  "source_language": "es",
  "language": "en",
  "shown": true
}

Récupérer les réglages de traduction

GET/v1/conversations/:conversation_id/translationScope readMCPupdate_conversation_translation

Indique si la conversation est traduite, et dans quelle langue.

Paramètres de chemin

  • conversation_idstringObligatoire
    L'ID de la conversation.

Renvoie

Un objet traduction de conversation.

Erreurs

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

Modifier les réglages de traduction

PATCH/v1/conversations/:conversation_id/translationScope writeMCPupdate_conversation_translation

Active ou désactive la traduction de la conversation, et choisit si l'app affiche les messages traduits.

Paramètres de chemin

  • conversation_idstringObligatoire
    L'ID de la conversation.

Paramètres du corps

  • enabledboolean
    Traduire les messages à mesure qu'ils arrivent, les tiens et les siens.
  • shownboolean
    Afficher les messages traduits dans l'app. Nécessite enabled.
  • languagestring
    La langue cible. Par défaut, ta langue dans Gemlead, sinon l'anglais.
    enfresitderuptnljazhkoartrhiidplukvithsv

Renvoie

L'objet traduction de conversation à jour.

Erreurs

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"
  }'
Réponse200
{
  "object": "conversation_translation",
  "conversation_id": "msgOtJ8dvT",
  "enabled": true,
  "decided": true,
  "source_language": "es",
  "language": "en",
  "shown": true
}

Traduire des messages

POST/v1/conversations/:conversation_id/translateScope writeMCPtranslate_messages

Traduit les messages récents de la conversation. Quand la traduction est désactivée, traduis un message à la fois.

Paramètres de chemin

  • conversation_idstringObligatoire
    L'ID de la conversation.

Paramètres du corps

  • message_idstableau de strings
    Les messages à traduire, parmi les 20 derniers. Par défaut tous, quand la traduction est activée.
  • languagestring
    La langue cible. Par défaut, ta langue dans Gemlead, sinon l'anglais.
    enfresitderuptnljazhkoartrhiidplukvithsv

Renvoie

Un objet avec le conversation_id, la language, et dans data le message_id, le text et la translation de chaque message.

Erreurs

  • Aucune conversation avec cet ID sur le compte de la clé.
  • Un paramètre a une valeur que l'API n'accepte pas. param indique lequel.
  • La traduction est désactivée et tu as demandé plus d'un message.
  • X ou un service Gemlead n'a pas répondu. Rien n'a changé, réessaie dans une minute.
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"
  }'
Réponse200
{
  "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?"
    }
  ]
}