Haal de leads van je werkruimte op, bijvoorbeeld om ze in je CRM bij te werken. Je kunt filteren op status, fase en het moment van de laatste wijziging, en één lead ophalen met zijn recente gebeurtenissen.
Leads ophalen
GET https://leadforge.nl/api/v1/leads
Vraagt read
Leads van je werkruimte, nieuwste eerst.
Queryparameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
| limit | getal | 50 | Aantal leads per pagina, hoogstens 200. |
| cursor | tekst | De nextCursor van de vorige pagina. | |
| since | datum | Alleen leads met updatedAt vanaf dit moment, als ISO-datum. Een ongeldige datum wordt genegeerd. | |
| status | tekst | Alleen leads met precies deze status. Zie de waarden hieronder. | |
| stage | tekst | Alleen leads met precies deze pipelineStage. Zie de waarden hieronder. |
- De lijst staat op
createdAt, nieuwste eerst. - Een waarde van
statusofstagedie niet bestaat, geeft een lege lijst en geen fout. - Gearchiveerde leads komen ook mee.
Hoe je doorbladert staat in Paginering en filters.
Verzoek
curl "https://leadforge.nl/api/v1/leads?status=geinteresseerd&since=2026-11-01&limit=50" \
-H "Authorization: Bearer LF_LIVE_SLEUTEL"
const url = new URL('https://leadforge.nl/api/v1/leads');
url.searchParams.set('status', 'geinteresseerd');
url.searchParams.set('since', '2026-11-01');
const antwoord = await fetch(url, { headers: { Authorization: 'Bearer LF_LIVE_SLEUTEL' } });
const { data, hasMore, nextCursor } = await antwoord.json();
import json
import urllib.parse
import urllib.request
query = urllib.parse.urlencode({"status": "geinteresseerd", "since": "2026-11-01"})
verzoek = urllib.request.Request(
"https://leadforge.nl/api/v1/leads?" + query,
headers={"Authorization": "Bearer LF_LIVE_SLEUTEL"},
)
with urllib.request.urlopen(verzoek) as antwoord:
pagina = json.load(antwoord)
{
"data": [
{
"id": "<lead-id>",
"firstName": "Anna",
"lastName": "Jansen",
"email": "anna@voorbeeld.nl",
"phone": null,
"title": "Marketingmanager",
"company": "Voorbeeld BV",
"companyDomain": "voorbeeld.nl",
"linkedIn": "https://www.linkedin.com/in/voorbeeld",
"status": "geinteresseerd",
"pipelineStage": "geinteresseerd",
"leadScore": 0,
"createdAt": "2026-11-02T09:14:00.000Z",
"updatedAt": "2026-11-05T13:40:00.000Z"
}
],
"hasMore": false,
"nextCursor": null
}
| Status | Code | Wanneer |
|---|---|---|
| 200 | Een pagina met leads, ook als die leeg is. | |
| 401 | unauthorized | Geen geldige sleutel. |
| 403 | forbidden | De sleutel heeft geen read, of hoort niet bij één werkruimte. |
| 429 | rate_limited | Meer dan 120 verzoeken per minuut. |
Eén lead ophalen
GET https://leadforge.nl/api/v1/leads/{id}
Vraagt read
Eén lead met zijn twintig nieuwste gebeurtenissen.
Padparameters
| Naam | Type | Beschrijving |
|---|---|---|
| id*(verplicht) | tekst (uuid) | Het id van de lead. |
* verplicht
Het antwoord heeft alle velden van een lead en daarnaast events: hoogstens 20 gebeurtenissen, nieuwste eerst.
Velden
| Naam | Type | Beschrijving |
|---|---|---|
| events[].id | tekst (uuid) | Het id van de gebeurtenis. |
| events[].signalType | tekst | De soort gebeurtenis. |
| events[].occurredAt | datum (ISO) | Wanneer de gebeurtenis plaatsvond. |
curl https://leadforge.nl/api/v1/leads/<lead-id> \
-H "Authorization: Bearer LF_LIVE_SLEUTEL"
{
"data": {
"id": "<lead-id>",
"firstName": "Anna",
"lastName": "Jansen",
"...": "alle velden van een lead",
"events": [
{
"id": "<gebeurtenis-id>",
"signalType": "<soort gebeurtenis>",
"occurredAt": "2026-11-05T13:40:00.000Z"
}
]
}
}
| Status | Code | Wanneer |
|---|---|---|
| 200 | De lead met zijn gebeurtenissen. | |
| 404 | not_found | Lead niet gevonden. Het id bestaat niet in je werkruimte of is geen geldig id. |
| 401 | unauthorized | Geen geldige sleutel. |
| 403 | forbidden | De sleutel heeft geen read, of hoort niet bij één werkruimte. |
| 429 | rate_limited | Meer dan 120 verzoeken per minuut. |
Goed om te weten
signalType is vrije tekst. Er is geen vaste lijst van waarden, dus laat je code niet afhangen van een bepaalde waarde.Velden van een lead
Velden
| Naam | Type | Beschrijving |
|---|---|---|
| id | tekst (uuid) | Het id van de lead. |
| firstName | tekst of null | Voornaam. |
| lastName | tekst of null | Achternaam. |
| tekst of null | E-mailadres. | |
| phone | tekst of null | Telefoonnummer. |
| title | tekst of null | Functie. |
| company | tekst of null | Naam van het bedrijf. |
| companyDomain | tekst of null | Domein van het bedrijf. |
| tekst of null | Adres van het LinkedIn-profiel. | |
| status | tekst | De status van de lead, in het Nederlands. Zie hieronder. |
| pipelineStage | tekst | De fase in de pijplijn, in het Nederlands. Zie hieronder. |
| leadScore | geheel getal | De startscore van de lead, standaard 0. Dit is niet de leadscore die je op Leads ziet: die telt ook contact en bezoeken mee en komt niet uit de API. |
| createdAt | datum (ISO) | Wanneer de lead is aangemaakt. |
| updatedAt | datum (ISO) | Wanneer de lead voor het laatst is gewijzigd. |
Waarden van status
| Waarde |
|---|
nieuw |
benaderd |
geinteresseerd |
wachtend |
afspraak |
offerte |
gewonnen |
verloren |
ongekwalificeerd |
Waarden van pipelineStage
| Waarde |
|---|
nieuw |
benaderd |
geinteresseerd |
afspraak |
offerte |
Goed om te weten
De waarden komen in het Nederlands terug en zonder trema:
geinteresseerd, niet geïnteresseerd. Gebruik dezelfde spelling in de filters status en stage.Verder lezen
- Fasen en bronnen
- Leadscore: hoe de score op het scherm wordt opgebouwd, met de startscore als een van de onderdelen
- lead.created: een seintje bij elke nieuwe lead met een LinkedIn-profiel