Funnelyn API Documentation
A RESTful API with JSON responses, Bearer token authentication, and SDKs for Python and Node.js. Search leads, enrich contacts, and manage campaigns programmatically.
https://api.funnelyn.io/v1Authentication
All API requests must include a Bearer token in the Authorization header. Generate your API key from Settings → API Keys.
Authorization: Bearer YOUR_API_KEYQuick Start
Get up and running in under 2 minutes with these cURL examples.
curl -X POST https://api.funnelyn.io/v1/leads/search \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"filters": {
"industry": "SaaS",
"title": "Marketing Manager",
"country": "SG"
},
"limit": 10
}'Endpoints
/api/v1/leads/searchSearch leads by criteria including industry, title, company size, location, and intent signals.
Request
{
"filters": {
"industry": "SaaS",
"title": "Head of Marketing",
"company_size": "51-200",
"country": "SG"
},
"limit": 25,
"offset": 0
}Response
{
"total": 1847,
"leads": [
{
"id": "lead_abc123",
"first_name": "Sarah",
"last_name": "Lim",
"title": "Head of Marketing",
"company": "TechCorp Pte Ltd",
"email": "s.lim@techcorp.io",
"verified": true,
"score": 92
}
]
}/api/v1/leads/:idRetrieve full details for a specific lead, including enriched firmographic and intent data.
Request
GET /api/v1/leads/lead_abc123Response
{
"id": "lead_abc123",
"first_name": "Sarah",
"last_name": "Lim",
"email": "s.lim@techcorp.io",
"phone": "+65 9123 4567",
"title": "Head of Marketing",
"company": "TechCorp Pte Ltd",
"linkedin_url": "https://linkedin.com/in/sarahlim",
"intent_signals": ["pricing page visit", "G2 comparison"],
"verified": true,
"last_updated": "2026-04-01T10:00:00Z"
}/api/v1/leads/enrichEnrich a contact record by providing an email address or LinkedIn URL. Returns verified data points.
Request
{
"email": "s.lim@techcorp.io"
}Response
{
"match_confidence": 0.97,
"first_name": "Sarah",
"last_name": "Lim",
"title": "Head of Marketing",
"company": "TechCorp Pte Ltd",
"company_size": "51-200",
"industry": "B2B SaaS",
"country": "SG",
"email_verified": true
}/api/v1/cpl/calculateCalculate the estimated cost per lead for a given target audience and campaign parameters.
Request
{
"industry": "FinTech",
"title_level": "Director+",
"country": ["SG", "MY"],
"estimated_leads": 500
}Response
{
"estimated_cpl": 4.20,
"audience_size": 12400,
"match_rate": 0.82,
"total_estimated_cost": 2100.00,
"currency": "USD"
}/api/v1/campaignsList all campaigns in your account with status, performance metrics, and creation dates.
Request
GET /api/v1/campaigns?status=active&limit=10Response
{
"campaigns": [
{
"id": "camp_xyz789",
"name": "Q2 SaaS Outreach",
"status": "active",
"leads_target": 500,
"leads_delivered": 312,
"cpl": 3.80,
"created_at": "2026-03-15T08:00:00Z"
}
],
"total": 1
}/api/v1/campaignsCreate a new campaign by specifying audience filters, budget, and delivery preferences.
Request
{
"name": "Q3 APAC Enterprise Push",
"filters": {
"industry": ["FinTech", "SaaS"],
"title": "CTO",
"company_size": "201-1000",
"country": ["SG", "ID", "MY"]
},
"budget": 5000,
"leads_target": 1000
}Response
{
"id": "camp_new456",
"name": "Q3 APAC Enterprise Push",
"status": "pending",
"estimated_cpl": 4.80,
"created_at": "2026-04-10T12:00:00Z"
}Rate Limits
Rate limits are enforced per API key. Exceeding limits returns a 429 Too Many Requests response.
| Plan | Rate Limit | Daily Limit |
|---|---|---|
| Starter | 100 req/min | 10,000 req/day |
| Growth | 500 req/min | 100,000 req/day |
| Professional | 2,000 req/min | Unlimited |
SDKs & Libraries
Official SDKs for popular languages. Community SDKs welcome via pull request.