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.
- 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);