API-referentie

Leads

Leads zijn de mensen die Gemlead op X vindt voor je persona's. Dana AI geeft elke lead een score van 0 tot 100, en vanaf 60 is een lead heet. Vraag ze op met filters, koppel je eigen metadata zoals een CRM-ID, of voer acties uit op een lead zoals je in de app zou doen.

Het lead-object

Iemand die Gemlead op X vond voor een van je persona's, met de score van Dana AI en waar die persoon staat in je outreach.

Attributen

  • idstring
    Unieke ID van de lead.
  • objectstring
    Altijd lead.
  • profileobject
    Het X-profiel van de lead.
  • scoreinteger of null
    Hoe goed de lead bij je persona past, van 0 tot 100. Null zolang de lead niet gescoord is.
  • score_reasonstring of null
    Waarom de lead deze score kreeg, in een of twee zinnen.
  • hotboolean
    True als de score 60 of hoger is.
  • statusstring
    Waar de lead in je pipeline staat.
    pendingscoringscoredin_campaigncontactedin_conversationclosed
  • personaobject of null
    De persona waarvoor de lead is gevonden.
  • campaignobject of null
    De campagne waarin de lead zit, als die er is.
  • conversation_idstring of null
    Het gesprek met de lead, zodra dat er is. Gebruik het met Een gesprek ophalen.
  • locked_toobject of null
    Het ene X-account van de eigenaar waarvoor deze persoon is gereserveerd. Een lead gaat naar maar één X-account, dus de andere accounts benaderen hem nooit. Null zolang de lead nog aan geen enkel account is toegewezen.
  • found_atstring
    Wanneer Gemlead de lead vond, in ISO 8601.
  • scored_atstring of null
    Wanneer de lead is gescoord, in ISO 8601.
  • updated_atstring
    Wanneer de lead voor het laatst is gewijzigd, in ISO 8601.
  • metadataobject
    Je eigen key-value-paren, ingesteld met Een lead bijwerken.
Het lead-object
{
  "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": {}
}

Leads opvragen

GET/v1/leadsScope readMCPsearch_leads

Geeft je leads terug, standaard de laatst gescoorde eerst. Combineer filters om precies de leads te krijgen die je wilt.

Queryparameters

  • personastring
    Alleen leads van de persona met deze ID.
  • statusstring
    Alleen leads met deze statussen, gescheiden door komma's, zoals scored,in_campaign.
    pendingscoringscoredin_campaigncontactedin_conversationclosed
  • score_mininteger
    Alleen leads met minstens deze score, van 0 tot 100.
  • score_maxinteger
    Alleen leads met hoogstens deze score, van 0 tot 100.
  • hotboolean
    true voor leads met een score van 60 of meer, false voor de rest.
  • scored_afterstring
    Alleen leads die na dit tijdstip zijn gescoord, in ISO 8601.
  • scored_beforestring
    Alleen leads die voor dit tijdstip zijn gescoord, in ISO 8601.
  • found_afterstring
    Alleen leads die na dit tijdstip zijn gevonden, in ISO 8601.
  • found_beforestring
    Alleen leads die voor dit tijdstip zijn gevonden, in ISO 8601.
  • orderstring
    De sorteervolgorde. Standaard -scored_at, de laatst gescoorde eerst.
    -scored_at-score-found_at
  • 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.

Fouten

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

Een lead ophalen

GET/v1/leads/:idScope readMCPget_lead

Geeft één lead terug.

Padparameters

  • idstringVerplicht
    De ID van de lead.

Resultaat

Een lead-object.

Fouten

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

Een lead bijwerken

PATCH/v1/leads/:idScope writeMCPupdate_lead

Zet je eigen metadata op een lead, of sluit hem af als je er klaar mee bent. Afsluiten stopt de campagnestappen die nog voor de lead klaarstaan, zodat Gemlead hem geen berichten meer stuurt.

Padparameters

  • idstringVerplicht
    De ID van de lead.

