Skip to content

CRM API [Beta]

Connect a CRM to DiscoLike and keep discovery aware of what is already in your pipeline. Supported providers: hubspot, pipedrive, salesforce.

These endpoints are in beta — flows are live end-to-end, but expect changes while hardening completes.

The sync operations (import, match, write-back, audit, contact enrichment) are not part of the public REST surface. Run them from the app under Settings > Integrations, or through the MCP CRM tools.

GET https://api.discolike.com/v1/crm/connections
GET https://api.discolike.com/v1/crm/{provider}/authorize
POST https://api.discolike.com/v1/crm/{provider}/suppress
DELETE https://api.discolike.com/v1/crm/{provider}/connection

{provider} is one of hubspot, pipedrive, salesforce. An unknown provider returns 404.

GET /crm/connections — returns the CRM connections for your organization.

ParameterDescription
probeOptional. true live-checks each connection against the provider and returns a fresh status instead of the last stored one. Default false.
FieldTypeDescription
providerStringhubspot, pipedrive, or salesforce
statusStringactive or needs_reauth
connected_atStringISO timestamp of when the connection was created, or null
Terminal window
curl "https://api.discolike.com/v1/crm/connections?probe=true" \
-H "x-discolike-key: API_KEY"
[
{
"provider": "hubspot",
"status": "active",
"connected_at": "2026-05-14T09:12:44+00:00"
}
]

A needs_reauth status means the stored token no longer works — reconnect from the app before running any CRM operation.

GET /crm/{provider}/authorize — mints a provider OAuth authorize URL bound to a single-use state token that expires after 10 minutes. Send the user to authorize_url; the provider redirects back to DiscoLike, which stores the connection.

FieldTypeDescription
authorize_urlStringProvider OAuth URL to open in a browser
Terminal window
curl "https://api.discolike.com/v1/crm/hubspot/authorize" \
-H "x-discolike-key: API_KEY"
{
"authorize_url": "https://app.hubspot.com/oauth/authorize?response_type=code&client_id=..."
}

POST /crm/{provider}/suppress — snapshots the connected CRM into a saved exclusion list, so companies or people already in your pipeline stop surfacing in discovery. Returns 202 immediately; the snapshot runs as a background job and the list appears under Saved Queries when it finishes.

ParameterDescription
kindcompanies (default) excludes by domain. contacts resolves the CRM’s contact emails against the DiscoLike contact index and excludes the matching people.
FieldTypeDescription
messageStringConfirmation that the snapshot was queued
providerStringProvider snapshotted
kindStringcompanies or contacts
Terminal window
curl -X POST "https://api.discolike.com/v1/crm/hubspot/suppress?kind=companies" \
-H "x-discolike-key: API_KEY"
{
"message": "CRM snapshot queued",
"provider": "hubspot",
"kind": "companies"
}

CRM contacts whose email DiscoLike has never seen are skipped — they cannot appear in results anyway.

Pass the resulting query’s ID as exclusion_query_id on Discover or Contacts to apply the suppression.

DELETE /crm/{provider}/connection — removes the connection and its integration record.

Requires an admin app session, not an API key. Run it from Settings > Integrations in the app.

FieldTypeDescription
messageStringConfirmation that the connection was deleted

Returns 404 if there is no connection for that provider.

These endpoints carry their own per-minute limits, scaled by plan tier on top of the standard multipliers.

EndpointBase limit
GET /crm/connections20 / min
GET /crm/{provider}/authorize10 / min
POST /crm/{provider}/suppress5 / min
DELETE /crm/{provider}/connection10 / min