API-referentie

Bronnen

Bronnen bepalen waar Gemlead de leads van een persona zoekt. Een bron is een X-account waarvan Gemlead de gevolgde accounts of de volgers leest. Een zoekopdracht op trefwoorden vindt de auteurs van passende posts. Een concurrentaccount levert de mensen op die op zijn posts reageren.

Bij elk ervan zie je de gevonden, gescoorde en hete leads, zodat je houdt wat werkt. Zoek eerst een X-profiel op om te zien hoe goed het als bron is.

Het bronobject

Een X-account waarvan Gemlead het netwerk leest om leads voor een persona te vinden. Gemlead leest de accounts die het volgt, zijn volgers, of allebei.

Attributen

  • idstring
    Unieke ID van de bron.
  • objectstring
    Altijd source.
  • persona_idstring
    De persona waarvoor de bron leads vindt.
  • methodstring
    competitor_followers als alleen de volgers worden gelezen, anders following.
    followingcompetitor_followers
  • profileobject
    Het X-profiel van de bron.
  • statusstring
    Hoe ver het lezen van de bron is.
    pendingscrapingscoringdonefailedskipped
  • pausedboolean
    Of je de bron hebt gepauzeerd.
  • errorstring of null
    Waarom het lezen mislukte, als dat gebeurde.
  • read_followingboolean
    Of de accounts die de bron volgt worden gelezen.
  • read_followersboolean
    Of de volgers van de bron worden gelezen.
  • score_selfboolean
    Of het account van de bron zelf ook als lead wordt gescoord.
  • self_lead_idstring of null
    De lead van het account van de bron zelf, zodra die gescoord is.
  • origin_lead_idstring of null
    De lead waaruit de bron voortkwam, als je de bron hebt gemaakt met Een lead omzetten in een bron.
  • statsobject
    Wat de bron tot nu toe opleverde.
  • last_activity_atstring of null
    Wanneer de bron voor het laatst een lead opleverde, in ISO 8601.
  • last_scraped_atstring of null
    Wanneer de bron voor het laatst is gelezen, in ISO 8601.
  • created_atstring
    Wanneer de bron is toegevoegd, in ISO 8601.
Het bronobject
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "done",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

Bronnen opvragen

GET/v1/personas/:persona_id/sourcesScope readMCPlist_sources

Geeft de bronnen van de persona terug met hun statistieken.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.

Queryparameters

  • pausedboolean
    true voor alleen gepauzeerde bronnen, false voor actieve bronnen.
  • 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 bronobjecten.

Fouten

  • Geen persona met deze ID op het account van de sleutel.
  • Een parameter heeft een waarde die de API niet accepteert. param geeft aan welke.
GET/v1/personas/:persona_id/sources
curl https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "object": "list",
  "data": [
    {
      "id": "s2HvN8qLtB",
      "object": "source",
      "persona_id": "lvWBPnytpS",
      "method": "following",
      "profile": {
        "username": "pickswithmike",
        "name": "Mike Picks",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
        "followers_count": 8400,
        "following_count": 1210,
        "url": "https://x.com/pickswithmike"
      },
      "status": "done",
      "paused": false,
      "error": null,
      "read_following": true,
      "read_followers": false,
      "score_self": true,
      "self_lead_id": "Lp4WqZ7sXe",
      "origin_lead_id": null,
      "stats": {
        "leads": 1184,
        "scored_leads": 1160,
        "hot_leads": 212,
        "avg_score": 44
      },
      "last_activity_at": "2026-11-05T14:03:40.117Z",
      "last_scraped_at": "2026-11-05T14:02:11.482Z",
      "created_at": "2026-09-14T09:21:05.300Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Een bron ophalen

GET/v1/personas/:persona_id/sources/:source_idScope readMCPlist_sources

Geeft één bron terug met statistieken.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.
  • source_idstringVerplicht
    De ID van de bron.

Resultaat

Een bronobject.

Fouten

GET/v1/personas/:persona_id/sources/:source_id
curl \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "done",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

Een bron toevoegen

POST/v1/personas/:persona_id/sourcesScope writeMCPadd_source

Voegt een X-account toe als bron. De beste bronnen zijn mensen die op je kopers lijken, want ze volgen vooral vakgenoten. De volgers van een concurrent hebben al interesse in producten zoals het jouwe.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.

Bodyparameters

  • usernamestringVerplicht
    Een X-gebruikersnaam, 1 tot 15 letters, cijfers of _, met of zonder de @.
  • read_followingboolean
    Lees de accounts die deze bron volgt, mensen die erop lijken. Standaard true.
  • read_followersboolean
    Lees de volgers van de bron, bijvoorbeeld het publiek van een concurrent. Standaard false.
  • score_selfboolean
    Scoor ook het account van de bron zelf als lead. Standaard true.

Resultaat

Het nieuwe bronobject.

Fouten

POST/v1/personas/:persona_id/sources
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "pickswithmike",
    "read_following": true
  }'
Response200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "pending",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 0,
    "scored_leads": 0,
    "hot_leads": 0,
    "avg_score": 0
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

Een bron bijwerken

PATCH/v1/personas/:persona_id/sources/:source_idScope writeMCPupdate_source

Wijzigt wat Gemlead van de bron leest.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.
  • source_idstringVerplicht
    De ID van de bron.

Bodyparameters

  • read_followingboolean
    Lees de accounts die deze bron volgt, mensen die erop lijken.
  • read_followersboolean
    Lees de volgers van de bron, bijvoorbeeld het publiek van een concurrent.
  • score_selfboolean
    Scoor ook het account van de bron zelf als lead.

Resultaat

Het bijgewerkte bronobject.

Fouten

PATCH/v1/personas/:persona_id/sources/:source_id
curl -X PATCH \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "read_followers": true
  }'
