> ## 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.

> ## Agent Instructions
> Internal links on these pages omit the .md extension. Append .md to a docs page URL, or send an Accept: text/markdown header, to get that page as markdown.

# Outbound webhooks overview

> Get signed HTTPS requests from Base44 when an app in your workspace is created, published, taken offline, moved to trash or restored, without polling for it.

Outbound webhooks send a signed HTTPS request to your service when an app in your workspace changes. 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.
* 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.
</Warning>

***

## 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](/developers/references/outbound-webhooks/get-started/setting-up-endpoints).
2. **Activate it.** Base44 sends a signed test event, and your receiver echoes back the code it contains. 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](/developers/references/outbound-webhooks/get-started/verifying-requests).
4. **Handle retries.** Delivery is at least once, so the same event can arrive more than once. See [Delivery and retries](/developers/references/outbound-webhooks/get-started/delivery-and-retries).

***

## What each request looks like

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 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](/developers/references/outbound-webhooks/get-started/event-types).

***

## 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.