> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Outbound webhooks overview

> Get signed HTTPS requests from Base44 when an app in your workspace changes or the AI finishes working on a message, without polling for it.

Outbound webhooks send a signed HTTPS request to your service when an app in your workspace changes, or when the AI starts or finishes working on a message. Instead of polling for new or updated apps, your system hears about each change as it happens, including deletes.

Use outbound webhooks to:

* Keep your own records in sync when apps are created, published, taken offline, moved to trash or restored.
* Start your own workflows when an app goes live.
* Know when the AI has finished working on a message you sent, without polling.
* Build a platform on Base44 that reacts to what your customers do in their workspaces.

> [!WARNING]
>
> Outbound webhooks are available on the Business and Enterprise plans.

***

## How it works

You register an HTTPS URL, called an endpoint, and choose the events it receives. Base44 then sends each matching event to that URL as a JSON `POST`.

1. **Register an endpoint.** In your workspace settings, or with a workspace API key. See [Setting up endpoints](https://docs.base44.com/developers/references/outbound-webhooks/get-started/setting-up-endpoints.md).
2. **Activate it.** Base44 sends a signed `webhook.test.v1` event, and your receiver returns its `data.challenge` value. When you register with the API, this happens in the same call. Until then the endpoint stays **Pending** and receives nothing.
3. **Verify each request.** Every request is signed with your workspace's Ed25519 key. See [Verifying requests](https://docs.base44.com/developers/references/outbound-webhooks/get-started/verifying-requests.md).
4. **Handle retries.** Delivery is at least once, so the same event can arrive more than once. See [Delivery and retries](https://docs.base44.com/developers/references/outbound-webhooks/get-started/delivery-and-retries.md).

***

## Request format

Each request body is a [CloudEvents 1.0](https://cloudevents.io/) JSON document, signed with the [Standard Webhooks](https://www.standardwebhooks.com/) headers. The `data` object carries identifiers, timestamps and fixed status values only, never app content or personal data.

```json theme={null}
{
  "specversion": "1.0",
  "id": "evt_68c1d2e3f4a5b6c7d8e9f0a1",
  "source": "https://base44.com/workspaces/68a1b2c3d4e5f6a7b8c9d0e1",
  "type": "app.published.v1",
  "subject": "apps/68b0c1d2e3f4a5b6c7d8e9f0",
  "time": "2026-09-01T10:15:30.123Z",
  "datacontenttype": "application/json",
  "dataschema": "https://base44.com/webhooks/schemas/app.published.v1.json",
  "authtype": "user",
  "authid": "6899aabbccddeeff00112233",
  "data": {
    "app_id": "68b0c1d2e3f4a5b6c7d8e9f0",
    "workspace_id": "68a1b2c3d4e5f6a7b8c9d0e1",
    "owner_id": "6899aabbccddeeff00112233",
    "published_version": "68c2d3e4f5a6b7c8d9e0f1a2",
    "published_at": "2026-09-01T10:15:30.123Z"
  }
}
```

For every event type and its fields, see [Event types](https://docs.base44.com/developers/references/outbound-webhooks/get-started/event-types.md).

***

## Limits

These limits apply to every workspace.

| Limit | Value |
| - | - |
| Endpoints per workspace | 10 |
| Event size | 64 KB |
| Time your receiver has to answer a delivery | 15 seconds |
| Time your receiver has to answer the activation test | 5 seconds |
| Delivery attempts per event | 8, over about 27.5 hours |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.