Response200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "done",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": true,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

Een bron pauzeren

POST/v1/personas/:persona_id/sources/:source_id/pauseScope writeMCPupdate_source

Stopt voorlopig met het lezen van de bron. De leads blijven bestaan.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.
  • source_idstringVerplicht
    De ID van de bron.

Resultaat

Het bronobject.

Fouten

POST/v1/personas/:persona_id/sources/:source_id/pause
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB/pause \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "done",
  "paused": true,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

Een bron hervatten

POST/v1/personas/:persona_id/sources/:source_id/resumeScope writeMCPupdate_source

Begint weer met het lezen van een gepauzeerde bron.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.
  • source_idstringVerplicht
    De ID van de bron.

Resultaat

Het bronobject.

Fouten

POST/v1/personas/:persona_id/sources/:source_id/resume
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB/resume \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "done",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

Een bron overslaan

POST/v1/personas/:persona_id/sources/:source_id/skipScope writeMCPupdate_source

Stopt een bron definitief en markeert hem als afgerond, als hij de verkeerde mensen oplevert.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.
  • source_idstringVerplicht
    De ID van de bron.

Resultaat

Het bronobject.

Fouten

POST/v1/personas/:persona_id/sources/:source_id/skip
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB/skip \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "skipped",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

Een bron vernieuwen

POST/v1/personas/:persona_id/sources/:source_id/refreshScope writeMCPupdate_source

Leest het X-profiel van de bron opnieuw uit, voor een nieuwe naam, foto of een nieuw aantal volgers.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.
  • source_idstringVerplicht
    De ID van de bron.

Resultaat

Het bronobject.

Fouten

  • Geen bron 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/personas/:persona_id/sources/:source_id/refresh
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB/refresh \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "done",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

Een bron scoren

POST/v1/personas/:persona_id/sources/:source_id/scoreScope writeMCPupdate_source

Scoort het eigen X-account van de bron als lead van de persona. Kost maximaal 2 credits per lead: 1 voor de eerste ronde, 1 extra voor de diepe score als de lead erdoor komt.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.
  • source_idstringVerplicht
    De ID van de bron.

Resultaat

Het bronobject.

Fouten

POST/v1/personas/:persona_id/sources/:source_id/score
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB/score \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "done",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

Een bron verwijderen

DELETE/v1/personas/:persona_id/sources/:source_idScope writeMCPdelete_source

Verwijdert een bron en de leads die hij vond en waar geen campagne iets mee deed.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.
  • source_idstringVerplicht
    De ID van de bron.

Resultaat

Een object met de id van de bron, deleted op true en het aantal deleted_leads.

Fouten

DELETE/v1/personas/:persona_id/sources/:source_id
curl -X DELETE \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "deleted": true,
  "deleted_leads": 972
}

Leads van een bron opvragen

GET/v1/personas/:persona_id/sources/:source_id/leadsScope readMCPlist_source_leads

Geeft de leads terug die een bron vond, beste score eerst.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.
  • source_idstringVerplicht
    De ID van de bron.

