Fetch profiles with corresponding data
curl --request POST \
--url https://bee.theswarm.com/v3/profiles/fetch \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"linkedin_names": [
"<string>"
],
"linkedin_ids": [
123
],
"linkedin_entity_ids": [
"<string>"
],
"fields": [
"profile_info"
]
}
'import requests
url = "https://bee.theswarm.com/v3/profiles/fetch"
payload = {
"ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"linkedin_names": ["<string>"],
"linkedin_ids": [123],
"linkedin_entity_ids": ["<string>"],
"fields": ["profile_info"]
}
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({
ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
linkedin_names: ['<string>'],
linkedin_ids: [123],
linkedin_entity_ids: ['<string>'],
fields: ['profile_info']
})
};
fetch('https://bee.theswarm.com/v3/profiles/fetch', 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://bee.theswarm.com/v3/profiles/fetch",
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([
'ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'linkedin_names' => [
'<string>'
],
'linkedin_ids' => [
123
],
'linkedin_entity_ids' => [
'<string>'
],
'fields' => [
'profile_info'
]
]),
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://bee.theswarm.com/v3/profiles/fetch"
payload := strings.NewReader("{\n \"ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"linkedin_names\": [\n \"<string>\"\n ],\n \"linkedin_ids\": [\n 123\n ],\n \"linkedin_entity_ids\": [\n \"<string>\"\n ],\n \"fields\": [\n \"profile_info\"\n ]\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://bee.theswarm.com/v3/profiles/fetch")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"linkedin_names\": [\n \"<string>\"\n ],\n \"linkedin_ids\": [\n 123\n ],\n \"linkedin_entity_ids\": [\n \"<string>\"\n ],\n \"fields\": [\n \"profile_info\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://bee.theswarm.com/v3/profiles/fetch")
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 \"ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"linkedin_names\": [\n \"<string>\"\n ],\n \"linkedin_ids\": [\n 123\n ],\n \"linkedin_entity_ids\": [\n \"<string>\"\n ],\n \"fields\": [\n \"profile_info\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"lists": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "<string>"
}
],
"tags": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"profile_info": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"full_name": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"headline": "<string>",
"about": "<string>",
"linkedin_url": "<string>",
"work_email": "<string>",
"personal_emails": [
"<string>"
],
"current_title": "<string>",
"current_function": "<string>",
"current_seniorities": [
"<string>"
],
"current_company_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"current_company_name": "<string>",
"current_company_logo_url": "<string>",
"current_company_size": {
"min": 123,
"max": 123
},
"current_company_location": "<string>",
"current_company_linkedin_url": "<string>",
"experience": [
{
"is_current": true,
"company_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"company": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"canonical_name": "<string>",
"name": "<string>",
"founded": "2023-11-07T05:31:56Z",
"size": {
"min": 123,
"max": 123
},
"social_media": [
{
"network": "<string>",
"id": "<string>",
"slug": "<string>",
"url": "<string>"
}
],
"locations": [
{
"name": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"is_primary": true
}
],
"industries": [
"<string>"
],
"websites": [
"<string>"
],
"logo_url": "<string>"
},
"title": "<string>",
"seniorities": [
"<string>"
],
"function": "<string>",
"location": [
"<string>"
],
"description": "<string>",
"start_date": "2023-12-25",
"end_date": "2023-12-25"
}
],
"current_location": "<string>",
"location_locality": "<string>",
"location_region": "<string>",
"location_country": "<string>",
"location_continent": "<string>",
"skills": [
"<string>"
],
"education": [
{
"school": {
"name": "<string>",
"location": {
"name": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>"
},
"website": "<string>",
"linkedin_url": "<string>",
"linkedin_id": 123
},
"start_date": "2023-12-25",
"end_date": "2023-12-25",
"degrees": [
"<string>"
],
"majors": [
"<string>"
],
"activities": "<string>",
"grade": "<string>",
"description": "<string>"
}
],
"social_media": [
{
"network": "<string>",
"id": "<string>",
"entity_id": "<string>",
"url": "<string>",
"connections": 123,
"followers": 123,
"slug": "<string>",
"join_date": "<string>"
}
],
"smart_tags": [
"<string>"
],
"latest_role_change_at": "2023-12-25",
"latest_company_change_at": "2023-12-25",
"current_job_updated_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"last_refresh_at": "2023-11-07T05:31:56Z",
"current_company_websites": [
"<string>"
],
"current_company_industries": [
"<string>"
],
"certifications": [
{
"end_date": "<string>",
"name": "<string>",
"organization": "<string>",
"start_date": "<string>"
}
],
"image_url": "<string>",
"hiring": true,
"open_to_work": true
},
"found_by": {
"ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"linkedin_names": [
"<string>"
],
"linkedin_ids": [
123
],
"linkedin_entity_ids": [
"<string>"
]
}
}
],
"not_found": [
"<string>"
]
}{
"code": 123,
"errors": [
"<string>"
]
}{
"code": 123,
"errors": [
"<string>"
]
}Endpoints (v3)
Fetch Profile
Retrieve detailed information about specific profiles by their unique identifiers.
POST
/
v3
/
profiles
/
fetch
Fetch profiles with corresponding data
curl --request POST \
--url https://bee.theswarm.com/v3/profiles/fetch \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"linkedin_names": [
"<string>"
],
"linkedin_ids": [
123
],
"linkedin_entity_ids": [
"<string>"
],
"fields": [
"profile_info"
]
}
'import requests
url = "https://bee.theswarm.com/v3/profiles/fetch"
payload = {
"ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"linkedin_names": ["<string>"],
"linkedin_ids": [123],
"linkedin_entity_ids": ["<string>"],
"fields": ["profile_info"]
}
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({
ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
linkedin_names: ['<string>'],
linkedin_ids: [123],
linkedin_entity_ids: ['<string>'],
fields: ['profile_info']
})
};
fetch('https://bee.theswarm.com/v3/profiles/fetch', 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://bee.theswarm.com/v3/profiles/fetch",
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([
'ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'linkedin_names' => [
'<string>'
],
'linkedin_ids' => [
123
],
'linkedin_entity_ids' => [
'<string>'
],
'fields' => [
'profile_info'
]
]),
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://bee.theswarm.com/v3/profiles/fetch"
payload := strings.NewReader("{\n \"ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"linkedin_names\": [\n \"<string>\"\n ],\n \"linkedin_ids\": [\n 123\n ],\n \"linkedin_entity_ids\": [\n \"<string>\"\n ],\n \"fields\": [\n \"profile_info\"\n ]\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://bee.theswarm.com/v3/profiles/fetch")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"linkedin_names\": [\n \"<string>\"\n ],\n \"linkedin_ids\": [\n 123\n ],\n \"linkedin_entity_ids\": [\n \"<string>\"\n ],\n \"fields\": [\n \"profile_info\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://bee.theswarm.com/v3/profiles/fetch")
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 \"ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"linkedin_names\": [\n \"<string>\"\n ],\n \"linkedin_ids\": [\n 123\n ],\n \"linkedin_entity_ids\": [\n \"<string>\"\n ],\n \"fields\": [\n \"profile_info\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"lists": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "<string>"
}
],
"tags": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"profile_info": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"full_name": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"headline": "<string>",
"about": "<string>",
"linkedin_url": "<string>",
"work_email": "<string>",
"personal_emails": [
"<string>"
],
"current_title": "<string>",
"current_function": "<string>",
"current_seniorities": [
"<string>"
],
"current_company_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"current_company_name": "<string>",
"current_company_logo_url": "<string>",
"current_company_size": {
"min": 123,
"max": 123
},
"current_company_location": "<string>",
"current_company_linkedin_url": "<string>",
"experience": [
{
"is_current": true,
"company_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"company": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"canonical_name": "<string>",
"name": "<string>",
"founded": "2023-11-07T05:31:56Z",
"size": {
"min": 123,
"max": 123
},
"social_media": [
{
"network": "<string>",
"id": "<string>",
"slug": "<string>",
"url": "<string>"
}
],
"locations": [
{
"name": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"is_primary": true
}
],
"industries": [
"<string>"
],
"websites": [
"<string>"
],
"logo_url": "<string>"
},
"title": "<string>",
"seniorities": [
"<string>"
],
"function": "<string>",
"location": [
"<string>"
],
"description": "<string>",
"start_date": "2023-12-25",
"end_date": "2023-12-25"
}
],
"current_location": "<string>",
"location_locality": "<string>",
"location_region": "<string>",
"location_country": "<string>",
"location_continent": "<string>",
"skills": [
"<string>"
],
"education": [
{
"school": {
"name": "<string>",
"location": {
"name": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>"
},
"website": "<string>",
"linkedin_url": "<string>",
"linkedin_id": 123
},
"start_date": "2023-12-25",
"end_date": "2023-12-25",
"degrees": [
"<string>"
],
"majors": [
"<string>"
],
"activities": "<string>",
"grade": "<string>",
"description": "<string>"
}
],
"social_media": [
{
"network": "<string>",
"id": "<string>",
"entity_id": "<string>",
"url": "<string>",
"connections": 123,
"followers": 123,
"slug": "<string>",
"join_date": "<string>"
}
],
"smart_tags": [
"<string>"
],
"latest_role_change_at": "2023-12-25",
"latest_company_change_at": "2023-12-25",
"current_job_updated_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"last_refresh_at": "2023-11-07T05:31:56Z",
"current_company_websites": [
"<string>"
],
"current_company_industries": [
"<string>"
],
"certifications": [
{
"end_date": "<string>",
"name": "<string>",
"organization": "<string>",
"start_date": "<string>"
}
],
"image_url": "<string>",
"hiring": true,
"open_to_work": true
},
"found_by": {
"ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"linkedin_names": [
"<string>"
],
"linkedin_ids": [
123
],
"linkedin_entity_ids": [
"<string>"
]
}
}
],
"not_found": [
"<string>"
]
}{
"code": 123,
"errors": [
"<string>"
]
}{
"code": 123,
"errors": [
"<string>"
]
}The Fetch Profile endpoint retrieves specific profiles based on their unique identifiers (profile IDs or LinkedIn usernames).
The
fields array accepts the following values:
- tags β Tags assigned to the profile.
- lists β Lists the profile is assigned to.
- profile_info β Detailed profile data (work experience, education, etc.).
Limits
Each identifier array (ids, linkedin_usernames, linkedin_ids, linkedin_entity_ids) accepts up to 1,000 values per request. Combine arrays freely up to the per-array cap.
Responses
In addition to the standard error responses, this endpoint may return:402 Payment Requiredβ your teamβs API credit allowance has been exceeded. Top up or upgrade your plan to continue. See Credits & Usage.
Partner teams
Partners can execute a request in the context of a child team by passing the child teamβs ID in thex-authenticate-team header:
x-authenticate-team: <child_team_id>
- With the header β the fetch runs in the context of the child team (e.g. list/tag membership reflects the child team).
- Without the header β the fetch runs in the context of the team that owns the API key (default).
child_team_id is returned when you create a child team.
Example request
curl -X POST https://bee.theswarm.com/v3/profiles/fetch \
-H "x-api-key: YOUR_API_KEY" \
-H "x-authenticate-team: child-team-id-123" \
-H "Content-Type: application/json" \
-d '{
"linkedin_usernames": ["john-doe"],
"fields": ["profile_info", "tags", "lists"]
}'
Migrating from v2? v3 uses snake_case for all field names. The v2 equivalents were
linkedinNames, linkedinIds, linkedinEntityIds, and notFound. See the Migrating to v3 guide.Authorizations
Headers
Partner accounts only. When present, the request is executed in the context of the specified child team (use the team_id returned by Create Team). When omitted, the request runs as the team that owns the API key.
Body
application/json
- Option 1
- Option 2
- Option 3
- Option 4
The Swarm profile IDs
Maximum array length:
1000LinkedIn profile URL slugs
Maximum array length:
1000LinkedIn numeric profile IDs
Maximum array length:
1000LinkedIn alphanumeric entity IDs
Maximum array length:
1000Available options:
profile_info, tags, lists Was this page helpful?
βI

