Skip to content

Connect

A lead generation API with signed webhooks and HubSpot sync

FoxKnock's lead generation API lets your own software add companies and contacts, start discovery runs and cited research, enroll contacts in sequences and read signals and replies, over 15 JSON REST endpoint paths. It also sends 13 signed webhook events to your server and pushes companies, contacts, reply notes and deals one way to HubSpot.

Research comes back with its sources: evidence cards with a URL, a quote and a timestamp. API calls follow the same rules as the app, so enrolling a contact still applies your suppression list and country rules, and sending still follows the sequence's approval settings. Workspace admins create keys and webhooks in Settings, API & webhooks.

Illustration with fictional companies.

What it does

  • 15 REST endpoint paths

    Companies, contacts, lists, discovery runs, research, sequences, signals and replies, as JSON under /api/v1. Companies and contacts are deduped, and unknown fields in a request are rejected.

  • Three kinds of key

    Full access, read only, or Chrome extension. A key is shown once, and only its hash and a short display prefix are stored, so a lost key is replaced, not recovered.

  • 13 signed webhook events

    Company and contact changes, research, sent emails, replies, meetings, signals, visitors and forms. Each delivery is signed with HMAC-SHA256 and retried with back-off.

  • One-way HubSpot push

    Companies, contacts, a note for each real reply and a deal for interested leads go from FoxKnock to HubSpot. Nothing is read back.

  • Slack alerts and no-code tools

    Slack alerts use an incoming-webhook URL. Zapier, Make and n8n have no dedicated FoxKnock app: they connect through webhooks and the API, as generic HTTP tools.

  • Claude through a read-only key

    Give an assistant such as Claude a read-only key and let it look at your leads and replies. A native MCP server is coming soon.

How it works

  1. 1

    Create a key

    In Settings, API & webhooks, choose full access, read only or Chrome extension, name it and copy it. It is shown once.

  2. 2

    Call the API

    Send the key as a Bearer token. Start with GET /me to check the key, then add a company or start a research report and read it back.

  3. 3

    Add a webhook

    Enter a public https URL, pick the events you want, copy the signing secret (it is shown once) and press Send test to see what your server answers.

  4. 4

    Verify and dedupe

    Compute the HMAC-SHA256 of the raw body, compare it with the signature header, answer with a 2xx within 10 seconds and skip delivery ids you have seen.

  5. 5

    Connect your tools

    Add a HubSpot private-app token or a Slack incoming-webhook URL, or point Zapier, Make or n8n at the API and webhooks.

What the lead generation API covers

The API lives at /api/v1 and speaks JSON. You send your key as a Bearer token, and unknown fields in a request body are rejected, so a typo fails loudly. The 15 endpoint paths:

AreaEndpointsWhat you can do
WorkspaceGET /meCheck the key, your plan and your credit balance
CompaniesGET, POST /companies; GET, PATCH /companies/{id}List, create (deduped by domain), read, update
ContactsGET, POST /contacts; GET, PATCH /contacts/{id}List, create (deduped on email, then LinkedIn URL, then name and company), read, update
ListsGET, POST /lists; POST /lists/{id}/membersCreate lists and add contacts or companies
DiscoveryPOST /discovery/runs; GET /discovery/runs/{id}Start a run, poll for ranked results
ResearchPOST /research; GET /research/{id}Start a report, read it with its evidence cards
SequencesGET /sequences; POST /sequences/{id}/enrollList sequences, enroll contacts
Signals and repliesGET /signals; GET /repliesRead buying signals and classified replies

Four rules apply to every call:

  • No duplicates. Creating a company that already exists merges into it, and fields already set win until you send a PATCH.
  • Same checks as the app. Enrolling goes through suppression, country and lawful-basis rules, email status and daily limits. Because an API call is automatic rather than a person picking contacts one by one, it also skips contacts marked not interested, customer or meeting booked, and anyone contacted in the last 7 days.
  • Approval still applies. Sending follows the sequence's approval settings, whoever enrolled the contact.
  • Discovery is metered the same way. A discovery run started over the API counts against the same workspace run limits as one started in the app, and its results stay staged until someone accepts them there.

