Webhook Overview
Webhooks allow Olympus to push updates to your application in real-time, eliminating the need for polling and enabling instant notifications.
Webhooks allow Olympus to push updates to your application in real-time, eliminating the need for polling and enabling instant notifications.
Create a publicly accessible HTTPS endpoint that can receive POST requests with JSON payloads.
class="text-pink-400">import express class="text-pink-400">from class="text-emerald-class="text-amber-400">400">'express';
class="text-pink-400">import crypto class="text-pink-400">from class="text-emerald-class="text-amber-400">400">'crypto';
class="text-pink-400">const app = express();
app.use(express.json());
app.post(class="text-emerald-class="text-amber-400">400">'/webhooks/olympus', (req, res) => {
class="text-pink-400">const signature = req.headers[class="text-emerald-class="text-amber-400">400">'x-olympus-signature'];
class="text-pink-400">const isValid = verifySignature(req.body, signature);
class="text-pink-400">if (!isValid) {
class="text-pink-400">return res.status(class="text-amber-400">401).send(class="text-emerald-class="text-amber-400">400">'Invalid signature');
}
class="text-white/class="text-amber-400">30 italic">// Process webhook payload
class="text-pink-400">const { event, data } = req.body;
handleEvent(event, data);
res.status(class="text-amber-400">200).send(class="text-emerald-class="text-amber-400">400">'OK');
});Olympus supports various event types: entity.updated, license.expiring, filing.published, permit.approved, and more.
Always verify webhook signatures using your webhook secret to ensure requests come from Olympus.
Olympus retries failed webhook deliveries with exponential backoff. Return a 2xx status code quickly to acknowledge receipt.
Explore our API documentation to start building with Olympus.