ProfileIQ
Now in private beta · invite-only

Public LinkedIn profile data. Structured and ready.

ProfileIQ fetches public LinkedIn profile data and returns clean, structured records through an API built for modern teams.

profileiq.app/dashboard
Profiles saved
47
Lookups today
84
Enrichment rate
99.4%
Justin Welsh profile refreshed · company and headline updated12s ago
Lara Acosta public profile parsed · 12 fields captured24s ago
Matt Gray lookup completed · webhook delivered to api.acme.com36s ago

Powering profile data workflows at growth-stage teams

AcmeLinearPlaidModalResendVercel

Platform

A clean layer for public profile data.

ProfileIQ handles profile fetching, normalization, retries, and signatures so you can focus on what to do with the data.

Public profile lookup

Fetch publicly available LinkedIn profile fields and normalize them into clean records.

Signed webhooks

HMAC-SHA256 signatures, exponential retries, and a full delivery log for completed lookups.

API-first

Clean REST endpoints, JWT auth, and typed SDKs for JS and Python.

Bulk operations

Run hundreds of profile lookups in seconds via CSV or the bulk endpoint.

Usage analytics

Per-key request counts, webhook health, and lookup volume by profile.

Secure by default

Cookie + JWT auth, scoped API keys, and per-workspace isolation.

Developers

Wire it up in a few lines.

Configurable backend, scoped API keys, and signed webhooks. We give you primitives, not lock-in.

  • JWT + cookie auth out of the box
  • Idempotent lookup endpoints with request IDs
  • Replay any webhook delivery from the dashboard
server.ts
// Fetch a public LinkedIn profile
const profile = await profileiq.profiles.lookup({
  url: "https://www.linkedin.com/in/example",
});

// Subscribe a webhook for completed lookups
await profileiq.webhooks.create({
  url: "https://api.acme.com/hooks/linkedin",
  events: ["profile.lookup.completed"],
});

// Receive signed events
app.post("/hooks/linkedin", (req, res) => {
  if (!verify(req, process.env.WEBHOOK_SECRET)) return res.sendStatus(401);
  enqueue(req.body); // structured public profile data, ready to use
  res.sendStatus(200);
});

Questions

ProfileIQ fetches publicly available LinkedIn profile data and returns it as structured fields you can use in your own workflow.