Professional Data API: What It Returns and When to Use It
By Kooperativa Engineering
A professional data API answers one question well: given an identifier for a person or a company, what do we know about them professionally. Not how to reach them, not a credit score, not a marketing score. Work history, current role, education, skills, company firmographics, headcount. The fields a team uses to decide whether a lead is worth pursuing before it spends a single dollar on outreach.
That distinction splits the market in two. On one side sit the contact finders, which turn a name into an email address. On the other sit the context providers, which return the professional record itself. This post is about the second kind, and about the design choice that makes it worth the call.
What the API returns about a person
For a person, the useful fields are structural, not demographic. The current title and company, the full history of positions with start and end dates, the education record, the skills the person lists, and flags for whether the person is open to work or hiring. That is enough to answer fit, seniority, and tenure in one call without ever asking for contact data.
The fields are plain and stable: `full_name`, `headline`, `current_company`, `positions`, `skills`, `education`, and a `fetched_at` timestamp that tells you how fresh the record is. A lookup that refuses to say when it last saw the data is not a data API, it is a black box.
What it returns about a company
The company side is where a single call starts to pay for itself. Firmographics such as industry and headcount, the locations the company operates from, and hiring signals that say whether the workforce is growing. Paired with the person record, you can rank an entire account list on fit and momentum instead of on gut feel.
The fields mirror the person record: `name`, `industry`, headcount and size fields, `locations`, and the same `fetched_at` freshness marker. The two endpoints are deliberately symmetric so a team can join a person to their employer with nothing more than a company identifier.
The identifiers that actually work
A professional data API is only as useful as its lookup keys. The natural one is the profile or company URL, because it is the thing people already paste. A good API also accepts a username slug and its own internal id, and normalizes a URL down to a slug so that a trailing slash or a stray query string does not turn a present record into a miss.
That normalization step sounds trivial and is the difference between a lookup that works and one that 404s on profiles you can plainly see exist. When you evaluate a provider, test the ugly inputs first: the URL with a slash, the URL with `www`, the username with mixed case. If those fail, you are going to build a cleanup layer yourself.
What to send, and what you get back
One call, one identifier, one record. The response is the full person or company object, with a `fetched_at` timestamp and a request id you can trace. Here is the person lookup in the simplest useful form.
curl "https://kooperativa.io/api/v1/person?username=<username>" \
-H "Authorization: Bearer ik_live_..."
# Returns full_name, headline, current_company, positions,
# skills, education, and fetched_at. No contact fields.When this is the wrong tool
A professional data API is not a contact database, and it should not pretend to be. If your workflow starts and ends with finding an email address, a contact finder is the honest choice. What the professional record buys you is the step before that: the ranking, the fit check, the account prioritization that decides which hundred names are worth the contact-data budget in the first place.
The two tools compose. Context first, contact second. A team that does it in that order sends fewer, better emails, and a data vendor that is honest about which of the two it sells will save you from building a pipeline on the wrong one.
Get started
Try Kooperativa
One API key. Person and company enrichment, structured search, and monitors under one flat license.
