# Webhooks

Webhooks are the most efficient way to keep your application up-to-date with the latest state changes. Instead of manually polling for updates, our webhooks notify your system the moment new data is processed and ready for use.

If you want a direct freshness check between webhook events, use [HyperTracker State](/endpoints/hypertracker-state-check.md).

**How it works**

Our system follows a consistent cycle to ensure you are always working with the most accurate information:

1. Node Updates: Approximately every 15–20 minutes, our nodes refresh with the latest state.
2. Aggregation: Immediately after the refresh, we perform complex data aggregations to prepare your results.
3. The Ping: As soon as the new state is ready, we send an automated "ping" (a POST request) to your designated webhook URL.
4. Automatic Retrieval: Once your system receives this notification, it can automatically trigger a query to fetch the fresh results and update your local data.

Payload looks like this:

```
{
      event: "stateUpdated",
      timestamp: new Date().toISOString(),
      data: {},
}
```

***

Need a hand? If you’re new to setting up webhooks or run into any trouble getting your endpoint to listen reach out to our support team. We’re here to help you get synced up!


---

# Agent Instructions: 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 current page URL with the `ask` query parameter:

```
GET https://docs.coinmarketman.com/webhooks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