API keys, scopes and rate limits

There are three kinds of key:

  • Full access reaches every endpoint.
  • Read only can use GET endpoints and nothing else, which makes it the right choice for dashboards and assistants.
  • Chrome extension reaches only the extension endpoints, not this API.

For example, give a reporting dashboard a read only key and keep a full access key for the script that creates companies.

FoxKnock stores only a hash of each key (plus a short prefix so you can recognize it in the list), and you can have up to 25 active keys. A key acts with the access of the person who created it and stops working when that person leaves the workspace.

Each key gets 120 requests a minute, with tighter limits on two endpoints: POST /companies at 60 a minute and POST /discovery/runs at 10. Errors share one shape, with a code and a message. Two status codes need handling:

  • 402 means you are out of credits or at the monthly spend cap you set in Billing. The cap applies to API calls too: a call that would take spend past it gets a 402.
  • 429 means a rate limit, the daily AI budget or the discovery quota.

Cold email webhooks: 13 signed events

Webhooks push an event to your server when something happens. Subscribe to specific events or to all of them.

GroupEvents
Recordscompany.created, contact.created, contact.updated
Dataresearch.completed, email.found
Outreachmessage.sent, message.replied, reply.interested, meeting.booked, sequence.completed
Capturesignal.created, visitor.identified, form.submitted

Three details about the events:

  • reply.interested fires for a confident hot reply: interested, a meeting request or a question, using the labels from the AI inbox.
  • meeting.booked fires when a person marks a meeting as booked on a reply, because there is no calendar integration.
  • There are no open or click events, because FoxKnock does not track opens or clicks.

How delivery works

  • Signature. Every delivery carries an X-FoxKnock-Signature header: sha256= followed by the HMAC-SHA256 of the raw request body, made with the signing secret. The secret is shown once, when you create the webhook, and you can rotate it later.
  • Answer fast. Your endpoint has 10 seconds to answer with a 2xx, and redirects are not followed.
  • Retries. A failed delivery is retried with back-off, up to 5 retries over roughly 15 minutes. A webhook that fails every delivery for 3 days is switched off and you are notified.
  • Dedupe. Delivery is at least once, and the order of events is not guaranteed. Delivery ids stay the same across retries, so use them to skip repeats.
  • Limits. URLs must be public https addresses, and you can have up to 20 webhooks.

An illustration with a fictional 3-person agency: it sends reply.interested to an n8n workflow that posts the reply summary into its chat tool and creates a task in its project tracker.

HubSpot sync, Slack alerts and automation tools

HubSpot

HubSpot is a one-way push from FoxKnock, using a private-app token. It does four things:

  • Creates or updates companies (matched by domain) and contacts (matched by email) with the enriched fields FoxKnock holds, such as titles, locations and employee count.
  • Adds a note for each real reply, with the classification and the start of the reply text.
  • Opens a deal for interested or meeting-booked contacts (deals need the deals scope on your token).
  • Runs every 15 minutes after the first sync, or on demand with Sync now.

Fit scores and research dossiers are not pushed. Demo records are never pushed, and edits made in HubSpot do not flow back.

Slack

Slack alerts use an incoming-webhook URL, not a Slack app install, and cover hot replies, visitors, forms, plays and meetings.

Zapier, Make and n8n

Zapier, Make and n8n have no dedicated FoxKnock app. Each has a way to start a workflow from an incoming webhook (a Catch Hook trigger in Zapier, a Custom webhook module in Make, a Webhook node in n8n) and a way to call an HTTP API, so they connect through your webhooks and the REST API.

Check your plan before you build on it. Webhooks by Zapier, which provides the Catch Hook trigger, is a premium app, and Zapier's help center says premium apps need a paid plan or the free trial (as of October 2026).

Chrome extension

