Skip to main content
POST
/
v2
/
pse
Person Search API
curl --request POST \
  --url https://api.cufinder.io/v2/pse \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "country": "<string>"
}
'
import requests

url = "https://api.cufinder.io/v2/pse"

payload = { "country": "<string>" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({country: '<string>'})
};

fetch('https://api.cufinder.io/v2/pse', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cufinder.io/v2/pse",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'country' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.cufinder.io/v2/pse"

payload := strings.NewReader("{\n \"country\": \"<string>\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.cufinder.io/v2/pse")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"country\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.cufinder.io/v2/pse")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"country\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body

Common Use Cases

Filtered search turns a target profile into a real list of people you can reach.
  • Lead Generation: Building targeted contact lists from combined filters.
  • Recruiting and Sourcing: Finding candidates by role, company, and location.
  • Account-Based Marketing: Reaching the right people inside target accounts.
  • Market Research: Exploring a talent pool or buyer segment.
  • List Building: Generating fresh prospect lists on demand.
Credit usage is 5 per record found.

Attributes

full_name
string
Person full name, matched as a substring — for example, john doe.
country
string
required
Person country
state
string
Person state
city
string
Person 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
string
Company country
company_state
string
Company state
company_city
string
Company city
company_domain
string
Company website
company_followers_count_min
integer
Company minimum followers count
company_followers_count_max
integer
Company maximum followers count
company_name
string(contains, '%stripe%')
Company name
company_linkedin_url
string
Company LinkedIn URL
company_industry
string
Company industry
company_employee_size
string ('0-1', '1 employee', '2-10', '11-50', '51-200', '201-500', '501-1000', '501-1,000', '1,001-5,000', '5,001-10,000', '10,001+')
Company employee size range
company_products_services
array[string]
Company services
company_annual_revenue_min
integer
Company minimum annual revenue (Million USD)
company_annual_revenue_max
integer
Company maximum annual revenue (Million USD)
page
integer
Page number

Response

{
    "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
    }
}

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 result

Person 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

Enrich a person with full contact data.

Company Employee Finder

Find employees working at a company.

LinkedIn Profile Enrichment

Enrich a person from their LinkedIn profile.

Reverse Email Lookup

Identify the person behind an email address.