API-Referenz

Unterhaltungen

Eine Unterhaltung ist dein DM-Verlauf mit einem Lead auf X, und ihre ID ist die ID des Leads. Lies jede Nachricht eines Verlaufs, liste sie gesammelt auf, antworte von deinem X-Konto aus und halte das Board deiner Unterhaltungen in Ordnung. Neue Antworten kommen auch als Webhook reply.received an.

Das Unterhaltungsobjekt

Dein DM-Verlauf mit einem Lead auf X. Seine ID ist die ID des Leads.

Attribute

  • idstring
    Eindeutige Kennung der Unterhaltung, identisch mit lead_id.
  • objectstring
    Immer conversation.
  • lead_idstring
    Der Lead, mit dem du schreibst.
  • profileobject
    Das X-Profil des Leads, wie im Lead-Objekt.
  • unreadboolean
    True, wenn die letzte Nachricht des Leads noch nicht gelesen ist.
  • last_message_atstring
    Wann die letzte Nachricht gesendet wurde, ISO 8601.
  • messages_countinteger
    Nachrichten im Verlauf.
  • last_messageobject oder null
    Die letzte Nachricht.
  • personaobject oder null
    Die Persona des Leads.
  • columnobject oder null
    Die Spalte im Board deiner Unterhaltungen, in der die Unterhaltung liegt, etwa Interessiert. Siehe Pipeline-Spalten.
  • historystring
    complete, wenn messages der ganze Verlauf ist. recent, solange Gemlead nur die neuesten Nachrichten eines langen Verlaufs hat, bevor es den Rest einmal von X liest. Nur mit messages.
    completerecent
  • messagesArray von objects
    Alle Nachrichten des Verlaufs, die älteste zuerst. Wenn du eine einzelne Unterhaltung abrufst oder sie mit include_messages auflistest.
Das Unterhaltungsobjekt
{
  "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"
  }
}

Unterhaltungen auflisten

GET/v1/conversationsScope readMCPlist_conversations

Gibt deine Unterhaltungen zurück, die mit der neuesten Nachricht zuerst.

Query-Parameter

  • unreadboolean
    true nur für ungelesene Unterhaltungen.
  • personastring
    Nur Unterhaltungen mit Leads dieser Persona-ID.
  • include_messagesboolean
    true, um jede Unterhaltung mit allen Nachrichten, die älteste zuerst, und history zu erhalten. Die Seiten sind schwerer, halte limit daher bei 25 oder weniger.
  • limitinteger
    Wie viele Objekte zurückgegeben werden, von 1 bis 100. Standardmäßig 25.
  • cursorstring
    Der next_cursor der vorherigen Seite, um die nächste Seite abzurufen. Siehe Paginierung.

Rückgabe

Eine Liste von Unterhaltungsobjekten, mit messages nur wenn include_messages true ist.

Fehler

  • Ein Parameter hat einen Wert, den die API nicht akzeptiert. param nennt ihn.
GET/v1/conversations
curl -G https://gemlead.ai/api/v1/conversations \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -d unread=true
Antwort200
{
  "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"
}

Unterhaltung abrufen

GET/v1/conversations/:idScope readMCPget_conversation

Gibt eine Unterhaltung mit all ihren Nachrichten zurück, die älteste zuerst.

Pfadparameter

  • idstringErforderlich
    Die ID der Unterhaltung.

Rückgabe

Ein Unterhaltungsobjekt mit messages und history.

Fehler

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

Als gelesen markieren

POST/v1/conversations/:conversation_id/mark_readScope writeMCPupdate_conversation

Markiert die Unterhaltung in Gemlead als gelesen, und auf X mit einer Lesebestätigung.

Pfadparameter

  • conversation_idstringErforderlich
    Die ID der Unterhaltung.

Rückgabe

Das Unterhaltungsobjekt.

Fehler

  • Keine Unterhaltung mit dieser ID im Konto des Schlüssels.
  • Die Sitzung des X-Kontos ist abgelaufen. Verbinde es in der App neu und versuche es dann noch einmal.
  • X oder ein Gemlead-Dienst hat nicht geantwortet. Nichts wurde geändert, versuche es in einer Minute erneut.
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"
Antwort200
{
  "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"
  }
}

