Top.Mail.Ru

Advanced UnSpot Plan from $100 $50 for Your Company Fix this Price

Promo deadline:
Help center / Administration / Integrations / API and Webhooks / Outgoing webhooks API reference

Outgoing webhooks API reference

Outgoing webhooks let UnSpot notify your systems about events in real time: UnSpot sends an HTTPS POST with a JSON payload to a URL you configure. Typical use case: passing parking bookings to a security or gate-control system.

Setting up a webhook

Go to Manage > Integrations > Outgoing webhooks and click “Create outgoing webhook”. A name and an event are always required; the rest of the form depends on the event type. The event cannot be changed afterwards — the field is locked when you edit a subscription.

  • API-type events send an HTTPS request: they need a recipient URL and the spaces the subscription applies to. Only events from the selected spaces are delivered. A subscription with the same event and URL cannot be created twice.
  • Email-type events send an email. The recipient is picked in the “Recipient” field from the list of employees — an internal, active UnSpot user rather than an arbitrary address. Typing an address by hand is no longer possible; the field placeholder reads “Select recipient”. Two subscriptions to the same event with the same recipient cannot be created.
  • The locker email events additionally require the spaces (multi-select, mandatory), and “Locker booking exceeds X days” also asks for the “Number of days” field: an integer from 1 to 365, 1 by default.

What happened to the old email recipients. The recipient used to be an arbitrary email address; it is now a reference to a UnSpot user. During the migration the address is matched against employees by email, case-insensitively: if an active employee is found, they become the recipient; if none is found, or the employee is archived, deleted or deactivated, the recipient stays empty and the subscription is switched to “Disabled”. In the subscription list such a row shows “Recipient not specified” instead of a recipient, and it cannot be switched on: the server answers with “Failed to update the subscription status. Recipient is not specified.” To bring the subscription back, open “Edit”, pick a recipient and save. The same mechanism keeps working later: if the recipient is archived, deleted or deactivated by provisioning, the subscription loses its recipient and is disabled again.

Events

HTTPS (API-type) events:

EventFires when
parking_booking_createdA parking booking is created
parking_booking_canceledA parking booking is canceled or stopped
parking_booking_checkin_confirmedCheck-in for a parking booking is confirmed

Email-type events send a message to the selected recipient and make no HTTPS request — the payload and delivery rules below do not apply to them.

EventGroupLabel in the interfaceFires when
user_access_requestUsers“Access request”A new user has requested access to the workspace
user_createdUsers“New employee”An employee has been added to the directory
user_deletedUsers“Resigned employee”An employee has been removed from the directory
tariff_warningSystem notifications“Tariff notifications”A plan limit is being approached
system_warningSystem notifications“Synchronisation issues”A directory or calendar exchange has failed
display_system_errorsSystem notifications“Connection to meeting room display lost”A meeting room display has stopped responding
space_rent_expiredSystem notifications“Lease Expiry Notification”The lease of a space is expiring
visitor_request_createdRequests“New pass request”A visitor pass request has been submitted
locker_cell_booking_canceled_by_horizonLockers“Booking canceled”A cell booking has been removed by the booking horizon policy
locker_cell_booking_duration_exceededLockers“Locker booking exceeds X days”A cell booking has lasted exactly the number of days set in the subscription

The two locker subscriptions were added on 7 September 2026. “Booking canceled” emails the recipient when the booking horizon policy removes a cell booking; it is sent only for subscriptions whose selected spaces include the locker office, and the booking owner receives a separate email of their own. “Locker booking exceeds X days” sends one email per subscription listing every cell that qualified.

Mind the wording “exceeds X days”. The email is sent on the day the booking term equals the configured number of days, not every day while it is over that number: the comparison is for equality, not for exceeding the value. The letter X in the subscription name is part of the label, not a placeholder for the number. Days are counted in the time zone of the locker office, or the company time zone when the office has no settings of its own.

Payload format

All parking events share the same base payload; action tells them apart:

POST <your URL>
Content-Type: application/json

{
  "fullName": "Jane Doe",
  "email": "jane.doe@example.com",
  "vehicleNumber": "AB-123-CD",
  "vehicleModel": "Tesla Model 3",
  "start": "2026-07-08T09:00:00+00:00",
  "end": "2026-07-08T18:00:00+00:00",
  "office": "HQ Berlin",
  "parkingPlace": "P-12",
  "action": "Created",
  "bookingType": "Parking"
}
HTTPS
FieldDescription
actionCreated, Canceled / Stopped, or Checkin_confirmed
checkInTypeOnly for check-in events: remote or strict
start / endBooking period (ISO 8601)
fullName / emailBooking owner
vehicleNumber / vehicleModelVehicle details from the booking
office / parkingPlaceWhere the booking is

Delivery, timeouts and retries

  • Requests are sent as POST with Content-Type: application/json and a 240-second timeout.
  • Respond with any 2xx status to acknowledge delivery.
  • Failed deliveries increment a failure counter; delivery is retried by the queue. After 100 consecutive failures the webhook is switched to the failed status and administrators are notified. A successful delivery resets the counter.
  • Webhook health is visible in External API > monitoring (webhooks category) and in the Integrations page.

Security recommendations

  • Standard webhook requests carry no authentication header — treat the endpoint URL as a secret: use HTTPS and include a random path segment (e.g. https://example.com/hooks/unspot-8f3a91).
  • Validate the payload structure and restrict your endpoint to expected fields.
  • For the Claris integration, UnSpot sends its own Authorization: Bearer token and an extended payload — enable the Claris option only for that system.

For a practical walkthrough of the parking use case, see Outgoing Webhooks: Parking place booking notifications.

Leave a request for a call and we will contact you

Loading