# Knock2 ## Docs - [Knock2: Visitor Identification and Lead Intelligence](https://docs.knock2.ai/introduction.md): Identify anonymous website visitors, score them against your ICP, and get real-time lead intelligence via the Knock2 REST API and webhooks. - [Quickstart: Install Knock2 and Make Your First API Call](https://docs.knock2.ai/quickstart.md): Learn how to install the Knock2 tracking script, get your API key, and make your first API call to retrieve identified visitors from your website. - [Knock2 API Authentication: API Keys, Scopes, and Errors](https://docs.knock2.ai/authentication.md): Learn how to get your Knock2 API key, pass it in requests using the Authorization header, and understand authentication error responses. - [Knock2 Accounts: Identified Companies and Data Fields](https://docs.knock2.ai/concepts/accounts.md): An account in Knock2 represents an identified company visiting your website. Learn what data fields are available and how accounts are created. - [Knock2 Contacts: Identified Individuals and Data Fields](https://docs.knock2.ai/concepts/contacts.md): A contact in Knock2 is an identified individual. Learn available fields including enrichment data, company association, ICP scores, and CRM sync. - [Lead Scores: ICP Fit and Engagement Scoring in Knock2](https://docs.knock2.ai/concepts/lead-scores.md): Knock2 scores every account and contact on ICP fit and engagement. Learn what score fields contain and how to query current scores and recent changes. - [Filter Sets: Save and Reuse Visitor Queries in Knock2](https://docs.knock2.ai/concepts/filter-sets.md): Filter sets let you save complex filter criteria and apply them by ID when querying accounts or contacts, avoiding repetitive JSON in every request. - [Install the Knock2 Tracking Script on Your Website](https://docs.knock2.ai/guides/tracking-script.md): Embed the Knock2 sidekick.js tracking script on your website to automatically identify visiting companies and contacts in real time. - [Receive Real-Time Visitor Event Alerts via Webhooks](https://docs.knock2.ai/guides/webhooks.md): Subscribe to Knock2 webhook events to get instant HTTP notifications when accounts are identified, contacts appear, scores change, or plays trigger. - [Enrich Contact Profiles by Email Address with Knock2](https://docs.knock2.ai/guides/enrichment.md): Use the Knock2 enrichment API to look up a contact's full professional profile from an email address, merging data from multiple enrichment sources. - [Query Knock2 Accounts and Contacts with API Filters](https://docs.knock2.ai/guides/filtering.md): Learn how to apply inline filters and saved filter sets when querying accounts and contacts to return only the records that matter to your team. - [Paginating Through Knock2 API Results with Cursors](https://docs.knock2.ai/guides/pagination.md): Knock2 uses cursor-based pagination for list endpoints. Learn how to use next_cursor and has_more to walk through large result sets efficiently. - [Multi-Tenant Architecture Overview for Knock2 Users](https://docs.knock2.ai/tenants/overview.md): Knock2's multi-tenant model lets agencies, resellers, and platform builders provision isolated workspaces for each of their customers via API. - [Provision and Manage Knock2 Sub-Tenants via the API](https://docs.knock2.ai/tenants/managing-tenants.md): Step-by-step guide to creating, configuring, and deactivating Knock2 sub-tenants via the API, including script installation for each tenant. - [Knock2 REST API Reference Overview](https://docs.knock2.ai/api-reference/overview.md): Complete reference for the Knock2 Public API v1. Covers authentication, base URL, pagination, rate limits, and error handling for all endpoints. - [GET /v1/accounts — List Identified Accounts](https://docs.knock2.ai/api-reference/accounts/list-accounts.md): GET /v1/accounts returns a paginated list of identified company accounts. Supports filtering by domain, filter_set_id, or inline filter JSON. - [GET /v1/accounts/{account_id} — Get Account by ID](https://docs.knock2.ai/api-reference/accounts/get-account.md): GET /v1/accounts/{account_id} retrieves a single account by its Knock2 ID or by passing a domain as the path parameter. - [GET /v1/contacts — List Identified Contacts](https://docs.knock2.ai/api-reference/contacts/list-contacts.md): GET /v1/contacts returns a paginated list of identified individual contacts. Filter by email, account_id, filter_set_id, or inline filter JSON. - [GET /v1/contacts/{contact_id} — Get Contact by ID](https://docs.knock2.ai/api-reference/contacts/get-contact.md): GET /v1/contacts/{contact_id} retrieves a single contact's full profile including enrichment data, ICP score, CRM fields, and visit history. - [List Page Visit Activity for Accounts and Contacts](https://docs.knock2.ai/api-reference/activity/list-activity.md): GET /v1/activity returns page visit events for an account or contact. Requires account_id or contact_id. Supports cursor-based pagination. - [Get Lead Scores for an Account or Contact — v1/scores](https://docs.knock2.ai/api-reference/scores/get-scores.md): GET /v1/scores returns the current lead score for an account or contact. Set include_history=true to retrieve the full score history in descending order. - [List Recent Lead Score Changes Across Your Knock2 Tenant](https://docs.knock2.ai/api-reference/scores/recent-scores.md): GET /v1/scores/recent returns the most recent lead score changes across your tenant — useful for polling, Zapier triggers, and backfill pipelines. - [List All Saved Filter Sets in Your Knock2 Account](https://docs.knock2.ai/api-reference/filter-sets/list-filter-sets.md): GET /v1/filter-sets returns all saved filter sets for your tenant. Use the returned id as filter_set_id when querying accounts or contacts. - [Create a New Account or Contact Filter Set — Knock2](https://docs.knock2.ai/api-reference/filter-sets/create-filter-set.md): POST /v1/filter-sets creates a new named filter set for accounts or contacts. Returns the created filter set with its id for use in list queries. - [PUT /v1/filter-sets/{filter_set_id} — Update a Filter Set](https://docs.knock2.ai/api-reference/filter-sets/update-filter-set.md): PUT /v1/filter-sets/{filter_set_id} updates an existing filter set's name, type, or rules. All body fields are optional — only provided fields are changed. - [DELETE /v1/filter-sets/{filter_set_id} — Remove Filter Set](https://docs.knock2.ai/api-reference/filter-sets/delete-filter-set.md): DELETE /v1/filter-sets/{filter_set_id} permanently removes a saved filter set from your tenant. System-managed sets are protected and return 403. - [POST /v1/webhooks — Create a Webhook Subscription](https://docs.knock2.ai/api-reference/webhooks/create-webhook.md): POST /v1/webhooks registers a new webhook endpoint for one or more Knock2 event types. Payloads are signed with HMAC-SHA256 for secure delivery. - [GET /v1/webhooks — List Webhook Subscriptions](https://docs.knock2.ai/api-reference/webhooks/list-webhooks.md): GET /v1/webhooks returns all active webhook subscriptions for your Knock2 tenant. Audit registered endpoints or confirm a new subscription was created. - [DELETE /v1/webhooks/{webhook_id} — Remove a Webhook](https://docs.knock2.ai/api-reference/webhooks/delete-webhook.md): DELETE /v1/webhooks/{webhook_id} permanently removes a webhook subscription and stops all event delivery to that endpoint immediately. - [GET /v1/webhooks/{webhook_id}/secret — Get Webhook Signing Key](https://docs.knock2.ai/api-reference/webhooks/get-webhook-secret.md): GET /v1/webhooks/{webhook_id}/secret returns the full signing key for a webhook subscription, used to verify the X-Knock-Signature header on deliveries. - [POST /v1/enrich — Enrich a Contact by Email or LinkedIn URL](https://docs.knock2.ai/api-reference/enrich/enrich-contact.md): POST /v1/enrich looks up a contact by email or LinkedIn URL and returns a merged contact profile. Costs 1 credit per match. Requires the enrichment:write scope. - [GET /v1/me — Verify Your Knock2 API Key](https://docs.knock2.ai/api-reference/auth/verify-key.md): GET /v1/me confirms your API key is valid and returns the tenant (product_slug) it belongs to. Use this as a connection test in integrations. - [POST /v1/tenants — Provision a New Tenant](https://docs.knock2.ai/api-reference/tenants/create-tenant.md): POST /v1/tenants provisions a new isolated Knock2 sub-tenant and returns a one-time API key. Requires tenants:write scope on the parent key. - [GET /v1/tenants — List Your Child Tenants](https://docs.knock2.ai/api-reference/tenants/list-tenants.md): GET /v1/tenants lists your direct child tenants with their current credit allocations and usage. Requires the tenants:read scope. - [GET /v1/tenants/{product_slug} — Get One Tenant](https://docs.knock2.ai/api-reference/tenants/get-tenant.md): GET /v1/tenants/{product_slug} returns one tenant — your own, or a direct child — with its current credit allocation set. Requires tenants:read. - [PATCH /v1/tenants/{product_slug} — Update a Tenant](https://docs.knock2.ai/api-reference/tenants/update-tenant.md): PATCH /v1/tenants/{product_slug} updates a direct child tenant's name and/or domain. Changing domain re-points the tenant's identification providers at the new domain. Requires tenants:write. - [GET /v1/tenants/{product_slug}/scoring-config — Get a Tenant's Lead-Scoring Configuration](https://docs.knock2.ai/api-reference/tenants/get-scoring-config.md): GET /v1/tenants/{product_slug}/scoring-config returns a tenant's Company Profile, Buyer Persona, and scoring weight — the same fields set in the dashboard's ICP settings. Requires tenants:read. - [PATCH /v1/tenants/{product_slug}/scoring-config — Update a Tenant's Lead-Scoring Configuration](https://docs.knock2.ai/api-reference/tenants/update-scoring-config.md): PATCH /v1/tenants/{product_slug}/scoring-config sets a direct child tenant's Company Profile and Buyer Persona — previously dashboard-only. Requires tenants:write. - [POST /v1/tenants/{product_slug}/activate — Reactivate a Tenant](https://docs.knock2.ai/api-reference/tenants/activate-tenant.md): POST /v1/tenants/{product_slug}/activate reverses a prior deactivation — the only self-service path back for a domain whose tenant was previously deactivated. Requires tenants:write. - [DELETE /v1/tenants/{product_slug} — Deactivate a Tenant](https://docs.knock2.ai/api-reference/tenants/delete-tenant.md): DELETE /v1/tenants/{product_slug} deactivates a sub-tenant, stopping its tracking script and visitor identification. Data is retained. - [GET /v1/tenants/{product_slug}/limits — Get a Tenant's Credit Allocations](https://docs.knock2.ai/api-reference/tenants/get-tenant-limits.md): GET /v1/tenants/{product_slug}/limits returns every allocation set on a tenant, with used/remaining for the current window. Requires tenants:read. - [PUT /v1/tenants/{product_slug}/limits — Replace a Tenant's Credit Allocations](https://docs.knock2.ai/api-reference/tenants/put-tenant-limits.md): PUT /v1/tenants/{product_slug}/limits replaces a tenant's entire allocation set. Idempotent — no partial-state ambiguity. Requires tenants:write. - [DELETE /v1/tenants/{product_slug}/limits — Remove a Tenant's Credit Allocations](https://docs.knock2.ai/api-reference/tenants/delete-tenant-limits.md): DELETE /v1/tenants/{product_slug}/limits removes all allocations from a tenant — it becomes unlimited within the parent's own pool. Requires tenants:write. - [GET /v1/tenants/{product_slug}/usage — Get a Tenant's Usage for a Window](https://docs.knock2.ai/api-reference/tenants/get-tenant-usage.md): GET /v1/tenants/{product_slug}/usage returns a tenant's own usage (never its parent's or siblings') for a requested window. Requires tenants:read. - [GET /v1/script — Retrieve Your Tracking Script](https://docs.knock2.ai/api-reference/script/get-script.md): GET /v1/script returns the tracking script URL and a ready-to-embed HTML snippet for your Knock2 tenant. Paste it into your site's head tag. - [GET /v1/script/status — Check Script Installation Status](https://docs.knock2.ai/api-reference/script/script-status.md): GET /v1/script/status checks whether the Knock2 tracking script has fired on your site in the last 7 days and returns visitor count and last visit. - [GET /v1/tenants/{product_slug}/script-config — Get a Tenant's Tracking-Script Exclusion Configuration](https://docs.knock2.ai/api-reference/tenants/get-script-config.md): GET /v1/tenants/{product_slug}/script-config returns pages_to_ignore, the URL path patterns on which the tracking script does not run at all. Requires tenants:read. - [PATCH /v1/tenants/{product_slug}/script-config — Update a Tenant's Tracking-Script Exclusion Configuration](https://docs.knock2.ai/api-reference/tenants/update-script-config.md): PATCH /v1/tenants/{product_slug}/script-config sets pages_to_ignore for your own tenant or a direct child tenant. Requires tenants:write.