Als ungelesen markieren

POST/v1/conversations/:conversation_id/mark_unreadScope writeMCPupdate_conversation

Markiert die Unterhaltung in Gemlead als ungelesen.

Pfadparameter

  • conversation_idstringErforderlich
    Die ID der Unterhaltung.

Rückgabe

Das Unterhaltungsobjekt.

Fehler

  • Keine Unterhaltung mit dieser ID im Konto des Schlüssels.
  • Die Sitzung des X-Kontos ist abgelaufen. Verbinde es in der App neu und versuche es dann noch einmal.
  • X oder ein Gemlead-Dienst hat nicht geantwortet. Nichts wurde geändert, versuche es in einer Minute erneut.
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"
Antwort200
{
  "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"
  }
}

Unterhaltung verschieben

POST/v1/conversations/:conversation_id/moveScope writeMCPupdate_conversation

Verschiebt die Unterhaltung in eine andere Spalte im Board deiner Unterhaltungen.

Pfadparameter

  • conversation_idstringErforderlich
    Die ID der Unterhaltung.

Body-Parameter

Rückgabe

Das Unterhaltungsobjekt.

Fehler

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

Unterhaltung anheften

POST/v1/conversations/:conversation_id/pinScope writeMCPupdate_conversation

Heftet die Unterhaltung in deiner X-Inbox an.

Pfadparameter

  • conversation_idstringErforderlich
    Die ID der Unterhaltung.

Rückgabe

Das Unterhaltungsobjekt.

Fehler

  • Keine Unterhaltung mit dieser ID im Konto des Schlüssels.
  • Die Sitzung des X-Kontos ist abgelaufen. Verbinde es in der App neu und versuche es dann noch einmal.
  • X oder ein Gemlead-Dienst hat nicht geantwortet. Nichts wurde geändert, versuche es in einer Minute erneut.
POST/v1/conversations/:conversation_id/pin
curl -X POST \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/pin \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Antwort200
{
  "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"
  }
}

Unterhaltung lösen

POST/v1/conversations/:conversation_id/unpinScope writeMCPupdate_conversation

Hebt das Anheften der Unterhaltung in deiner X-Inbox auf.

Pfadparameter

  • conversation_idstringErforderlich
    Die ID der Unterhaltung.

Rückgabe

Das Unterhaltungsobjekt.

Fehler

  • Keine Unterhaltung mit dieser ID im Konto des Schlüssels.
  • Die Sitzung des X-Kontos ist abgelaufen. Verbinde es in der App neu und versuche es dann noch einmal.
  • X oder ein Gemlead-Dienst hat nicht geantwortet. Nichts wurde geändert, versuche es in einer Minute erneut.
POST/v1/conversations/:conversation_id/unpin
curl -X POST \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT/unpin \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Antwort200
{
  "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"
  }
}

Unterhaltung löschen

DELETE/v1/conversations/:conversation_idScope writeMCPdelete_conversation

Löscht die Unterhaltung in Gemlead und in deiner X-Inbox. Ihr Lead stoppt in jeder Kampagne. Das lässt sich nicht rückgängig machen.

Pfadparameter

  • conversation_idstringErforderlich
    Die ID der Unterhaltung.

Rückgabe

Ein Objekt mit der id der Unterhaltung und dem Wert true in deleted.

Fehler

  • Keine Unterhaltung mit dieser ID im Konto des Schlüssels.
  • Die Sitzung des X-Kontos ist abgelaufen. Verbinde es in der App neu und versuche es dann noch einmal.
  • X oder ein Gemlead-Dienst hat nicht geantwortet. Nichts wurde geändert, versuche es in einer Minute erneut.
DELETE/v1/conversations/:conversation_id
curl -X DELETE \
  https://gemlead.ai/api/v1/conversations/msgOtJ8dvT \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Antwort200
{
  "id": "msgOtJ8dvT",
  "object": "conversation",
  "deleted": true
}

Das Nachrichtenobjekt

