RestocksAIO Docs

Webhook API

Configure outbound webhook notifications to your own endpoint (Premium).

The Webhook API section of Settings, Notifications: endpoint URL, the enable switch and the event subscriptions

The Webhook API panel lets you point at your own HTTPS endpoint and toggle per-event subscriptions (Sales, Offers, Bricker, Labels).

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

For a high-level overview, see the Webhook API feature page on restock.gg.

eBay, Shopify, Vinted and Wallapop are built-in store channels. Connect them in Settings → Accounts. See Marketplace tab. Use the Webhook API for a platform that RestocksAIO does not support.

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

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

Events

EventWhen it firesdata fields (type)
sale.detectedNew sale or status changesaleId (string), saleName (string), sku (string), site (string), size (string), payout (string), status (string)
offer.detectedOffer detectedproductName (string), sku (string), site (string), size (string), sizeRegion (string), itemId (string), offerAmount (number), offerPayout (number), profitIfAccepted (string), currency (string)
bricker.price_changeBricker raises/lowers pricetaskId (string), site (string), size (string), oldStorePrice (string), newStorePrice (string), currency (string), reason (string)
bricker.item_soldBricker item soldtaskId (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_deletedItem deletion attemptstatus (string: success/failure), sellingSite (string), productName (string), styleCode (string), size (string), sneakerId (string)

sale.detected example

{
  "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",
    "username": "your-login"
  }
}

offer.detected example

{
  "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",
    "username": "your-login"
  }
}

bricker.price_change example

{
  "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",
    "username": "your-login"
  }
}

bricker.item_sold example

{
  "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",
    "username": "your-login"
  }
}

bricker.item_deleted example

{
  "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",
    "username": "your-login"
  }
}

Connect another platform

RestocksAIO publishes to eBay, Shopify, Vinted and Wallapop itself. While the app runs, a sale of a linked unit lowers or removes the other listings of that unit. You do not need a webhook for these platforms.

For a platform that RestocksAIO does not support, the Webhook API sends each sale to an endpoint that you control. Your code then ends the listing on the other platform. Know these points about the delivery:

  • The app sends each event one time, as JSON. The request has no signature, and the app does not retry it.
  • When your endpoint is down, the event is lost and the app logs the failed answer.
  • De-duplicate on saleId and keep the URL secret.
  • Return 200 immediately and do the API calls in the background.
  • Do not treat a webhook as proof that another platform removed the stock.

Use the Webhook API feature page for an overview of custom connections. The event reference above describes the payloads your code receives.