[ docs ]Social
Measured LinkedIn data, one operation per call. /in/ handles come from evidence (web search, a pasted URL, a prior answer) — never typed from a name: first-last slugs often name a DIFFERENT person, and the fetch bills. ops: profiles (batch of /in/ handles or URLs; fields=["positions"] adds the work history, include.posts adds each person's recent posts in the same call), posts (one person, deep — includes the author's profile card when held), companies (company pages), searchPeople (a company's people filtered by title/seniority/function, or GLOBAL with query and no company), searchCompanies (query + size/industry/ location), jobs (listings by title + filters), searchPosts (find POSTS by keyword — the content itself, not people/companies; narrow by mention, content type, recency), postComments (a post's comment thread by URL), profileComments (a person's OWN commenting activity by /in/ handle), postReactions (who reacted to a post, filterable by reaction), profileReactions (what a person reacted to), adsLibrary (an advertiser's public ads from an Ad Library URL), history (stored series, free). A person's work email and mobile number are the `contacts` tool's job — find the /in/ here first. Ops are independent — issue several as PARALLEL tool calls for faster answers.
POST https://api.zomler.com/api/v1/platforms/linkedinprofiles
from 4 credits · fresh for 7 daysProfile cards for up to ten people, by /in/<slug> vanity handle (a full profile URL is accepted and reduced to its slug). `include.posts` adds each person's recent posts to the same answer.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectsrequired | list of string | — | 1-10 items |
fields | list of enum | — | profilepositions |
include | object | — | — |
include.posts | object | — | — |
include.posts.limit | integer | 10 | 1-50 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/linkedin \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "profiles",
"subjects": [
"example"
]
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/linkedin", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "profiles",
"subjects": [
"example"
]
},
"estimateOnly": false
}),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);import os, httpx
res = httpx.post(
"https://api.zomler.com/api/v1/platforms/linkedin",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "profiles",
"subjects": [
"example"
]
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])posts
from 20 credits for 10 · fresh for 3 daysA person's recent posts with engagement. (Company-page posts are not served yet — asking today is declined with a reason, never guessed at.)
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectrequired | string | — | ≤400 chars |
limit | integer | 10 | 1-50 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/linkedin \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "posts",
"subject": "example"
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/linkedin", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "posts",
"subject": "example"
},
"estimateOnly": false
}),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);import os, httpx
res = httpx.post(
"https://api.zomler.com/api/v1/platforms/linkedin",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "posts",
"subject": "example"
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])companies
from 4 credits · fresh for 14 daysCompany pages for up to ten /company/<slug> handles or URLs.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectsrequired | list of string | — | 1-10 items |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/linkedin \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "companies",
"subjects": [
"example"
]
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/linkedin", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "companies",
"subjects": [
"example"
]
},
"estimateOnly": false
}),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);import os, httpx
res = httpx.post(
"https://api.zomler.com/api/v1/platforms/linkedin",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "companies",
"subjects": [
"example"
]
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])searchPeople
from 39 credits for 10People search. With `company`: that company's people, filtered (employees-of-X). Without it: a GLOBAL search — give `query` (e.g. "fintech founder") and/or titles. Find founders/leadership via titles (free text: "Founder", "CEO") and/or seniority bands (cxo, owner_partner); functions and tenure narrow further.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
company◆ | string | — | ≤400 chars |
query | string | — | ≤300 chars |
titles◆ | list of string | — | — |
pastTitles◆ | list of string | — | — |
pastCompanies◆ | list of string | — | — |
schools◆ | list of string | — | — |
locations | list of string | — | — |
industries◆ | list of string | — | — |
companySizes◆ | list of enum | — | 1-1011-5051-200201-500501-10001001-50005001-1000010001+ |
seniority◆ | list of enum | — | in_trainingentryseniorstrategicentry_managerexperienced_managerdirectorvice_presidentcxoowner_partner |
functions◆ | list of enum | — | accountingadministrativearts_and_designbusiness_developmentcommunity_and_social_servicesconsultingeducationengineeringentrepreneurshipfinancehealthcare_serviceshuman_resourcesinformation_technologylegalmarketingmedia_and_communicationmilitary_and_protective_servicesoperationsproduct_managementprogram_and_project_managementpurchasingquality_assurancereal_estateresearchsales |
yearsAtCompany◆ | list of enum | — | lt_1y1_2y3_5y6_10ygt_10y |
yearsOfExperience◆ | list of enum | — | lt_1y1_2y3_5y6_10ygt_10y |
recentlyChangedJobs◆ | boolean | — | — |
recentlyPosted◆ | boolean | — | — |
personNames◆ | list of string | — | — |
currentCompanies◆ | list of string | — | — |
companyHqLocations◆ | list of string | — | — |
profileLanguages◆ | list of string | — | — |
limit | integer | 10 | 1-50 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/linkedin \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "searchPeople"
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/linkedin", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "searchPeople"
},
"estimateOnly": false
}),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);import os, httpx
res = httpx.post(
"https://api.zomler.com/api/v1/platforms/linkedin",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "searchPeople"
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])searchCompanies
from 21 credits for 10Company search by keyword and structured filters.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
query | string | — | ≤300 chars |
locations | list of string | — | — |
companySizes◆ | list of enum | — | 1-1011-5051-200201-500501-10001001-50005001-1000010001+ |
industries◆ | list of string | — | — |
limit | integer | 10 | 1-50 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/linkedin \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "searchCompanies"
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/linkedin", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "searchCompanies"
},
"estimateOnly": false
}),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);import os, httpx
res = httpx.post(
"https://api.zomler.com/api/v1/platforms/linkedin",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "searchCompanies"
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])jobs
from 10 credits for 10Job listings search: `query` is the job-title anchor, the rest narrow it.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
queryrequired | string | — | ≤300 chars |
locations | list of string | — | — |
companies◆ | list of string | — | — |
industries◆ | list of string | — | — |
workplace | list of enum | — | remotehybridonsite |
employmentType | list of enum | — | full_timepart_timecontractinternshiptemporary |
experienceLevel | list of enum | — | internshipentryassociatemid_seniordirectorexecutive |
postedWithin | enum | — | 1h1d7d30d |
salaryMin | integer | — | 40-1000 |
easyApply◆ | boolean | — | — |
under10Applicants◆ | boolean | — | — |
sort | enum | — | relevancenewest |
limit | integer | 10 | 1-50 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/linkedin \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "jobs",
"query": "example"
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/linkedin", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "jobs",
"query": "example"
},
"estimateOnly": false
}),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);import os, httpx
res = httpx.post(
"https://api.zomler.com/api/v1/platforms/linkedin",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "jobs",
"query": "example"
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])searchPosts
from 20 credits for 10Search LinkedIn POSTS by keyword — the content itself, not people or companies. `query` is the search ("layoffs fintech", a product name, a hashtag). Narrow by who is mentioned, the content type (videos, images, documents…), how recent, and sort by relevance or date.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
queryrequired | string | — | ≤300 chars |
mentioning◆ | list of string | — | — |
contentType◆ | enum | — | allvideosimagesjobslive_videosdocumentscollaborative_articles |
postedWithin | enum | — | any1h1d7d30d3m6m1y |
sort | enum | — | relevancenewest |
includeReposts◆ | boolean | — | — |
includeQuotePosts◆ | boolean | — | — |
limit | integer | 10 | 1-50 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/linkedin \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "searchPosts",
"query": "example"
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/linkedin", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "searchPosts",
"query": "example"
},
"estimateOnly": false
}),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);import os, httpx
res = httpx.post(
"https://api.zomler.com/api/v1/platforms/linkedin",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "searchPosts",
"query": "example"
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])postComments
from 49 credits for 25Comments on up to ten LinkedIn POSTS, by post URL. `includeReplies` pulls nested replies; `postedWithin` limits how far back to read.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectsrequired | list of string | — | 1-10 items |
includeReplies | boolean | — | — |
postedWithin | enum | — | any1d7d30d |
limit | integer | 25 | 1-100 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/linkedin \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "postComments",
"subjects": [
"example"
]
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/linkedin", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "postComments",
"subjects": [
"example"
]
},
"estimateOnly": false
}),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);import os, httpx
res = httpx.post(
"https://api.zomler.com/api/v1/platforms/linkedin",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "postComments",
"subjects": [
"example"
]
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])profileComments
from 49 credits for 25A profile's OWN commenting activity — the comments up to ten people left across LinkedIn, by /in/<slug> handle, newest first.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectsrequired | list of string | — | 1-10 items |
postedWithin | enum | — | any1d7d30d |
limit | integer | 25 | 1-100 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/linkedin \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "profileComments",
"subjects": [
"example"
]
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/linkedin", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "profileComments",
"subjects": [
"example"
]
},
"estimateOnly": false
}),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);import os, httpx
res = httpx.post(
"https://api.zomler.com/api/v1/platforms/linkedin",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "profileComments",
"subjects": [
"example"
]
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])postReactions
from 49 credits for 25Reactions on up to ten LinkedIn POSTS, by post URL — who reacted and how. `reactionTypes` filters to specific reactions (Like, Celebrate…).
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectsrequired | list of string | — | 1-10 items |
reactionTypes◆ | list of enum | — | likecelebratesupportloveinsightfulfunny |
limit | integer | 25 | 1-100 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/linkedin \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "postReactions",
"subjects": [
"example"
]
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/linkedin", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "postReactions",
"subjects": [
"example"
]
},
"estimateOnly": false
}),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);import os, httpx
res = httpx.post(
"https://api.zomler.com/api/v1/platforms/linkedin",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "postReactions",
"subjects": [
"example"
]
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])profileReactions
from 49 credits for 25A profile's OWN reactions — what up to ten people reacted to across LinkedIn, by /in/<slug> handle, newest first.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectsrequired | list of string | — | 1-10 items |
postedWithin | enum | — | any1d7d30d |
limit | integer | 25 | 1-100 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/linkedin \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "profileReactions",
"subjects": [
"example"
]
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/linkedin", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "profileReactions",
"subjects": [
"example"
]
},
"estimateOnly": false
}),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);import os, httpx
res = httpx.post(
"https://api.zomler.com/api/v1/platforms/linkedin",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "profileReactions",
"subjects": [
"example"
]
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])adsLibrary
from 49 credits for 25Ads from the LinkedIn Ad Library, by Ad Library URL — an advertiser's page (all their live ads) or a single ad's detail URL.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
subjectrequired | string | — | ≤400 chars |
limit | integer | 25 | 1-100 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/linkedin \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "adsLibrary",
"subject": "example"
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/linkedin", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "adsLibrary",
"subject": "example"
},
"estimateOnly": false
}),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);import os, httpx
res = httpx.post(
"https://api.zomler.com/api/v1/platforms/linkedin",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "adsLibrary",
"subject": "example"
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])history
free · reads what is heldThe stored time series — free, reads what captures already wrote.
Request fields
| Field | Type | Default | Values / limits |
|---|---|---|---|
entity◆ | enum | people | peoplecompanies |
subjectsrequired | list of string | — | 1-10 items |
metric | string | followers | — |
days | integer | 90 | 1-730 |
Example
curl -X POST https://api.zomler.com/api/v1/platforms/linkedin \
-H "X-API-Key: zk_live_…" \
-H "Content-Type: application/json" \
-d '{
"request": {
"op": "history",
"subjects": [
"example"
]
},
"estimateOnly": false
}'const res = await fetch("https://api.zomler.com/api/v1/platforms/linkedin", {
method: "POST",
headers: {
"X-API-Key": process.env.ZOMLER_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"request": {
"op": "history",
"subjects": [
"example"
]
},
"estimateOnly": false
}),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);import os, httpx
res = httpx.post(
"https://api.zomler.com/api/v1/platforms/linkedin",
headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
json={
"request": {
"op": "history",
"subjects": [
"example"
]
},
"estimateOnly": False
},
timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])