Queryparameters

  • orderstring
    -score zet de beste leads eerst, score de laagste. Standaard -score.
    -scorescore
  • 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 lead-objecten, met total_count.

Fouten

  • Geen bron met deze ID op het account van de sleutel.
  • Een parameter heeft een waarde die de API niet accepteert. param geeft aan welke.
GET/v1/personas/:persona_id/sources/:source_id/leads
curl -G \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB/leads \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -d limit=10
Response200
{
  "object": "list",
  "data": [
    {
      "id": "msgOtJ8dvT",
      "object": "lead",
      "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"
      },
      "score": 86,
      "score_reason": "Runs a paid trading community and asks how to collect payments for it.",
      "hot": true,
      "status": "scored",
      "persona": {
        "id": "lvWBPnytpS",
        "name": "Tipsters"
      },
      "campaign": null,
      "conversation_id": null,
      "locked_to": null,
      "found_at": "2026-11-05T14:02:11.482Z",
      "scored_at": "2026-11-05T14:03:40.117Z",
      "updated_at": "2026-11-05T14:03:40.117Z",
      "metadata": {}
    }
  ],
  "has_more": true,
  "next_cursor": "eyJzIjoiMjAyNi0xMS0wNVQxNDowMzo0MC4xMTdaIn0",
  "total_count": 1184
}

Het zoekopdracht-object

Een zoekopdracht die Gemlead op X uitvoert voor een persona. De auteurs van de posts die hij vindt, worden als leads gescoord.

Attributen

  • objectstring
    Altijd search_query.
  • querystring
    De zoekopdracht, zoals je hem op X zou typen.
  • persona_idstring
    De persona waarvoor de bron leads vindt.
  • statsobject
    Wat de bron tot nu toe opleverde.
  • first_found_atstring of null
    Wanneer hij zijn eerste lead vond, in ISO 8601.
Het zoekopdracht-object
{
  "object": "search_query",
  "query": "paid discord picks",
  "persona_id": "lvWBPnytpS",
  "stats": {
    "leads": 640,
    "scored_leads": 618,
    "hot_leads": 131,
    "avg_score": 47
  },
  "first_found_at": "2026-10-21T10:04:51.000Z"
}

Zoekopdrachten opvragen

GET/v1/personas/:persona_id/search_queriesScope readMCPlist_persona_items

Geeft de zoekopdrachten van de persona terug, elk met de gevonden, gescoorde en hete leads.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.

Resultaat

Een lijst van zoekopdracht-objecten.

Fouten

