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
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
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
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
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
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:
| Area | Endpoints | What you can do |
|---|---|---|
| Workspace | GET /me | Check the key, your plan and your credit balance |
| Companies | GET, POST /companies; GET, PATCH /companies/{id} | List, create (deduped by domain), read, update |
| Contacts | GET, POST /contacts; GET, PATCH /contacts/{id} | List, create (deduped on email, then LinkedIn URL, then name and company), read, update |
| Lists | GET, POST /lists; POST /lists/{id}/members | Create lists and add contacts or companies |
| Discovery | POST /discovery/runs; GET /discovery/runs/{id} | Start a run, poll for ranked results |
| Research | POST /research; GET /research/{id} | Start a report, read it with its evidence cards |
| Sequences | GET /sequences; POST /sequences/{id}/enroll | List sequences, enroll contacts |
| Signals and replies | GET /signals; GET /replies | Read 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.
| Group | Events |
|---|---|
| Records | company.created, contact.created, contact.updated |
| Data | research.completed, email.found |
| Outreach | message.sent, message.replied, reply.interested, meeting.booked, sequence.completed |
| Capture | signal.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.
Related guides and comparisons
- FeatureAI prospect research with a cited source on every cardAI prospect research that turns each company into cited evidence cards with a source link, date and expiry. See what quick, standard and deep cover and cost.Read
- FeatureBuyer intent signals for small teams: who to contact and why nowWhat buyer intent signals are, which ones a small team can track, and how FoxKnock ranks them into a short Today queue. Honest limits included.Read
- FeatureAI reply management for cold email that keeps you in chargeAI reply management for cold email: 13 reply classes, confidence scores and drafts from your notes. See which few actions run alone and what stays yours.Read
- FeatureAI outreach that waits for your approvalFoxKnock drafts cited cold emails and waits for you. Approval levels, a quality gate and autonomy that has to be earned, never a timer that sends for you.Read
- FeatureWebsite visitor identification at company level, no cookiesWebsite visitor identification that shows which companies visit your site, with no cookies. See what a match costs, what it misses and how to act on it.Read
See what FoxKnock finds for you
Start with 500 free credits. No card, no call, and every email waits for your approval by default.