POST /spaces/requestReservation
Submit a reservation request that lands as pending until a tenant admin approves it from the dashboard.
This guide begins with Overview, continues through Request body, Request, Response, and finishes with Notes.
Overview
Submits a reservation request. The reservation is created with approval_status: "pending" and the tenant admin receives an email with the request details. Approval or rejection happens in the dashboard.
Required scope: spaces.reservations:request
Request body
Send as application/json:
{
"spaceUuid": "3a9c7611-46fb-11f1-88b9-5254078c996d",
"date": "2026-05-12",
"start": "11:00",
"end": "11:30",
"title": "Customer demo",
"source": "kiosk",
"requester": {
"name": "Ada Lovelace",
"email": "[email protected]"
},
"metadata": { "any": "extra fields you want recorded" }
}
requester.name and requester.email are required. title, source, and metadata are optional.
Request
curl -X POST \
-H "X-Links-App-Key: $LINKS_APP_KEY" \
-H "X-Links-App-Secret: $LINKS_APP_SECRET" \
-H "Content-Type: application/json" \
-d '{"spaceUuid":"3a9c...","date":"2026-05-12","start":"11:00","end":"11:30","requester":{"name":"Ada","email":"[email protected]"}}' \
"https://api.linkspowered.com/tr/service/v1/spaces/requestReservation"
Response
On success the API returns HTTP 201:
{
"status": true,
"success": true,
"data": {
"reservationUuid": "ec428d0d-...",
"approvalStatus": "pending"
},
"msg": "Reservation request created"
}
Notes
Persist reservationUuid on your side: you'll need it to correlate the eventual approval/rejection event.
A 409 SLOT_CONFLICT means the slot was taken between your availability call and your reservation call. Re-fetch availability and retry on a fresh slot.
