# Create a webhook endpoint

## /v1/webhook

<mark style="color:green;">`POST`</mark> `https://api.uiza.io/api-account/owner/v1/webhook`

Set up your webhook endpoint to receive live events from Uiza

#### Headers

| Name           | Type   | Description                     |
| -------------- | ------ | ------------------------------- |
| Authentication | string | Authentication token or Api Key |

#### Request Body

| Name        | Type   | Description                                                                                                                                  |
| ----------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
| url         | string | The URL of the webhook endpoint.                                                                                                             |
| event\_type | array  | The list of events to enable for this endpoint. `[’*’]` indicates that all events are enabled, except those that require explicit selection. |
| status      | string | The status of the webhook. It can be `enabled` or `disabled`.                                                                                |

{% tabs %}
{% tab title="200 Cake successfully retrieved." %}

```
{
  "data": {
    "event_type":["live_entities.created", "live_entities.ready"],
    "id":"960d2199-f8a2-4f68-99db-3a688bda5db1",
    "url":"https://uiza-example.com/webhook",
    "app_id":"095c81e1-8be8-46f1-9dcb-0f8ad54eac8a",
    "signing_secret":"webhook_8fCc3HaU0a-aJT2szrU7",
    "created_by":"fe57cb55-d73f-4a2a-ada6-280248e995af",
    "updated_at":"2021-09-07T14:22:23.183Z",
    "created_at":"2021-09-07T14:22:23.183Z"
  }
}
```

{% endtab %}
{% endtabs %}

> ```
> Sample Request
>
>
> curl --location --request POST 'https://api.uiza.io/api-account/owner/v1/webhook/'        
> --header 'Content-Type: application/json'  --header 'Authorization: '    
> --data-raw '{
>   "url": "https://uiza-example.com/webhook",
>   "status": "enabled",
>   "event_type": [
>     "live_entities.created"
>   ]
> }'
> ```

## /v1/webhook\_endpoints

<mark style="color:green;">`POST`</mark> `https://api.uiza.sh/v1/webhook_endpoints`

#### Request Body

| Name   | Type   | Description                                                                         |
| ------ | ------ | ----------------------------------------------------------------------------------- |
| secret | string | The token used to validate the communication between Uiza and the webhook endpoint. |
| url    | string | The URL of the webhook endpoint.                                                    |

{% tabs %}
{% tab title="200 " %}

```
{
 "id": "f0f207af-b338-4b7f-8d32-fe9cfa9566eb",
 "url": "https://webhook-test.com/live/created",
 "status": "enabled",
 "created_at": "2019-12-16T10:57:32Z",
 "updated_at": "2019-12-16T10:57:32Z"
}
```

{% endtab %}

{% tab title="400 " %}
{% tabs %}
{% tab title="Missing URL" %}

```
{
 "message": "Your request is missing url parameter. Please, verify and resubmit.",
 "error_type": "invalid_request_error"
}
```

{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="401 " %}

```
{
 "message": "You are unauthorized to access the requested resource. Please verify and resubmit.",
 "error_type": "invalid_request_error"
}
```

{% endtab %}

{% tab title="409 " %}

```
{
 "message": "The requested app_id already registered with a webhook.",
 "error_type": "invalid_request_error"
}
```

{% endtab %}

{% tab title="500 " %}

```
{
 "message": "An unexpected error occurred on Uiza's end.",
 "error_type": "api_error"
}
```

{% endtab %}
{% endtabs %}

{% code title="Sample Request" %}

```
curl -X POST https://api.uiza.sh/v1/webhook_endpoints
     -H 'Authorization: uap-c1ffbff4db954ddcb050c6af0b43ba56-41193b64'
     -d '{"url": "https://webhook-test.com/live/created", "secret": "a-secret"}'
```

{% endcode %}
