---
title: "An event, as it is posted to a webhook"
description: "Signed as Standard Webhooks signs (https://www.standardwebhooks.com): `webhook-signature` is `v1,` and the base64 of HMAC-SHA256 over `<webhook-id>.<webhook-timestamp>.<the body>`, keyed with the bytes the webhook's secret is the base64 of (what follows `whsec_`); libraries that check it exist for most languages. A delivery has succeeded when the answer's status is 2xx; another status, no connection, and no answer within 10 seconds are failures, and it is sent again 5 seconds, 5 minutes, 30 minutes, 2 hours, 5 hours, 10 hours and 10 hours later (`--webhook-retry-seconds`), then given up. What is to be sent is in the store: a control plane that starts again goes on with it. The same event may come twice (an answer lost on its way back is a failure here): the receiver tells by `webhook-id`. Sent to the address that was checked to be on the public internet, connected to by that address."
---

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

Path: Glac API

`POST event`

_Webhook._

Signed as Standard Webhooks signs (https://www.standardwebhooks.com): `webhook-signature` is `v1,` and the base64 of HMAC-SHA256 over `<webhook-id>.<webhook-timestamp>.<the body>`, keyed with the bytes the webhook's secret is the base64 of (what follows `whsec_`); libraries that check it exist for most languages. A delivery has succeeded when the answer's status is 2xx; another status, no connection, and no answer within 10 seconds are failures, and it is sent again 5 seconds, 5 minutes, 30 minutes, 2 hours, 5 hours, 10 hours and 10 hours later (`--webhook-retry-seconds`), then given up. What is to be sent is in the store: a control plane that starts again goes on with it. The same event may come twice (an answer lost on its way back is a failure here): the receiver tells by `webhook-id`. Sent to the address that was checked to be on the public internet, connected to by that address.

## Header parameters

- `webhook-id` (`event.header.webhook-id`; string, required) — The event's id: the same each time it is sent.
  - pattern `^evt-[0-9a-hjkmnp-tv-z]{16}$`
- `webhook-timestamp` (`event.header.webhook-timestamp`; string, required) — When it was sent, in seconds since 1970.
  - pattern `^[0-9]+$`
- `webhook-signature` (`event.header.webhook-signature`; string, required) — `v1,<base64>`.
  - pattern `^v1,[A-Za-z0-9+/]{43}=$`

## Request body

_Required._

- `id` (`event.id`; string, required)
  - pattern `^evt-[0-9a-hjkmnp-tv-z]{16}$`
- `object` (`event.object`; string, required)
- `type` (`event.type`; string, required) — Open: a type that is added later is sent to a webhook that takes every type, and a receiver lets pass what it does not know.
- `created_at` (`event.created_at`; string, required) — When the control plane recorded it.
  - format `date-time`
- `data` (`event.data`; object, required) — What the event is about: the schema `x-events` names for its type.

## Example request

```json
{
  "id": "string",
  "object": "event",
  "type": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "data": {}
}
```

## Responses

### 200

Any 2xx: delivered.

### 500

Anything else: sent again later, as said above.


Source: https://glac.ai/docs/api/webhooks/event/index.md
