API Reference
Fullpilot API
Parse a natural-language prompt into a search query, search local businesses with it, then unlock or enrich a company's contact data. Every request is a single authenticated POST.
Base URL https://api.fullpilot.com
Set your API key
export FULLPILOT_API_KEY="fp_live_..."Parse a prompt
Turn a natural-language prompt into a structured search query.
Read reference →
Run a search
Search local businesses using the same query the parser returns.
Read reference →
Unlock contact info
Spend one credit to reveal a business's phone number or email address.
Read reference →
Unlock in bulk
Unlock many businesses at once, by id list or by a search's results_id.
Read reference →
Enrich a company
Look up a company by domain or name and return it with contact data.
Read reference →
Authentication
Authenticate with a bearer token
Fullpilot API requests use Bearer token authentication. Keep your key server-side and export it as an environment variable before making requests.
Credit behavior
One credit unlocks one company record with its available email and phone data. Parsing and searching are free.
Set your API key
export FULLPILOT_API_KEY="fp_live_..."Parse a prompt
/v1/search/parseSend a plain-English description of the businesses you want. Parse returns a structured query object (the exact shape the search endpoint accepts), so you can preview, tweak, and store it before running a search.
Parameters
promptstringbodyrequiredNatural-language description of the businesses to find, e.g. "med spas in Texas with strong reviews and a website".
POST /v1/search/parse
curl https://api.fullpilot.com/v1/search/parse \
-H "Authorization: Bearer $FULLPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Find med spas in Texas with strong reviews, a website, and owner contact data."
}'Response
{
"query": {
"category": "med spa",
"location": "Texas, US",
"filters": {
"rating_min": 4.5,
"reviews_min": 25,
"website_status": "active",
"has_contact_data": true
}
}
}Run a search
/v1/searchAccepts the structured query produced by the parse endpoint, or one you build by hand. Returns matching companies with their public profile, a `total` match count, and a `results_id` you can hand to /v1/unlock/batch. Contact data stays locked until you unlock a record.
Parameters
queryobjectbodyrequiredStructured query object. Pass the `query` returned by /v1/search/parse, or build the same shape yourself.
limitintegerbodyoptionalMaximum number of companies to return. Defaults to 25.
POST /v1/search
curl https://api.fullpilot.com/v1/search \
-H "Authorization: Bearer $FULLPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": {
"category": "med spa",
"location": "Texas, US",
"filters": {
"rating_min": 4.5,
"website_status": "active",
"has_contact_data": true
}
},
"limit": 25
}'Response
{
"object": "list",
"results_id": "res_9f2c8a1b4e7d",
"total": 1284,
"data": [
{
"id": "biz_9qH2a1",
"name": "Lone Star Aesthetics",
"category": "med spa",
"location": "Austin, TX",
"rating": 4.8,
"reviews": 312,
"website": "lonestaraesthetics.com",
"contact": "locked"
}
],
"has_more": true
}Unlock contact info
/v1/unlockThe primary Fullpilot route. Reveal an accurate email or phone for one business from a search result. One credit unlocks one record; a record your workspace already unlocked is returned for free.
Parameters
business_idstringbodyrequiredId of the business to unlock, from a search result, e.g. "biz_9qH2a1".
field"email" | "phone"bodyrequiredWhich contact field to reveal.
POST /v1/unlock
curl https://api.fullpilot.com/v1/unlock \
-H "Authorization: Bearer $FULLPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"business_id": "biz_9qH2a1",
"field": "email"
}'Response
{
"business_id": "biz_9qH2a1",
"status": "unlocked",
"field": "email",
"email": "owner@lonestaraesthetics.com",
"phone": "+1 512-555-0142",
"email_quality": "owner_personal",
"owner_name": "Jane Okafor"
}Unlock in bulk
/v1/unlock/batchUnlock a whole result set in one call. Pass an explicit `business_ids` array, or a `results_id` from /v1/search (optionally capped with `limit`) and Fullpilot resolves the stored set. Every business returns a status; records already unlocked by your workspace are reused for free, so only new unlocks are charged.
Parameters
results_idstringbodyoptionalId returned by /v1/search. Unlocks the businesses in that result set. Use this OR business_ids.
business_idsstring[]bodyoptionalExplicit business ids to unlock. Use this OR results_id.
field"email" | "phone"bodyrequiredWhich contact field to reveal across the batch.
limitintegerbodyoptionalWith results_id, cap how many businesses to unlock.
POST /v1/unlock/batch
curl https://api.fullpilot.com/v1/unlock/batch \
-H "Authorization: Bearer $FULLPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"results_id": "res_9f2c8a1b4e7d",
"field": "email",
"limit": 25
}'Response
{
"object": "list",
"field": "email",
"data": [
{
"business_id": "biz_9qH2a1",
"status": "unlocked",
"email": "owner@lonestaraesthetics.com",
"email_quality": "owner_personal"
},
{
"business_id": "biz_V81kLs",
"status": "already_unlocked",
"email": "hello@brightsmiledental.com"
},
{
"business_id": "biz_77Xz2",
"status": "not_found"
}
],
"unlocked_count": 1,
"already_unlocked_count": 1,
"not_found_count": 1,
"insufficient_count": 0,
"lookup_failed_count": 0,
"credits_charged": 1
}Enrich a company
/v1/enrichA secondary route for when you already know the business. Provide a domain, company name, or other identifying details and Fullpilot resolves the matching company, returning its profile along with an available email or phone number.
Parameters
domainstringbodyoptionalCompany website domain, e.g. "lonestaraesthetics.com". Provide at least one of domain, name, or location.
namestringbodyoptionalBusiness name to resolve.
locationstringbodyoptionalCity, region, or address to disambiguate the match.
POST /v1/enrich
curl https://api.fullpilot.com/v1/enrich \
-H "Authorization: Bearer $FULLPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"domain": "lonestaraesthetics.com"
}'Response
{
"company": {
"id": "biz_9qH2a1",
"name": "Lone Star Aesthetics",
"category": "med spa",
"location": "Austin, TX",
"website": "lonestaraesthetics.com"
},
"email": "owner@lonestaraesthetics.com",
"phone": "+1 512-555-0142"
}Errors
Use predictable responses
400Invalid request body or unsupported filter.
401Missing or invalid API key.
402Not enough credits to unlock a record.
404Company not found.
429Rate limit exceeded.
500Unexpected server error.
503The contact lookup didn't complete (upstream hiccup). Nothing was charged; retry the request.