API-referentie

Gesprekken

Een gesprek is je DM-thread met één lead op X, en de ID ervan is de ID van de lead. Lees elk bericht van een thread, haal ze in bulk op, antwoord vanaf je X-account en houd het gesprekkenbord op orde. Nieuwe antwoorden komen ook binnen via de webhook reply.received.

Het gespreksobject

Je DM-thread met één lead op X. De ID ervan is de ID van de lead.

Attributen

  • idstring
    Unieke ID van het gesprek, gelijk aan lead_id.
  • objectstring
    Altijd conversation.
  • lead_idstring
    De lead met wie je in gesprek bent.
  • profileobject
    Het X-profiel van de lead, zoals in het lead-object.
  • unreadboolean
    True als het laatste bericht van de lead nog niet gelezen is.
  • last_message_atstring
    Wanneer het laatste bericht is verstuurd, in ISO 8601.
  • messages_countinteger
    Berichten in de thread.
  • last_messageobject of null
    Het laatste bericht.
  • personaobject of null
    De persona van de lead.
  • columnobject of null
    De kolom van je gesprekkenbord waarin het gesprek staat, zoals Geïnteresseerd. Zie Pipelinekolommen.
  • historystring
    complete als messages de volledige thread is. recent zolang Gemlead alleen de nieuwste berichten van een lange thread heeft, voordat het de rest één keer van X leest. Alleen met messages.
    completerecent
  • messagesarray van objects
    Alle berichten van de thread, oudste eerst. Als je één gesprek ophaalt, of ze opsomt met include_messages.
Het gespreksobject
{
  "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"
  }
}

Gesprekken opvragen

GET/v1/conversationsScope readMCPlist_conversations

Geeft je gesprekken terug, met het meest recente bericht eerst.

Queryparameters

  • unreadboolean
    true voor alleen ongelezen gesprekken.
  • personastring
    Alleen gesprekken met leads van de persona met deze ID.
  • include_messagesboolean
    true om elk gesprek met al zijn berichten te krijgen, oudste eerst, en history. Pagina's zijn zwaarder, dus houd limit op 25 of minder.
  • limitinteger
    Hoeveel objecten je terugkrijgt, van 1 tot 100. Standaard 25.
  • cursorstring
    De next_cursor van de vorige pagina, om de pagina daarna op te halen. Zie Paginering.

Resultaat

Een lijst van gespreksobjecten, met messages alleen als include_messages true is.

Fouten

  • Een parameter heeft een waarde die de API niet accepteert. param geeft aan welke.
GET/v1/conversations
curl -G https://gemlead.ai/api/v1/conversations \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -d unread=true
Response200
{
  "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"
}

Een gesprek ophalen

GET/v1/conversations/:idScope readMCPget_conversation

Geeft één gesprek terug met al zijn berichten, oudste eerst.

Padparameters

  • idstringVerplicht
    De ID van het gesprek.

Resultaat

Een gespreksobject met messages en history.

Fouten

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

Markeren als gelezen

POST/v1/conversations/:conversation_id/mark_readScope writeMCPupdate_conversation

Markeert het gesprek als gelezen in Gemlead, en op X met een leesbevestiging.

Padparameters

  • conversation_idstringVerplicht
    De ID van het gesprek.

Resultaat

Het gespreksobject.

Fouten

  • Geen gesprek met deze ID op het account van de sleutel.
  • De sessie van het X-account is verlopen. Koppel het opnieuw in de app en probeer het dan nog eens.
  • X of een dienst van Gemlead antwoordde niet. Er is niets veranderd, probeer het over een minuut opnieuw.
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"
Response200
{
  "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"
  }
}

Markeren als ongelezen

POST/v1/conversations/:conversation_id/mark_unreadScope writeMCPupdate_conversation

Markeert het gesprek als ongelezen in Gemlead.

Padparameters

  • conversation_idstringVerplicht
    De ID van het gesprek.

Resultaat

Het gespreksobject.

Fouten

  • Geen gesprek met deze ID op het account van de sleutel.
  • De sessie van het X-account is verlopen. Koppel het opnieuw in de app en probeer het dan nog eens.
  • X of een dienst van Gemlead antwoordde niet. Er is niets veranderd, probeer het over een minuut opnieuw.
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"
Response200
{
  "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"
  }
}

Een gesprek verplaatsen

POST/v1/conversations/:conversation_id/moveScope writeMCPupdate_conversation

Verplaatst het gesprek naar een andere kolom van het gesprekkenbord.

