Skip to main content

Overview

The WhiteWhale API gives you full programmatic access to your account data, signals, users, and Account Suggestions. Common use cases:
  • Pipe WhiteWhale data into tools not covered by native integrations
  • Build your own CRM integration
  • Automate account uploads and status changes
  • Embed WhiteWhale signal data into your own platform or internal tooling
Base URL: https://app.getwhitewhale.com/v1 API Docs: https://app.getwhitewhale.com/api_docs

Authentication

Every request requires two headers:

Getting your API key

The API key is shared across your whole team — one key per WhiteWhale instance.
1

Go to Settings

Click Settings in the left nav.
2

Scroll to API & Webhooks

Find the API & Webhooks section — it manages both programmatic access and event delivery.
3

Click Generate API Key

Your active API key will appear. Copy it and store it securely for the team.
Generating Api Key
Keep your API key secure and do not share it publicly or commit it to version control. Anyone with this key has full API access to your WhiteWhale instance.

Rate limits & global errors

Rate limit: 600 requests per minute, global across all routes.

Endpoints

Accounts

Returns WhiteWhale data for your accounts. Filter by specific domains, status, or ICP. Includes signal data and account details.Key parameters:Response: Array of Account objects including name, score, status, signal answers, and account details (LinkedIn URL, industry, employee count, etc.)
Upload one or more accounts by domain. By default, accounts are first sent to Account Suggestions for pre-scoring before being activated.Body:
If farsight: true (default), uploaded accounts land in Account Suggestions and must be activated. If you have a webhook configured, you’ll receive a pre-score payload when they’re ready. If farsight: false, accounts are immediately active and will consume credits.
Change the status of one or more accounts. Activating accounts consumes credits.Body:
Pass in a list of raw URLs and get back the normalized domains as WhiteWhale will store them. Useful for validating your input before uploading.Body:

Signals

Returns the list of signal question formats the platform supports. Use these to validate signal text before adding via the API.Response: Array of Template objects with the question format, a title, whether the template is complete, and examples for templates with placeholders.
Add one or more signals programmatically. Signals must match a template format from /v1/get_signal_templates, unless ignore_templates: true is set.Body:Each signal object:Signal rank behavior:
  • 0 — any account matching this signal is set to an arbitrary negative score. Use to disqualify accounts.
  • 6 — Account Suggestions uses High-ranked signals to find new accounts. At least one signal of rank 6 is required for Account Suggestions to work.
Delete a signal from an ICP by signal ID. Retrieve signal IDs from /v1/get_user_data.Body:

Users

Returns signals, ICPs, remaining credits, and active account count for the authenticated user.Response: UserOverview object with:
  • icps — list of ICP names
  • icp_id_dict — map of ICP name → ICP ID
  • signals — all signals across the user’s ICPs
  • credits_remaining — remaining account credits
  • active_accounts — current active account count
Returns an array of UserOverview objects for every user in your WhiteWhale instance. Requires admin authentication.
Programmatically invite a new user to your WhiteWhale instance.Body:Errors: 403 if out of user seats. 409 if a user with that email already exists.
Remove a user from your instance. Requires the authenticating user to be an admin.Body:Errors: 403 if the user is not in your organization.

Account Suggestions (ICP)

Returns details for one or all ICPs in your instance, including signals, Account Suggestions mode, and constraints.Parameters:
Creates a new ICP as a child of your Master ICP. The new ICP inherits the Master ICP’s signals.Body:Errors: 400 if an ICP with that name already exists.
Switches one or more accounts to a different ICP.Body:
This operation can take as long as adding a new account. Plan accordingly for large batches.
Deletes an ICP and all its associated accounts and signals. Cannot be used to delete a Master ICP.Body:Errors: 400 if ICP not found for user. 403 if attempting to delete a Master ICP.
Activates or deactivates Account Suggestions for an ICP.Body:
At least one signal of rank 6 (High) is required for Account Suggestions to find new accounts. Account Suggestions runs automatically at 3:00 UTC daily. To trigger immediately, use /v1/icp/run_farsight.
Triggers an immediate Account Suggestions run for the specified ICP. Can only be called once every 2 hours.Body:
Update the geography and industry constraints for Account Suggestions. Filters take effect immediately and will reject any queued accounts that fall outside the new parameters.Body:Use ISO 3166-1 alpha-2 codes for countries, two-digit codes for US states. Retrieve valid codes from /v1/utilities/location_codes and valid industries from /v1/utilities/industries.
Sets minimum and maximum employee count for Account Suggestions. Accounts outside this range are automatically rejected.Body:

Webhook

Sets the webhook endpoint for your account. WhiteWhale will POST signal and account events to this URL automatically.Body:See the Webhooks page for full payload documentation.
Sends a test payload to your registered webhook endpoint and returns the payload in the response so you can inspect it.Body:
The payload returned via this route is unsigned. The actual test payload delivered to your webhook endpoint will be signed.

Utilities

Returns a dictionary of valid country and state codes accepted by the API. Use these when setting Account Suggestions geography constraints.
Returns all valid industry strings accepted by the API. Maps to LinkedIn’s industry taxonomy.

Webhooks

Full payload reference and setup guide for WhiteWhale webhook events.

Clay

Connect WhiteWhale to Clay via webhook or CSV export.

HubSpot

Native HubSpot integration for CRM sync.

Salesforce

Native Salesforce integration for CRM sync.