Prospect Finder
Search 270M+ people and companies, re-run saved searches, then enrich the right prospects and add them to the CRM. Uses your workspace credits.
The Prospect Finder uses your workspace credits (the same monthly credits as the AI actions — GET /credits for the balance). People search is free; company search costs 1 credit per page; revealing a person (email, phone, employment) costs 1 credit — already-revealed people are free and failed reveals are refunded. Without enough credits a paid call answers 402 and nothing is charged. The usual flow: search, pick, POST /finder/enrich with the results, then enroll the new contacts in a sequence.
/finder/creditsFinder credits
Credits left this month, total, and what each kind of search costs: people search free, company search 1 credit per page, revealing a person or a company 1 credit each.
curl "https://meetzy.me/api/v1/finder/credits" \ -H "Authorization: Bearer $MEETZY_API_KEY"
const res = await fetch("https://meetzy.me/api/v1/finder/credits", {
headers: { Authorization: `Bearer ${process.env.MEETZY_API_KEY}` },
});
const data = await res.json();import os, requests
res = requests.get(
"https://meetzy.me/api/v1/finder/credits",
headers={"Authorization": f"Bearer {os.environ['MEETZY_API_KEY']}"},
)
data = res.json(){
"status": "SUCCESS",
"remaining": 500,
"total": 500,
"month": "2026-10",
"costInfo": {
"peopleSearch": "FREE (unlimited)",
"companySearch": "1 credit per page (25 results)",
"personEnrichment": "1 credit per person (gets email, phone, details)",
"companyEnrichment": "1 credit per company",
"addToLeads": "FREE"
}
}/finder/saved-searchesSaved searches
Searches saved in the app, with a summary of their filters. Re-run one with saved_search_id.
Query parameters
categorystringpeopleorcompanies.
Answer: the searches, each with its id, name, category and a readable summary of its filters (titles, locations, sizes…).
curl "https://meetzy.me/api/v1/finder/saved-searches" \ -H "Authorization: Bearer $MEETZY_API_KEY"
const res = await fetch("https://meetzy.me/api/v1/finder/saved-searches", {
headers: { Authorization: `Bearer ${process.env.MEETZY_API_KEY}` },
});
const data = await res.json();import os, requests
res = requests.get(
"https://meetzy.me/api/v1/finder/saved-searches",
headers={"Authorization": f"Bearer {os.environ['MEETZY_API_KEY']}"},
)
data = res.json()See the notes on the left.
/finder/searchSearch people or companies
Credits: free for people, 1 credit per page of 25 for companies. Returns up to limit results (it pages for you). Each person comes with an id to pass to POST /finder/enrich — emails and phones are not included until you enrich. Works with a read-only key.
Body
modestringpeople(default, free) orcompanies(1 credit / page).saved_search_idstring- Re-run a saved search.
person_titlesstring[]- Job titles (
Head of Sales). Similar titles included unlessinclude_similar_titles: false. person_senioritiesstring[]owner,founder,c_suite,partner,vp,head,director,manager,senior,entry,intern.person_departmentsstring[]- Departments.
person_locationsstring[]- Where people are (
France,Paris, France).person_not_locationsexcludes. person_namestring- A name.
keywordsstring[]- Keywords.
email_statusstring[]verified,guessed,unavailable.organization_namestring- Company name.
organization_domainsstring[]- Company domains.
organization_locationsstring[]- Company HQ locations.
organization_not_locationsexcludes. organization_employee_rangesstring[]- Headcount ranges:
"11,50","51,200","201,500"… organization_keyword_tagsstring[]- Industries / keywords:
saas,fintech,retail… funding_stagesstring[]- Funding stages.
revenue_minnumber- Minimum revenue (
revenue_maxtoo). currently_using_any_of_technology_uidsstring[]- Technologies used (also
…_all_of_…,currently_not_using_any_of_…). organization_job_titlesstring[]- Companies hiring for these titles (with
organization_job_locations,organization_num_jobs_range_min/max,organization_job_posted_at_range_min/max). founded_year_mininteger- Founded after (
founded_year_maxtoo). latest_funding_amount_minnumber- Funding filters:
latest_funding_amount_min/max,total_funding_min/max,latest_funding_date_min/max. limitinteger- How many results you want. Default 25.
pageinteger- Start page.
People already in your CRM or already revealed are skipped (skippedDuplicates). Last names are often hidden until you enrich — pass them as they are.
curl -X POST "https://meetzy.me/api/v1/finder/search" \ -H "Authorization: Bearer $MEETZY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "mode": "people", "person_titles": [ "Head of Sales", "VP Sales" ], "person_locations": [ "France" ], "organization_employee_ranges": [ "51,200", "201,500" ], "organization_keyword_tags": [ "saas" ], "limit": 25 }'
const res = await fetch("https://meetzy.me/api/v1/finder/search", { method: "POST", headers: { Authorization: `Bearer ${process.env.MEETZY_API_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ "mode": "people", "person_titles": [ "Head of Sales", "VP Sales" ], "person_locations": [ "France" ], "organization_employee_ranges": [ "51,200", "201,500" ], "organization_keyword_tags": [ "saas" ], "limit": 25 }), }); const data = await res.json();
import os, requests
res = requests.post(
"https://meetzy.me/api/v1/finder/search",
headers={"Authorization": f"Bearer {os.environ['MEETZY_API_KEY']}"},
json={
"mode": "people",
"person_titles": ["Head of Sales", "VP Sales"],
"person_locations": ["France"],
"organization_employee_ranges": ["51,200", "201,500"],
"organization_keyword_tags": ["saas"],
"limit": 25
},
)
data = res.json(){
"status": "SUCCESS",
"mode": "people",
"results": [
{
"id": "64f1a2b3c4d5e6f7a8b9c0d1",
"name": "Camille",
"first_name": "Camille",
"last_name": null,
"title": "Head of Sales",
"seniority": "head",
"departments": [
"sales"
],
"city": "Paris",
"country": "France",
"email": null,
"email_status": "verified",
"linkedin_url": "https://www.linkedin.com/in/…",
"photo_url": null,
"organization": {
"name": "Payfit",
"domain": "payfit.com",
"industry": "Software",
"employees": 900,
"website": "https://payfit.com"
}
}
],
"total": 12480,
"page": 1,
"perPage": 25,
"creditsUsed": 0,
"skippedDuplicates": 3
}/finder/enrichReveal prospects and add them to the CRM
Credits: 1 credit per prospect revealed — people already revealed in your workspace are free, failed reveals are refunded. Reveals email, phone and employment for each prospect and adds them as contacts (with their company). Send all the prospects of a search in one call, with the id from the search.
Body
prospectsobject[]required- Each
{ id, first_name, last_name, email?, linkedin_url?, organization_name?, domain?, type? }—idfrom the search,typeperson(default) orcompany. Passnullfor an unknown last name. add_to_leadsboolean- Add them to the CRM. Default
true. target_criteriastring- Your ideal prospect, for relevance scoring.
leadId is the CRM contact id — use it for emails, sequences and LinkedIn. Each addedToLeads entry has a status: added, already_exists, skipped_no_contact (nothing to reach them with) or failed. 402 when there are not enough credits.
curl -X POST "https://meetzy.me/api/v1/finder/enrich" \ -H "Authorization: Bearer $MEETZY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "prospects": [ { "id": "64f1a2b3c4d5e6f7a8b9c0d1", "first_name": "Camille", "last_name": null, "organization_name": "Payfit" } ], "add_to_leads": true }'
const res = await fetch("https://meetzy.me/api/v1/finder/enrich", { method: "POST", headers: { Authorization: `Bearer ${process.env.MEETZY_API_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ "prospects": [ { "id": "64f1a2b3c4d5e6f7a8b9c0d1", "first_name": "Camille", "last_name": null, "organization_name": "Payfit" } ], "add_to_leads": true }), }); const data = await res.json();
import os, requests
res = requests.post(
"https://meetzy.me/api/v1/finder/enrich",
headers={"Authorization": f"Bearer {os.environ['MEETZY_API_KEY']}"},
json={
"prospects": [
{
"id": "64f1a2b3c4d5e6f7a8b9c0d1",
"first_name": "Camille",
"last_name": None,
"organization_name": "Payfit"
}
],
"add_to_leads": True
},
)
data = res.json(){
"status": "SUCCESS",
"enriched": [
{
"name": "Camille Laurent",
"first_name": "Camille",
"last_name": "Laurent",
"title": "Head of Sales",
"email": "camille@payfit.com",
"phone": "+33612345678",
"linkedin": "https://www.linkedin.com/in/…",
"company": "Payfit",
"companyDomain": "payfit.com",
"companyIndustry": "Software",
"companySize": 900,
"city": "Paris",
"country": "France",
"type": "person",
"creditUsed": true,
"alreadyEnriched": false,
"leadId": "e43414d6-f56f-42be-a64c-a836d6015efc"
}
],
"addedToLeads": [
{
"name": "Camille Laurent",
"status": "added",
"leadId": "e43414d6-f56f-42be-a64c-a836d6015efc",
"message": "Added to leads"
}
],
"totalEnriched": 1,
"creditsUsed": 1,
"creditsRemaining": 499
}