GET/v1/personas/:persona_id/search_queries
curl \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/search_queries \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "object": "list",
  "data": [
    {
      "object": "search_query",
      "query": "paid discord picks",
      "persona_id": "lvWBPnytpS",
      "stats": {
        "leads": 640,
        "scored_leads": 618,
        "hot_leads": 131,
        "avg_score": 47
      },
      "first_found_at": "2026-10-21T10:04:51.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Zoekopdrachten toevoegen

POST/v1/personas/:persona_id/search_queriesScope writeMCPedit_persona_items

Voegt zoekopdrachten toe aan een persona. Gemlead zoekt op X naar posts die erbij passen en scoort de auteurs.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.

Bodyparameters

  • queriesarray van stringsVerplicht
    1 tot 50 zoekopdrachten om toe te voegen, in totaal 500 per persona. Elk een zoekopdracht zoals je die op X zou typen, 2 tot 200 tekens.

Resultaat

De zoekopdrachten van de persona, een lijst van zoekopdracht-objecten.

Fouten

POST/v1/personas/:persona_id/search_queries
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/search_queries \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": ["paid discord picks", "vip tips telegram"]
  }'
Response200
{
  "object": "list",
  "data": [
    {
      "object": "search_query",
      "query": "paid discord picks",
      "persona_id": "lvWBPnytpS",
      "stats": {
        "leads": 640,
        "scored_leads": 618,
        "hot_leads": 131,
        "avg_score": 47
      },
      "first_found_at": "2026-10-21T10:04:51.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Zoekopdrachten verwijderen

POST/v1/personas/:persona_id/search_queries/removeScope writeMCPedit_persona_items

Verwijdert zoekopdrachten van een persona. De leads die ze vonden, blijven bestaan.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.

Bodyparameters

  • queriesarray van stringsVerplicht
    De zoekopdrachten om te verwijderen, zoals ze in de lijst staan.

Resultaat

De resterende zoekopdrachten van de persona, een lijst van zoekopdracht-objecten.

Fouten

POST/v1/personas/:persona_id/search_queries/remove
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/search_queries/remove \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": ["vip tips telegram"]
  }'
Response200
{
  "object": "list",
  "data": [
    {
      "object": "search_query",
      "query": "paid discord picks",
      "persona_id": "lvWBPnytpS",
      "stats": {
        "leads": 640,
        "scored_leads": 618,
        "hot_leads": 131,
        "avg_score": 47
      },
      "first_found_at": "2026-10-21T10:04:51.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Leads van een zoekopdracht opvragen

GET/v1/personas/:persona_id/search_queries/leadsScope readMCPlist_item_leads

Geeft de leads terug die één zoekopdracht vond, beste score eerst.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.

Queryparameters

  • querystringVerplicht
    De zoekopdracht, zoals hij in de lijst staat.
  • orderstring
    -score zet de beste leads eerst, score de laagste. Standaard -score.
    -scorescore
  • 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 lead-objecten, met total_count.

Fouten

  • Geen persona 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.
GET/v1/personas/:persona_id/search_queries/leads
curl -G \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/search_queries/leads \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  --data-urlencode "query=paid discord picks" \
  -d limit=10
Response200
{
  "object": "list",
  "data": [
    {
      "id": "msgOtJ8dvT",
      "object": "lead",
      "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"
      },
      "score": 86,
      "score_reason": "Runs a paid trading community and asks how to collect payments for it.",
      "hot": true,
      "status": "scored",
      "persona": {
        "id": "lvWBPnytpS",
        "name": "Tipsters"
      },
      "campaign": null,
      "conversation_id": null,
      "locked_to": null,
      "found_at": "2026-11-05T14:02:11.482Z",
      "scored_at": "2026-11-05T14:03:40.117Z",
      "updated_at": "2026-11-05T14:03:40.117Z",
      "metadata": {}
    }
  ],
  "has_more": true,
  "next_cursor": "eyJzIjoiMjAyNi0xMS0wNVQxNDowMzo0MC4xMTdaIn0",
  "total_count": 640
}

Het concurrentaccount-object

Het X-account van een concurrent. Gemlead leest wie op zijn posts reageert en scoort die mensen als leads.

Attributen

  • objectstring
    Altijd competitor_account.
  • usernamestring
    De X-gebruikersnaam, zonder de @.
  • persona_idstring
    De persona waarvoor de bron leads vindt.
  • statsobject
    Wat de bron tot nu toe opleverde.
  • first_found_atstring of null
    Wanneer hij zijn eerste lead vond, in ISO 8601.
Het concurrentaccount-object
{
  "object": "competitor_account",
  "username": "whop",
  "persona_id": "lvWBPnytpS",
  "stats": {
    "leads": 905,
    "scored_leads": 902,
    "hot_leads": 96,
    "avg_score": 38
  },
  "first_found_at": "2026-10-24T16:30:12.000Z"
}

Concurrentaccounts opvragen

GET/v1/personas/:persona_id/competitor_accountsScope readMCPlist_persona_items

Geeft de concurrentaccounts van de persona terug, elk met de gevonden, gescoorde en hete leads.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.

Resultaat

Een lijst van concurrentaccount-objecten.

Fouten

GET/v1/personas/:persona_id/competitor_accounts
curl \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/competitor_accounts \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "object": "list",
  "data": [
    {
      "object": "competitor_account",
      "username": "whop",
      "persona_id": "lvWBPnytpS",
      "stats": {
        "leads": 905,
        "scored_leads": 902,
        "hot_leads": 96,
        "avg_score": 38
      },
      "first_found_at": "2026-10-24T16:30:12.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Concurrentaccounts toevoegen

POST/v1/personas/:persona_id/competitor_accountsScope writeMCPedit_persona_items

Voegt concurrentaccounts toe aan een persona. Gemlead leest wie op hun posts reageert en scoort die mensen.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.

Bodyparameters

  • usernamesarray van stringsVerplicht
    1 tot 50 concurrentaccounts om toe te voegen, in totaal 100 per persona. Elk een X-gebruikersnaam, met of zonder de @.

Resultaat

De concurrentaccounts van de persona, een lijst van concurrentaccount-objecten.

Fouten

POST/v1/personas/:persona_id/competitor_accounts
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/competitor_accounts \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "usernames": ["whop"]
  }'
Response200
{
  "object": "list",
  "data": [
    {
      "object": "competitor_account",
      "username": "whop",
      "persona_id": "lvWBPnytpS",
      "stats": {
        "leads": 905,
        "scored_leads": 902,
        "hot_leads": 96,
        "avg_score": 38
      },
      "first_found_at": "2026-10-24T16:30:12.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Concurrentaccounts verwijderen

POST/v1/personas/:persona_id/competitor_accounts/removeScope writeMCPedit_persona_items

Verwijdert concurrentaccounts van een persona. De leads die ze vonden, blijven bestaan.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.

Bodyparameters

  • usernamesarray van stringsVerplicht
    De concurrentaccounts om te verwijderen, zoals ze in de lijst staan.

Resultaat

De resterende concurrentaccounts van de persona, een lijst van concurrentaccount-objecten.

Fouten

POST/v1/personas/:persona_id/competitor_accounts/remove
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/competitor_accounts/remove \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "usernames": ["whop"]
  }'
Response200
{
  "object": "list",
  "data": [],
  "has_more": false,
  "next_cursor": null
}

Leads van een concurrentaccount opvragen

GET/v1/personas/:persona_id/competitor_accounts/leadsScope readMCPlist_item_leads

Geeft de leads terug die één concurrentaccount vond, beste score eerst.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.

Queryparameters

  • usernamestringVerplicht
    De X-gebruikersnaam van de concurrent, zoals hij in de lijst staat.
  • orderstring
    -score zet de beste leads eerst, score de laagste. Standaard -score.
    -scorescore
  • 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 lead-objecten, met total_count.

Fouten

  • Geen persona 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.
GET/v1/personas/:persona_id/competitor_accounts/leads
curl -G \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/competitor_accounts/leads \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -d username=whop \
  -d limit=10
Response200
{
  "object": "list",
  "data": [
    {
      "id": "msgOtJ8dvT",
      "object": "lead",
      "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"
      },
      "score": 86,
      "score_reason": "Runs a paid trading community and asks how to collect payments for it.",
      "hot": true,
      "status": "scored",
      "persona": {
        "id": "lvWBPnytpS",
        "name": "Tipsters"
      },
      "campaign": null,
      "conversation_id": null,
      "locked_to": null,
      "found_at": "2026-11-05T14:02:11.482Z",
      "scored_at": "2026-11-05T14:03:40.117Z",
      "updated_at": "2026-11-05T14:03:40.117Z",
      "metadata": {}
    }
  ],
  "has_more": true,
  "next_cursor": "eyJzIjoiMjAyNi0xMS0wNVQxNDowMzo0MC4xMTdaIn0",
  "total_count": 905
}

Het bronvoorstel-object

Een X-account dat de AI koos als bron voor een persona, met de reden en hoe het gelezen moet worden.

Attributen

  • objectstring
    Altijd source_suggestion.
  • profileobject
    Het X-profiel, zoals in het X-profielobject.
  • methodstring
    Wat er van het account gelezen moet worden.
    followingcompetitor_followers
  • reasonstring of null
    Waarom de AI het koos.
  • seed_adviceobject of null
    De eigen controle van Gemlead op het account.
Het bronvoorstel-object
{
  "object": "source_suggestion",
  "profile": {
    "x_user_id": "1722093311",
    "username": "pickswithmike",
    "name": "Mike Picks",
    "bio": "NBA and NFL picks. VIP Discord, 61 % last season.",
    "followers_count": 8400,
    "following_count": 1210,
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "verified": false,
    "url": "https://x.com/pickswithmike"
  },
  "method": "following",
  "reason": "Runs a paid picks group and follows dozens of other tipsters.",
  "seed_advice": {
    "verdict": "good",
    "kind": "person",
    "reason_code": "peer",
    "reason": "A founder-sized account (1k to 15k followers) follows peers who look like your buyers.",
    "recommended_method": "following"
  }
}

Bronnen laten voorstellen

GET/v1/personas/:persona_id/source_suggestionsScope readMCPsuggest_sources

Vraagt de AI om X-accounts die je als bron kunt toevoegen, gekozen op basis van de beschrijving, trefwoorden en concurrenten van de persona.

Padparameters

  • persona_idstringVerplicht
    De ID van de persona.

Resultaat

Een lijst van bronvoorstel-objecten.

Fouten

  • Geen persona met deze ID op het account van de sleutel.
  • X of een dienst van Gemlead antwoordde niet. Er is niets veranderd, probeer het over een minuut opnieuw.
GET/v1/personas/:persona_id/source_suggestions
curl \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/source_suggestions \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "object": "list",
  "data": [
    {
      "object": "source_suggestion",
      "profile": {
        "x_user_id": "1722093311",
        "username": "pickswithmike",
        "name": "Mike Picks",
        "bio": "NBA and NFL picks. VIP Discord, 61 % last season.",
        "followers_count": 8400,
        "following_count": 1210,
        "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
        "verified": false,
        "url": "https://x.com/pickswithmike"
      },
      "method": "following",
      "reason": "Runs a paid picks group and follows dozens of other tipsters.",
      "seed_advice": {
        "verdict": "good",
        "kind": "person",
        "reason_code": "peer",
        "reason": "A founder-sized account (1k to 15k followers) follows peers who look like your buyers.",
        "recommended_method": "following"
      }
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Het X-profielobject

Een X-account dat live met je X-sessie is gelezen, voordat je het als bron of concurrent toevoegt.

Attributen

  • objectstring
    Altijd x_profile.
  • x_user_idstring
    De numerieke ID van het X-account, als string.
  • usernamestring
    De X-handle, zonder de @.
  • namestring
    De weergavenaam.
  • biostring
    De bio van het profiel.
  • followers_countinteger
    Volgers op X.
  • following_countinteger
    Accounts die de bron op X volgt.
  • locationstring
    De locatie op het profiel.
  • websitestring
    De website op het profiel.
  • profile_image_urlstring
    De URL van de profielfoto.
  • verifiedboolean
    Of het account een verificatiebadge heeft.
  • urlstring
    De URL van het profiel op X.
  • can_dmboolean of null
    Of je account het een DM kan sturen, als X dat laat weten.
  • joined_atstring of null
    Wanneer het account op X is aangemaakt, in ISO 8601.
  • seed_adviceobject
    Alleen met de parameter persona. Hoe goed het als bron is, per manier van lezen.
Het X-profielobject
{
  "object": "x_profile",
  "x_user_id": "1722093311",
  "username": "pickswithmike",
  "name": "Mike Picks",
  "bio": "NBA and NFL picks. VIP Discord, 61 % last season.",
  "followers_count": 8400,
  "following_count": 1210,
  "location": "Las Vegas",
  "website": "https://mikepicks.com",
  "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
  "verified": false,
  "can_dm": true,
  "joined_at": "2019-03-02T18:11:40.000Z",
  "url": "https://x.com/pickswithmike"
}

Een X-profiel opzoeken

GET/v1/x_profiles/:usernameScope readMCPlookup_x_profile

Leest een X-profiel live met je X-sessie. Met persona zie je ook hoe goed het account als bron voor die persona is.

Padparameters

  • usernamestringVerplicht
    De X-gebruikersnaam, met of zonder de @.

Queryparameters

  • personastring
    Een persona-ID, om er seed_advice voor te krijgen.

Resultaat

Een X-profielobject.

Fouten

  • X heeft geen leesbaar profiel onder deze gebruikersnaam.
  • 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/x_profiles/:username
curl -G https://gemlead.ai/api/v1/x_profiles/pickswithmike \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -d persona=lvWBPnytpS
Response200
{
  "object": "x_profile",
  "x_user_id": "1722093311",
  "username": "pickswithmike",
  "name": "Mike Picks",
  "bio": "NBA and NFL picks. VIP Discord, 61 % last season.",
  "followers_count": 8400,
  "following_count": 1210,
  "location": "Las Vegas",
  "website": "https://mikepicks.com",
  "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
  "verified": false,
  "can_dm": true,
  "joined_at": "2019-03-02T18:11:40.000Z",
  "url": "https://x.com/pickswithmike",
  "seed_advice": {
    "following": {
      "verdict": "good",
      "kind": "person",
      "reason_code": "peer",
      "reason": "A founder-sized account (1k to 15k followers) follows peers who look like your buyers.",
      "recommended_method": "following"
    },
    "competitor_followers": {
      "verdict": "weak",
      "kind": "person",
      "reason_code": "followers",
      "reason": "Followers lists are mostly passive accounts: few of them score hot. The following of a founder like your buyers works far better.",
      "recommended_method": "following"
    },
    "both": {
      "verdict": "weak",
      "kind": "person",
      "reason_code": "both",
      "reason": "Adding the followers drowns a good following in passive accounts. Keep the following only.",
      "recommended_method": "following"
    }
  }
}