Référence API
Personas
Un persona est un type d'acheteur que tu veux toucher, comme des tipsters ou des patrons d'agence. Gemlead trouve des leads pour chaque persona actif et les score par rapport à sa description. Ses sources décident où Gemlead cherche.
Un propriétaire qui a plusieurs comptes X peut partager un persona entre eux. Ils travaillent avec les mêmes sources, les mêmes réglages et les mêmes leads, chacun avec ses propres campagnes, et un lead ne va qu'à un seul compte X. Le partage de persona définit quels comptes X le partagent.
- GET/v1/
personas - GET/v1/
personas/ :id - POST/v1/
personas - POST/v1/
personas/ :persona_id/ activate - POST/v1/
personas/ :persona_id/ pause - DELETE/v1/
personas/ :persona_id - POST/v1/
personas/ reorder - GET/v1/
personas/ :persona_id/ settings - PATCH/v1/
personas/ :persona_id/ settings - GET/v1/
personas/ :persona_id/ sharing - PUT/v1/
personas/ :persona_id/ sharing - POST/v1/
persona_suggestions - GET/v1/
persona_suggestions/ latest
L'objet persona
Un type d'acheteur que tu veux toucher. Gemlead cherche les leads qui correspondent à chaque persona actif et les score par rapport à lui.
Attributs
- idstringIdentifiant unique du persona.
- objectstringToujours
persona. - namestringLe nom court du persona, comme
Tipsters. - descriptionstringQui est cet acheteur, avec tes mots. Le scoring s'en sert.
- marketstringSi tu vends à des entreprises ou à des particuliers.
b2bb2c - statusstringSi Gemlead cherche des leads pour ce persona.
activepaused - websitestring ou nullLe site web de ce que tu vends à ce persona.
- statsobjectLes compteurs depuis la création du persona, et ceux du jour dans le fuseau horaire de ton profil.
- sharingobjectLes comptes X du propriétaire qui partagent le persona. Voir le partage de persona.
- created_atstringDate de création du persona, en ISO 8601.
- updated_atstringDate de la dernière modification du persona, en ISO 8601.
{
"id": "lvWBPnytpS",
"object": "persona",
"name": "Tipsters",
"description": "Sports and trading tipsters who sell picks or signals to a paying community.",
"market": "b2c",
"status": "active",
"website": "https://example.com",
"stats": {
"leads_found": 18420,
"leads_scored": 17960,
"hot_leads": 2134,
"avg_score": 41,
"today": {
"leads_found": 312,
"hot_leads": 38,
"dms_sent": 25,
"replies": 4
}
},
"sharing": {
"home_account": {
"id": "a9PzK2vRtM",
"username": "acme"
},
"shared_with": [
{
"id": "Hq4TnW8cLm",
"username": "acme_sales"
}
]
},
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}Lister les personas
Renvoie tes personas dans l'ordre de ta page Personas.
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 persona.
curl https://gemlead.ai/api/v1/personas \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "list",
"data": [
{
"id": "lvWBPnytpS",
"object": "persona",
"name": "Tipsters",
"description": "Sports and trading tipsters who sell picks or signals to a paying community.",
"market": "b2c",
"status": "active",
"website": "https://example.com",
"stats": {
"leads_found": 18420,
"leads_scored": 17960,
"hot_leads": 2134,
"avg_score": 41,
"today": {
"leads_found": 312,
"hot_leads": 38,
"dms_sent": 25,
"replies": 4
}
},
"sharing": {
"home_account": {
"id": "a9PzK2vRtM",
"username": "acme"
},
"shared_with": [
{
"id": "Hq4TnW8cLm",
"username": "acme_sales"
}
]
},
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}
],
"has_more": false,
"next_cursor": null
}Récupérer un persona
Renvoie un persona avec ses stats.
Paramètres de chemin
- idstringObligatoireL'ID du persona.
Renvoie
Un objet persona.
Erreurs
- Aucun persona avec cet ID sur le compte de la clé.
curl https://gemlead.ai/api/v1/personas/lvWBPnytpS \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "lvWBPnytpS",
"object": "persona",
"name": "Tipsters",
"description": "Sports and trading tipsters who sell picks or signals to a paying community.",
"market": "b2c",
"status": "active",
"website": "https://example.com",
"stats": {
"leads_found": 18420,
"leads_scored": 17960,
"hot_leads": 2134,
"avg_score": 41,
"today": {
"leads_found": 312,
"hot_leads": 38,
"dms_sent": 25,
"replies": 4
}
},
"sharing": {
"home_account": {
"id": "a9PzK2vRtM",
"username": "acme"
},
"shared_with": [
{
"id": "Hq4TnW8cLm",
"username": "acme_sales"
}
]
},
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}Créer un persona
Crée un persona et commence tout de suite à lui trouver des leads. Le scoring coûte jusqu'à 2 crédits par lead : 1 pour le premier tri, 1 de plus pour le score approfondi s'il passe ce tri, dans la limite de daily_scoring_limit leads par jour. Ajoute des sources maintenant ou plus tard avec Ajouter une source.
Paramètres du corps
- namestringObligatoireLe nom du persona, d'un à trois mots, comme
Ghostwriters, 100 caractères au plus. - websitestringLe site web de ton produit, 500 caractères au plus. L'IA qui score les leads le lit.
- descriptionstringObligatoireQui est cet acheteur, avec des mots simples. L'IA score chaque lead de 0 à 100 par rapport à ce texte, c'est donc le champ le plus important. Il peut contenir tes propres règles de scoring. 12 000 caractères au plus.
- marketstring
b2bquand des entreprises achètent,b2cquand des particuliers achètent pour eux-mêmes.b2bpar défaut.b2bb2c - keywordstableau de stringsDes mots d'un profil ou de ses posts qui signalent un bon fit. 100 au plus, chacun de 100 caractères au plus.
- competitorstableau de stringsDes produits comme le tien, quelqu'un qui en utilise un correspond à ta cible. 100 au plus.
- avoidtableau de stringsLes profils à scorer bas, comme
agenciesoustudents. 100 au plus. - min_followersintegerLes profils avec moins d'abonnés ne sont pas scorés, de 0 à 10 000 000. 100 par défaut.
- include_closed_inboxesbooleanScorer aussi les personnes aux DM fermés, une campagne les contacte par un commentaire.
truepar défaut. - auto_expandbooleanLaisser Gemlead ajouter des sources tout seul à partir des meilleurs leads quand les autres s'épuisent.
falsepar défaut. - auto_expand_directionstringOù l'Extension auto doit chercher ensuite, avec des mots simples comme
more US founders. 500 caractères au plus. - daily_scoring_limitintegerLe maximum de leads scorés par jour pour ce persona. Le scoring coûte jusqu'à 2 crédits par lead : 1 pour le premier tri, 1 de plus pour le score approfondi s'il passe ce tri. De 100 à 20 000. Par défaut, le rythme de ton plan, 3 300 par jour sur Starter et 10 000 sur Business.
- sourcestableau d'objectsJusqu'à 20 sources de départ. Les comptes d'investisseurs, d'accélérateurs et de médias sont refusés, ils n'amènent aucun acheteur.
Renvoie
Le nouvel objet persona.
Erreurs
- Il manque un paramètre obligatoire.
paramindique lequel. - Un paramètre a une valeur que l'API n'accepte pas.
paramindique lequel. - Le corps contient un champ que cet endpoint n'accepte pas.
- Le compte a déjà 100 personas.
- Une source de départ est refusée, comme un investisseur ou un compte média.
paramvautsources.
curl -X POST https://gemlead.ai/api/v1/personas \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Tipsters",
"description": "Sports and trading tipsters who sell picks or signals to a paying community.",
"market": "b2c",
"keywords": ["tipster", "betting tips"],
"sources": [
{
"username": "pickswithmike"
}
]
}'{
"id": "lvWBPnytpS",
"object": "persona",
"name": "Tipsters",
"description": "Sports and trading tipsters who sell picks or signals to a paying community.",
"market": "b2c",
"status": "active",
"website": "https://example.com",
"stats": {
"leads_found": 18420,
"leads_scored": 17960,
"hot_leads": 2134,
"avg_score": 41,
"today": {
"leads_found": 312,
"hot_leads": 38,
"dms_sent": 25,
"replies": 4
}
},
"sharing": {
"home_account": {
"id": "a9PzK2vRtM",
"username": "acme"
},
"shared_with": [
{
"id": "Hq4TnW8cLm",
"username": "acme_sales"
}
]
},
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}Activer un persona
Relance un persona en pause. Ses sources sont de nouveau lues et ses leads scorés.
Paramètres de chemin
- persona_idstringObligatoireL'ID du persona.
Renvoie
Erreurs
- Aucun persona avec cet ID sur le compte de la clé.
curl -X POST \
https://gemlead.ai/api/v1/personas/lvWBPnytpS/activate \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "lvWBPnytpS",
"object": "persona",
"name": "Tipsters",
"description": "Sports and trading tipsters who sell picks or signals to a paying community.",
"market": "b2c",
"status": "active",
"website": "https://example.com",
"stats": {
"leads_found": 18420,
"leads_scored": 17960,
"hot_leads": 2134,
"avg_score": 41,
"today": {
"leads_found": 312,
"hot_leads": 38,
"dms_sent": 25,
"replies": 4
}
},
"sharing": {
"home_account": {
"id": "a9PzK2vRtM",
"username": "acme"
},
"shared_with": [
{
"id": "Hq4TnW8cLm",
"username": "acme_sales"
}
]
},
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}Mettre un persona en pause
Met un persona en pause. Gemlead arrête de lire ses sources et de scorer ses leads, et ses leads sont conservés.
Paramètres de chemin
- persona_idstringObligatoireL'ID du persona.
Renvoie
L'objet persona, avec son status à paused.
Erreurs
- Aucun persona avec cet ID sur le compte de la clé.
curl -X POST \
https://gemlead.ai/api/v1/personas/lvWBPnytpS/pause \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "lvWBPnytpS",
"object": "persona",
"name": "Tipsters",
"description": "Sports and trading tipsters who sell picks or signals to a paying community.",
"market": "b2c",
"status": "paused",
"website": "https://example.com",
"stats": {
"leads_found": 18420,
"leads_scored": 17960,
"hot_leads": 2134,
"avg_score": 41,
"today": {
"leads_found": 312,
"hot_leads": 38,
"dms_sent": 25,
"replies": 4
}
},
"sharing": {
"home_account": {
"id": "a9PzK2vRtM",
"username": "acme"
},
"shared_with": [
{
"id": "Hq4TnW8cLm",
"username": "acme_sales"
}
]
},
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}Supprimer un persona
Supprime un persona avec ses sources et les leads qui ne sont passés par aucune campagne. Ses campagnes sont archivées. C'est irréversible.
Paramètres de chemin
- persona_idstringObligatoireL'ID du persona.
Renvoie
Un objet avec l'id du persona, deleted à true, et les nombres archived_campaigns et deleted_sources. Ses leads sont supprimés en arrière-plan, donc deleted_leads vaut null et ils peuvent encore apparaître dans Lister les leads pendant quelques minutes.
Erreurs
- Aucun persona avec cet ID sur le compte de la clé.
curl -X DELETE https://gemlead.ai/api/v1/personas/lvWBPnytpS \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "lvWBPnytpS",
"object": "persona",
"deleted": true,
"archived_campaigns": 1,
"deleted_sources": 6,
"deleted_leads": null
}Réordonner les personas
Définit l'ordre de tes personas, celui que l'app affiche. Envoie chaque persona une seule fois.
Paramètres du corps
- persona_idstableau de stringsObligatoireTous les ID de persona du compte, dans le nouvel ordre.
Renvoie
Une liste d'objets persona dans le nouvel ordre.
Erreurs
- Il manque un paramètre obligatoire.
paramindique lequel. - Un paramètre a une valeur que l'API n'accepte pas.
paramindique lequel. - Un ID ne correspond à aucun persona du compte.
curl -X POST https://gemlead.ai/api/v1/personas/reorder \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"persona_ids": ["lvWBPnytpS", "pQ8nX2rTjk"]
}'{
"object": "list",
"data": [
{
"id": "lvWBPnytpS",
"object": "persona",
"name": "Tipsters",
"description": "Sports and trading tipsters who sell picks or signals to a paying community.",
"market": "b2c",
"status": "active",
"website": "https://example.com",
"stats": {
"leads_found": 18420,
"leads_scored": 17960,
"hot_leads": 2134,
"avg_score": 41,
"today": {
"leads_found": 312,
"hot_leads": 38,
"dms_sent": 25,
"replies": 4
}
},
"sharing": {
"home_account": {
"id": "a9PzK2vRtM",
"username": "acme"
},
"shared_with": [
{
"id": "Hq4TnW8cLm",
"username": "acme_sales"
}
]
},
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}
],
"has_more": false,
"next_cursor": null
}L'objet réglages de persona
Tout ce qui décide quels leads un persona trouve et comment l'IA les score, comme sur la page du persona dans l'app.
Attributs
- objectstringToujours
persona_settings. - persona_idstringL'ID du persona.
- namestringLe nom du persona, d'un à trois mots, comme
Ghostwriters. - websitestring ou nullLe site web de ton produit. L'IA qui score les leads le lit.
- descriptionstring ou nullQui est cet acheteur, avec des mots simples. L'IA score chaque lead de 0 à 100 par rapport à ce texte, c'est donc le champ le plus important. Il peut contenir tes propres règles de scoring.
- marketstring
b2bquand des entreprises achètent,b2cquand des particuliers achètent pour eux-mêmes.b2bb2c - keywordstableau de stringsDes mots d'un profil ou de ses posts qui signalent un bon fit.
- competitorstableau de stringsDes produits comme le tien. Quelqu'un qui en utilise un correspond à ta cible.
- avoidtableau de stringsLes profils à scorer bas, comme
agenciesoustudents. - min_followersintegerLes profils avec moins d'abonnés ne sont pas scorés.
- include_closed_inboxesbooleanSi les personnes aux DM fermés sont aussi scorées. Une campagne les contacte par un commentaire.
- auto_expandbooleanSi Gemlead ajoute des sources tout seul à partir des meilleurs leads quand les autres s'épuisent.
- auto_expand_directionstring ou nullOù l'Extension auto doit chercher ensuite, avec des mots simples, comme
more US founders. - daily_scoring_limitintegerLe maximum de leads scorés par jour pour ce persona. Le scoring coûte jusqu'à 2 crédits par lead : 1 pour le premier tri, 1 de plus pour le score approfondi s'il passe ce tri.
- statusstringSi Gemlead trouve et score des leads pour lui.
activepaused - search_queriestableau de strings
- competitor_accountstableau de stringsSes comptes concurrents, des noms d'utilisateur X sans le @.
- updated_atstringDate de la dernière modification du persona, en ISO 8601.
{
"object": "persona_settings",
"persona_id": "lvWBPnytpS",
"name": "Tipsters",
"website": "https://example.com",
"description": "Sports and trading tipsters who sell picks or signals to a paying community.",
"market": "b2c",
"status": "active",
"keywords": ["tipster", "betting tips", "trading signals"],
"competitors": ["Patreon", "Whop"],
"avoid": ["betting brands", "news accounts"],
"min_followers": 500,
"include_closed_inboxes": true,
"auto_expand": false,
"auto_expand_direction": null,
"daily_scoring_limit": 3300,
"search_queries": ["paid discord picks", "vip tips telegram"],
"competitor_accounts": ["whop"],
"updated_at": "2026-11-06T07:45:12.904Z"
}Récupérer les réglages d'un persona
Renvoie tous les réglages d'un persona, avec ses recherches par mots-clés et ses comptes concurrents.
Paramètres de chemin
- persona_idstringObligatoireL'ID du persona.
Renvoie
Erreurs
- Aucun persona avec cet ID sur le compte de la clé.
curl https://gemlead.ai/api/v1/personas/lvWBPnytpS/settings \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "persona_settings",
"persona_id": "lvWBPnytpS",
"name": "Tipsters",
"website": "https://example.com",
"description": "Sports and trading tipsters who sell picks or signals to a paying community.",
"market": "b2c",
"status": "active",
"keywords": ["tipster", "betting tips", "trading signals"],
"competitors": ["Patreon", "Whop"],
"avoid": ["betting brands", "news accounts"],
"min_followers": 500,
"include_closed_inboxes": true,
"auto_expand": false,
"auto_expand_direction": null,
"daily_scoring_limit": 3300,
"search_queries": ["paid discord picks", "vip tips telegram"],
"competitor_accounts": ["whop"],
"updated_at": "2026-11-06T07:45:12.904Z"
}Modifier les réglages d'un persona
Modifie les réglages que tu envoies et ne touche pas aux autres. Une liste envoyée remplace toute la liste. Pour ajouter un mot à keywords, renvoie donc la liste complète avec le nouveau mot.
Paramètres de chemin
- persona_idstringObligatoireL'ID du persona.
Paramètres du corps
- namestringLe nom du persona, d'un à trois mots, comme
Ghostwriters, 100 caractères au plus. - websitestringLe site web de ton produit, 500 caractères au plus. L'IA qui score les leads le lit.
- descriptionstringQui est cet acheteur, avec des mots simples. L'IA score chaque lead de 0 à 100 par rapport à ce texte, c'est donc le champ le plus important. Il peut contenir tes propres règles de scoring. 12 000 caractères au plus.
- marketstring
b2bquand des entreprises achètent,b2cquand des particuliers achètent pour eux-mêmes.b2bpar défaut.b2bb2c - keywordstableau de stringsDes mots d'un profil ou de ses posts qui signalent un bon fit. 100 au plus, chacun de 100 caractères au plus.
- competitorstableau de stringsDes produits comme le tien, quelqu'un qui en utilise un correspond à ta cible. 100 au plus.
- avoidtableau de stringsLes profils à scorer bas, comme
agenciesoustudents. 100 au plus. - min_followersintegerLes profils avec moins d'abonnés ne sont pas scorés, de 0 à 10 000 000. 100 par défaut.
- include_closed_inboxesbooleanScorer aussi les personnes aux DM fermés, une campagne les contacte par un commentaire.
truepar défaut. - auto_expandbooleanLaisser Gemlead ajouter des sources tout seul à partir des meilleurs leads quand les autres s'épuisent.
falsepar défaut. - auto_expand_directionstringOù l'Extension auto doit chercher ensuite, avec des mots simples comme
more US founders. 500 caractères au plus. - daily_scoring_limitintegerLe maximum de leads scorés par jour pour ce persona. Le scoring coûte jusqu'à 2 crédits par lead : 1 pour le premier tri, 1 de plus pour le score approfondi s'il passe ce tri. De 100 à 20 000 pour chaque compte X qui partage le persona.
Renvoie
L'objet réglages de persona à jour.
Erreurs
- Aucun persona avec cet ID sur le compte de la clé.
- Un paramètre a une valeur que l'API n'accepte pas.
paramindique lequel. - Le corps contient un champ que cet endpoint n'accepte pas.
curl -X PATCH \
https://gemlead.ai/api/v1/personas/lvWBPnytpS/settings \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"min_followers": 500,
"avoid": ["betting brands", "news accounts"]
}'{
"object": "persona_settings",
"persona_id": "lvWBPnytpS",
"name": "Tipsters",
"website": "https://example.com",
"description": "Sports and trading tipsters who sell picks or signals to a paying community.",
"market": "b2c",
"status": "active",
"keywords": ["tipster", "betting tips", "trading signals"],
"competitors": ["Patreon", "Whop"],
"avoid": ["betting brands", "news accounts"],
"min_followers": 500,
"include_closed_inboxes": true,
"auto_expand": false,
"auto_expand_direction": null,
"daily_scoring_limit": 3300,
"search_queries": ["paid discord picks", "vip tips telegram"],
"competitor_accounts": ["whop"],
"updated_at": "2026-11-06T07:45:12.904Z"
}L'objet partage de persona
Les comptes X d'un même propriétaire qui travaillent avec le même persona. Ils partagent ses sources, ses réglages, ses leads et sa liste d'exclusion, et chacun y mène ses propres campagnes. Un lead ne va qu'à un seul compte X, indiqué par son locked_to.
Attributs
- objectstringToujours
persona_sharing. - persona_idstringL'ID du persona.
- home_accountobject ou nullLe compte X sur lequel le persona a été créé. Ses sources et ses leads y sont rattachés.
- shared_withtableau d'objectsLes autres comptes X qui partagent le persona. Vide quand il n'est pas partagé.
- available_accountstableau d'objectsLes autres comptes X du propriétaire avec lesquels le persona peut être partagé. Toujours vide pour un membre de l'équipe, qui ne peut pas modifier le partage.
- daily_scoring_limitintegerLe maximum de leads scorés par jour pour le persona, pour tout le groupe. Il peut aller jusqu'à 20 000 pour chaque compte X qui partage le persona.
{
"object": "persona_sharing",
"persona_id": "lvWBPnytpS",
"home_account": {
"id": "a9PzK2vRtM",
"username": "acme"
},
"shared_with": [
{
"id": "Hq4TnW8cLm",
"username": "acme_sales"
}
],
"available_accounts": [
{
"id": "Rb7YsK3dQp",
"username": "acme_founder"
}
],
"daily_scoring_limit": 3300
}Récupérer le partage d'un persona
Renvoie les comptes X du propriétaire qui partagent un persona, et ceux avec lesquels il peut être partagé.
Paramètres de chemin
- persona_idstringObligatoireL'ID du persona.
Renvoie
Erreurs
- Aucun persona avec cet ID sur le compte de la clé.
curl https://gemlead.ai/api/v1/personas/lvWBPnytpS/sharing \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "persona_sharing",
"persona_id": "lvWBPnytpS",
"home_account": {
"id": "a9PzK2vRtM",
"username": "acme"
},
"shared_with": [
{
"id": "Hq4TnW8cLm",
"username": "acme_sales"
}
],
"available_accounts": [
{
"id": "Rb7YsK3dQp",
"username": "acme_founder"
}
],
"daily_scoring_limit": 3300
}Modifier le partage d'un persona
Choisit les autres comptes X du propriétaire qui partagent un persona, depuis n'importe quel compte X du groupe, comme Partagé avec dans l'app. Envoie la liste complète, ou une liste vide pour arrêter le partage. La daily_scoring_limit suit la taille du groupe, au même rythme pour chaque compte X. Seules les clés du propriétaire peuvent le faire.
Paramètres de chemin
- persona_idstringObligatoireL'ID du persona.
Paramètres du corps
- account_idstableau de stringsObligatoireTous les autres comptes X du propriétaire qui partagent le persona, jusqu'à 20. Son compte d'origine le garde toujours.
Renvoie
L'objet partage de persona à jour.
Erreurs
- Il manque un paramètre obligatoire.
paramindique lequel. - Un paramètre a une valeur que l'API n'accepte pas.
paramindique lequel. - Le corps contient un champ que cet endpoint n'accepte pas.
- 403forbiddenLa clé appartient à un membre de l'équipe. Seul le propriétaire partage un persona.
- Aucun persona avec cet ID, ou un compte X qui n'est pas au propriétaire.
paramindique lequel. - Un compte X que tu retires a encore des campagnes sur le persona. Supprime-les d'abord.
curl -X PUT \
https://gemlead.ai/api/v1/personas/lvWBPnytpS/sharing \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"account_ids": ["Hq4TnW8cLm", "Rb7YsK3dQp"]
}'{
"object": "persona_sharing",
"persona_id": "lvWBPnytpS",
"home_account": {
"id": "a9PzK2vRtM",
"username": "acme"
},
"shared_with": [
{
"id": "Hq4TnW8cLm",
"username": "acme_sales"
},
{
"id": "Rb7YsK3dQp",
"username": "acme_founder"
}
],
"available_accounts": [],
"daily_scoring_limit": 5000
}L'objet suggestion de persona
Un persona que l'IA a écrit pour toi à partir d'un nom et de ton produit, prêt à être créé tel quel ou à retoucher d'abord.
Attributs
- objectstringToujours
persona_suggestion. - statusstring
pendingpendant que l'IA écrit, puisreadyouerror.noneavant la première demande.pendingreadyerrornone - persona_namestring ou nullLe nom demandé.
- suggestionobject ou nullUne fois
ready, les champsdescription,keywords,competitorsetavoiddu persona, ceux de Créer un persona. - generated_atstring ou nullDate de rédaction, en ISO 8601.
- errorstring ou nullCe qui n'a pas marché, quand
statusvauterror.
{
"object": "persona_suggestion",
"status": "ready",
"persona_name": "Tipsters",
"suggestion": {
"description": "Sports and trading tipsters who sell picks or signals to a paying community on Discord or Telegram.",
"keywords": ["tipster", "vip picks", "trading signals"],
"competitors": ["Patreon", "Whop"],
"avoid": ["betting brands", "sports media"]
},
"generated_at": "2026-11-06T07:45:12.904Z",
"error": null
}Suggérer un persona
Demande à l'IA d'écrire un persona à partir d'un nom et de ce que tu vends, ou de réécrire une description. Ça prend quelques secondes, donc la réponse est pending. Lis le résultat avec Récupérer la suggestion de persona.
Paramètres du corps
- persona_namestringObligatoireLe persona à écrire, d'un à trois mots, comme
Ghostwriters. - websitestringLe site web de ton produit. Par défaut celui de ton profil X.
- briefstringCe que tu vends et à qui, avec tes mots, 1 000 caractères au plus.
- current_descriptionstringUne description à réécrire, avec
instruction. - instructionstringComment modifier
current_description, commeshorterouonly US agencies. 2 000 caractères au plus.
Renvoie
Un objet suggestion de persona, avec son status à pending.
Erreurs
- Il manque un paramètre obligatoire.
paramindique lequel. - Un paramètre a une valeur que l'API n'accepte pas.
paramindique lequel. - Le corps contient un champ que cet endpoint n'accepte pas.
- X ou un service Gemlead n'a pas répondu. Rien n'a changé, réessaie dans une minute.
curl -X POST https://gemlead.ai/api/v1/persona_suggestions \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"persona_name": "Tipsters",
"brief": "A checkout for paid Discord and Telegram groups."
}'{
"object": "persona_suggestion",
"status": "pending",
"persona_name": "Tipsters",
"suggestion": null,
"generated_at": null,
"error": null
}Récupérer la suggestion de persona
Renvoie la dernière suggestion de persona du compte. Relance la requête à quelques secondes d'intervalle tant que la suggestion est pending.
Renvoie
curl https://gemlead.ai/api/v1/persona_suggestions/latest \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "persona_suggestion",
"status": "ready",
"persona_name": "Tipsters",
"suggestion": {
"description": "Sports and trading tipsters who sell picks or signals to a paying community on Discord or Telegram.",
"keywords": ["tipster", "vip picks", "trading signals"],
"competitors": ["Patreon", "Whop"],
"avoid": ["betting brands", "sports media"]
},
"generated_at": "2026-11-06T07:45:12.904Z",
"error": null
}