Eine DM in einer Unterhaltung, von dir oder vom Lead gesendet.

Attribute

  • idstring
    Die ID der Nachricht auf X.
  • objectstring
    Immer message.
  • directionstring
    inbound, wenn der Lead sie geschrieben hat, outbound, wenn du es warst.
    inboundoutbound
  • textstring
    Der Text der Nachricht.
  • created_atstring
    Wann sie gesendet wurde, ISO 8601.
  • mediaArray von objects
    Was an die Nachricht angehängt ist, jeweils mit type und url. Bilder von X kommen über einen Gemlead-Link.
  • reactionsArray von objects
    Die Emoji-Reaktionen auf die Nachricht, die älteste zuerst, eine pro Person und Emoji.
  • encryptedboolean
    true für eine X Chat-Nachricht, die Gemlead noch nicht lesen kann. text und media bleiben leer, bis der X Chat-Code sie entsperrt.
  • reply_to_message_idstring oder null
    Die ID der Nachricht, auf die sie antwortet, null, wenn sie auf keine antwortet.
Das Nachrichtenobjekt
{
  "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
}

Nachrichten auflisten

GET/v1/conversations/:conversation_id/messagesScope readMCPlist_messages

Gibt den ganzen Verlauf einer Unterhaltung von X zurück, die neueste Nachricht zuerst, Seite für Seite.

Pfadparameter

  • conversation_idstringErforderlich
    Die ID der Unterhaltung.

Query-Parameter

  • limitinteger
    Wie viele Nachrichten zurückgegeben werden, von 1 bis 50. Standardmäßig 25.
  • cursorstring
    Der next_cursor der vorherigen Seite, für ältere Nachrichten.

Rückgabe

Eine Liste von Nachrichtenobjekten.

Fehler

  • Keine Unterhaltung mit dieser ID im Konto des Schlüssels.
  • Ein Parameter hat einen Wert, den die API nicht akzeptiert. param nennt ihn.
  • Die Sitzung des X-Kontos ist abgelaufen. Verbinde es in der App neu und versuche es dann noch einmal.
  • X oder ein Gemlead-Dienst hat nicht geantwortet. Nichts wurde geändert, versuche es in einer Minute erneut.
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
Antwort200
{
  "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"
}

Nachricht senden

POST/v1/conversations/:conversation_id/messagesScope writeMCPsend_message

Sendet dem Lead sofort eine DM von deinem X-Konto. Sende Text, eine Datei oder beides. Der Empfänger ergibt sich immer aus der Unterhaltung.

Pfadparameter

  • conversation_idstringErforderlich
    Die ID der Unterhaltung.

Body-Parameter

  • textstring
    Die Nachricht, bis zu 10 000 Zeichen. Pflichtfeld, wenn media fehlt.
  • mediaobject
    Eine Datei, die mit der Nachricht gesendet wird. Gib ihre url an oder ihre data mit dem mime_type. Gemlead erkennt den Typ an der Datei selbst. Bilder dürfen bis zu 5 MB groß sein, GIFs bis zu 15 MB. Videos und Sprachnachrichten so groß, wie X sie annimmt, sende für alles, was für den Body einer Anfrage zu groß ist, eine url.
  • reply_to_message_idstring
    Auf diese Nachricht antworten, eine der letzten 20 der Unterhaltung. Eine Antwort mit Medien braucht eine Unterhaltung in X Chat.

Rückgabe

Die gesendete Nachricht, mit conversation_id, reply_to_message_id und transport, also x_chat oder classic.

Fehler

  • Keine Unterhaltung mit dieser ID im Konto des Schlüssels.
  • Ein Pflichtparameter fehlt. param nennt ihn.
  • Ein Parameter hat einen Wert, den die API nicht akzeptiert. param nennt ihn.
  • Die Unterhaltung unterstützt diese Art von Datei nicht, etwa eine Sprachnachricht ohne X Chat.
  • X drosselt die DMs des Kontos gerade. Retry-After gibt an, wann es weitergeht.
  • Mehr als 10 DMs pro Minute.
  • An diesem UTC-Tag schon 300 DMs gesendet oder das Tageskontingent erreicht, das X selbst für das Konto setzt.
  • X hat abgelehnt, weil der Lead seine DMs geschlossen oder das Konto blockiert hat.
  • Die Unterhaltung hat noch keinen X-Nutzer, an den geschrieben werden kann.
  • Die Sitzung des X-Kontos ist abgelaufen. Verbinde es in der App neu und versuche es dann noch einmal.
  • X oder ein Gemlead-Dienst hat nicht geantwortet. Nichts wurde geändert, versuche es in einer Minute erneut.
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?"
  }'
