# Webhooks

## List Webhooks

<mark style="color:blue;">`GET`</mark> `https://{subdomain}.everreal.co/api/external-integrations/webhooks`

Endpoint responsible for list all webhooks url registered in EverReal.&#x20;

#### Headers

| Name          | Type   | Description  |
| ------------- | ------ | ------------ |
| Authorization | string | Bearer Token |

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

```javascript
[
    {
        "id": "01dd383b-9106-4921-bb53-aasdfa3",
        "type": "LISTING_CREATED",
        "partnerId": "01dd383b-9106-4921-bb53-aasdfa3",
        "companyId": "01dd383b-9106-4921-bb53-aasdfa3",
        "connectedByUserId": "01dd383b-9106-4921-bb53-aasdfa3",
        "url": "https://collect2.com/api/01dd383b-9106-4921-bb53-aasdfa3/datarecord/",
        "createdAt": "2020-09-30T10:07:28.052Z",
        "updatedAt": "2020-09-30T10:07:28.052Z",
        "deletedAt": null
    }
]
```

{% endtab %}

{% tab title="403 User not authorized" %}

```javascript
{
    "code": "server_error",
    "statusCode": 403
}
```

{% endtab %}
{% endtabs %}

## Register a new Webhook

<mark style="color:green;">`POST`</mark> `https://{subdomain}.everreal.co/api/external-integrations/webhooks`

Webhook in EverReal server.

#### Headers

| Name          | Type   | Description  |
| ------------- | ------ | ------------ |
| Authorization | string | Bearer Token |

#### Request Body

| Name         | Type   | Description                                                                                                 |
| ------------ | ------ | ----------------------------------------------------------------------------------------------------------- |
| Body Request | object | <p><code>{</code><br><code>"type":"string",</code><br><code>"url":"string"</code><br><code>}</code><br></p> |

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

```javascript
// Response Header
{
"Location": "d32d5912-4496-4398-814e-a734ccadb615"
}
```

{% endtab %}
{% endtabs %}

## Delete a Webhook

<mark style="color:red;">`DELETE`</mark> `https://{subdomain}.everreal.co/api/external-integrations/webhooks/:id`

Deletes a webhook by its unique ID.

#### Path Parameters

| Name | Type   | Description                     |
| ---- | ------ | ------------------------------- |
| :id  | string | Webhook id provided by EverReal |

#### Headers

| Name          | Type   | Description  |
| ------------- | ------ | ------------ |
| Authorization | string | Bearer Token |

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

{% endtab %}
{% endtabs %}

## Event Types

Below is a list of all events available in EverReal.

{% hint style="info" %}
Each event type has its own data structure used when notifying the external system - on webhooks sub pages we provide details for each event type and data type.
{% endhint %}

<table><thead><tr><th width="150">Events</th><th>List of available actions</th></tr></thead><tbody><tr><td><strong>Listing events</strong></td><td><code>LISTING_CREATED</code> | <code>LISTING_UPDATED</code> | <code>LISTING_ARCHIVED</code> | <code>LISTING_ACTIVATED</code> | <code>LISTING_DEACTIVATED</code> | <code>LISTING_PUBLISHED_TO_CHANNEL</code> | <code>LISTING_UNPUBLISHED_FROM_CHANNEL</code></td></tr><tr><td><strong>Candidates events</strong></td><td><code>CANDIDATE_PARSED</code> | <code>LISTING_CANDIDATE_APPLIED</code></td></tr><tr><td><strong>Scheduling events</strong></td><td><code>LISTING_CANDIDATE_SCHEDULE_INVITED_VIEWING</code> | <code>LISTING_CANDIDATE_SCHEDULE_NEW_TIMESLOTS_REQUESTED</code> | <code>LISTING_CANDIDATE_SCHEDULE_TIMESLOT_BOOKED_ADMIN</code> | <code>LISTING_CANDIDATE_SCHEDULE_TIMESLOT_BOOKED_CANDIDATE</code> | <code>LISTING_CANDIDATE_SCHEDULE_TIMESLOT_BOOKING_REMOVED_ADMIN</code> | <code>LISTING_CANDIDATE_SCHEDULE_TIMESLOT_BOOKING_REMOVED_CANDIDATE</code></td></tr><tr><td><strong>Contracting events</strong></td><td><code>LISTING_CONTRACT_FLOW_STARTED</code> | <code>LISTING_CONTRACT_FLOW_WITHDRAWN</code> | <code>LISTING_CONTRACT_FLOW_PARTIALLY_SIGNED</code> | <code>LISTING_CONTRACT_FLOW_SIGNED</code></td></tr><tr><td><strong>Owner events</strong></td><td><code>OWNER_CREATED</code> | <code>OWNER_UPDATED</code> | <code>OWNER_DELETED</code></td></tr><tr><td><strong>Properties events</strong></td><td><code>PROPERTY_CREATED</code> | <code>PROPERTY_UPDATED</code> | <code>PROPERTY_DELETED</code></td></tr><tr><td><strong>Units events</strong></td><td><code>UNIT_CREATED</code> |<code>UNIT_UPDATED</code> |<code>UNIT_DELETED</code></td></tr></tbody></table>

Below we are providing a full example how to create webhook

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

```
curl --location --request POST 'https://acme-qa.everreal.co/api/external-integrations/webhooks' \
--header 'Authorization: Bearer eyJhbGciOiJ...' \
--header 'Content-Type: application/json' \
--data-raw '{
    "type":"LISTING_CANDIDATE_APPLIED",
    "url":"https://<your_domain>/<your_path>"
}'
```

{% endtab %}
{% endtabs %}

##
