API docs: https://api.leadsforge.ai/public/swagger/index.html
Weβve opened up Leadsforge with a public API, giving you programmatic access to sourcing and enrichment!
Whatβs Included:
Sourcing: ICP filters with pagination; output matches CSV download (Locations split into City & Country).
Enrichment:
Single & bulk enrichment (max 500 per batch; rest queued).
Covers email, LinkedIn, and phone.
LI URL only returned if enriched.
Credits: Same system as in-app. Credits reserved upfront; charged only for successful results.
API Key: At account level, covering credits for the whole account.
Limits: Low initial rate limits to prevent abuse; will scale up as we monitor performance.
This makes it easier to integrate Leadsforge directly into your workflows!
Rate limits for public endpoints:
POST /public/v1/searchβ 20 requests per minute per account (i.e. peraccountID), not per API key.GET /public/v1/balanceβ 60 requests per minute per API key.GET /public/v1/enrichment/jobs/{jobID}β 60 requests per minute per API key.GET /public/v1/enrichment/jobs/{jobID}/resultsβ 60 requests per minute per API key.POST /public/v1/search/countβ 20 requests per minute peraccountID(same bucket as/search).GET /public/v1/search/filters/*(industries, seniorities, departments, company-types, funding-types, revenue-ranges) β 60 requests per minute per API key.GET /public/v1/enrichment/jobs(list, no job ID) β 60 requests per minute per API key.POST /public/v1/enrichment/emailandPOST /public/v1/enrichment/phone(synchronous, single-record lookups) β 120 requests per minute per API key. Don't confuse these with the plural async bulk endpoints above (emails/phones/linkedin), which have no per-minute limit.POST /public/v1/enrichment/{emails|phones|linkedin}βno rate limit, but there is a cap on the number of active jobs per account. If this limit is exceeded, the API returns429 "active enrichment jobs limit reached".POST /public/v1/company-followers/searchβ 10 requests per minute peraccountID(the lowest limit in the whole API).GET /public/v1/company-followers/jobs,/jobs/{id},/jobs/{id}/resultsβ 60 requests per minute per API key.GET /public/v1/company-followers/filters/*(countries, states, job-titles, departments, levels) β 60 requests per minute per API key.POST /public/v1/lookalikes/searchβ 20 requests per minute peraccountID.POST /public/v1/lookalikes/previewβ 60 requests per minute per API key.GET /public/v1/lookalikes/filters/*(seniorities, departments, employee-ranges, locations) β 60 requests per minute per API key.
The job accepts no more than 500 personIDs. The validator will return 400 if more are sent. There is no automatic division of βthe rest into a queueβ β you need to send several requests for less than 500. When a per-minute rate limit is triggered, the X-RateLimit-Limit/Remaining/Reset and Retry-After headers are given. The active-enrichment-jobs-limit 429 above is different β it comes from the per-account concurrency check, not the rate limiter, so it does not include these headers.
