Skip to main content
POST
/
companies
/
sync
{
  "companies": [
    {
      "externalId": "company-123",
      "name": "Acme Corporation",
      "domain": "acme.com",
      "linkedinUrl": "https://linkedin.com/company/acme"
    },
    {
      "externalId": "company-456",
      "domain": "unknown-company.com"
    }
  ]
}
{
  "results": [
    {
      "externalId": "company-123",
      "crmId": "account_4k8j2m",
      "properties": {
        "accountTier": "Enterprise",
        "totalDeals": 5,
        "lifetimeValue": 250000
      }
    }
  ]
}

Your Implementation Required

This endpoint must be implemented on your server
Enginy calls this endpoint to find which companies already exist in your CRM. Your CRM decides the matching logic (by domain, name, LinkedIn URL, etc.).

Request

companies
array
required
Array of company objects to find

Company Object

externalId
string
required
Enginy’s internal company ID
domain
string
Domain for matching (normalize before comparing)
linkedinUrl
string
LinkedIn URL for matching
name
string
Company name for matching
{
  "companies": [
    {
      "externalId": "company-123",
      "name": "Acme Corporation",
      "domain": "acme.com",
      "linkedinUrl": "https://linkedin.com/company/acme"
    },
    {
      "externalId": "company-456",
      "domain": "unknown-company.com"
    }
  ]
}

Response

Return only companies that exist in your CRM.
results
array
required
Array of matched companies
results[].externalId
string
required
The externalId from the request
results[].crmId
string
required
Your CRM’s ID for this company
results[].properties
object
Optional properties to sync back to Enginy
{
  "results": [
    {
      "externalId": "company-123",
      "crmId": "account_4k8j2m",
      "properties": {
        "accountTier": "Enterprise",
        "totalDeals": 5,
        "lifetimeValue": 250000
      }
    }
  ]
}
Domain Normalization: Always normalize domains before matching (remove www., protocol, trailing slashes).