Creates or updates a CRM company using a unique attribute to find an existing match.
200 is returned.201 is returned.This 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.
Required scope: crm:write
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"
}
}Creates or updates a CRM company record using a unique attribute to find an existing match.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.
domain is found → it is updated and 200 is returned.201 is returned.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
{
"name": "Acme Corp",
"domain": "acme.com",
"websiteUrl": "https://acme.com",
"primaryLocation": "Berlin, Germany",
"socials": {
"linkedin": "https://linkedin.com/company/acme"
}
}
Attribute to use when searching for an existing company. Only domain is supported.
domain "Acme Corp"
"acme.com"
Updated — a company with the matching domain was found and updated
true
200
A CRM company record.
Hide child attributes
Unique identifier for the company record.
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
Display name of the company.
"Acme Corp"
Primary domain. Unique within the workspace. Used as the matching attribute for upsert.
"acme.com"
Free-text description of the company.
"A global provider of anvils and gadgets."
Company website URL.
"https://acme.com"
Primary location or address.
"Phoenix, AZ"
List of industry IDs assigned to the company.
["technology"]Key/value pairs for custom attributes defined on the companies object.
{}ISO 8601 timestamp when the record was created.
"2025-01-15T09:00:00+00:00"
ISO 8601 timestamp when the record was last updated.
"2025-06-01T12:00:00+00:00"
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"
}
}