Padparameters

  • conversation_idstringVerplicht
    De ID van het gesprek.

Bodyparameters

Resultaat

Het gespreksobject.

Fouten

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"
  }'
Response200
{
  "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"
  }
}

Een gesprek vastzetten

POST/v1/conversations/:conversation_id/pinScope writeMCPupdate_conversation

Zet het gesprek vast in je X-inbox.

Padparameters

  • conversation_idstringVerplicht
    De ID van het gesprek.

Resultaat

Het gespreksobject.

Fouten

  • Geen gesprek met deze ID op het account van de sleutel.
  • De sessie van het X-account is verlopen. Koppel het opnieuw in de app en probeer het dan nog eens.
  • X of een dienst van Gemlead antwoordde niet. Er is niets veranderd, probeer het over een minuut opnieuw.
POST/v1/conversations/:conversation_id/pin
curl -X POST \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/pin \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "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"
  }
}

Een gesprek losmaken

POST/v1/conversations/:conversation_id/unpinScope writeMCPupdate_conversation

Maakt het gesprek los in je X-inbox.

Padparameters

  • conversation_idstringVerplicht
    De ID van het gesprek.

Resultaat

Het gespreksobject.

Fouten

  • Geen gesprek met deze ID op het account van de sleutel.
  • De sessie van het X-account is verlopen. Koppel het opnieuw in de app en probeer het dan nog eens.
  • X of een dienst van Gemlead antwoordde niet. Er is niets veranderd, probeer het over een minuut opnieuw.
POST/v1/conversations/:conversation_id/unpin
curl -X POST \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/unpin \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "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"
  }
}

Een gesprek verwijderen

DELETE/v1/conversations/:conversation_idScope writeMCPdelete_conversation

Verwijdert het gesprek in Gemlead en in je X-inbox. De lead ervan stopt in elke campagne. Dit kan niet ongedaan worden gemaakt.

Padparameters

  • conversation_idstringVerplicht
    De ID van het gesprek.

Resultaat

Een object met de id van het gesprek en deleted op true.

Fouten

  • Geen gesprek met deze ID op het account van de sleutel.
  • De sessie van het X-account is verlopen. Koppel het opnieuw in de app en probeer het dan nog eens.
  • X of een dienst van Gemlead antwoordde niet. Er is niets veranderd, probeer het over een minuut opnieuw.
DELETE/v1/conversations/:conversation_id
curl -X DELETE \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "id": "msgOtJ8dvT",
  "object": "conversation",
  "deleted": true
}

Het berichtobject

Eén DM in een gesprek, verstuurd door jou of door de lead.

Attributen

  • idstring
    De ID van het bericht op X.
  • objectstring
    Altijd message.
  • directionstring
    inbound als de lead het schreef, outbound als jij het schreef.
    inboundoutbound
  • textstring
    De tekst van het bericht.
  • created_atstring
    Wanneer het is verstuurd, in ISO 8601.
  • mediaarray van objects
    De bijlagen van het bericht, elk met type en url. Afbeeldingen van X lopen via een Gemlead-link.
  • reactionsarray van objects
    De emoji-reacties op het bericht, oudste eerst, één per persoon en emoji.
  • encryptedboolean
    true voor een X Chat-bericht dat Gemlead nog niet kan lezen. text en media blijven leeg tot de X Chat-code het ontgrendelt.
  • reply_to_message_idstring of null
    De ID van het bericht waarop het antwoordt, null als het geen antwoord is.
Het berichtobject
{
  "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
}

Berichten opvragen

GET/v1/conversations/:conversation_id/messagesScope readMCPlist_messages

Geeft de volledige geschiedenis van een gesprek vanaf X terug, nieuwste eerst, pagina per pagina.

Padparameters

  • conversation_idstringVerplicht
    De ID van het gesprek.

Queryparameters

  • limitinteger
    Hoeveel berichten je terugkrijgt, van 1 tot 50. Standaard 25.
  • cursorstring
    De next_cursor van de vorige pagina, voor oudere berichten.

Resultaat

Een lijst van berichtobjecten.

Fouten

  • Geen gesprek met deze ID op het account van de sleutel.
  • Een parameter heeft een waarde die de API niet accepteert. param geeft aan welke.
  • De sessie van het X-account is verlopen. Koppel het opnieuw in de app en probeer het dan nog eens.
  • X of een dienst van Gemlead antwoordde niet. Er is niets veranderd, probeer het over een minuut opnieuw.
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
Response200
{
  "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"
}

