API Platform

Developer Quickstart

Search local businesses, unlock owner contact data, and turn enriched leads into AI SDR campaigns from the Fullpilot API.

JavaScript

Quickstart

const response = await fetch("https://api.fullpilot.com/v1/local-businesses/search", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FULLPILOT_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    query: "med spas",
    location: "Texas",
    filters: {
      rating_min: 4.5,
      website_status: "active",
      limit: 100
    }
  })
});

const market = await response.json();
console.log(market.data);

Authentication

Create and export an API key

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 local business record with available email and phone data.

export FULLPILOT_API_KEY="fp_live_..."

Enrichment

Unlock owner contact data

Enrichment turns selected businesses into usable local business leads with owner, operator, email, phone, address, category, and profile details.

Verified emails
Phone numbers
Owner data
Business profile
const response = await fetch("https://api.fullpilot.com/v1/local-businesses/enrich", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FULLPILOT_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    business_ids: [
      "biz_9qH2a1",
      "biz_V81kLs"
    ],
    include: ["email", "phone", "owner", "location"]
  })
});

const enriched = await response.json();
console.log(enriched.data);

AI SDR

Launch outreach from enriched leads

Create an AI SDR campaign from an enriched audience. Fullpilot writes outreach, sends follow-ups, handles replies, and routes interested local business owners toward a meeting.

No manual setup

Campaign execution runs through Fullpilot, so teams do not need to connect separate inbox tooling before testing a local market.

const response = await fetch("https://api.fullpilot.com/v1/campaigns", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FULLPILOT_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    name: "Texas med spas",
    audience_id: "aud_24QmV7",
    goal: "Book meetings with local business owners",
    handoff_url: "https://cal.com/acme/demo"
  })
});

const campaign = await response.json();
console.log(campaign.id);

Webhooks

Subscribe to lead and campaign events

lead.enriched
campaign.reply_received
campaign.interested
handoff.created
meeting.booked

Errors

Use predictable responses

StatusMeaning
400

Invalid request body or unsupported filter.

401

Missing or invalid API key.

402

Not enough credits for enrichment.

429

Rate limit exceeded.

500

Unexpected server error.