curl --request POST \
--url https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"inputs": [
{
"full_name": "<string>",
"company_name": "<string>",
"domain": "<string>",
"job_title": "<string>",
"custom_data": {
"meta": "<unknown>"
}
}
],
"steps": [],
"parameters": {
"linkedin-find-profile-url": {},
"linkedin-extract-people": {},
"linkedin-extract-company": {},
"fullenrich-enrich-people": {}
},
"identity_ids": [
"44444444-4444-4444-4444-444444444444"
],
"identity_mode": "direct"
}
'import requests
url = "https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async"
payload = {
"inputs": [
{
"full_name": "<string>",
"company_name": "<string>",
"domain": "<string>",
"job_title": "<string>",
"custom_data": { "meta": "<unknown>" }
}
],
"steps": [],
"parameters": {
"linkedin-find-profile-url": {},
"linkedin-extract-people": {},
"linkedin-extract-company": {},
"fullenrich-enrich-people": {}
},
"identity_ids": ["44444444-4444-4444-4444-444444444444"],
"identity_mode": "direct"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
inputs: [
{
full_name: '<string>',
company_name: '<string>',
domain: '<string>',
job_title: '<string>',
custom_data: {meta: '<unknown>'}
}
],
steps: [],
parameters: {
'linkedin-find-profile-url': {},
'linkedin-extract-people': {},
'linkedin-extract-company': {},
'fullenrich-enrich-people': {}
},
identity_ids: ['44444444-4444-4444-4444-444444444444'],
identity_mode: 'direct'
})
};
fetch('https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'inputs' => [
[
'full_name' => '<string>',
'company_name' => '<string>',
'domain' => '<string>',
'job_title' => '<string>',
'custom_data' => [
'meta' => '<unknown>'
]
]
],
'steps' => [
],
'parameters' => [
'linkedin-find-profile-url' => [
],
'linkedin-extract-people' => [
],
'linkedin-extract-company' => [
],
'fullenrich-enrich-people' => [
]
],
'identity_ids' => [
'44444444-4444-4444-4444-444444444444'
],
'identity_mode' => 'direct'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async"
payload := strings.NewReader("{\n \"inputs\": [\n {\n \"full_name\": \"<string>\",\n \"company_name\": \"<string>\",\n \"domain\": \"<string>\",\n \"job_title\": \"<string>\",\n \"custom_data\": {\n \"meta\": \"<unknown>\"\n }\n }\n ],\n \"steps\": [],\n \"parameters\": {\n \"linkedin-find-profile-url\": {},\n \"linkedin-extract-people\": {},\n \"linkedin-extract-company\": {},\n \"fullenrich-enrich-people\": {}\n },\n \"identity_ids\": [\n \"44444444-4444-4444-4444-444444444444\"\n ],\n \"identity_mode\": \"direct\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"inputs\": [\n {\n \"full_name\": \"<string>\",\n \"company_name\": \"<string>\",\n \"domain\": \"<string>\",\n \"job_title\": \"<string>\",\n \"custom_data\": {\n \"meta\": \"<unknown>\"\n }\n }\n ],\n \"steps\": [],\n \"parameters\": {\n \"linkedin-find-profile-url\": {},\n \"linkedin-extract-people\": {},\n \"linkedin-extract-company\": {},\n \"fullenrich-enrich-people\": {}\n },\n \"identity_ids\": [\n \"44444444-4444-4444-4444-444444444444\"\n ],\n \"identity_mode\": \"direct\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inputs\": [\n {\n \"full_name\": \"<string>\",\n \"company_name\": \"<string>\",\n \"domain\": \"<string>\",\n \"job_title\": \"<string>\",\n \"custom_data\": {\n \"meta\": \"<unknown>\"\n }\n }\n ],\n \"steps\": [],\n \"parameters\": {\n \"linkedin-find-profile-url\": {},\n \"linkedin-extract-people\": {},\n \"linkedin-extract-company\": {},\n \"fullenrich-enrich-people\": {}\n },\n \"identity_ids\": [\n \"44444444-4444-4444-4444-444444444444\"\n ],\n \"identity_mode\": \"direct\"\n}"
response = http.request(request)
puts response.read_body{
"uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workflow": {
"uid": "<string>",
"metadata": {
"account_rotation": true
}
}
}{
"error_label": "<string>",
"error_scope": "input",
"error_ref": "ERR-12345",
"message": "<string>",
"status_code": 123,
"params": {},
"data": {}
}{
"error_label": "<string>",
"error_scope": "input",
"error_ref": "ERR-12345",
"message": "<string>",
"status_code": 123,
"params": {},
"data": {}
}{
"error_label": "<string>",
"error_scope": "input",
"error_ref": "ERR-12345",
"message": "<string>",
"status_code": 123,
"params": {},
"data": {}
}LinkedIn Find People Enrich
Find a LinkedIn profile from name and company, then extract profile and company data and enrich with emails and phones
curl --request POST \
--url https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"inputs": [
{
"full_name": "<string>",
"company_name": "<string>",
"domain": "<string>",
"job_title": "<string>",
"custom_data": {
"meta": "<unknown>"
}
}
],
"steps": [],
"parameters": {
"linkedin-find-profile-url": {},
"linkedin-extract-people": {},
"linkedin-extract-company": {},
"fullenrich-enrich-people": {}
},
"identity_ids": [
"44444444-4444-4444-4444-444444444444"
],
"identity_mode": "direct"
}
'import requests
url = "https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async"
payload = {
"inputs": [
{
"full_name": "<string>",
"company_name": "<string>",
"domain": "<string>",
"job_title": "<string>",
"custom_data": { "meta": "<unknown>" }
}
],
"steps": [],
"parameters": {
"linkedin-find-profile-url": {},
"linkedin-extract-people": {},
"linkedin-extract-company": {},
"fullenrich-enrich-people": {}
},
"identity_ids": ["44444444-4444-4444-4444-444444444444"],
"identity_mode": "direct"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
inputs: [
{
full_name: '<string>',
company_name: '<string>',
domain: '<string>',
job_title: '<string>',
custom_data: {meta: '<unknown>'}
}
],
steps: [],
parameters: {
'linkedin-find-profile-url': {},
'linkedin-extract-people': {},
'linkedin-extract-company': {},
'fullenrich-enrich-people': {}
},
identity_ids: ['44444444-4444-4444-4444-444444444444'],
identity_mode: 'direct'
})
};
fetch('https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'inputs' => [
[
'full_name' => '<string>',
'company_name' => '<string>',
'domain' => '<string>',
'job_title' => '<string>',
'custom_data' => [
'meta' => '<unknown>'
]
]
],
'steps' => [
],
'parameters' => [
'linkedin-find-profile-url' => [
],
'linkedin-extract-people' => [
],
'linkedin-extract-company' => [
],
'fullenrich-enrich-people' => [
]
],
'identity_ids' => [
'44444444-4444-4444-4444-444444444444'
],
'identity_mode' => 'direct'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async"
payload := strings.NewReader("{\n \"inputs\": [\n {\n \"full_name\": \"<string>\",\n \"company_name\": \"<string>\",\n \"domain\": \"<string>\",\n \"job_title\": \"<string>\",\n \"custom_data\": {\n \"meta\": \"<unknown>\"\n }\n }\n ],\n \"steps\": [],\n \"parameters\": {\n \"linkedin-find-profile-url\": {},\n \"linkedin-extract-people\": {},\n \"linkedin-extract-company\": {},\n \"fullenrich-enrich-people\": {}\n },\n \"identity_ids\": [\n \"44444444-4444-4444-4444-444444444444\"\n ],\n \"identity_mode\": \"direct\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"inputs\": [\n {\n \"full_name\": \"<string>\",\n \"company_name\": \"<string>\",\n \"domain\": \"<string>\",\n \"job_title\": \"<string>\",\n \"custom_data\": {\n \"meta\": \"<unknown>\"\n }\n }\n ],\n \"steps\": [],\n \"parameters\": {\n \"linkedin-find-profile-url\": {},\n \"linkedin-extract-people\": {},\n \"linkedin-extract-company\": {},\n \"fullenrich-enrich-people\": {}\n },\n \"identity_ids\": [\n \"44444444-4444-4444-4444-444444444444\"\n ],\n \"identity_mode\": \"direct\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inputs\": [\n {\n \"full_name\": \"<string>\",\n \"company_name\": \"<string>\",\n \"domain\": \"<string>\",\n \"job_title\": \"<string>\",\n \"custom_data\": {\n \"meta\": \"<unknown>\"\n }\n }\n ],\n \"steps\": [],\n \"parameters\": {\n \"linkedin-find-profile-url\": {},\n \"linkedin-extract-people\": {},\n \"linkedin-extract-company\": {},\n \"fullenrich-enrich-people\": {}\n },\n \"identity_ids\": [\n \"44444444-4444-4444-4444-444444444444\"\n ],\n \"identity_mode\": \"direct\"\n}"
response = http.request(request)
puts response.read_body{
"uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workflow": {
"uid": "<string>",
"metadata": {
"account_rotation": true
}
}
}{
"error_label": "<string>",
"error_scope": "input",
"error_ref": "ERR-12345",
"message": "<string>",
"status_code": 123,
"params": {},
"data": {}
}{
"error_label": "<string>",
"error_scope": "input",
"error_ref": "ERR-12345",
"message": "<string>",
"status_code": 123,
"params": {},
"data": {}
}{
"error_label": "<string>",
"error_scope": "input",
"error_ref": "ERR-12345",
"message": "<string>",
"status_code": 123,
"params": {},
"data": {}
}Inputs
Each item in theinputs array can include:
| Field | Required | Description |
|---|---|---|
full_name | Yes* | Full name of the person |
company_name | Yes* | Company name (use with full_name or domain) |
domain | Yes* | Company domain (e.g. acme.com; use with full_name or instead of company_name) |
job_title | No | Job title (helps improve profile matching) |
full_name + company_name, or full_name + domain.
Flow Steps
The flow executes steps in the following order:- Find profile URL (required): Finds the LinkedIn profile URL from the provided name and company/domain (and optional job title)
- Extract LinkedIn People (required): Extracts detailed information from the profile
- Extract company information (required): Extracts company data for the profile’s current company
- Full enrich (required): Enriches with contact information (emails and phone numbers). Credit costs: 2 credits for emails, 20 credits for phones, 22 credits for both.
Custom Data
Each item in theinputs array can include an optional custom_data object. The only valid key inside custom_data is meta. Use meta to attach a free-form object (e.g. your own IDs, tags, or context) that will be passed through and available in the flow output.
Example:
"inputs": [
{
...
"custom_data": {
"meta": {
"foo": "bar",
"crm_id": 1234
}
}
}
]
Find and enrich with name and company
Find and enrich with name and company
curl --request POST \
--url https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <your-api-key>' \
--data '{
"inputs": [
{
"full_name": "Jane Doe",
"company_name": "Acme Inc",
"job_title": "Head of Sales"
}
],
"identity_mode": "managed"
}'
Find and enrich with name and domain
Find and enrich with name and domain
curl --request POST \
--url https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <your-api-key>' \
--data '{
"inputs": [
{
"full_name": "John Smith",
"domain": "acme.com"
}
],
"identity_mode": "managed"
}'
With webhook callback
With webhook callback
curl --request POST \
--url https://api.edges.run/v1/flows/linkedin-find-people-enrich/run/async \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <your-api-key>' \
--data '{
"inputs": [
{
"full_name": "Jane Doe",
"company_name": "Acme Inc"
}
],
"identity_mode": "managed",
"callback": {
"url": "https://your-app.com/webhook/flow-results",
"headers": {
"Authorization": "Bearer your-webhook-token"
}
}
}'
Authorizations
Body
1 - 1000 elementsShow child attributes
Show child attributes
Optional list of step to run. If not provided, only the required steps will be run.
Show child attributes
Show child attributes
An array of Identity UUIDs linked to identities (e.g. LinkedIn) used to execute the Action. You must provide at least one valid UID with access to the integration. Do not use account_uid values — only user_uid is supported.
["44444444-4444-4444-4444-444444444444"]
If "auto", the Action will use any identities from the current workspace (unless you have provided a list of identity_ids). "managed" will use the Edges pool of identities for an extra credit cost
direct, auto, managed Show child attributes
Show child attributes
Callbacks
POST{$request.body#/callback/url}onSave
Body
Show child attributes
Show child attributes
Represents an error returned by the API. This schema defines the standard structure of error messages to ensure consistent error handling across the application.
Show child attributes
Show child attributes
Number of results in the current callback
Results of the current callback
Show child attributes
Show child attributes
Response
Callback successfully processed