Een bericht sturen

POST/v1/conversations/:conversation_id/messagesScope writeMCPsend_message

Stuurt meteen een DM naar de lead vanaf je X-account. Stuur tekst, een bestand of allebei. De ontvanger komt altijd uit het gesprek.

Padparameters

  • conversation_idstringVerplicht
    De ID van het gesprek.

Bodyparameters

  • textstring
    Het bericht, maximaal 10 000 tekens. Verplicht als je geen media meestuurt.
  • mediaobject
    Een bestand om met het bericht mee te sturen. Geef de url, of de data met het mime_type. Gemlead leidt het type af uit het bestand zelf. Afbeeldingen mogen tot 5 MB zijn en GIF's tot 15 MB. Video's en spraakberichten mogen zo groot zijn als X toestaat, stuur een url voor bestanden die te groot zijn voor een request-body.
  • reply_to_message_idstring
    Antwoord op dit bericht, een van de laatste 20 van het gesprek. Een antwoord met media vereist een X Chat-gesprek.

Resultaat

Het verstuurde bericht, met conversation_id, reply_to_message_id en transport, x_chat of classic.

Fouten

  • Geen gesprek met deze ID op het account van de sleutel.
  • Er ontbreekt een verplichte parameter. param geeft aan welke.
  • Een parameter heeft een waarde die de API niet accepteert. param geeft aan welke.
  • Dit gesprek accepteert dit soort bestand niet, zoals een spraakbericht zonder X Chat.
  • X beperkt de DM's van het account tijdelijk. Retry-After geeft aan wanneer ze weer kunnen.
  • Meer dan 10 DM's in een minuut.
  • Vandaag, in UTC, al 300 DM's, of het eigen dagquotum dat X voor het account hanteert.
  • X heeft geweigerd, de lead heeft zijn DM's dichtgezet of het account geblokkeerd.
  • Het gesprek heeft nog geen X-gebruiker om naar te schrijven.
  • De sessie van het X-account is verlopen. Koppel het opnieuw in de app en probeer het dan nog eens.
  • X of een dienst van Gemlead antwoordde niet. Er is niets veranderd, probeer het over een minuut opnieuw.
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?"
  }'
Response200
{
  "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"
}

Een reactie toevoegen

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

Reageert met een emoji op een bericht, vanaf je X-account.

Padparameters

  • conversation_idstringVerplicht
    De ID van het gesprek.
  • message_idstringVerplicht
    De ID van het bericht, een van de laatste 20 van het gesprek.

Bodyparameters

  • emojistringVerplicht
    De emoji, zoals ❤️ of 👍.

Resultaat

Een object met de conversation_id, de message_id en de emoji.

Fouten

  • Geen bericht met deze ID op het account van de sleutel.
  • Er ontbreekt een verplichte parameter. param geeft aan welke.
  • De sessie van het X-account is verlopen. Koppel het opnieuw in de app en probeer het dan nog eens.
  • X of een dienst van Gemlead antwoordde niet. Er is niets veranderd, probeer het over een minuut opnieuw.
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": "👍"
  }'
Response200
{
  "object": "reaction",
  "conversation_id": "msgOtJ8dvT",
  "message_id": "1985321409876543210",
  "emoji": "👍"
}

Een reactie verwijderen

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

Haalt je reactie van een bericht weg.

Padparameters

  • conversation_idstringVerplicht
    De ID van het gesprek.
  • message_idstringVerplicht
    De ID van het bericht, een van de laatste 20 van het gesprek.

Queryparameters

  • emojistringVerplicht
    De emoji om weg te halen.

Resultaat

De reactie met deleted op true.

Fouten

  • Geen bericht met deze ID op het account van de sleutel.
  • Er ontbreekt een verplichte parameter. param geeft aan welke.
  • De sessie van het X-account is verlopen. Koppel het opnieuw in de app en probeer het dan nog eens.
  • X of een dienst van Gemlead antwoordde niet. Er is niets veranderd, probeer het over een minuut opnieuw.
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"
Response200
{
  "object": "reaction",
  "conversation_id": "msgOtJ8dvT",
  "message_id": "1985321409876543210",
  "emoji": "👍",
  "deleted": true
}

Een bericht verwijderen

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

Verwijdert een bericht voor jou, of voor beide kanten als het van jou is en het gesprek op X Chat staat.

Padparameters

  • conversation_idstringVerplicht
    De ID van het gesprek.
  • message_idstringVerplicht
    De ID van het bericht, een van de laatste 20 van het gesprek.

