Create Person Connections signal
Get the people in the LinkedIn networks of the people you name — your whole team and your happy clients, your investors, advisors, champions, or any industry figure, up to 500 people in one signal — filtered to the roles and companies you sell to, each lead with the person who can introduce you. Two parts, which you can use together or apart: a one-time extract of their existing connections, delivered as fast as they are read, then, if you want, the people who newly connect with them, every day.
Input: linkedinProfileUrls (1-500 LinkedIn profile URLs of the people to watch, required; a person known to several of them is delivered and billed once, with the first watched person whose network it was read in); oneTimeExtractCount (how many people to deliver once from their existing connections, counted in leads delivered after your filters, across all watched people; 0-25,000, defaults to 500; when their networks hold fewer matching people, everyone who matches is delivered; not metered by dailyLeadLimit); dailyNewConnections (true to keep delivering new connections after the one-time extract, up to dailyLeadLimit a day: only people who connect with a watched person after the signal started watching them; defaults to false, which stops the signal once the one-time extract is complete). Existing connections are delivered only by the one-time extract, up to oneTimeExtractCount: with 0, none is delivered or billed; optional persona targeting (targetPersonas, customPersonaTitles); optional ICP filters (companySizeFilters, locations, industryFilters, excludedLocations, excludedCompanySizeFilters, excludedIndustryFilters, excludedTitles, excludedCompanyUrls) — with no filter at all, everyone is delivered; optional restrictToCompanies to deliver only people who work today at your target accounts (see Only at your target accounts below); optional enrichment toggles (getEmails, getPhones, getSireneData, detectTechnologies, getHomepageContent); webhookUrl, dailyLeadLimit, duplicateHandling, status. Each lead is billed as it is delivered: 3 credits per lead for the one-time extract, then 5 credits per lead for the daily new connections. Activating with status: active checks that your balance covers the one-time extract (oneTimeExtractCount × 3 credits) and answers 402 with the estimate when it does not. A watched person who hides their connection list on LinkedIn cannot be read.
Only at your target accounts (restrictToCompanies): your team's network, limited to the accounts you are working. Send your account list and only the connections whose CURRENT employer is on it are delivered; a connection who only worked there before is not. Everyone else is left out before billing: no lead, no credit, and it does not count toward oneTimeExtractCount. Each entry is a domain ("payfit.com"), a LinkedIn company page ("https://www.linkedin.com/company/doctolib"), a numeric LinkedIn company id ("10426145") or a Sales Navigator company link, a company name, or an object {name, domain, linkedinUrl}; send every identifier you have, the domain and the LinkedIn page are the most reliable. Matching is exact (case, punctuation and legal suffixes such as SAS or GmbH ignored), never fuzzy. Set it when you create the signal: the list then becomes the signal's company list, read and edited at GET|POST|DELETE /api/v1/watchlists/{signalId}/companies (up to 10,000 entries per call), and is not echoed in config. An empty or missing restrictToCompanies means no restriction; once a signal is restricted, removing every company from its list delivers nothing until you add some back. restrictToProfiles (LinkedIn profile URLs) works the same way for named people, and a person on either list is delivered. Example config: {"linkedinProfileUrls": ["https://www.linkedin.com/in/julie-moreau-sales/"], "restrictToCompanies": ["payfit.com", "https://www.linkedin.com/company/doctolib", {"name": "Alan", "domain": "alan.com"}], "oneTimeExtractCount": 1000}.
Output: each matching person is pushed to your webhookUrl as an enriched person lead: the contact (name, email if enriched, phone if enriched, title, location, LinkedIn profile URL, matched persona), their employer (company name, website, LinkedIn URL, plus tech stack and homepage content when those enrichments are enabled), and signal.tracked_contact — the watched person whose network the lead belongs to, so a signal watching several people tells you which one produced each lead. signal.tracked_company is always empty. The single-signal responses report progress in applied.oneTimeExtract (target, delivered, status).
Use cases:
- Intro paths from your team and happy clients - put every salesperson, founder and satisfied customer in one signal (up to 500 people) and get the people in their networks who match your ICP, each with the name of the person who can introduce you.
- Warm-network prospecting - reach the people around your investors, advisors, customers or champions, filtered to the roles and companies you sell to, instead of cold lists.
- Your team's network, only at your target accounts - add restrictToCompanies with your account list (domains, LinkedIn company pages or names) and get only the people your team knows who work there today, each with who can introduce you; everyone else is left out before billing.
- Account mapping from one contact - watch a key decision maker and get the colleagues and peers in their network who match your ICP.
- Event and ecosystem follow-up - watch a speaker, a co-marketing ally or an industry figure and turn their audience of peers into a targeted list, then keep receiving the people who join it.
Request
- Base URL: https://api.rodz.io (the document declares no server; this is the origin it was published from)
- URL: https://api.rodz.io/api/v1/signals/person-connections
- Auth: HTTP bearer
Request body
Example request
{
"config": {
"companySizeFilters": [
"51-200",
"201-500"
],
"dailyNewConnections": true,
"getEmails": true,
"linkedinProfileUrls": [
"https://www.linkedin.com/in/julie-moreau-sales/",
"https://www.linkedin.com/in/thomas-bernard-founder/",
"https://www.linkedin.com/in/camille-petit-client/"
],
"locations": [
"France"
],
"oneTimeExtractCount": 5000,
"targetPersonas": [
"Sales Director",
"Head of Growth"
]
},
"dailyLeadLimit": 50,
"name": "Intros via our team and happy clients",
"status": "active",
"webhookUrl": "https://your-server.com/webhooks/rodz"
}Response
Signal created
Example response
{
"applied": {
"allowUnknownCompanySize": false,
"maxJobAgeDays": 180
},
"config": {
"companySizeFilters": [
"201-500",
"501-1000"
],
"getEmails": true,
"jobTitles": [
"CTO"
],
"locations": [
"France"
],
"maxJobAgeDays": 90
},
"createdAt": "2026-01-15T10:30:00Z",
"dailyLeadLimit": 50,
"duplicateHandling": "refuse",
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"lastLeadAt": "2026-03-15T14:22:00Z",
"leadsToday": 3,
"leadsTotal": 127,
"name": "CTOs changing jobs in France",
"signalTypeId": "job_changes",
"status": "active",
"updatedAt": "2026-03-16T08:00:00Z",
"warnings": [
{
"code": "VALUE_BELOW_MINIMUM",
"field": "maxJobAgeDays",
"message": "`maxJobAgeDays` is 90; this signal applies 180. Job changes are delivered up to 180 days after the start date, and a shorter window is raised to that minimum.",
"severity": "info",
"values": [
"90"
]
}
],
"webhookUrl": "https://your-server.com/webhooks/rodz"
}Changes
No recorded changes to this operation across all 1 revision of this API.