Persons
Look up an individual across SEC filings by their CIK. A person profile stitches together the roles a person holds at public companies (as an officer or director), any investment-adviser roles, and their reported insider transactions. All endpoints live under https://api.edgar.tools/v1.
Person coverage is still expanding, so a valid CIK may return 404 until that individual is backfilled.
GET /v1/persons/{cik}#
Tier: Free
Get a person's profile by CIK.
| Parameter | Type | Description |
|---|---|---|
cik | integer (path) | The person's SEC CIK |
curl "https://api.edgar.tools/v1/persons/0001214156" \
-H "Authorization: Bearer etk_your_key_here"{
"cik": "0001214156",
"name": "COOK TIMOTHY D",
"display_name": "Timothy D. Cook",
"is_insider": true,
"positions": [
{
"issuer_cik": "0000320193",
"issuer_name": "APPLE INC",
"issuer_ticker": "AAPL",
"role": "officer",
"title": "Chief Executive Officer",
"is_current": true,
"first_seen": "2011-08-24",
"last_seen": null
}
],
"adviser_roles": [],
"transactions": [
{
"transaction_date": "2026-04-01",
"issuer_cik": "0000320193",
"issuer_ticker": "AAPL",
"issuer_name": "APPLE INC",
"transaction_code": "S",
"acquired_disposed": "D",
"shares": 511000,
"price": 210.5,
"form": "4",
"accession_number": "0000320193-26-000045",
"is_derivative": false
}
]
}Field notes:
positionslists company roles.roleis a normalized label (officer,director);is_currentistruefor an active role, andlast_seenisnullwhile current.adviser_roleslists investment-adviser affiliations, matched from Form ADV.matched_viaon each entry records how the name was linked (name_exact,name_initial).transactionsare Form 3/4/5 insider transactions.transaction_codeis the SEC code (Ssell,Ppurchase,Agrant);acquired_disposedisAorD.
Returns 404 with { "error": "Person not found", "cik": "0001214156" } when the CIK has no profile yet. Sets Cache-Control: public, max-age=3600.
Related#
- Insider Trades guide — Form 4 activity and patterns
- MCP person tools —
person_intelandinsider_activityfor AI agents - Errors & Limits — status codes and rate limits