The Chrome extension (a developer-mode install today) shows what your workspace already knows about the company site you are on (fit, research summary, cited facts, a suggested opener) and saves a company or person in two clicks. It reads only the address and title of the active tab, and only when you click its icon.

Connect Claude to your CRM data

You can do this today, without waiting for an MCP server. Create a read-only key, then give Claude a tool that calls the GET endpoints for companies, contacts, signals, replies and research.

With the Claude API, you define a tool with a name and a schema, Claude asks for a call, and your code runs it and returns the result, as the tool use documentation describes. A read-only key can only use GET endpoints, so a wrong tool call cannot edit or enroll your leads. A native MCP server is coming soon.

Anything the assistant reads goes to the model provider you connect it to, so pick a provider you are comfortable with. To simply ask questions about your own workspace, use Ask FoxKnock inside the app: the chat itself uses no credits, and daily message limits apply.

What the API costs and where it stops

Reading and writing your own records does not spend credits. Work done for you does, at the same default prices as in the app:

  • A research report is charged when it completes.
  • A discovery result is charged when you accept it.
  • An AI-written email is charged when it is drafted.

Credits are charged the same if you use your own provider keys. Plans start at Free ($0, 500 one-time credits), and Growth is $149 a month with 20,000 credits. The pricing page lists current credit prices and shows REST API keys and CRM sync as Growth plan features.

The API suits you if you would otherwise chain CSV exports and one-off scripts: research reports come back with their evidence cards and source URLs, as in cited research. It does not suit you if you need two-way CRM sync, a CRM other than HubSpot or a native MCP server today, because FoxKnock does not offer them.

To see the data the API returns on your own market, start free and run discovery and research in the app with your free credits.

Frequently asked questions

What can you do with a lead generation API?

You can create and update leads, start searches and research, and read results from your own software instead of clicking through an app. With FoxKnock's API you add companies and contacts, start discovery and cited research, enroll contacts in sequences and read signals and replies.

Can the FoxKnock API send emails?

No. The API cannot send email, manage mailboxes, create sequences or write signals. It can enroll contacts in a sequence that already exists, and sending then follows that sequence's approval settings in the app.

Which webhook events does FoxKnock send?

Thirteen: company.created, contact.created, contact.updated, research.completed, email.found, message.sent, message.replied, reply.interested, meeting.booked, signal.created, visitor.identified, form.submitted and sequence.completed. Each is signed with HMAC-SHA256 and retried with back-off. There are no open or click events because FoxKnock does not track them.

How do I verify a FoxKnock webhook signature?

Compute the HMAC-SHA256 of the raw request body with your signing secret and compare it with the value after sha256= in the X-FoxKnock-Signature header. Answer with a 2xx within 10 seconds, and use the delivery id to skip repeats, because delivery is at least once.

Does FoxKnock sync with HubSpot?

Yes, as a one-way push from FoxKnock to HubSpot. It upserts companies by domain and contacts by email, adds a note for each real reply and opens a deal for interested leads. Nothing is read back from HubSpot, and it runs every 15 minutes or on demand. HubSpot sync is listed as a Growth plan feature.

Can I connect Claude to my FoxKnock data?

Yes, through the REST API. Create a read-only key and give Claude a tool that calls the GET endpoints, so it can search your companies, contacts, signals and replies without being able to change them. A native MCP server is coming soon but does not exist yet.

Does FoxKnock work with Zapier, Make or n8n?

Yes, through webhooks and the REST API, but FoxKnock has no dedicated app for any of them. Start a workflow from a FoxKnock webhook, and call the API from an HTTP step to read or write records. Check that your automation plan includes webhook triggers.

Is API access included in the Free plan?

No, according to the pricing page, which lists REST API keys on the Growth plan ($149 a month with 20,000 credits), alongside HubSpot sync. Free and Starter do not list them. Chrome extension keys are separate. Plans can change, so check the pricing page for the current list before you build on it.

See what FoxKnock finds for you

Start with 500 free credits. No card, no call, and every email waits for your approval by default.