Person Search API
Multi-filter searches separate precision prospecting from spray-and-pray outreach that wastes sales cycles. The Person Search API queries CUFinder's 1B+ professional profiles using combined filters—including name, company details, location, industry, and revenue—returning matching contact records with 99% confidence scores. Built for developers creating targeted prospecting and talent sourcing platforms, this RESTful endpoint delivers filtered person data including job titles, social profiles, and employer information that power account-based selling, executive search, and partnership identification workflows across your sales stack.
CUFinder Official SDKs
https://api.cufinder.io/v2/pse
Required Attributes
x-api-key
stringYour API key.
country
stringPerson country
Attributes
full_name
string (contains, ‘%john doe%’)Person full name
state
stringPerson state
city
stringPerson city
job_title_role
string ('customer_service', 'design', 'education', 'engineering', 'finance', 'health', 'human_resources', 'legal', 'marketing', 'media', 'operations', 'public_relations', 'real_estate', 'sales', 'trades')Person job title role
job_title_level
string ('cxo', 'director', 'entry', 'manager', 'owner', 'partner', 'senior', 'training', 'vp')Person job title level
company_country
stringCompany country
company_state
stringCompany state
company_city
stringCompany city
company_followers_count_min
integerCompany minimum followers count
company_followers_count_max
integerCompany maximum followers count
company_name
string (contains, '%stripe%')Company name
company_linkedin_url
stringCompany LinkedIn URL
company_industry
stringCompany industry
company_employee_size
['0-1', '1 employee', '1,001-5,000', '10,001+', '11-50', '2-10', '201-500', '5,001-10,000', '501-1,000', '501-1000', '51-200']Company employees size range
company_products_services
array of stringCompany services
company_annual_revenue_min
integer (Million Dollar)Company minimum annual revenue
company_annual_revenue_max
integer (Million Dollar)Company maximum annual revenue
page
integerPage filter
Credit usage
5 for founded records
/v2/pse
curl --location 'https://api.cufinder.io/v2/pse' \
--header 'Content-Type: application/json' \
--header 'x-api-key: api_key' \
--data '{
"full_name": "iain mckenzie",
"country": "canada",
"company_name": "stripe",
"page": 1
}'{
"status": 1,
"data": {
"confidence_level": 93,
"query": {
"full_name": "iain mckenzie",
"country": "canada",
"company_name": "stripe",
"page": 1
},
"peoples": [
{
"full_name": "iain mckenzie",
"current_job": {
"title": "engineering"
},
"company": {
"name": "stripe",
"linkedin": "linkedin.com/company/stripe",
"website": "https://stripe.com",
"industry": "technology, information and internet",
"main_location": {
"country": "united states",
"state": "california",
"city": "south san francisco"
},
"social": {
"linkedin": "linkedin.com/company/stripe",
"facebook": "facebook.com/stripepayments",
"twitter": "twitter.com/stripe"
}
},
"location": {
"country": "canada",
"state": null,
"city": null
},
"social": {
"linkedin": "linkedin.com/in/iain-mckenzie",
"facebook": null,
"twitter": null
}
}
],
"credit_count": 9972
}
}Status Codes
- 200
indicates a successful response.
- 400
indicates a not enough credits.
- 401
indicates an invalid API key.
- 404
indicates a not found results (Our algorithm can't find a data for your query).
- 422
indicates an error in sending data.
- 500
indicates a server error — you won't be seeing these
Person Search API typescript SDK
import { Cufinder } from '@cufinder/cufinder-ts';
// Initialize the client
const client = new Cufinder('your-api-key-here');
// Initialize with more options
const client = new Cufinder('your-api-key-here', { timeout: 60000 });
const result = await client.pse({
full_name: 'iain mckenzie',
company_name: 'stripe'
});
console.log(result);Person Search API python SDK
from cufinder import Cufinder
# Initialize the client
client = Cufinder('your-api-key-here')
# Initialize with more options
client = Cufinder('your-api-key-here', timeout=60)
result = client.pse(
full_name='iain mckenzie',
company_name='stripe'
)
print(result)Person Search API go SDK
package main
import (
"fmt"
"log"
"github.com/cufinder/cufinder-go"
)
func main() {
// Initialize the client
sdk := cufinder.NewSDK("your-api-key-here")
// Initialize with more options
sdk := cufinder.NewSDKWithConfig(cufinder.ClientConfig{
APIKey: "your-api-key-here",
BaseURL: "https://api.cufinder.io/v2",
Timeout: 60 * time.Second,
MaxRetries: 3,
})
}
result, err := sdk.PSE(cufinder.PseParams{
FullName: "iain mckenzie",
CompanyName: "stripe",
})
if err != nil {
log.Fatal(err)
}
fmt.Println(result)Person Search API ruby SDK
require 'cufinder_ruby'
# Initialize the client
client = Cufinder::Client.new(api_key: 'your-api-key-here')
# Initialize with more options
client = Cufinder::Client.new(
api_key: 'your-api-key-here',
timeout: 60,
max_retries: 3
)
result = client.pse(
full_name: 'iain mckenzie',
company_name: 'stripe'
)
puts resultPerson Search API rust SDK
use cufinder_rust::CufinderSDK;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Initialize the client
let sdk = CufinderSDK::new("your-api-key-here".to_string())?;
// Initialize with more options
let sdk = CufinderSDK::with_config(ClientConfig {
api_key: "your-api-key-here".to_string(),
base_url: "https://api.cufinder.io/v2".to_string(),
timeout: Duration::from_secs(60),
max_retries: 3,
})?;
Ok(())
}
use cufinder_rust::PseParams;
let result = sdk.pse(PseParams {
full_name: Some("iain mckenzie".to_string()),
company_name: Some("stripe".to_string()),
..Default::default()
}).await?;
println!("{:?}", result);Person Enrichment
Official API docs for Person Enrichment endpoint. Turn names into complete profiles with 97% accuracy. Lead completion integration guide.
Errors
In this guide, we will talk about what happens when something goes wrong while you work with the API. Mistakes happen, and mostly they will be yours, not ours. Let's look at some status codes and error types you might encounter.
