Référence API
Julien AI
Julien AI est l'assistant de l'app Gemlead. Via l'API, il répond aux questions sur Gemlead et sur le compte X de la clé, ses leads, personas, campagnes et conversations. Il ne fait que répondre, et ne crée, ne modifie ni n'envoie jamais rien.
Envoie un message sans chat_id pour démarrer un chat, puis envoie les suivants avec le chat_id de la réponse pour le continuer. Tu as accès aux chats créés via l'API avec ce compte X, jamais aux chats de l'app.
Un envoi attend la réponse jusqu'à 25 secondes. Quand Julien AI a besoin de plus de temps, la réponse revient avec le statut running. Récupère-la à intervalles de quelques secondes jusqu'à ce qu'elle soit completed ou failed, ce qui prend 150 secondes au plus.
Chaque compte X peut envoyer 6 messages par minute et 100 par jour UTC, un seul à la fois par chat et 3 en parallèle, chacun de 1 à 4 000 caractères. Julien AI accepte aussi 150 messages par heure et par utilisateur, chat de l'app et API compris.
L'objet réponse de l'assistant
Un message à Julien AI et sa réponse. L'envoi la renvoie, et tu peux ensuite la relire avec son ID.
Attributs
- idstringIdentifiant unique de la réponse,
rpl_suivi de 32 caractères. - objectstringToujours
assistant_reply. - statusstring
runningpendant que Julien AI écrit, puiscompletedoufailed.runningcompletedfailed - chat_idstring ou nullLe chat du message. Passe-le avec le message suivant pour continuer dans le même chat.
nulltant que le premier message d'un nouveau chat est en cours. - messageobject ou nullTon message tel que le chat le garde, un objet message de l'assistant.
nulltant que le statut n'est pascompleted. - replyobject ou nullLa réponse de Julien AI, un objet message de l'assistant.
nulltant que le statut n'est pascompleted. - errorobject ou nullPourquoi la réponse a échoué,
nullsinon. - created_atstringDate d'envoi du message, en ISO 8601.
- completed_atstring ou nullDate de fin de la réponse, terminée ou en échec, en ISO 8601.
nulltant qu'elle est en cours.
{
"id": "rpl_7Hq2LmX9vR4tKp8WzN3cYd6FbJ1sGa5E",
"object": "assistant_reply",
"status": "completed",
"chat_id": "Jc7Rk2WqNb",
"message": {
"id": "Qm4xT8vLpZ",
"object": "assistant_message",
"chat_id": "Jc7Rk2WqNb",
"role": "user",
"text": "Which persona brought the most hot leads?",
"created_at": "2026-11-06T09:14:02.000Z"
},
"reply": {
"id": "Ra9Yh3KsDw",
"object": "assistant_message",
"chat_id": "Jc7Rk2WqNb",
"role": "assistant",
"text": "Tipsters, with 38 hot leads this week out of 412 scored. Most of them follow @bettingpros.\n\nShould I compare it with last week?",
"created_at": "2026-11-06T09:14:09.000Z"
},
"error": null,
"created_at": "2026-11-06T09:14:02.000Z",
"completed_at": "2026-11-06T09:14:09.000Z"
}Envoyer un message
Envoie un message à Julien AI et attend sa réponse jusqu'à 25 secondes. Au-delà, la réponse revient en running et tu la récupères jusqu'à ce qu'elle se termine. Envoie-le avec une Idempotency-Key pour qu'une nouvelle tentative ne pose jamais la question deux fois.
Paramètres du corps
- textstringObligatoireTon message, de 1 à 4 000 caractères.
- chat_idstringLe chat à continuer, issu d'une réponse précédente. Sans lui, le message démarre un nouveau chat.
Renvoie
Un objet réponse de l'assistant, completed avec la réponse, ou running quand Julien AI a besoin de plus de 25 secondes.
Erreurs
- Il manque un paramètre obligatoire.
paramindique lequel. - Le texte est vide ou dépasse 4 000 caractères.
paramindique le paramètre. - Aucun chat avec cet ID créé via l'API avec ce compte X. Pour les chats de l'app, la réponse est la même.
- Julien AI répond encore à un message de ce chat, ou à 3 messages de ce compte X.
- Plus de 6 messages dans la minute depuis ce compte X, ou 150 dans l'heure pour son propriétaire.
- Déjà 100 messages depuis ce compte X sur la journée UTC en cours.
- Julien AI n'est pas disponible ou n'a pas pu répondre. Un message qu'il a reçu reste dans le chat.
curl -X POST https://gemlead.ai/api/v1/assistant/messages \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Which persona brought the most hot leads?"
}'{
"id": "rpl_7Hq2LmX9vR4tKp8WzN3cYd6FbJ1sGa5E",
"object": "assistant_reply",
"status": "completed",
"chat_id": "Jc7Rk2WqNb",
"message": {
"id": "Qm4xT8vLpZ",
"object": "assistant_message",
"chat_id": "Jc7Rk2WqNb",
"role": "user",
"text": "Which persona brought the most hot leads?",
"created_at": "2026-11-06T09:14:02.000Z"
},
"reply": {
"id": "Ra9Yh3KsDw",
"object": "assistant_message",
"chat_id": "Jc7Rk2WqNb",
"role": "assistant",
"text": "Tipsters, with 38 hot leads this week out of 412 scored. Most of them follow @bettingpros.\n\nShould I compare it with last week?",
"created_at": "2026-11-06T09:14:09.000Z"
},
"error": null,
"created_at": "2026-11-06T09:14:02.000Z",
"completed_at": "2026-11-06T09:14:09.000Z"
}Récupérer une réponse
Renvoie une réponse. Tant qu'elle est running, récupère-la à intervalles de quelques secondes. Elle finit en completed avec la réponse de Julien AI, ou en failed avec son error.
Paramètres de chemin
- reply_idstringObligatoireL'ID de la réponse.
Renvoie
Un objet réponse de l'assistant.
Erreurs
- Aucune réponse avec cet ID sur le compte X de la clé.
curl \
https://gemlead.ai/api/v1/assistant/replies/rpl_7Hq2LmX9vR4tKp8WzN3cYd6FbJ1sGa5E \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "rpl_7Hq2LmX9vR4tKp8WzN3cYd6FbJ1sGa5E",
"object": "assistant_reply",
"status": "running",
"chat_id": "Jc7Rk2WqNb",
"message": null,
"reply": null,
"error": null,
"created_at": "2026-11-06T09:14:02.000Z",
"completed_at": null
}L'objet message de l'assistant
Un message d'un chat avec Julien AI, de toi ou de lui.
Attributs
- idstringIdentifiant unique du message.
- objectstringToujours
assistant_message. - chat_idstringLe chat auquel il appartient.
- rolestring
userpour tes messages,assistantpour ceux de Julien AI.userassistant - textstringLe message. Pour Julien AI, sa réponse, puis la question qu'il te pose s'il en pose une.
- created_atstringDate d'envoi du message, en ISO 8601.
{
"id": "Ra9Yh3KsDw",
"object": "assistant_message",
"chat_id": "Jc7Rk2WqNb",
"role": "assistant",
"text": "Tipsters, with 38 hot leads this week out of 412 scored. Most of them follow @bettingpros.\n\nShould I compare it with last week?",
"created_at": "2026-11-06T09:14:09.000Z"
}Lister les messages
readRenvoie les messages de tes chats avec Julien AI créés via l'API, les tiens et ses réponses, du plus récent au plus ancien.
Paramètres de requête
- chat_idstringSeulement les messages de ce chat. Par défaut tous les chats de ce compte X.
- limitintegerNombre d'objets à renvoyer, de 1 à 100. 25 par défaut.
- cursorstringLe
next_cursorde la page précédente, pour obtenir la suivante. Voir Pagination.
Renvoie
Une liste d'objets message de l'assistant.
Erreurs
- Aucun chat avec cet ID créé via l'API avec ce compte X. Pour les chats de l'app, la réponse est la même.
- Un paramètre a une valeur que l'API n'accepte pas.
paramindique lequel.
curl -G https://gemlead.ai/api/v1/assistant/messages \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-d chat_id=Jc7Rk2WqNb{
"object": "list",
"data": [
{
"id": "Ra9Yh3KsDw",
"object": "assistant_message",
"chat_id": "Jc7Rk2WqNb",
"role": "assistant",
"text": "Tipsters, with 38 hot leads this week out of 412 scored. Most of them follow @bettingpros.\n\nShould I compare it with last week?",
"created_at": "2026-11-06T09:14:09.000Z"
},
{
"id": "Qm4xT8vLpZ",
"object": "assistant_message",
"chat_id": "Jc7Rk2WqNb",
"role": "user",
"text": "Which persona brought the most hot leads?",
"created_at": "2026-11-06T09:14:02.000Z"
}
],
"has_more": false,
"next_cursor": null
}L'objet chat de l'assistant
Un chat avec Julien AI démarré via l'API.
Attributs
- idstringIdentifiant unique du chat, le
chat_idde ses messages. - objectstringToujours
assistant_chat. - titlestringLe titre du chat, donné comme dans l'app.
New chattant qu'il n'en a pas. - created_atstringDate de début du chat, en ISO 8601.
- last_message_atstringDate de son dernier message, en ISO 8601.
- last_message_previewstringLe début de son dernier message.
{
"id": "Jc7Rk2WqNb",
"object": "assistant_chat",
"title": "Hot leads this week",
"created_at": "2026-11-06T09:14:02.000Z",
"last_message_at": "2026-11-06T09:14:09.000Z",
"last_message_preview": "Tipsters, with 38 hot leads this week out of 412 scored."
}Lister les chats
readRenvoie tes chats avec Julien AI créés via l'API avec ce compte X, le plus récemment actif en premier.
Paramètres de requête
- limitintegerNombre d'objets à renvoyer, de 1 à 100. 25 par défaut.
- cursorstringLe
next_cursorde la page précédente, pour obtenir la suivante. Voir Pagination.
Renvoie
Une liste d'objets chat de l'assistant.
Erreurs
- Un paramètre a une valeur que l'API n'accepte pas.
paramindique lequel.
curl https://gemlead.ai/api/v1/assistant/chats \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "list",
"data": [
{
"id": "Jc7Rk2WqNb",
"object": "assistant_chat",
"title": "Hot leads this week",
"created_at": "2026-11-06T09:14:02.000Z",
"last_message_at": "2026-11-06T09:14:09.000Z",
"last_message_preview": "Tipsters, with 38 hot leads this week out of 412 scored."
}
],
"has_more": false,
"next_cursor": null
}