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: 5733ddf49ff49cd1aad03549550f77ebdd1797965c0e8708eb17d4de26ffc6d5
Public Swagger UI/API detected at path: /swagger/index.html - sample paths:
GET /Calculate/export-excel
GET /MasterData/GetCompressorData
GET /MasterData/GetCountryData
GET /MasterData/GetIndustryData
GET /MasterData/GetMaterialToolData
GET /MasterData/GetSegmentData
GET /MasterData/GetToolData
GET /SaveTransformationTool/get
GET /ServiceMasterData/GetServiceAveragePCF
GET /ServiceMasterData/GetServiceCurrency
GET /ServiceMasterData/GetServiceDefaults
GET /ServiceMasterData/GetServiceEstimations
GET /ServiceMasterData/GetServiceIndustryAverages
GET /ServiceMasterData/GetServiceIndustryData
GET /ServiceMasterData/GetServiceProductType
GET /WeatherForecast
GET /api/AssignCountries/getListData
GET /api/LanguageTranslator/GetLanguages
GET /api/LanguageTranslator/GetResourcesByLanguage/{languageId}
GET /api/ProductMasterData/GetControllersData
GET /api/ProductMasterData/GetProductCountryData
GET /api/ProductMasterData/GetProductMarketData
GET /api/ProductMasterData/GetProductToolsData
GET /api/ServiceTab/usage-report
GET /report/download/{fileName}
PATCH /api/LanguageTranslator/EditLanguage/{Id}
PATCH /api/ServiceTab/UpdateInfo
POST /Calculate/4-panel-sps
POST /Calculate/PostData
POST /SaveTransformationTool/post
POST /UploadTemplate/PostMaterialnData
POST /UploadTemplate/PostProductData
POST /UploadTemplate/PostServiceData
POST /UploadTemplate/PostTransformationData
POST /UploadTemplate/PostTransformationToolsData
POST /api/AssignCountries/delete
POST /api/AssignCountries/getCountries
POST /api/AssignCountries/post
POST /api/AssignCountries/update
POST /api/LanguageTranslator/AddLanguage
POST /api/LanguageTranslator/AddResource
POST /api/ServiceTab/SaveInfo
POST /report/upload
PUT /Calculate/UpdateFields/{id}
Open service 104.45.14.249:443 · dev.co2calculator.cp.com
2026-01-02 00:30
HTTP/1.1 403 Ip Forbidden
Content-Length: 1892
Connection: close
Content-Type: text/html
Date: Fri, 02 Jan 2026 00:30:24 GMT
x-ms-forbidden-ip: 206.189.225.181
Page title: Web App - Unavailable
<!DOCTYPE html>
<html>
<head>
<title>Web App - Unavailable</title>
<style type="text/css">
html {
height: 100%;
width: 100%;
}
#feature {
width: 960px;
margin: 95px auto 0 auto;
overflow: auto;
}
#content {
font-family: "Segoe UI";
font-weight: normal;
font-size: 22px;
color: #ffffff;
float: left;
width: 460px;
margin-top: 68px;
margin-left: 0px;
vertical-align: middle;
}
#content h1 {
font-family: "Segoe UI Light";
color: #ffffff;
font-weight: normal;
font-size: 60px;
line-height: 48pt;
width: 800px;
}
p a, p a:visited, p a:active, p a:hover {
color: #ffffff;
}
#content a.button {
background: #0DBCF2;
border: 1px solid #FFFFFF;
color: #FFFFFF;
display: inline-block;
font-family: Segoe UI;
font-size: 24px;
line-height: 46px;
margin-top: 10px;
padding: 0 15px 3px;
text-decoration: none;
}
#content a.button img {
float: right;
padding: 10px 0 0 15px;
}
#content a.button:hover {
background: #1C75BC;
}
</style>
</head>
<body bgcolor="#00abec">
<div id="feature">
<div id="content">
<h1 id="unavailable">Error 403 - Forbidden</h1>
<p id="tryAgain">The web app you have attempted to reach has blocked your access.</p>
</div>
</div>
</body>
</html>
Open service 104.45.14.249:443 · dev.co2calculator.cp.com
2025-12-22 08:20
HTTP/1.1 403 Ip Forbidden
Content-Length: 1892
Connection: close
Content-Type: text/html
Date: Mon, 22 Dec 2025 08:20:08 GMT
x-ms-forbidden-ip: 142.93.0.66
Page title: Web App - Unavailable
<!DOCTYPE html>
<html>
<head>
<title>Web App - Unavailable</title>
<style type="text/css">
html {
height: 100%;
width: 100%;
}
#feature {
width: 960px;
margin: 95px auto 0 auto;
overflow: auto;
}
#content {
font-family: "Segoe UI";
font-weight: normal;
font-size: 22px;
color: #ffffff;
float: left;
width: 460px;
margin-top: 68px;
margin-left: 0px;
vertical-align: middle;
}
#content h1 {
font-family: "Segoe UI Light";
color: #ffffff;
font-weight: normal;
font-size: 60px;
line-height: 48pt;
width: 800px;
}
p a, p a:visited, p a:active, p a:hover {
color: #ffffff;
}
#content a.button {
background: #0DBCF2;
border: 1px solid #FFFFFF;
color: #FFFFFF;
display: inline-block;
font-family: Segoe UI;
font-size: 24px;
line-height: 46px;
margin-top: 10px;
padding: 0 15px 3px;
text-decoration: none;
}
#content a.button img {
float: right;
padding: 10px 0 0 15px;
}
#content a.button:hover {
background: #1C75BC;
}
</style>
</head>
<body bgcolor="#00abec">
<div id="feature">
<div id="content">
<h1 id="unavailable">Error 403 - Forbidden</h1>
<p id="tryAgain">The web app you have attempted to reach has blocked your access.</p>
</div>
</div>
</body>
</html>