Queryparameters

  • for_everyoneboolean
    true verwijdert het voor beide kanten, alleen bij je eigen berichten op X Chat. Standaard false.

Resultaat

Een object met de id van het bericht, de conversation_id, deleted op true en for_everyone.

Fouten

  • Geen bericht met deze ID op het account van de sleutel.
  • Een parameter heeft een waarde die de API niet accepteert. param geeft aan welke.
  • De sessie van het X-account is verlopen. Koppel het opnieuw in de app en probeer het dan nog eens.
  • X of een dienst van Gemlead antwoordde niet. Er is niets veranderd, probeer het over een minuut opnieuw.
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"
Response200
{
  "id": "1985329981234567890",
  "object": "message",
  "conversation_id": "msgOtJ8dvT",
  "deleted": true,
  "for_everyone": true
}

Het object met vertaalinstellingen

Of de berichten van een gesprek worden vertaald, en naar welke taal.

Attributen

  • objectstring
    Altijd conversation_translation.
  • conversation_idstring
    De ID van het gesprek.
  • enabledboolean
    Of de berichten worden vertaald zodra ze binnenkomen.
  • decidedboolean
    Of iemand het zelf aan- of uitzette, in plaats van de standaardinstelling van Gemlead.
  • source_languagestring of null
    De taal van de lead, zodra die is herkend.
  • languagestring of null
    De taal waarnaar berichten worden vertaald.
  • shownboolean
    Of de app de berichten vertaald toont.
Het object met vertaalinstellingen
{
  "object": "conversation_translation",
  "conversation_id": "msgOtJ8dvT",
  "enabled": true,
  "decided": true,
  "source_language": "es",
  "language": "en",
  "shown": true
}

Vertaalinstellingen ophalen

GET/v1/conversations/:conversation_id/translationScope readMCPupdate_conversation_translation

Geeft terug of het gesprek wordt vertaald, en naar welke taal.

Padparameters

  • conversation_idstringVerplicht
    De ID van het gesprek.

Resultaat

Een object met vertaalinstellingen.

Fouten

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

Vertaalinstellingen bijwerken

PATCH/v1/conversations/:conversation_id/translationScope writeMCPupdate_conversation_translation

Zet de vertaling van het gesprek aan of uit, en bepaalt of de app de berichten vertaald toont.

Padparameters

  • conversation_idstringVerplicht
    De ID van het gesprek.

Bodyparameters

  • enabledboolean
    Vertaal de berichten zodra ze binnenkomen, die van jou en die van de lead.
  • shownboolean
    Toon de berichten vertaald in de app. Vereist enabled.
  • languagestring
    De taal waarnaar vertaald wordt. Standaard je taal in Gemlead, anders Engels.
    enfresitderuptnljazhkoartrhiidplukvithsv

Resultaat

Het bijgewerkte object met vertaalinstellingen.

Fouten

  • Geen gesprek met deze ID op het account van de sleutel.
  • Een parameter heeft een waarde die de API niet accepteert. param geeft aan welke.
  • De body bevat een veld dat dit endpoint niet accepteert.
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"
  }'
Response200
{
  "object": "conversation_translation",
  "conversation_id": "msgOtJ8dvT",
  "enabled": true,
  "decided": true,
  "source_language": "es",
  "language": "en",
  "shown": true
}

Berichten vertalen

POST/v1/conversations/:conversation_id/translateScope writeMCPtranslate_messages

Vertaalt de recente berichten van het gesprek. Staat vertaling uit, vertaal dan één bericht tegelijk.

Padparameters

  • conversation_idstringVerplicht
    De ID van het gesprek.

Bodyparameters

  • message_idsarray van strings
    De berichten om te vertalen, uit de laatste 20. Standaard allemaal, als vertaling aan staat.
  • languagestring
    De taal waarnaar vertaald wordt. Standaard je taal in Gemlead, anders Engels.
    enfresitderuptnljazhkoartrhiidplukvithsv

Resultaat

Een object met de conversation_id, de language en in data per bericht de message_id, text en translation.

Fouten

  • Geen gesprek met deze ID op het account van de sleutel.
  • Een parameter heeft een waarde die de API niet accepteert. param geeft aan welke.
  • Vertaling staat uit en je vroeg om meer dan één bericht.
  • X of een dienst van Gemlead antwoordde niet. Er is niets veranderd, probeer het over een minuut opnieuw.
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"
  }'
Response200
{
  "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?"
    }
  ]
}