Antwort200
{
  "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"
}

Reaktion hinzufügen

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

Reagiert von deinem X-Konto aus mit einem Emoji auf eine Nachricht.

Pfadparameter

  • conversation_idstringErforderlich
    Die ID der Unterhaltung.
  • message_idstringErforderlich
    Die ID der Nachricht, eine der letzten 20 der Unterhaltung.

Body-Parameter

  • emojistringErforderlich
    Das Emoji, etwa ❤️ oder 👍.

Rückgabe

Ein Objekt mit conversation_id, message_id und emoji.

Fehler

  • Keine Nachricht mit dieser ID im Konto des Schlüssels.
  • Ein Pflichtparameter fehlt. param nennt ihn.
  • Die Sitzung des X-Kontos ist abgelaufen. Verbinde es in der App neu und versuche es dann noch einmal.
  • X oder ein Gemlead-Dienst hat nicht geantwortet. Nichts wurde geändert, versuche es in einer Minute erneut.
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": "👍"
  }'
Antwort200
{
  "object": "reaction",
  "conversation_id": "msgOtJ8dvT",
  "message_id": "1985321409876543210",
  "emoji": "👍"
}

Reaktion entfernen

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

Entfernt deine Reaktion von einer Nachricht.

Pfadparameter

  • conversation_idstringErforderlich
    Die ID der Unterhaltung.
  • message_idstringErforderlich
    Die ID der Nachricht, eine der letzten 20 der Unterhaltung.

Query-Parameter

  • emojistringErforderlich
    Das Emoji, das entfernt werden soll.

Rückgabe

Die Reaktion mit dem Wert true in deleted.

Fehler

  • Keine Nachricht mit dieser ID im Konto des Schlüssels.
  • Ein Pflichtparameter fehlt. param nennt ihn.
  • Die Sitzung des X-Kontos ist abgelaufen. Verbinde es in der App neu und versuche es dann noch einmal.
  • X oder ein Gemlead-Dienst hat nicht geantwortet. Nichts wurde geändert, versuche es in einer Minute erneut.
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"
Antwort200
{
  "object": "reaction",
  "conversation_id": "msgOtJ8dvT",
  "message_id": "1985321409876543210",
  "emoji": "👍",
  "deleted": true
}

Nachricht löschen

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

Löscht eine Nachricht für dich, oder für beide Seiten, wenn sie von dir ist und die Unterhaltung in X Chat läuft.

Pfadparameter

  • conversation_idstringErforderlich
    Die ID der Unterhaltung.
  • message_idstringErforderlich
    Die ID der Nachricht, eine der letzten 20 der Unterhaltung.

Query-Parameter

  • for_everyoneboolean
    true löscht sie für beide Seiten, nur bei deinen eigenen Nachrichten in X Chat. Standardmäßig false.

Rückgabe

Ein Objekt mit der id der Nachricht, ihrer conversation_id, dem Wert true in deleted und for_everyone.

Fehler

  • Keine Nachricht mit dieser ID im Konto des Schlüssels.
  • Ein Parameter hat einen Wert, den die API nicht akzeptiert. param nennt ihn.
  • Die Sitzung des X-Kontos ist abgelaufen. Verbinde es in der App neu und versuche es dann noch einmal.
  • X oder ein Gemlead-Dienst hat nicht geantwortet. Nichts wurde geändert, versuche es in einer Minute erneut.
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"
Antwort200
{
  "id": "1985329981234567890",
  "object": "message",
  "conversation_id": "msgOtJ8dvT",
  "deleted": true,
  "for_everyone": true
}

