Everything you need to integrate Enrichkit into your workflow. Simple key auth, JSON in, JSON out.
All API requests require an API key. Pass it via the X-API-Key header (preferred)
or Authorization: Bearer. Generate keys from your dashboard.
X-API-Key: ek_your_api_key_here # or Authorization: Bearer ek_your_api_key_here
Keys are prefixed with ek_. Keep them secret — do not expose them in client-side
code.
https://enrichkit.dev/api/v1Look up a professional profile by URL. Returns structured data including name, title, company, location, and experience.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Profile URL to enrich |
curl -X POST https://enrichkit.dev/api/v1/profile \ -H "X-API-Key: ek_your_key" \ -H "Content-Type: application/json" \ -d '{"url": "linkedin.com/in/janedoe"}'
{ "public_id": "marcela-vidal", "profile_url": "https://www.linkedin.com/in/marcela-vidal", "first_name": "Marcela", "last_name": "Vidal", "headline": "CTO @ Terracotta — we make ERPs not suck | ex-Shopify", "summary": "I spent 6 years building commerce infra at Shopify...", "location": "Montreal, Quebec, Canada", "industry": "Software Development", "connections": 2777, "follower_count": 2882, "current_company": "Terracotta", "current_company_linkedin_url": "https://www.linkedin.com/company/terracotta-erp", "current_title": "Co-Founder & CTO", "profile_picture": "https://media.licdn.com/dms/image/v2/D5603AQ...", "experiences": [ { "title": "Co-Founder & CTO", "company": "Terracotta", "company_logo": "https://media.licdn.com/dms/image/v2/C4D0BAQ...", "company_linkedin_url": "https://www.linkedin.com/company/terracotta-erp", "location": "Montreal, QC", "description": "Vertical ERP for ceramics studios...", "start_date": { "month": 3, "year": 2022 }, "end_date": null } ], "educations": [ { "school": "McGill University", "degree": "Bachelor of Science", "field": "Computer Science", "start_date": { "month": null, "year": 2010 }, "end_date": { "month": null, "year": 2014 } } ], "skills": ["Ruby on Rails", "PostgreSQL", "TypeScript", ...], "certifications": [ { "name": "AWS Certified Solutions Architect – Associate", "authority": "Amazon Web Services (AWS)", "url": "https://www.credly.com/badges/abc123", "issued_date": { "month": 9, "year": 2021 } } ] }
Retrieve recent posts from a profile.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Profile URL |
count | number | No | Number of posts (1-100, default 10) |
[ { "activity_id": "7433440736181899264", "post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7433440736181899264/", "text": "We just mass-deleted 11,000 lines of code from Terracotta...", "created_at": 1710523200000, "posted_ago": "3d ago", "likes": 842, "comments": 127, "reposts": 43, "media_type": "none", "media_url": "", "is_repost": false } ]
The media_type field can be "none", "image", or "article". The created_at timestamp is in milliseconds (Unix epoch).
Retrieve reactions on a specific post.
| Parameter | Type | Required | Description |
|---|---|---|---|
post_url | string | Yes | Post URL |
page | number | No | Page number (default 1) |
{ "page": 1, "total": 842, "has_more": true, "reactions": [ { "name": "Tomás Garza", "headline": "Founding eng @ Campfire · prev Vercel", "profile_url": "https://www.linkedin.com/in/tomasgarza", "profile_id": "tomasgarza", "profile_picture": "https://media.licdn.com/dms/image/v2/D5603AQ...", "reaction_type": "LIKE" } ] }
Reaction types include LIKE, CELEBRATE, LOVE, INSIGHTFUL, FUNNY, and SUPPORT. Use has_more to paginate through all reactions.
Look up a company by URL. Returns structured company data.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Company URL to enrich |
{ "name": "Campfire", "universal_name": "campfire-dev", "linkedin_url": "https://www.linkedin.com/company/campfire-dev", "website": "https://campfire.dev", "description": "Campfire replaces your internal tools sprawl...", "industries": ["Software Development"], "company_type": "Privately Held", "headquarters": "Berlin, Berlin, Germany", "founded_year": 2021, "employee_count": 12, "employee_range": "11-50", "follower_count": 1847, "specialities": ["internal tools", "developer tools", ...], "logo": "https://media.licdn.com/dms/image/v2/C560BAQ...", "phone": null, "tagline": "Internal tools that don't make you mass email the eng team" }
Returns your current usage, limits, and rate limit info.
{ "plan": "growth", "credits": { "remaining": 37550, "total": 50000, "resets_at": "2026-04-15T00:00:00Z" }, "rate_limit": { "requests_per_minute": 300 } }
Rate limits are enforced per API key based on your plan. Limits reset every minute on a sliding window.
| Plan | Requests / month | Requests / min |
|---|---|---|
| Starter | 10,000 | 100 |
| Growth | 50,000 | 300 |
| Pro | 200,000 | 600 |
When you hit a rate limit, the API returns 429 Too Many Requests with a Retry-After header.
Enrichkit uses standard HTTP status codes. Errors return a JSON body with a message field.
| Status | Meaning |
|---|---|
200 | Success |
400 | Bad request — invalid JSON or missing required field |
401 | Invalid, missing, or revoked API key |
403 | No active plan — subscribe first |
429 | Monthly quota exhausted |
502 | Upstream error — bad response from data source |
503 | Upstream unreachable — try again shortly |
{ "error": "quota_exceeded", "message": "No credits remaining. Upgrade your plan for more requests.", "credits": 0, "plan": "starter" }