Bodyparameters

  • metadataobject
    Key-value-paren die worden samengevoegd met de metadata van de lead. Keys van maximaal 40 letters, cijfers, _ of -, waarden zijn strings van maximaal 500 tekens, maximaal 20 keys. Zet een key op null of een lege string om hem te verwijderen, of metadata op null om alles te wissen.
  • statusstring
    Zet op closed om de lead af te sluiten.
    closed

Resultaat

Het bijgewerkte lead-object.

Fouten

PATCH/v1/leads/:id
curl -X PATCH https://gemlead.ai/api/v1/leads/msgOtJ8dvT \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "metadata": {
      "crm_id": "hs_48213"
    }
  }'
Response200
{
  "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": {
    "crm_id": "hs_48213"
  }
}

Een lead opnieuw scoren

POST/v1/leads/:lead_id/rescoreScope writeMCPlead_action

Laat Dana AI de lead opnieuw beoordelen op basis van zijn persona, bijvoorbeeld nadat je de beschrijving van de persona hebt aangepast. Kost maximaal 2 credits per lead: 1 voor de eerste ronde, 1 extra voor de diepe score als de lead erdoor komt.

Padparameters

  • lead_idstringVerplicht
    De ID van de lead.

Resultaat

Het lead-object.

Fouten

  • Geen lead 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.
POST/v1/leads/:lead_id/rescore
curl -X POST \
  https://gemlead.ai/api/v1/leads/msgOtJ8dvT/rescore \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "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": {}
}

Een lead vernieuwen

POST/v1/leads/:lead_id/refreshScope writeMCPlead_action

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

Padparameters

  • lead_idstringVerplicht
    De ID van de lead.

Resultaat

Het bijgewerkte lead-object.

Fouten

  • Geen lead 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/leads/:lead_id/refresh
curl -X POST \
  https://gemlead.ai/api/v1/leads/msgOtJ8dvT/refresh \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "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": {}
}

Een lead volgen

POST/v1/leads/:lead_id/followScope writeMCPlead_action

Volgt de lead meteen op X vanaf je X-account.

Padparameters

  • lead_idstringVerplicht
    De ID van de lead.

Resultaat

Het lead-object.

Fouten

  • Geen lead met deze ID op het account van de sleutel.
  • De lead heeft geen X-account-ID om te volgen.
  • 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/leads/:lead_id/follow
curl -X POST \
  https://gemlead.ai/api/v1/leads/msgOtJ8dvT/follow \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "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": {}
}

Een lead ontvolgen

POST/v1/leads/:lead_id/unfollowScope writeMCPlead_action

Ontvolgt de lead meteen op X vanaf je X-account.

Padparameters

  • lead_idstringVerplicht
    De ID van de lead.

Resultaat

Het lead-object.

Fouten

  • Geen lead met deze ID op het account van de sleutel.
  • De lead heeft geen X-account-ID om te ontvolgen.
  • 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/leads/:lead_id/unfollow
curl -X POST \
  https://gemlead.ai/api/v1/leads/msgOtJ8dvT/unfollow \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "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": {}
}

Een lead omzetten in een bron

POST/v1/leads/:lead_id/convert_to_sourceScope writeMCPconvert_lead_to_source

Maakt van een sterke lead een bron van zijn persona, om meer mensen zoals hem te vinden. Gemlead leest wie hij volgt, zijn volgers of wie op zijn posts reageert.

Padparameters

  • lead_idstringVerplicht
    De ID van de lead.

Bodyparameters

  • methodstring
    following leest wie de lead volgt, competitor_followers zijn volgers, competitor_comments wie op zijn posts reageert. Standaard following.
    followingcompetitor_followerscompetitor_comments

Resultaat

Een object met de lead_id, de persona_id, de method en de nieuwe bron, of bij competitor_comments de gebruikersnaam in competitor_account.

Fouten

POST/v1/leads/:lead_id/convert_to_source
curl -X POST \
  https://gemlead.ai/api/v1/leads/msgOtJ8dvT/convert_to_source \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "method": "following"
  }'
