Exposing Swagger/OpenAPI documentation is primarily a risk if your API has underlying security flaws, as it gives attackers a precise roadmap to find them.
Those detail every endpoint, parameter, and data model, making it easier to discover and exploit vulnerabilities like broken access control or injection points.
While a perfectly secure API mitigates the danger, protecting your documentation is a critical layer of defense that forces attackers to work without a map.
Severity: info
Fingerprint: 5733ddf49ff49cd1aad0354983a8954c3ea1cdfecc946dffb4e0c0e74eff157c
Public Swagger UI/API detected at path: /swagger/index.html - sample paths:
DELETE /api/Attribute/Delete/{id}
DELETE /api/Course/Delete/{id}
DELETE /api/ExternalBooking/Delete/{id}
DELETE /api/Item/Delete/{id}
DELETE /api/ItemType/Delete/{id}
DELETE /api/OrganisationalUnit/Delete/{id}
DELETE /api/User/Delete/{id}
DELETE /api/Zone/Delete/{id}
GET /api/AppSettings/Get
GET /api/AppSynchronization/GetLatest
GET /api/Attribute/Get/{id}
GET /api/Attribute/GetActive
GET /api/Attribute/GetAll
GET /api/Attribute/GetByItemType
GET /api/Attribute/GetByRule
GET /api/Attribute/Search
GET /api/Booking/CanBeMoved/{bookingid}
GET /api/Booking/Get/{hostKey}
GET /api/Booking/Get/{id}
GET /api/Booking/GetForDisplay/{id}
GET /api/Booking/GetForItem/{id}
GET /api/Booking/GetForItems
GET /api/Booking/GetItemAvailableTimeSlots/{bookingid}
GET /api/Booking/GetNotOwned/{id}
GET /api/Booking/GetOwn
GET /api/Booking/GetOwnPaged
GET /api/Course/Get/{id}
GET /api/Course/GetActive
GET /api/Course/GetAll
GET /api/Course/GetForOU
GET /api/Course/Search
GET /api/ExternalBooking/Get/{hostKey}
GET /api/ExternalBooking/Get/{id}
GET /api/Info/GetVersion
GET /api/Item/Get/{id}
GET /api/Item/GetActive
GET /api/Item/GetActiveSyncable
GET /api/Item/GetAll
GET /api/Item/GetCapacitiesByZoneAndItemType
GET /api/Item/GetNotBookable
GET /api/Item/GetRecent
GET /api/Item/Search
GET /api/Item/SearchByProperties
GET /api/Item/SearchOptionsFilter
GET /api/Item/SearchOptionsRoom
GET /api/ItemType/Get/{id}
GET /api/ItemType/GetActive
GET /api/ItemType/GetActiveItemSubTypes
GET /api/ItemType/GetAll
GET /api/ItemType/GetByRule
GET /api/ItemType/GetItemSubTypeByRule
GET /api/ItemType/Search
GET /api/OrganisationalUnit/Get/{id}
GET /api/OrganisationalUnit/GetActive
GET /api/OrganisationalUnit/GetAll
GET /api/OrganisationalUnit/Search
GET /api/User/Get/{id}
GET /api/User/GetActive
GET /api/User/GetAll
GET /api/User/Search
GET /api/Zone/Get/{id}
GET /api/Zone/GetActive
GET /api/Zone/GetAll
GET /api/Zone/GetByRule
GET /api/Zone/Search
GET /qr/Room
GET /qr/Room/authenticate/{id}
GET /qr/Room/authorized
GET /qr/Room/{id}
GET /qr/Room/{id}/live
PATCH /api/Booking/BookingState/{id}
PATCH /api/Booking/HostKey/{id}
POST /api/AppSynchronization/Create
POST /api/AppSynchronization/SetStatus/{id}
POST /api/AppSynchronization/StartSync/{id}
POST /api/Attribute/Store
POST /api/Attribute/Store/{id}
POST /api/Booking/Cancel/{id}
POST /api/Booking/CancelNotOwned
POST /api/Booking/Store
POST /api/Booking/Store/{id}
POST /api/Course/Store
POST /api/Course/Store/{id}
POST /api/ExternalBooking/Find
POST /api/ExternalBooking/FindByForeignIds
POST /api/ExternalBooking/Store
POST /api/ExternalBooking/StoreBulk
POST /api/Item/FindByExternalIds
POST /api/Item/SearchItems
POST /api/Item/Store
POST /api/Item/Store/{id}
POST /api/Item/StoreBulk
POST /api/Item/UploadItemImage
POST /api/ItemType/Store
POST /api/ItemType/Store/{id}
POST /api/OrganisationalUnit/Store
POST /api/OrganisationalUnit/Store/{id}
POST /api/SensorData/Store
POST /api/SensorData/StoreBulk
POST /api/User/Store
POST /api/User/Store/{id}
POST /api/Zone/Store
POST /api/Zone/Store/{id}
POST /api/Zone/StoreBulk
PUT /api/Course/ResetAll
PUT /api/Course/ResetSingle
PUT /api/ExternalBooking/Store/{id}
PUT /api/ExternalBooking/UpdateBulk
PUT /api/OrganisationalUnit/ResetAll
PUT /api/OrganisationalUnit/ResetSingle
PUT /api/User/ResetAll
PUT /api/User/ResetSingle