Vercel
tcp/443 tcp/80
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: 5733ddf49ff49cd1b6e67656b6e67656b6e67656b6e67656b6e67656b6e67656
Public Swagger UI/API detected at path: /swagger-ui.html
Open service 64.29.17.65:443 · docs.yarago.net
2026-01-09 09:28
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Age: 2
Cache-Control: public, max-age=0, must-revalidate
Content-Disposition: inline; filename="index.html"
Content-Length: 2795
Content-Type: text/html; charset=utf-8
Date: Fri, 09 Jan 2026 09:28:50 GMT
Etag: "c785a1fa50f1939944b2037bed4ffe26"
Last-Modified: Fri, 09 Jan 2026 09:28:48 GMT
Server: Vercel
Strict-Transport-Security: max-age=63072000
X-Vercel-Cache: HIT
X-Vercel-Id: bom1::gwhbd-1767950930644-745844b48d00
Connection: close
Page title: Yarago API Documentation
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Yarago API Documentation</title>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui.min.css">
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
margin: 0;
padding: 0;
}
.swagger-ui .topbar {
display: none;
}
.swagger-ui .info {
margin: 50px 0;
}
.swagger-ui .info .title {
color: #2563eb;
}
#api-selector {
position: fixed;
top: 20px;
right: 20px;
z-index: 1000;
background: white;
padding: 10px;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
#api-selector select {
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 14px;
cursor: pointer;
}
</style>
</head>
<body>
<div id="api-selector">
<label for="environment">Environnement: </label>
<select id="environment" onchange="updateSwaggerUI()">
<option value="production">Production (api.yarago.net)</option>
<option value="localhost">Développement (localhost:3000)</option>
</select>
</div>
<div id="swagger-ui"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui-bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui-standalone-preset.min.js"></script>
<script>
const environments = {
production: 'https://api.yarago.net',
localhost: 'http://localhost:3000'
};
function updateSwaggerUI() {
const environment = document.getElementById('environment').value;
const baseUrl = environments[environment];
window.ui = SwaggerUIBundle({
url: `${baseUrl}/api/swagger.json`,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout",
onComplete: function() {
console.log('Swagger UI loaded successfully');
},
onFailure: function(error) {
console.error('Failed to load Swagger spec:', error);
alert('Impossible de charger la documentation depuis ' + baseUrl + '. Vérifiez que l\'API est accessible.');
}
});
}
// Load on page load
window.onload = function() {
updateSwaggerUI();
};
</script>
</body>
</html>
Open service 64.29.17.65:443 · docs.yarago.net
2026-01-02 07:59
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Age: 0
Cache-Control: public, max-age=0, must-revalidate
Content-Disposition: inline; filename="index.html"
Content-Length: 2795
Content-Type: text/html; charset=utf-8
Date: Fri, 02 Jan 2026 07:59:45 GMT
Etag: "c785a1fa50f1939944b2037bed4ffe26"
Last-Modified: Fri, 02 Jan 2026 07:59:45 GMT
Server: Vercel
Strict-Transport-Security: max-age=63072000
X-Vercel-Cache: HIT
X-Vercel-Id: fra1::cbkpl-1767340785796-3a2bd04104f9
Connection: close
Page title: Yarago API Documentation
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Yarago API Documentation</title>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui.min.css">
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
margin: 0;
padding: 0;
}
.swagger-ui .topbar {
display: none;
}
.swagger-ui .info {
margin: 50px 0;
}
.swagger-ui .info .title {
color: #2563eb;
}
#api-selector {
position: fixed;
top: 20px;
right: 20px;
z-index: 1000;
background: white;
padding: 10px;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
#api-selector select {
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 14px;
cursor: pointer;
}
</style>
</head>
<body>
<div id="api-selector">
<label for="environment">Environnement: </label>
<select id="environment" onchange="updateSwaggerUI()">
<option value="production">Production (api.yarago.net)</option>
<option value="localhost">Développement (localhost:3000)</option>
</select>
</div>
<div id="swagger-ui"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui-bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui-standalone-preset.min.js"></script>
<script>
const environments = {
production: 'https://api.yarago.net',
localhost: 'http://localhost:3000'
};
function updateSwaggerUI() {
const environment = document.getElementById('environment').value;
const baseUrl = environments[environment];
window.ui = SwaggerUIBundle({
url: `${baseUrl}/api/swagger.json`,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout",
onComplete: function() {
console.log('Swagger UI loaded successfully');
},
onFailure: function(error) {
console.error('Failed to load Swagger spec:', error);
alert('Impossible de charger la documentation depuis ' + baseUrl + '. Vérifiez que l\'API est accessible.');
}
});
}
// Load on page load
window.onload = function() {
updateSwaggerUI();
};
</script>
</body>
</html>
Open service 64.29.17.65:80 · docs.yarago.net
2025-12-31 11:16
HTTP/1.0 308 Permanent Redirect Content-Type: text/plain Location: https://docs.yarago.net/ Refresh: 0;url=https://docs.yarago.net/ server: Vercel Redirecting...
Open service 216.198.79.65:443 · docs.yarago.net
2025-12-31 11:16
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Age: 2630356
Cache-Control: public, max-age=0, must-revalidate
Content-Disposition: inline; filename="index.html"
Content-Length: 2795
Content-Type: text/html; charset=utf-8
Date: Wed, 31 Dec 2025 11:16:54 GMT
Etag: "c785a1fa50f1939944b2037bed4ffe26"
Last-Modified: Mon, 01 Dec 2025 00:37:37 GMT
Server: Vercel
Strict-Transport-Security: max-age=63072000
X-Vercel-Cache: HIT
X-Vercel-Id: iad1::jz57g-1767179814732-bd96f224a1d5
Connection: close
Page title: Yarago API Documentation
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Yarago API Documentation</title>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui.min.css">
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
margin: 0;
padding: 0;
}
.swagger-ui .topbar {
display: none;
}
.swagger-ui .info {
margin: 50px 0;
}
.swagger-ui .info .title {
color: #2563eb;
}
#api-selector {
position: fixed;
top: 20px;
right: 20px;
z-index: 1000;
background: white;
padding: 10px;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
#api-selector select {
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 14px;
cursor: pointer;
}
</style>
</head>
<body>
<div id="api-selector">
<label for="environment">Environnement: </label>
<select id="environment" onchange="updateSwaggerUI()">
<option value="production">Production (api.yarago.net)</option>
<option value="localhost">Développement (localhost:3000)</option>
</select>
</div>
<div id="swagger-ui"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui-bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui-standalone-preset.min.js"></script>
<script>
const environments = {
production: 'https://api.yarago.net',
localhost: 'http://localhost:3000'
};
function updateSwaggerUI() {
const environment = document.getElementById('environment').value;
const baseUrl = environments[environment];
window.ui = SwaggerUIBundle({
url: `${baseUrl}/api/swagger.json`,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout",
onComplete: function() {
console.log('Swagger UI loaded successfully');
},
onFailure: function(error) {
console.error('Failed to load Swagger spec:', error);
alert('Impossible de charger la documentation depuis ' + baseUrl + '. Vérifiez que l\'API est accessible.');
}
});
}
// Load on page load
window.onload = function() {
updateSwaggerUI();
};
</script>
</body>
</html>
Open service 216.198.79.65:80 · docs.yarago.net
2025-12-31 11:16
HTTP/1.0 308 Permanent Redirect Content-Type: text/plain Location: https://docs.yarago.net/ Refresh: 0;url=https://docs.yarago.net/ server: Vercel Redirecting...
Open service 64.29.17.65:443 · docs.yarago.net
2025-12-31 11:16
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Age: 2630356
Cache-Control: public, max-age=0, must-revalidate
Content-Disposition: inline; filename="index.html"
Content-Length: 2795
Content-Type: text/html; charset=utf-8
Date: Wed, 31 Dec 2025 11:16:54 GMT
Etag: "c785a1fa50f1939944b2037bed4ffe26"
Last-Modified: Mon, 01 Dec 2025 00:37:37 GMT
Server: Vercel
Strict-Transport-Security: max-age=63072000
X-Vercel-Cache: HIT
X-Vercel-Id: iad1::klblh-1767179814739-9d601350e8ea
Connection: close
Page title: Yarago API Documentation
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Yarago API Documentation</title>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui.min.css">
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
margin: 0;
padding: 0;
}
.swagger-ui .topbar {
display: none;
}
.swagger-ui .info {
margin: 50px 0;
}
.swagger-ui .info .title {
color: #2563eb;
}
#api-selector {
position: fixed;
top: 20px;
right: 20px;
z-index: 1000;
background: white;
padding: 10px;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
#api-selector select {
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 14px;
cursor: pointer;
}
</style>
</head>
<body>
<div id="api-selector">
<label for="environment">Environnement: </label>
<select id="environment" onchange="updateSwaggerUI()">
<option value="production">Production (api.yarago.net)</option>
<option value="localhost">Développement (localhost:3000)</option>
</select>
</div>
<div id="swagger-ui"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui-bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui-standalone-preset.min.js"></script>
<script>
const environments = {
production: 'https://api.yarago.net',
localhost: 'http://localhost:3000'
};
function updateSwaggerUI() {
const environment = document.getElementById('environment').value;
const baseUrl = environments[environment];
window.ui = SwaggerUIBundle({
url: `${baseUrl}/api/swagger.json`,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout",
onComplete: function() {
console.log('Swagger UI loaded successfully');
},
onFailure: function(error) {
console.error('Failed to load Swagger spec:', error);
alert('Impossible de charger la documentation depuis ' + baseUrl + '. Vérifiez que l\'API est accessible.');
}
});
}
// Load on page load
window.onload = function() {
updateSwaggerUI();
};
</script>
</body>
</html>
Open service 64.29.17.65:443 · docs.yarago.net
2025-12-23 03:21
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Age: 0
Cache-Control: public, max-age=0, must-revalidate
Content-Disposition: inline; filename="index.html"
Content-Length: 2795
Content-Type: text/html; charset=utf-8
Date: Tue, 23 Dec 2025 03:21:08 GMT
Etag: "c785a1fa50f1939944b2037bed4ffe26"
Last-Modified: Tue, 23 Dec 2025 03:21:08 GMT
Server: Vercel
Strict-Transport-Security: max-age=63072000
X-Vercel-Cache: HIT
X-Vercel-Id: lhr1::g2htx-1766460068238-302b7b8a5411
Connection: close
Page title: Yarago API Documentation
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Yarago API Documentation</title>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui.min.css">
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
margin: 0;
padding: 0;
}
.swagger-ui .topbar {
display: none;
}
.swagger-ui .info {
margin: 50px 0;
}
.swagger-ui .info .title {
color: #2563eb;
}
#api-selector {
position: fixed;
top: 20px;
right: 20px;
z-index: 1000;
background: white;
padding: 10px;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
#api-selector select {
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 14px;
cursor: pointer;
}
</style>
</head>
<body>
<div id="api-selector">
<label for="environment">Environnement: </label>
<select id="environment" onchange="updateSwaggerUI()">
<option value="production">Production (api.yarago.net)</option>
<option value="localhost">Développement (localhost:3000)</option>
</select>
</div>
<div id="swagger-ui"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui-bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui-standalone-preset.min.js"></script>
<script>
const environments = {
production: 'https://api.yarago.net',
localhost: 'http://localhost:3000'
};
function updateSwaggerUI() {
const environment = document.getElementById('environment').value;
const baseUrl = environments[environment];
window.ui = SwaggerUIBundle({
url: `${baseUrl}/api/swagger.json`,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout",
onComplete: function() {
console.log('Swagger UI loaded successfully');
},
onFailure: function(error) {
console.error('Failed to load Swagger spec:', error);
alert('Impossible de charger la documentation depuis ' + baseUrl + '. Vérifiez que l\'API est accessible.');
}
});
}
// Load on page load
window.onload = function() {
updateSwaggerUI();
};
</script>
</body>
</html>
Open service 64.29.17.65:443 · docs.yarago.net
2025-12-20 14:12
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Age: 0
Cache-Control: public, max-age=0, must-revalidate
Content-Disposition: inline; filename="index.html"
Content-Length: 2795
Content-Type: text/html; charset=utf-8
Date: Sat, 20 Dec 2025 14:12:42 GMT
Etag: "c785a1fa50f1939944b2037bed4ffe26"
Last-Modified: Sat, 20 Dec 2025 14:12:42 GMT
Server: Vercel
Strict-Transport-Security: max-age=63072000
X-Vercel-Cache: HIT
X-Vercel-Id: fra1::bvxfm-1766239962516-be80cec2aaa7
Connection: close
Page title: Yarago API Documentation
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Yarago API Documentation</title>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui.min.css">
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
margin: 0;
padding: 0;
}
.swagger-ui .topbar {
display: none;
}
.swagger-ui .info {
margin: 50px 0;
}
.swagger-ui .info .title {
color: #2563eb;
}
#api-selector {
position: fixed;
top: 20px;
right: 20px;
z-index: 1000;
background: white;
padding: 10px;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
#api-selector select {
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 14px;
cursor: pointer;
}
</style>
</head>
<body>
<div id="api-selector">
<label for="environment">Environnement: </label>
<select id="environment" onchange="updateSwaggerUI()">
<option value="production">Production (api.yarago.net)</option>
<option value="localhost">Développement (localhost:3000)</option>
</select>
</div>
<div id="swagger-ui"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui-bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.11.0/swagger-ui-standalone-preset.min.js"></script>
<script>
const environments = {
production: 'https://api.yarago.net',
localhost: 'http://localhost:3000'
};
function updateSwaggerUI() {
const environment = document.getElementById('environment').value;
const baseUrl = environments[environment];
window.ui = SwaggerUIBundle({
url: `${baseUrl}/api/swagger.json`,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout",
onComplete: function() {
console.log('Swagger UI loaded successfully');
},
onFailure: function(error) {
console.error('Failed to load Swagger spec:', error);
alert('Impossible de charger la documentation depuis ' + baseUrl + '. Vérifiez que l\'API est accessible.');
}
});
}
// Load on page load
window.onload = function() {
updateSwaggerUI();
};
</script>
</body>
</html>