Response200
{
  "object": "lead_conversion",
  "lead_id": "msgOtJ8dvT",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "source": {
    "id": "s9KdT3pXwM",
    "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": "msgOtJ8dvT",
    "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"
  },
  "competitor_account": null
}

Een lead verwijderen

DELETE/v1/leads/:lead_idScope writeMCPdelete_lead

Verwijdert een lead. Hij verdwijnt uit je lijsten, elke campagne stopt voor hem en Gemlead haalt dezelfde persoon niet opnieuw binnen voor deze persona. Wil je iemand buiten elke persona houden, zet die persoon dan op de uitsluitingslijst.

Padparameters

  • lead_idstringVerplicht
    De ID van de lead.

Resultaat

Een object met de id van de lead en deleted op true.

Fouten

DELETE/v1/leads/:lead_id
curl -X DELETE https://gemlead.ai/api/v1/leads/msgOtJ8dvT \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "id": "msgOtJ8dvT",
  "object": "lead",
  "deleted": true
}

Het herkomstobject

Hoe Gemlead een lead vond, de post waardoor hij opdook en elke campagne waarin hij zit.

Attributen

  • objectstring
    Altijd lead_origin.
  • lead_idstring
    De ID van de lead.
  • personaobject of null
    De persona waarvoor hij is gevonden.
  • methodstring of null
    Hoe hij is gevonden.
    followingkeywordscompetitor_followerscompetitor_comments
  • found_querystring of null
    De zoekopdracht die hem vond, bij keywords.
  • source_usernamestring of null
    De bron of het concurrentaccount waarmee hij is gevonden.
  • found_postobject of null
    De post waardoor de lead opdook, als die er is.
  • campaignsarray van objects
    De campagnes waarin de lead zit, elk met id, name, de status van de lead erin, de method van de campagne en de step waar de lead staat.
Het herkomstobject
{
  "object": "lead_origin",
  "lead_id": "msgOtJ8dvT",
  "persona": {
    "id": "lvWBPnytpS",
    "name": "Tipsters"
  },
  "method": "keywords",
  "found_query": "paid discord picks",
  "source_username": null,
  "found_post": {
    "method": "keywords",
    "query": "paid discord picks",
    "post_id": "1985102233445566778",
    "text": "Thinking of moving my paid discord picks to a real checkout. Any tips?",
    "url": "https://x.com/i/status/1985102233445566778",
    "posted_at": "2026-11-05T13:40:02.000Z",
    "found_at": "2026-11-05T14:02:11.482Z"
  },
  "campaigns": [
    {
      "id": "c7RkQ2wLxe",
      "name": "Tipsters warm intro",
      "status": "waiting",
      "method": "keywords",
      "step": "Timer"
    }
  ]
}

De herkomst van een lead ophalen

GET/v1/leads/:lead_id/originScope readMCPget_lead_origin

Geeft terug hoe Gemlead de lead vond, de post waardoor hij opdook en elke campagne waarin hij zit, met de stap waar hij staat.

Padparameters

  • lead_idstringVerplicht
    De ID van de lead.

Resultaat

Een herkomstobject.

Fouten

GET/v1/leads/:lead_id/origin
curl https://gemlead.ai/api/v1/leads/msgOtJ8dvT/origin \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Response200
{
  "object": "lead_origin",
  "lead_id": "msgOtJ8dvT",
  "persona": {
    "id": "lvWBPnytpS",
    "name": "Tipsters"
  },
  "method": "keywords",
  "found_query": "paid discord picks",
  "source_username": null,
  "found_post": {
    "method": "keywords",
    "query": "paid discord picks",
    "post_id": "1985102233445566778",
    "text": "Thinking of moving my paid discord picks to a real checkout. Any tips?",
    "url": "https://x.com/i/status/1985102233445566778",
    "posted_at": "2026-11-05T13:40:02.000Z",
    "found_at": "2026-11-05T14:02:11.482Z"
  },
  "campaigns": [
    {
      "id": "c7RkQ2wLxe",
      "name": "Tipsters warm intro",
      "status": "waiting",
      "method": "keywords",
      "step": "Timer"
    }
  ]
}