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.
Endpoints
Section titled “Endpoints”GET https://api.discolike.com/v1/crm/connectionsGET https://api.discolike.com/v1/crm/{provider}/authorizePOST https://api.discolike.com/v1/crm/{provider}/suppressDELETE https://api.discolike.com/v1/crm/{provider}/connection{provider} is one of hubspot, pipedrive, salesforce. An unknown provider returns 404.
List Connections
Section titled “List Connections”GET /crm/connections — returns the CRM connections for your organization.
| Parameter | Description |
|---|---|
| probe | Optional. true live-checks each connection against the provider and returns a fresh status instead of the last stored one. Default false. |
| Field | Type | Description |
|---|---|---|
| provider | String | hubspot, pipedrive, or salesforce |
| status | String | active or needs_reauth |
| connected_at | String | ISO timestamp of when the connection was created, or null |
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.
Authorize
Section titled “Authorize”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.
| Field | Type | Description |
|---|---|---|
| authorize_url | String | Provider OAuth URL to open in a browser |
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=..."}Suppress
Section titled “Suppress”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.
| Parameter | Description |
|---|---|
| kind | companies (default) excludes by domain. contacts resolves the CRM’s contact emails against the DiscoLike contact index and excludes the matching people. |
| Field | Type | Description |
|---|---|---|
| message | String | Confirmation that the snapshot was queued |
| provider | String | Provider snapshotted |
| kind | String | companies or contacts |
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.
Disconnect
Section titled “Disconnect”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.
| Field | Type | Description |
|---|---|---|
| message | String | Confirmation that the connection was deleted |
Returns 404 if there is no connection for that provider.
Rate Limits
Section titled “Rate Limits”These endpoints carry their own per-minute limits, scaled by plan tier on top of the standard multipliers.
| Endpoint | Base limit |
|---|---|
GET /crm/connections | 20 / min |
GET /crm/{provider}/authorize | 10 / min |
POST /crm/{provider}/suppress | 5 / min |
DELETE /crm/{provider}/connection | 10 / min |