# Homey.webhooks' API is undefined/unavailable

**URL:** <https://community.homey.app/t/homey-webhooks-api-is-undefined-unavailable/139534>\
**Category:** Questions & Help\
**Created:** [July 10, 2025, 7:17am UTC](https://community.homey.app/t/homey-webhooks-api-is-undefined-unavailable/139534 "2025-07-10T07:17:45Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yestond](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/yestond/32/9807_2.png) [@Yestond](https://community.homey.app/u/Yestond)\
**Post date:** [July 10, 2025, 7:17am UTC](https://community.homey.app/t/homey-webhooks-api-is-undefined-unavailable/139534/1 "2025-07-10T07:17:45Z")

</div>

Hi everyone,

I’m trying to create an integration to control the brightness of a light group on my Homey Pro using the physical wheel on my Beoremote Halo.

The correct method for this seems to be using the Halo’s “Extensions” API, which sends an HTTP request (webhook) to Homey for each wheel turn. To receive this, I’m trying to create a webhook from within a HomeyScript.

**The Problem**

My issue is that the `Homey.webhooks` API seems to be completely unavailable on my Homey Pro (2023).

When I run a very simple test script to isolate the issue, it fails immediately. The script checks for the existence of `Homey.webhooks` and returns `undefined` .

Here is the minimalist test script I’m using:

```auto
// Minimalist test script
log('Starting simple Webhook test...');

async function runTest() {
  if (!Homey.webhooks) {
    log('❌ Critical Error: Homey.webhooks API is not available.');
    return;
  }
  log('✅ Webhooks API is available.');
  // ... rest of the creation logic
}

runTest();

```

The output is always: `❌ Critical Error: Homey.webhooks API is not available.`

**Troubleshooting Done:**

- I have confirmed I am running on a **Homey Pro (2023)** , not a Bridge.
- I have **rebooted the Homey Pro** multiple times, but the issue persists.
- I have confirmed that **Flow webhooks work correctly**. I can trigger a Flow from Postman without any issues. The problem is isolated to the `Homey.webhooks` API used by HomeyScript.

Has anyone else experienced this issue where the `Homey.webhooks` object is undefined on a Homey Pro? It seems like a core service is not running, and I’m looking for ideas before I contact Athom support directly.

Thanks for any help!

---

<div class="post-metadata">

**Author:** ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)\
**Post date:** [July 10, 2025, 7:23am UTC](https://community.homey.app/t/homey-webhooks-api-is-undefined-unavailable/139534/2 "2025-07-10T07:23:41Z")

</div>

> [@Yestond](#):
>
> My issue is that the `Homey.webhooks` API seems to be completely unavailable on my Homey Pro (Early 2019).

Why do you think `Homey.webhooks` should exist? Where is it documented?

---

<div class="post-metadata">

**Author:** ![Yestond](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/yestond/32/9807_2.png) [@Yestond](https://community.homey.app/u/Yestond)\
**Post date:** [July 10, 2025, 7:31am UTC](https://community.homey.app/t/homey-webhooks-api-is-undefined-unavailable/139534/3 "2025-07-10T07:31:52Z")

</div>

Beacuse Gemini told me 😂  
Maybe I should let Gemini vacuum the documentation before trusting it blindly 😉  
But you’re telling me there’s no such thing?

---

<div class="post-metadata">

**Author:** ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)\
**Post date:** [July 10, 2025, 7:36am UTC](https://community.homey.app/t/homey-webhooks-api-is-undefined-unavailable/139534/4 "2025-07-10T07:36:33Z")

</div>

> [@Yestond](#):
>
> Beacuse Gemini told me

Gemini, and other LLM’s (remember, they’re not “AI”, they’re glorified autocompletes), just make sh\*t up as they go along 🤷🏼‍♂️

> [@Yestond](#):
>
> But you’re telling me there’s no such thing?

No, there’s no such thing.

You _can_ create webhooks, but only using the [SDK](https://apps.developer.homey.app/cloud/webhooks), which means writing an actual app. You can’t use these API’s from HomeyScript.

But flow webhooks are probably much easier to use anyway, and will cover most use cases.

---

<div class="post-metadata">

**Author:** ![Yestond](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/yestond/32/9807_2.png) [@Yestond](https://community.homey.app/u/Yestond)\
**Post date:** [July 10, 2025, 7:51am UTC](https://community.homey.app/t/homey-webhooks-api-is-undefined-unavailable/139534/5 "2025-07-10T07:51:15Z")

</div>

Gemini is very persistent.

_You are correct that for building a full Homey App, one would use the App SDK and the methods described in that part of the developer documentation._

_However, I believe there is a separate, simplified API available specifically within the **HomeyScript** environment on the Homey Pro. I am referring to the `Homey.webhooks` object._

_While it seems to be poorly documented on the main HomeyScript reference page, its existence and usage are confirmed by expert users and developers in various threads on this community forum. It appears to be a convenience wrapper provided by Athom to allow for simple, programmatic webhook creation directly from a script without needing to build and install a full app._

_My core issue is that on my specific Homey Pro unit, the `Homey.webhooks` object is `undefined` , while for other users it seems to be a valid object with a `createWebhook()` method. This happens even after multiple reboots._

_This strongly suggests that the problem is not that the API doesn’t exist, but rather that the service providing this API is failing to start correctly on my specific device._

_This code is from Athom’s official documentation_

_const myWebhook = await this.homey.cloud.createWebhook(id, secret, data);_

_myWebhook.on(‘message’, args =\> {_

- this.log(‘Got a webhook message!’);\*
- this.log(‘headers:’, args.headers);\*
- this.log(‘query:’, args.query);\*
- this.log(‘body:’, args.body);\*  
_});_

_You can find it here:_  
_[Webhooks | Homey Apps SDK](https://apps.developer.homey.app/cloud/webhooks)_

---

<div class="post-metadata">

**Author:** ![Yestond](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/yestond/32/9807_2.png) [@Yestond](https://community.homey.app/u/Yestond)\
**Post date:** [July 10, 2025, 7:58am UTC](https://community.homey.app/t/homey-webhooks-api-is-undefined-unavailable/139534/6 "2025-07-10T07:58:36Z")

</div>

And btw @robertklep I don’t doubt your talent at all. I know you’re a huge contributor to the community and an excellent developer as well. I just want to make sure that there is no hidden gem somewhere that lets me use the suggested approach from Gemini 🙂

Thank you again 🙏

---

<div class="post-metadata">

**Author:** ![Rmb](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/rmb/32/79135_2.png) [@Rmb](https://community.homey.app/u/Rmb)\
**Post date:** [July 10, 2025, 8:26am UTC](https://community.homey.app/t/homey-webhooks-api-is-undefined-unavailable/139534/7 "2025-07-10T08:26:10Z")

</div>

> [@Yestond](#):
>
> I just want to make sure that there is no hidden gem somewhere

Would you use an undocumented feature?

---

<div class="post-metadata">

**Author:** ![Yestond](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/yestond/32/9807_2.png) [@Yestond](https://community.homey.app/u/Yestond)\
**Post date:** [July 10, 2025, 8:57am UTC](https://community.homey.app/t/homey-webhooks-api-is-undefined-unavailable/139534/8 "2025-07-10T08:57:03Z")

</div>

Nope 🙂

I’ll try to figure out another way to make it work 🙂  
Thank you for the reply 🙏

---

<div class="post-metadata">

**Author:** ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)\
**Post date:** [July 10, 2025, 9:14am UTC](https://community.homey.app/t/homey-webhooks-api-is-undefined-unavailable/139534/9 "2025-07-10T09:14:59Z")

</div>

> [@Yestond](#):
>
> Gemini is very persistent.

You’re being gaslighted.

---

<div class="post-metadata">

**Author:** ![Rmb](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/rmb/32/79135_2.png) [@Rmb](https://community.homey.app/u/Rmb)\
**Post date:** [July 10, 2025, 9:37am UTC](https://community.homey.app/t/homey-webhooks-api-is-undefined-unavailable/139534/10 "2025-07-10T09:37:54Z")

</div>

Why not doing it the easy way?

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/8/f/8fd98d1638c993bb99560984ea92cc60bd13c46f.jpeg)

See documentation (found by googling Homey Webhook): [https://support.homey.app/hc/en-us/articles/18292876827548-Using-Webhooks-with-Homey](https://support.homey.app/hc/en-us/articles/18292876827548-Using-Webhooks-with-Homey)

---

<div class="post-metadata">

**Author:** ![Yestond](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/yestond/32/9807_2.png) [@Yestond](https://community.homey.app/u/Yestond)\
**Post date:** [July 10, 2025, 9:56am UTC](https://community.homey.app/t/homey-webhooks-api-is-undefined-unavailable/139534/11 "2025-07-10T09:56:29Z")

</div>

I’ll see what I can do 🙂
