Skip to main content
PUT
/
crm
/
companies
Assert a CRM company (upsert)
curl --request PUT \
  --url https://api.zeeg.me/v2/crm/companies \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Acme Corp",
  "domain": "acme.com",
  "description": "<string>",
  "websiteUrl": "<string>",
  "primaryLocation": "<string>",
  "socials": {
    "linkedin": "<string>",
    "twitter": "<string>",
    "facebook": "<string>",
    "instagram": "<string>"
  }
}
'
{
  "success": true,
  "status": 200,
  "company": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "name": "Acme Corp",
    "domain": "acme.com",
    "description": "A global provider of anvils and gadgets.",
    "websiteUrl": "https://acme.com",
    "primaryLocation": "Phoenix, AZ",
    "industries": [
      "technology"
    ],
    "socials": {
      "linkedin": "https://linkedin.com/company/acme",
      "twitter": null,
      "facebook": null,
      "instagram": null
    },
    "customAttributes": {},
    "createdAt": "2025-01-15T09:00:00+00:00",
    "updatedAt": "2025-06-01T12:00:00+00:00"
  }
}

Documentation Index

Fetch the complete documentation index at: https://developer.zeeg.me/llms.txt

Use this file to discover all available pages before exploring further.

Creates or updates a CRM company record using a unique attribute to find an existing match.
  • If a company with the same domain is found → it is updated and 200 is returned.
  • If no match is found → a new company is created and 201 is returned.

Matching attribute

The matchingAttribute query parameter specifies which field to use for the lookup. Currently only domain is supported, as it is the only unique attribute on companies.
PUT /v2/crm/companies?matchingAttribute=domain

Use case

Assert is the recommended endpoint for bulk imports and sync jobs. Send your full company payload and let the API decide whether to create or update — no need to pre-check for duplicates.
{
  "name": "Acme Corp",
  "domain": "acme.com",
  "websiteUrl": "https://acme.com",
  "primaryLocation": "Berlin, Germany",
  "socials": {
    "linkedin": "https://linkedin.com/company/acme"
  }
}

Authorizations

Authorization
string
header
required

Query Parameters

matchingAttribute
enum<string>
required

Attribute to use when searching for an existing company. Only domain is supported.

Available options:
domain

Body

application/json
name
string
required
Example:

"Acme Corp"

domain
string | null
Example:

"acme.com"

description
string | null
websiteUrl
string | null
primaryLocation
string | null
socials
object

Response

Updated — a company with the matching domain was found and updated

success
boolean
Example:

true

status
integer
Example:

200

company
object

A CRM company record.

Last modified on May 7, 2026