Skip to main content
Important: This section describes the API endpoint that your system must implement to receive companies from Enginy. This is not a Enginy API endpoint — it is the interface specification that Enginy will call on your CRM.

Overview

When exporting companies from Enginy, Enginy will call your /companies endpoint to create companies in batch. Your endpoint must accept the companies and return the CRM IDs for each created company.
Companies are created before contacts during export, so contact-company associations can be established.

Create Companies

Your Implementation Required

This endpoint must be implemented on your server
Enginy calls this endpoint to create companies in your CRM.

Request

POST /companies
Content-Type: application/json
X-API-Key: <your-api-key>

Request Body

{
  "companies": [
    {
      "externalId": "789",
      "name": "Acme Inc",
      "domain": "acme.com",
      "industry": "Technology",
      "numberOfEmployees": 150,
      "linkedinUrl": "https://linkedin.com/company/acme"
      // ... additional fields
    }
  ]
}

Request Fields

FieldTypeDescription
companiesarrayArray of company objects to create
companies[].externalIdstringRequired. Enginy’s internal company ID. Use this to map responses back.
companies[].namestringCompany name
companies[].domainstringCompany website domain
companies[].industrystringIndustry classification
companies[].numberOfEmployeesnumberNumber of employees
companies[].linkedinUrlstringLinkedIn company page URL
companies[].ownerIdstringOwner/assignee ID from your /users endpoint (if users are supported)
Additional fields from the company record will be included. Your CRM should gracefully handle unknown fields.
Owner Assignment: If you implement the optional /users endpoint, Enginy will include an ownerId field when the user selects an owner during export. This allows companies to be assigned to specific CRM users.

Common Additional Fields

These fields may be included depending on the company data in Enginy:
FieldTypeDescription
descriptionstringCompany description
locationstringCompany headquarters location
foundedYearnumberYear the company was founded
revenuestringRevenue range
companyTypestringCompany type (public, private, etc.)
technologiesUsedstringTechnologies detected on company website
campaignsstringAssociated campaign names
lastContactedBystringLast identity that contacted leads at this company
leadCountriesstringCountries of leads at this company
numberOfCountriesnumberNumber of countries with leads

Financial Data Fields (if available)

FieldTypeDescription
fundingTotalstringTotal funding raised
fundingStagestringCurrent funding stage
lastFundingAtstringDate of last funding round (ISO format)
lastFundingTypestringType of last funding (Series A, B, etc.)
lastFundingTotalstringAmount raised in last round
numFundingRoundsnumberTotal number of funding rounds
numInvestorsnumberNumber of investors
companyLeadInvestorstringLead investor name

Response

Return a 201 Created status with the created company IDs.
{
  "results": [
    {
      "externalId": "789",
      "crmId": "crm-company-012"
    }
  ]
}
FieldTypeDescription
resultsarrayArray of created company mappings
results[].externalIdstringThe externalId from the request
results[].crmIdstringRequired. Your CRM’s ID for this company

Batch Size

Enginy sends companies in batches of up to 100 companies per request. Your endpoint should be able to handle this batch size efficiently.

Testing Your Endpoint

Test your companies endpoint with this curl command:
curl -X POST https://your-crm.com/companies \
  -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "companies": [
      {
        "externalId": "test-789",
        "name": "Test Company",
        "domain": "testcompany.com",
        "industry": "Technology"
      }
    ]
  }'
Expected response:
{
  "results": [
    {
      "externalId": "test-789",
      "crmId": "your-crm-company-id-here"
    }
  ]
}

Next Steps