Das Übersetzungsobjekt

Ob die Nachrichten einer Unterhaltung übersetzt werden und in welche Sprache.

Attribute

  • objectstring
    Immer conversation_translation.
  • conversation_idstring
    Die ID der Unterhaltung.
  • enabledboolean
    Ob ihre Nachrichten laufend übersetzt werden.
  • decidedboolean
    Ob jemand sie von Hand ein- oder ausgeschaltet hat, statt den Standard von Gemlead zu nutzen.
  • source_languagestring oder null
    Die Sprache des Leads, sobald erkannt.
  • languagestring oder null
    Die Sprache, in die Nachrichten übersetzt werden.
  • shownboolean
    Ob die App die Nachrichten übersetzt anzeigt.
Das Übersetzungsobjekt
{
  "object": "conversation_translation",
  "conversation_id": "msgOtJ8dvT",
  "enabled": true,
  "decided": true,
  "source_language": "es",
  "language": "en",
  "shown": true
}

Übersetzungseinstellungen abrufen

GET/v1/conversations/:conversation_id/translationScope readMCPupdate_conversation_translation

Gibt zurück, ob die Unterhaltung übersetzt wird und in welche Sprache.

Pfadparameter

  • conversation_idstringErforderlich
    Die ID der Unterhaltung.

Rückgabe

Ein Übersetzungsobjekt.

Fehler

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

Übersetzungseinstellungen ändern

PATCH/v1/conversations/:conversation_id/translationScope writeMCPupdate_conversation_translation

Schaltet die Übersetzung der Unterhaltung ein oder aus und legt fest, ob die App die Nachrichten übersetzt anzeigt.

Pfadparameter

  • conversation_idstringErforderlich
    Die ID der Unterhaltung.

Body-Parameter

  • enabledboolean
    Die Nachrichten laufend übersetzen, deine und die des Leads.
  • shownboolean
    Die Nachrichten in der App übersetzt anzeigen. Setzt enabled voraus.
  • languagestring
    Die Zielsprache der Übersetzung. Standardmäßig deine Sprache in Gemlead, sonst Englisch.
    enfresitderuptnljazhkoartrhiidplukvithsv

Rückgabe

Das aktualisierte Übersetzungsobjekt.

Fehler

  • Keine Unterhaltung mit dieser ID im Konto des Schlüssels.
  • Ein Parameter hat einen Wert, den die API nicht akzeptiert. param nennt ihn.
  • Der Body enthält ein Feld, das dieser Endpoint nicht akzeptiert.
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"
  }'
Antwort200
{
  "object": "conversation_translation",
  "conversation_id": "msgOtJ8dvT",
  "enabled": true,
  "decided": true,
  "source_language": "es",
  "language": "en",
  "shown": true
}

Nachrichten übersetzen

POST/v1/conversations/:conversation_id/translateScope writeMCPtranslate_messages

Übersetzt die letzten Nachrichten der Unterhaltung. Bei ausgeschalteter Übersetzung jeweils nur eine Nachricht.

Pfadparameter

  • conversation_idstringErforderlich
    Die ID der Unterhaltung.

Body-Parameter

  • message_idsArray von strings
    Die zu übersetzenden Nachrichten, aus den letzten 20. Standardmäßig alle, bei eingeschalteter Übersetzung.
  • languagestring
    Die Zielsprache der Übersetzung. Standardmäßig deine Sprache in Gemlead, sonst Englisch.
    enfresitderuptnljazhkoartrhiidplukvithsv

Rückgabe

Ein Objekt mit conversation_id, language und in data für jede Nachricht message_id, text und translation.

Fehler

  • Keine Unterhaltung mit dieser ID im Konto des Schlüssels.
  • Ein Parameter hat einen Wert, den die API nicht akzeptiert. param nennt ihn.
  • Die Übersetzung ist aus und du hast mehr als eine Nachricht angefragt.
  • X oder ein Gemlead-Dienst hat nicht geantwortet. Nichts wurde geändert, versuche es in einer Minute erneut.
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"
  }'
Antwort200
{
  "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?"
    }
  ]
}