> For the complete documentation index, see [llms.txt](https://docs.coresignal.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coresignal.com/api-introduction/webhooks/company-webhooks.md).

# Company Webhooks

Subscribe to company profile changes and receive daily webhook notifications for tracked companies and selected fields.

Company Webhooks alert you when key company profile data fields change. Subscribe to receive automatic updates about the latest changes in the company records that matter to you. Find endpoints and subscription examples in the corresponding topic:

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Company webhooks</td><td><a href="/company-data/api/webhooks.md">Webhooks</a></td></tr></tbody></table>

## Subscription frequency

Delivery frequency depends on the specific API data source you use. Corresponding cadence:

| API source  | Webhooks delivery frequency |
| ----------- | --------------------------- |
| Company API | Daily                       |

## Functionality

1. Choose the companies you want to track, using an IDs list or Elasticsearch DSL filter query.
2. Provide a callback URL to receive notifications.
3. Receive notifications at your URL and retrieve the data using the corresponding APIs collection or Bulk Collect endpoints.

### Subscribe by field

By default, Company Webhooks trigger on **any** change to a tracked profile. The **subscribe by field** feature lets you narrow your subscription to only receive notifications when specific fields are updated.

You still define your tracked population using IDs or Elasticsearch DSL queries. The `tracked_fields` parameter acts as an additional filter on top of that population, specifying which fields to watch.

{% hint style="info" %}

#### **Example**

You are tracking 500 companies by IDs but only care about `skills` changes. By adding `"tracked_fields": ["skills"]` to your subscription request, you will only receive webhooks when the `skills` field is updated – all other field changes are ignored.
{% endhint %}

### Webhook triggers

The following company profile fields are tracked for changes. When any of these fields are updated, a webhook notification is sent.

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Company webhook triggers</td><td><a href="/company-data/api/webhooks.md#webhook-triggers">Webhooks</a></td></tr></tbody></table>

## Webhook payload

Each webhook notification includes the following fields:

* `company_id` – The ID of the company profile that was updated.
* `status` – The type of change detected (see status values below).
* `changed_fields` – An array listing the specific fields that were modified on the profile.

{% code title="Example payload" %}

```json
[
  {
    "company_id": 125,
    "status": "changed",
    "changed_fields": ["description", "industry"]
  }
]
```

{% endcode %}

The `changed_fields` array tells you exactly which parts of the profile were modified. You can use this to decide whether to retrieve the full updated profile or skip the notification based on your use case.

## Status values

| Status                   | Description                                                                                                                                                                                                         |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `started_matching_query` | Profiles that previously did not match your filters have been updated to meet your criteria. *Example:* the industry was updated and now matches your subscribed query.                                             |
| `stopped_matching_query` | Profiles that once matched your filters have been updated and no longer match. *Example:* the industry changed from `Insurance` to `Insurance Agencies and Brokerages`.                                             |
| `changed`                | One or more tracked fields on the profile were updated. The `changed_fields` array in the payload shows which specific fields were modified. To retrieve the new values, use the Collect or Bulk Collect endpoints. |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.coresignal.com/api-introduction/webhooks/company-webhooks.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
