Heroku
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: 5733ddf49ff49cd1b885ff43655729af6ab92a7d698995df565c4b6825c056a7
Public Swagger UI/API detected at path: /swagger.json - sample paths:
GET /pos/
GET /pos/{id}/
GET /pos/{id}/receipts/
GET /receipts/
GET /rfqs/
GET /rfqs/{id}/
GET /rfqs/{id}/approvals/
GET /users/
GET /users/cost_codes/
GET /users/jobsites/
GET /users/jobsites/{id}/
GET /users/jobsites/{id}/cost_codes/
GET /vendors/
POST /users/cost_codes/bulk_cost_codes/
POST /users/cost_codes/bulk_delete_cost_codes/
POST /users/login/
POST /users/logout/
PUT /users/cost_codes/{id}/
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: 5733ddf49ff49cd1b885ff43655729af6ab92a7d698995df565c4b6825c056a7
Public Swagger UI/API detected at path: /swagger.json - sample paths:
GET /pos/
GET /pos/{id}/
GET /pos/{id}/receipts/
GET /receipts/
GET /rfqs/
GET /rfqs/{id}/
GET /rfqs/{id}/approvals/
GET /users/
GET /users/cost_codes/
GET /users/jobsites/
GET /users/jobsites/{id}/
GET /users/jobsites/{id}/cost_codes/
GET /vendors/
POST /users/cost_codes/bulk_cost_codes/
POST /users/cost_codes/bulk_delete_cost_codes/
POST /users/login/
POST /users/logout/
PUT /users/cost_codes/{id}/
Open service 35.71.145.101:443 · api.quotetome.com
2026-01-09 15:30
HTTP/1.1 301 Moved Permanently
Content-Length: 0
Content-Type: text/html; charset=utf-8
Cross-Origin-Opener-Policy: same-origin
Date: Fri, 09 Jan 2026 15:30:27 GMT
Location: api/admin/
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Referrer-Policy: same-origin
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=CVZLSUf7i7lENTFQt%2FCiL1FXuFWeLgwaZHufpz%2BPJKw%3D\u0026sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add\u0026ts=1767972627"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=CVZLSUf7i7lENTFQt%2FCiL1FXuFWeLgwaZHufpz%2BPJKw%3D&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&ts=1767972627"
Server: Heroku
Vary: Cookie, origin
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Connection: close
Open service 75.2.97.79:80 · api.quotetome.com
2026-01-09 09:21
HTTP/1.1 301 Moved Permanently
Content-Length: 0
Content-Type: text/html; charset=utf-8
Cross-Origin-Opener-Policy: same-origin
Date: Fri, 09 Jan 2026 09:22:04 GMT
Location: api/admin/
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Referrer-Policy: same-origin
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=v4jJXpTpZ4kH1mZ%2FMNGM2aG65W%2Fg%2FFa6CyJ6jOdhM%2BI%3D\u0026sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add\u0026ts=1767950524"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=v4jJXpTpZ4kH1mZ%2FMNGM2aG65W%2Fg%2FFa6CyJ6jOdhM%2BI%3D&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&ts=1767950524"
Server: Heroku
Vary: Cookie, origin
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Connection: close
Open service 75.2.97.79:80 · api.quotetome.com
2026-01-02 16:23
HTTP/1.1 301 Moved Permanently
Content-Length: 0
Content-Type: text/html; charset=utf-8
Cross-Origin-Opener-Policy: same-origin
Date: Fri, 02 Jan 2026 16:23:52 GMT
Location: api/admin/
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Referrer-Policy: same-origin
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=7BgNywaeLf7v%2BsFpWZnqFlM%2BMn1jvbBs1mrOaefil28%3D\u0026sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add\u0026ts=1767371032"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=7BgNywaeLf7v%2BsFpWZnqFlM%2BMn1jvbBs1mrOaefil28%3D&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&ts=1767371032"
Server: Heroku
Vary: Cookie, origin
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Connection: close
Open service 35.71.145.101:443 · api.quotetome.com
2026-01-02 10:55
HTTP/1.1 301 Moved Permanently
Content-Length: 0
Content-Type: text/html; charset=utf-8
Cross-Origin-Opener-Policy: same-origin
Date: Fri, 02 Jan 2026 10:55:52 GMT
Location: api/admin/
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Referrer-Policy: same-origin
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=vFV%2FRSkcuuhff9akkiAri0lfCgHdZ%2FDb2sGeHvke1QE%3D\u0026sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add\u0026ts=1767351352"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=vFV%2FRSkcuuhff9akkiAri0lfCgHdZ%2FDb2sGeHvke1QE%3D&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&ts=1767351352"
Server: Heroku
Vary: Cookie, origin
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Connection: close
Open service 75.2.97.79:80 · api.quotetome.com
2025-12-23 06:26
HTTP/1.1 301 Moved Permanently
Content-Length: 0
Content-Type: text/html; charset=utf-8
Cross-Origin-Opener-Policy: same-origin
Date: Tue, 23 Dec 2025 06:27:01 GMT
Location: api/admin/
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Referrer-Policy: same-origin
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=0gD6105sULU3yIek3TrME4QGTYo7HTL7WgUw%2B576%2FkQ%3D\u0026sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add\u0026ts=1766471221"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=0gD6105sULU3yIek3TrME4QGTYo7HTL7WgUw%2B576%2FkQ%3D&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&ts=1766471221"
Server: Heroku
Vary: Cookie, origin
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Connection: close
Open service 35.71.145.101:443 · api.quotetome.com
2025-12-23 03:01
HTTP/1.1 301 Moved Permanently
Content-Length: 0
Content-Type: text/html; charset=utf-8
Cross-Origin-Opener-Policy: same-origin
Date: Tue, 23 Dec 2025 03:01:33 GMT
Location: api/admin/
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Referrer-Policy: same-origin
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=WiIhtE4GH%2BE51B91ic9nyU%2B%2FaFN9hUdHF2WC1XMkE0A%3D\u0026sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add\u0026ts=1766458893"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=WiIhtE4GH%2BE51B91ic9nyU%2B%2FaFN9hUdHF2WC1XMkE0A%3D&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&ts=1766458893"
Server: Heroku
Vary: Cookie, origin
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Connection: close
Open service 75.2.97.79:80 · api.quotetome.com
2025-12-21 06:21
HTTP/1.1 301 Moved Permanently
Content-Length: 0
Content-Type: text/html; charset=utf-8
Cross-Origin-Opener-Policy: same-origin
Date: Sun, 21 Dec 2025 06:21:05 GMT
Location: api/admin/
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Referrer-Policy: same-origin
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=3VEHQHBGDwtfnC%2Fnzb5OvOEo9AxMrbccj0YSCRpjQhM%3D\u0026sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add\u0026ts=1766298065"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=3VEHQHBGDwtfnC%2Fnzb5OvOEo9AxMrbccj0YSCRpjQhM%3D&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&ts=1766298065"
Server: Heroku
Vary: Cookie, origin
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Connection: close
Open service 35.71.145.101:443 · api.quotetome.com
2025-12-20 17:46
HTTP/1.1 301 Moved Permanently
Content-Length: 0
Content-Type: text/html; charset=utf-8
Cross-Origin-Opener-Policy: same-origin
Date: Sat, 20 Dec 2025 17:46:32 GMT
Location: api/admin/
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Referrer-Policy: same-origin
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=FK67rUMlpfivOzvblhfNoM9S8Jl3IjzO5c3XpqNvkwY%3D\u0026sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add\u0026ts=1766252792"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=FK67rUMlpfivOzvblhfNoM9S8Jl3IjzO5c3XpqNvkwY%3D&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&ts=1766252792"
Server: Heroku
Vary: Cookie, origin
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Connection: close
Open service 75.2.97.79:80 · api.quotetome.com
2025-12-19 07:16
HTTP/1.1 301 Moved Permanently
Content-Length: 0
Content-Type: text/html; charset=utf-8
Cross-Origin-Opener-Policy: same-origin
Date: Fri, 19 Dec 2025 07:16:13 GMT
Location: api/admin/
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Referrer-Policy: same-origin
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=cJaIVAyifUJE2SFAezeF8p%2Bsrixvfz%2BUtgVVc9UFfpY%3D\u0026sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add\u0026ts=1766128573"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=cJaIVAyifUJE2SFAezeF8p%2Bsrixvfz%2BUtgVVc9UFfpY%3D&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&ts=1766128573"
Server: Heroku
Vary: Cookie, origin
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Connection: close
Open service 35.71.145.101:443 · api.quotetome.com
2025-12-19 03:06
HTTP/1.1 301 Moved Permanently
Content-Length: 0
Content-Type: text/html; charset=utf-8
Cross-Origin-Opener-Policy: same-origin
Date: Fri, 19 Dec 2025 03:06:31 GMT
Location: api/admin/
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Referrer-Policy: same-origin
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=A%2FiyFoWDcX5rtdjgvPfY%2By70KwzOBo1fZi6biTrOT0I%3D\u0026sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add\u0026ts=1766113591"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=A%2FiyFoWDcX5rtdjgvPfY%2By70KwzOBo1fZi6biTrOT0I%3D&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&ts=1766113591"
Server: Heroku
Vary: Cookie, origin
Via: 1.1 heroku-router
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Connection: close