Webhooks & automation
LatestRounds does not push webhooks — instead, you poll the funding feed on a schedule and react to new rounds. This gives you full control over timing, filtering, and routing. Wire it into n8n, Make, Zapier, or your own cron job.
The GTM trigger pattern
Funding feed poll → filter by ICP → enrich company → push to CRM → trigger sequence. All within hours of announcement.
Daily polling trigger
The simplest pattern — run this on a daily cron, filter results against your ICP, and push matches downstream.
// Run this daily — new US seed rounds
const today = new Date().toISOString().slice(0, 10);
const res = await fetch(
`https://latestrounds.com/api/v1/funding/latest?stage=seed&country=US&from=${today}&limit=50`,
{ headers: { Authorization: "Bearer YOUR_API_KEY" } }
);
const { data } = await res.json();
for (const round of data) {
if (matchesICP(round)) {
await pushToCRM(round);
}
}Payload shape
Each funding record from the feed looks like this — everything you need to score and route without a second call.
{
"event": "funding.created",
"id": "frd_f9966369a",
"announced_date": "2026-05-13",
"stage": "series_b",
"amount_usd": 125000000,
"company": {
"id": "cmp_1447a6965",
"canonical_name": "Exaforce",
"website_domain": "exaforce.com",
"country": "United States",
"city": "San Jose"
},
"investors": [
{ "canonical_name": "Khosla Ventures", "is_lead": false }
],
"industries": ["Artificial Intelligence", "Cybersecurity"],
"detected_at": "2026-05-13T09:14:22Z"
}n8n setup
Add an HTTP Request node on a Schedule trigger. Use an expression for from to always pull today's deals.
// n8n HTTP Request node config
{
"method": "GET",
"url": "https://latestrounds.com/api/v1/funding/latest",
"qs": {
"stage": "seed,series_a",
"country": "US",
"from": "={{$today}}",
"limit": "50"
},
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}Suggested n8n flow
Chain enrichment after a trigger
Once a round matches your ICP, pull full enrichment and hiring signals before pushing to your CRM.
// After a trigger fires — enrich and push to HubSpot
async function enrichAndPush(round) {
// 1. Full company enrichment (5 credits)
const company = await fetch(
`https://latestrounds.com/api/v1/company?domain=${round.company.website_domain}`,
{ headers: { Authorization: "Bearer YOUR_API_KEY" } }
).then(r => r.json());
// 2. Hiring signal (2 credits)
const jobs = await fetch(
`https://latestrounds.com/api/v1/company/${company.data.id}/jobs`,
{ headers: { Authorization: "Bearer YOUR_API_KEY" } }
).then(r => r.json());
// 3. Push to HubSpot
await pushToHubSpot({
company: company.data.canonical_name,
amount: round.amount_usd,
stage: round.stage,
hiring: jobs.data.length > 0,
jobCount: jobs.data.length,
});
}Credit cost for this flow
- • Funding feed record — 1 credit
- • Company profile enrichment — 5 credits
- • Hiring signal — 2 credits
- Total: 8 credits per qualified lead
Rate limits & pagination
| Per-minute burst | Enforced per plan — exceeded calls return HTTP 429 rate_limited |
| Monthly quota | Credit exhaustion returns HTTP 429 quota_exceeded |
| Pagination | Use limit + offset to paginate. Max limit is plan-capped (50 on Scale). |
| Deduplication | Store round IDs — re-polling the same date window may return same rounds. |