Quick Start
Make your first API call in under 2 minutes.
Get your API key
Sign up for a free trial — your API key is in your dashboard under Settings → API Key. You get 100 free credits to start.
Make your first call
All requests go to one endpoint: POST https://api.linkfinderai.com. Change the type field to select the enrichment you need.
Handle the response
Every response includes a status field ("success" or "error") and a result field with your data.
# Find a company's website — your first API call curl -X POST "https://api.linkfinderai.com" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "type": "company_name_to_website", "input_data": "Tesla" }'
import requests API_KEY = "YOUR_API_KEY" response = requests.post( "https://api.linkfinderai.com", headers={ "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json", }, json={ "type": "company_name_to_website", "input_data": "Tesla", } ) data = response.json() print(data["result"]) # "tesla.com"
const API_KEY = "YOUR_API_KEY"; const response = await fetch("https://api.linkfinderai.com", { method: "POST", headers: { "Authorization": `Bearer ${API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ type: "company_name_to_website", input_data: "Tesla", }), }); const data = await response.json(); console.log(data.result); // "tesla.com"
// Success { "result": "tesla.com", "status": "success" } // Not found { "result": null, "status": "error", "message": "Company not found" }
Authentication
Pass your API key in the Authorization header on every request.
Authorization: Bearer YOUR_API_KEY
headers = {"Authorization": "Bearer YOUR_API_KEY"}
headers: { "Authorization": `Bearer ${API_KEY}` }
Credits & Rate Limits
1 credit = 1 API request, regardless of endpoint. Credits reset at the start of each billing cycle.
| Plan | Credits / month | Requests / second | Batch size |
|---|---|---|---|
| Starter | 5,000 | 5 req/s | Up to 500 URLs |
| Professional | 20,000 | 10 req/s | Up to 500 URLs |
| Enterprise | 50,000 | 20 req/s | Up to 500 URLs |
| HyperGrowth | 250,000 | 50 req/s | Up to 500 URLs |
429 Too Many Requests. Implement exponential backoff — wait 1s, then 2s, then 4s between retries.AI Lead Finder New
Describe the leads you want in plain English. Get back a list of matching LinkedIn profiles with full contact details and company data.
| Parameter | Type | Required | Description |
|---|---|---|---|
input_data |
string |
Required | Natural language description of your target leads |
fetch_count |
integer |
Optional | Number of profiles to return. Default: 10. Max: 100. |
curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"type": "leads_finder_ai",
"input_data": "VP Sales at B2B SaaS startup in the United States",
"fetch_count": 10
}'
response = requests.post(
"https://api.linkfinderai.com",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"type": "leads_finder_ai",
"input_data": "VP Sales at B2B SaaS startup in the United States",
"fetch_count": 10,
}
)
leads = response.json()
for lead in leads:
print(lead["full_name"], lead["email"])
const leads = await fetch("https://api.linkfinderai.com", { method: "POST", headers: { "Authorization": `Bearer ${API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ type: "leads_finder_ai", input_data: "VP Sales at B2B SaaS startup in the United States", fetch_count: 10, }), }).then(r => r.json()); leads.forEach(lead => console.log(lead.full_name, lead.email));
// Returns an array of lead objects [ { "full_name": "Sarah Mitchell", "job_title": "VP of Sales", "seniority_level": "vp", "email": "[email protected]", "linkedin": "https://linkedin.com/in/sarah-mitchell-sales", "company_name": "CloudCore", "company_domain": "cloudcore.io", "company_size": "51-200", "industry": "Software", "city": "Austin", "state": "Texas", "country": "United States" }, { /* next lead... */ } ]
Company Enrichment
Look up company details from a name or domain. Each request costs 1 credit.
curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"type": "company_name_to_website", "input_data": "Tesla"}'requests.post(url, headers=headers, json={
"type": "company_name_to_website",
"input_data": "Tesla"
})curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"type": "company_name_to_phone", "input_data": "Tesla"}'curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"type": "company_name_to_email", "input_data": "Tesla"}'curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"type": "company_name_to_employee_count", "input_data": "Tesla"}'curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"type": "company_name_to_linkedin_url", "input_data": "Tesla"}'| Parameter | Type | Required | Description |
|---|---|---|---|
input_data | string | Required | Company domain e.g. tesla.com |
department | string | Optional | Filter by department e.g. "marketing", "engineering" |
seniority | string | Optional | Filter by seniority e.g. "director", "manager" |
employee_count | integer | Optional | Max results to return |
curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"type": "company_domain_to_employees",
"input_data": "tesla.com",
"department": "marketing",
"seniority": "director",
"employee_count": 20
}'B2B Data Lookup
Look up business contacts profiles, company pages, and posts without using your own LinkedIn account. Zero ban risk.
curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"type": "linkedin_profile_to_linkedin_info", "input_data": "https://linkedin.com/in/john-doe"}'requests.post(url, headers=headers, json={
"type": "linkedin_profile_to_linkedin_info",
"input_data": "https://linkedin.com/in/john-doe"
})| Parameter | Type | Required | Description |
|---|---|---|---|
input_data | string | Required | Full LinkedIn profile URL e.g. https://linkedin.com/in/john-doe |
curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"type": "linkedin_profile_to_email",
"input_data": "https://linkedin.com/in/john-doe"
}'response = requests.post(url, headers=headers, json={
"type": "linkedin_profile_to_email",
"input_data": "https://linkedin.com/in/john-doe"
})
print(response.json()["result"]) # "[email protected]"// Success { "result": "[email protected]", "status": "success" } // Not found { "result": null, "status": "error", "message": "Email not found" }
| Parameter | Type | Required | Description |
|---|---|---|---|
input_data | string | Required | Full LinkedIn profile URL e.g. https://linkedin.com/in/john-doe |
curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"type": "linkedin_profile_to_phone",
"input_data": "https://linkedin.com/in/john-doe"
}'response = requests.post(url, headers=headers, json={
"type": "linkedin_profile_to_phone",
"input_data": "https://linkedin.com/in/john-doe"
})
print(response.json()["result"]) # "+1 415 555 0198"// Success { "result": "+1 415 555 0198", "status": "success" } // Not found { "result": null, "status": "error", "message": "Phone not found" }
curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"type": "linkedin_company_to_linkedin_info", "input_data": "https://linkedin.com/company/tesla"}'curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"type": "linkedin_company_to_employee_count", "input_data": "https://linkedin.com/company/tesla"}'curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"type": "lead_full_name_to_linkedin_url", "input_data": "Bill Gates Microsoft"}'| Parameter | Type | Required | Description |
|---|---|---|---|
input_data | string | Required | Professional email address e.g. [email protected] |
curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"type": "email_to_linkedin_url",
"input_data": "[email protected]"
}'response = requests.post(url, headers=headers, json={
"type": "email_to_linkedin_url",
"input_data": "[email protected]"
})
print(response.json()["result"]) # "https://linkedin.com/in/john-doe"// Success { "result": "https://linkedin.com/in/john-doe", "status": "success" } // Not found { "result": null, "status": "error", "message": "LinkedIn profile not found" }
curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"type": "linkedin_post_to_reactions", "input_data": "https://www.linkedin.com/feed/update/urn:li:activity:1234567890"}'Instagram lookup
Extract profile data from public Instagram accounts.
curl -X POST "https://api.linkfinderai.com" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"type": "instagram_profile_to_instagram_info", "input_data": "https://www.instagram.com/username"}'requests.post(url, headers=headers, json={
"type": "instagram_profile_to_instagram_info",
"input_data": "https://www.instagram.com/username"
})Error Codes
All errors return a JSON body with status: "error" and a message field.
| HTTP Code | Meaning | What to do |
|---|---|---|
| 200 | Success | Check result field — may be null if data wasn't found (still costs 1 credit) |
| 401 | Unauthorized | Missing or invalid API key — check your Authorization header |
| 402 | Insufficient credits | Top up credits or wait for next billing cycle |
| 422 | Invalid request | Check the type value and input_data format |
| 429 | Rate limit exceeded | Implement exponential backoff — wait 1s, 2s, 4s between retries |
| 500 | Server error | Retry after 30 seconds. If persistent, contact support |
Integrations
Connect LinkFinder AI to your CRM, automation tools, and data pipelines. No code required for Zapier and Make.
In the meantime, you can use the REST API directly with any HTTP action in Zapier or Make — no native integration needed.
# In Zapier: "Webhooks by Zapier" → POST action
URL: https://api.linkfinderai.com
Method: POST
Headers: Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Body: {"type": "company_name_to_website", "input_data": "{{company_name}}"}# In Make: HTTP → Make a request module
URL: https://api.linkfinderai.com
Method: POST
Headers: Authorization: Bearer YOUR_API_KEY
Body: JSON - {"type": "company_name_to_website", "input_data": "{{company}}"}