# Webhook API

Premium/Lifetime users can send real-time JSON notifications from RestocksAIO to their own HTTPS endpoint. You can pick which event types to send.

## Enable

1. Open **Settings → Webhook API (Premium)**.
2. Enter your HTTPS endpoint.
3. Toggle **Enable Webhook API** and enable the event types you want.

## Payload

```json
{
  "event": "event.name",
  "timestampUtc": "2025-01-01T12:00:00Z",
  "data": { /* event-specific fields */ },
  "meta": {
    "appVersion": "3.x",
    "subscription": "Premium|Lifetime",
    "username": "your-login"
  }
}
```

## Events

| Event                  | When it fires               | `data` fields (type)                                                                                                                                                                                                                                                                                        |
| ---------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sale.detected`        | New sale or status change   | `saleId` (string), `saleName` (string), `sku` (string), `site` (string), `size` (string), `payout` (string), `status` (string)                                                                                                                                                                              |
| `offer.detected`       | Offer detected              | `productName` (string), `sku` (string), `site` (string), `size` (string), `sizeRegion` (string), `itemId` (string), `offerAmount` (number), `offerPayout` (number), `profitIfAccepted` (string), `currency` (string)                                                                                        |
| `bricker.price_change` | Bricker raises/lowers price | `taskId` (string), `site` (string), `size` (string), `oldStorePrice` (string), `newStorePrice` (string), `currency` (string), `reason` (string)                                                                                                                                                             |
| `bricker.item_sold`    | Bricker item sold           | `taskId` (string), `site` (string), `size` (string), `size_eu` (string, optional), `size_us` (string, optional), `size_uk` (string, optional), `sku` (string), `orderId` (string), `storePrice` (number), `sitePayout` (number), `sitePayoutAfterFees` (number), `currency` (string), `isConsign` (boolean) |
| `bricker.item_deleted` | Item deletion attempt       | `status` (string: `success`/`failure`), `sellingSite` (string), `productName` (string), `styleCode` (string), `size` (string), `sneakerId` (string)                                                                                                                                                         |

### sale.detected example

```json
{
  "event": "sale.detected",
  "timestampUtc": "2025-01-01T12:00:00Z",
  "data": {
    "saleId": "12345",
    "saleName": "Jordan 1 Retro",
    "sku": "555088-105",
    "site": "StockX",
    "size": "10",
    "payout": 245.50,
    "status": "Detected a new sale!"
  },
  "meta": {
    "appVersion": "3.x",
    "subscription": "Premium|Lifetime",
    "username": "your-login"
  }
}
```

### offer.detected example

```json
{
  "event": "offer.detected",
  "timestampUtc": "2025-01-01T12:00:00Z",
  "data": {
    "productName": "Jordan 4 SB Pine Green",
    "sku": "DR5415-103",
    "site": "Wethenew",
    "size": "10",
    "sizeRegion": "EU",
    "itemId": "987654",
    "offerAmount": 320.0,
    "offerPayout": 300.0,
    "profitIfAccepted": "+45.00",
    "currency": "EUR"
  },
  "meta": {
    "appVersion": "3.x",
    "subscription": "Premium|Lifetime",
    "username": "your-login"
  }
}
```

### bricker.price\_change example

```json
{
  "event": "bricker.price_change",
  "timestampUtc": "2025-01-01T12:00:00Z",
  "data": {
    "taskId": "BRK-001",
    "site": "StockX",
    "size": "9.5",
    "oldStorePrice": "250.00",
    "newStorePrice": "242.50",
    "currency": "EUR",
    "reason": "We lowered the price of your sneaker!"
  },
  "meta": {
    "appVersion": "3.x",
    "subscription": "Premium|Lifetime",
    "username": "your-login"
  }
}
```

### bricker.item\_sold example

```json
{
  "event": "bricker.item_sold",
  "timestampUtc": "2025-01-01T12:00:00Z",
  "data": {
    "taskId": "BRK-002",
    "site": "Alias",
    "size": "10",
    "size_eu": "44",
    "size_us": "10",
    "size_uk": "9",
    "sku": "DD1391-100",
    "orderId": "ALIAS-7788",
    "storePrice": 180.0,
    "sitePayout": 190.5,
    "sitePayoutAfterFees": 185.0,
    "currency": "EUR",
    "isConsign": false
  },
  "meta": {
    "appVersion": "3.x",
    "subscription": "Premium|Lifetime",
    "username": "your-login"
  }
}
```

### bricker.item\_deleted example

```json
{
  "event": "bricker.item_deleted",
  "timestampUtc": "2025-01-01T12:00:00Z",
  "data": {
    "status": "success",
    "sellingSite": "StockX",
    "productName": "Jordan 1 Retro",
    "styleCode": "555088-105",
    "size": "10",
    "sneakerId": "12345"
  },
  "meta": {
    "appVersion": "3.x",
    "subscription": "Premium|Lifetime",
    "username": "your-login"
  }
}
```
