cloudflare
tcp/443 tcp/80 tcp/8443
nginx 1.24.0
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: 5733ddf49ff49cd1b885ff43ed1e395981b9e539e86a012f948056faed7dbcfc
Public Swagger UI/API detected at path: /swagger.json - sample paths:
DELETE /api/v2/ai-assistants/{id}/collections/{collectionId}
DELETE /api/v2/ai-assistants/{id}/documents/{documentId}
DELETE /api/v2/debug/channels/all
DELETE /api/v2/debug/stream/nuclear
DELETE /api/v2/debug/users/ai
DELETE /api/v2/debug/users/all
GET /agent/status
GET /agent/status/{channelId}
GET /agents
GET /agents/{agentId}
GET /ai/pdf-processing/status
GET /analytics/performance
GET /analytics/usage
GET /api/v2/ai-assistants
GET /api/v2/ai-assistants/available-models
GET /api/v2/ai-assistants/statistics
GET /api/v2/ai-assistants/templates
GET /api/v2/ai-assistants/{id}
GET /api/v2/ai-assistants/{id}/collections
GET /api/v2/ai-assistants/{id}/documents
GET /api/v2/ai/pdf-processing/status
GET /api/v2/ai/pdf-processing/test
GET /api/v2/ai/threads/list
GET /api/v2/ai/threads/stats
GET /api/v2/debug/stream/status
GET /api/v2/health/detailed
GET /api/v2/knowledge/documents
GET /api/v2/knowledge/documents/{id}
GET /api/v2/knowledge/scraper/status
GET /api/v2/knowledge/stats
GET /api/v2/knowledge/web-sources
GET /api/v2/logs
GET /api/v2/metrics
GET /api/v2/performance/pools
GET /api/v2/performance/stats
GET /api/v2/settings
GET /api/v2/settings/export
GET /api/v2/users
GET /api/v2/users/me
GET /api/v2/voice/stats/{widgetId}
GET /api/v2/voice/user-info
GET /api/v2/voice/voice/{voiceId}
GET /api/v2/voice/voices
GET /auth/me
GET /channels
GET /channels/{channelId}
GET /channels/{channelId}/ai-config
GET /channels/{channelId}/members
GET /dashboard/metrics
GET /health
GET /health/live
GET /health/ready
GET /knowledge/documents
GET /knowledge/documents/{documentId}
GET /tools
GET /tools/{toolId}
GET /widget/analytics
GET /widget/config
GET /widget/embed-code
POST /agent/start
POST /agent/stop
POST /agent/stream
POST /api/v2/ai-assistants/{id}/collections/assign
POST /api/v2/ai-assistants/{id}/documents/assign
POST /api/v2/ai-assistants/{id}/duplicate
POST /api/v2/ai-assistants/{id}/web-sources/assign
POST /api/v2/ai/threads/cleanup
POST /api/v2/debug/cache/clear
POST /api/v2/debug/database/reset
POST /api/v2/debug/errors/simulate
POST /api/v2/knowledge/discover-sitemaps
POST /api/v2/knowledge/search
POST /api/v2/knowledge/sitemap-preview
POST /api/v2/knowledge/web-preview
POST /api/v2/performance/refresh
POST /api/v2/settings/import
POST /api/v2/settings/reset
POST /api/v2/users/generate-token
POST /api/v2/users/login
POST /api/v2/users/register
POST /api/v2/voice/test-tts
POST /api/v2/voice/tts-chunks/{widgetId}
POST /api/v2/voice/tts/{widgetId}
POST /auth/login
POST /auth/logout
POST /auth/refresh
POST /auth/register
POST /knowledge/search
POST /knowledge/upload
POST /pdf/upload
POST /tools/aviation/airline-info
POST /tools/aviation/airport-city
POST /tools/aviation/flight-schedule
POST /tools/aviation/flight-status
POST /tools/aviation/flight-tracker
POST /widget/session
PUT /api/v2/ai-assistants/{id}/knowledge-config
PUT /api/v2/knowledge/web-sources/{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: 5733ddf49ff49cd1b885ff43ed1e395981b9e539e86a012f948056faed7dbcfc
Public Swagger UI/API detected at path: /swagger.json - sample paths:
DELETE /api/v2/ai-assistants/{id}/collections/{collectionId}
DELETE /api/v2/ai-assistants/{id}/documents/{documentId}
DELETE /api/v2/debug/channels/all
DELETE /api/v2/debug/stream/nuclear
DELETE /api/v2/debug/users/ai
DELETE /api/v2/debug/users/all
GET /agent/status
GET /agent/status/{channelId}
GET /agents
GET /agents/{agentId}
GET /ai/pdf-processing/status
GET /analytics/performance
GET /analytics/usage
GET /api/v2/ai-assistants
GET /api/v2/ai-assistants/available-models
GET /api/v2/ai-assistants/statistics
GET /api/v2/ai-assistants/templates
GET /api/v2/ai-assistants/{id}
GET /api/v2/ai-assistants/{id}/collections
GET /api/v2/ai-assistants/{id}/documents
GET /api/v2/ai/pdf-processing/status
GET /api/v2/ai/pdf-processing/test
GET /api/v2/ai/threads/list
GET /api/v2/ai/threads/stats
GET /api/v2/debug/stream/status
GET /api/v2/health/detailed
GET /api/v2/knowledge/documents
GET /api/v2/knowledge/documents/{id}
GET /api/v2/knowledge/scraper/status
GET /api/v2/knowledge/stats
GET /api/v2/knowledge/web-sources
GET /api/v2/logs
GET /api/v2/metrics
GET /api/v2/performance/pools
GET /api/v2/performance/stats
GET /api/v2/settings
GET /api/v2/settings/export
GET /api/v2/users
GET /api/v2/users/me
GET /api/v2/voice/stats/{widgetId}
GET /api/v2/voice/user-info
GET /api/v2/voice/voice/{voiceId}
GET /api/v2/voice/voices
GET /auth/me
GET /channels
GET /channels/{channelId}
GET /channels/{channelId}/ai-config
GET /channels/{channelId}/members
GET /dashboard/metrics
GET /health
GET /health/live
GET /health/ready
GET /knowledge/documents
GET /knowledge/documents/{documentId}
GET /tools
GET /tools/{toolId}
GET /widget/analytics
GET /widget/config
GET /widget/embed-code
POST /agent/start
POST /agent/stop
POST /agent/stream
POST /api/v2/ai-assistants/{id}/collections/assign
POST /api/v2/ai-assistants/{id}/documents/assign
POST /api/v2/ai-assistants/{id}/duplicate
POST /api/v2/ai-assistants/{id}/web-sources/assign
POST /api/v2/ai/threads/cleanup
POST /api/v2/debug/cache/clear
POST /api/v2/debug/database/reset
POST /api/v2/debug/errors/simulate
POST /api/v2/knowledge/discover-sitemaps
POST /api/v2/knowledge/search
POST /api/v2/knowledge/sitemap-preview
POST /api/v2/knowledge/web-preview
POST /api/v2/performance/refresh
POST /api/v2/settings/import
POST /api/v2/settings/reset
POST /api/v2/users/generate-token
POST /api/v2/users/login
POST /api/v2/users/register
POST /api/v2/voice/test-tts
POST /api/v2/voice/tts-chunks/{widgetId}
POST /api/v2/voice/tts/{widgetId}
POST /auth/login
POST /auth/logout
POST /auth/refresh
POST /auth/register
POST /knowledge/search
POST /knowledge/upload
POST /pdf/upload
POST /tools/aviation/airline-info
POST /tools/aviation/airport-city
POST /tools/aviation/flight-schedule
POST /tools/aviation/flight-status
POST /tools/aviation/flight-tracker
POST /widget/session
PUT /api/v2/ai-assistants/{id}/knowledge-config
PUT /api/v2/knowledge/web-sources/{id}
Open service 172.67.183.56:8443 · tommytalk.ai
2026-01-24 01:30
HTTP/1.1 522 <none> Date: Sat, 24 Jan 2026 01:30:43 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19668,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c2bc3e86da18104-SIN alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2606:4700:3035::ac43:b738:443 · tommytalk.ai
2026-01-24 01:30
HTTP/1.1 200 OK
Date: Sat, 24 Jan 2026 01:30:23 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Cache-Control: no-cache
Set-Cookie: XSRF-TOKEN=eyJpdiI6ImY5UlwvbzhKNEVEVUR6bkVuR1FOTlVRPT0iLCJ2YWx1ZSI6Ijg3cUhyYnM2UUxpUW5tcEJiZUtrTE1tRU1RWll4cHFOQVV6U21MT042RGpYeVA4VHV0Y09SYzBiREFcL3B2a0IybHdiaWp2QVE1SDA1MUlmOFRNeXI4QT09IiwibWFjIjoiNjNmMTljODc4YTFmNGI2YTU2MWEyNzBjMjNiZDA0NmE2OTBhOWRmZTgwM2UxMTJkNGQ0N2Y1YjI5YjA1YTkwMSJ9; expires=Sat, 24-Jan-2026 03:30:23 GMT; Max-Age=7200; path=/
Set-Cookie: pegimane-socmed_travel=eyJpdiI6InBRSlZNaVFQRGMxblNRVXZVSlMyWGc9PSIsInZhbHVlIjoiMVpvVkt4VjVZZGduV1Z4STBaODhtWUZoZ0hHZEpmdWlKZ3JFNnF2eW9iSzdNa2dTcldyR3JZQVhrdnBSSktFbDY3RzlXVkI5ZzkyS0N3aDdreVpFMmc9PSIsIm1hYyI6ImNkM2Q5ZTQwZjk0YTg5NTVmNzljYzUyMGRlNDYwZmVlZDI0Y2U1NTJmMmE0MmE3ZDk3MDJkOGQwYjA4ODNkNDYifQ%3D%3D; expires=Mon, 23-Feb-2026 11:30:23 GMT; Max-Age=2628000; path=/; HttpOnly
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=SqKSLcvw8AlMgr8h0%2FrTNvlWmzDqPuNprcj5ARzIJKqGYEDFmwo5Xg%2F%2BKp0gvAjb0BvLi%2BykcaYCev4MHBoNV21jgakJE%2F5rSOTdiG4cr0geUhcTKT8zOg%3D%3D"}]}
cf-cache-status: DYNAMIC
vary: accept-encoding
CF-RAY: 9c2bc3e44f4cbb53-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3032::6815:33b1:80 · tommytalk.ai
2026-01-24 01:30
HTTP/1.1 301 Moved Permanently
Date: Sat, 24 Jan 2026 01:30:22 GMT
Content-Length: 0
Connection: close
Location: https://tommytalk.ai/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Ke3otAPfmdzZaVzqDoW3bDZledmi4gjphwNgUjCFJasBj3GnhS%2BFGrTc0Dm8btc8%2Fi1y15WGXC%2FmuWmdrtKyN%2Bf948PejyUSOfc07hpZTnvcANsUXc5aEw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c2bc3e1bde5e754-AMS
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3035::ac43:b738:80 · tommytalk.ai
2026-01-24 01:30
HTTP/1.1 301 Moved Permanently
Date: Sat, 24 Jan 2026 01:30:22 GMT
Content-Length: 0
Connection: close
Location: https://tommytalk.ai/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=fkeBKEd5XxHAj7fgRnkRK2fFmZISt%2FAYsX5nB1YuVjwrkGmio1JDtWqFSVBnbtTaV5lSZDbaq6jFaEfASYxXVYxJ13DKCdSBaCDdcb%2BDpmZUG%2F8gK%2BBWrA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c2bc3e1c9e6befb-LHR
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3032::6815:33b1:8443 · tommytalk.ai
2026-01-24 01:30
HTTP/1.1 522 <none> Date: Sat, 24 Jan 2026 01:30:43 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c2bc3e7fef03687-FRA alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 104.21.51.177:443 · tommytalk.ai
2026-01-24 01:30
HTTP/1.1 200 OK
Date: Sat, 24 Jan 2026 01:30:23 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Cache-Control: no-cache
Set-Cookie: XSRF-TOKEN=eyJpdiI6IkxoU2xvNTVxaU9YclBBMjhFQVU5ZVE9PSIsInZhbHVlIjoiXC9DOHl0dzhITjJXaTVBK3FHUktTd3piYmszWUxmTURhYUE3SlwvOFlrb1FGXC93UVJhYVdkY3JjdmlTK3UzSFFGWTFxMUJUSitDQUF1aDZ0M1REU2kyOWc9PSIsIm1hYyI6IjA4ZjBhY2FhNDI3YzM2NzRlYjg0YmRiYWViYTVjOWU2MzdiYTljY2MyOGQ4OTMwNmE3YTVhZmNlMjA0ZTc3YzcifQ%3D%3D; expires=Sat, 24-Jan-2026 03:30:23 GMT; Max-Age=7200; path=/
Set-Cookie: pegimane-socmed_travel=eyJpdiI6ImhvT3BcLzFyelwvMDZNSWtoTFpJOWR1dz09IiwidmFsdWUiOiJTUHp2NXBsWXdma2ZZYkkrN093NXY5VzZlTUpacmJxT09RcWZ2RmtGK3hsRjQyb01CM1pzdEcyWVdXSW5mZ0tZclFacnR5YWFVMmdoSkdLMHY4dGZRQT09IiwibWFjIjoiZDRkZTExZWEyZGE5YjQ4NTE5ZjljN2ZmMzgzZDI3YmJmZGMzZTc4YjUzODU2YzI4N2Y4NDhlZTRiODdkODg5NiJ9; expires=Mon, 23-Feb-2026 11:30:23 GMT; Max-Age=2628000; path=/; HttpOnly
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=sWUb6a8bVtVZPHkih1Qqw7NgZLh8tvCXl6pCrf4MALGiE7QdpI4MupsuQybIHRofPubp1HXACua5g6mgozEGeDWO3AnEn5wbEXtB5Q%3D%3D"}]}
cf-cache-status: DYNAMIC
vary: accept-encoding
CF-RAY: 9c2bc3e44c4cd2fa-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3035::ac43:b738:8443 · tommytalk.ai
2026-01-24 01:30
HTTP/1.1 522 <none> Date: Sat, 24 Jan 2026 01:30:42 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c2bc3e7cdcc71d1-FRA alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 172.67.183.56:443 · tommytalk.ai
2026-01-24 01:30
HTTP/1.1 200 OK
Date: Sat, 24 Jan 2026 01:30:24 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Cache-Control: no-cache
Set-Cookie: XSRF-TOKEN=eyJpdiI6ImJWZENNOWd4Q1U2T0pmZUJUT01xcWc9PSIsInZhbHVlIjoiM0hYWWNUbkVKVnpwSkY0Ym1hbXJqNEY3U21WVU1YS2w0YUc0MWZpdHBzZjlRU1hKUFA4RGRGcEU5UDRvZWMzdzlJM1RVa25vYWJSVnJWdUI4S0l1R3c9PSIsIm1hYyI6IjBmMmM4ZDlkMjIyMjk3MmY5ZjFhZTVhMDdmMjg2YWIyOGZkNDBhMGVkY2E3Y2Y5OGRjYmRiOTVkZWQ5NmNlYmEifQ%3D%3D; expires=Sat, 24-Jan-2026 03:30:23 GMT; Max-Age=7200; path=/
Set-Cookie: pegimane-socmed_travel=eyJpdiI6IkF0aVEzS1RvZmpYU3B1dnI3ckxlNlE9PSIsInZhbHVlIjoibTZQWHI4dGN3NDc2VDAyVE5IeFEyNkRhaVE0Vm01OW9MXC9JRThSUzlRRkZ6XC9mS3AxdkZpQzNYUmlqekU0OURWb204dGxJcEExcWc0WGxGbHFHWGJNdz09IiwibWFjIjoiOGUzNDA5NzVlNzg1NDY5OGJjYjRhNWNhOTYzNDkzODY3ZWU1YTMyMmYzNWUwOGMyYjVmOWI3MjRlNThmZjVjMCJ9; expires=Mon, 23-Feb-2026 11:30:23 GMT; Max-Age=2628000; path=/; HttpOnly
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Id6iRXYKG5ddevZMKb1CRihWQJB4ym02UtffrUN83oNK4ETL9G%2B0xuyIhaHHr0CXOdPiH2n9mq%2F8AkFe8B2GxSH4rrK3tUTOqpu%2BCA%3D%3D"}]}
cf-cache-status: DYNAMIC
vary: accept-encoding
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=9,cfOrigin;dur=826
CF-RAY: 9c2bc3e6ce018489-BOM
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3032::6815:33b1:443 · tommytalk.ai
2026-01-24 01:30
HTTP/1.1 200 OK
Date: Sat, 24 Jan 2026 01:30:24 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Cache-Control: no-cache
Set-Cookie: XSRF-TOKEN=eyJpdiI6IkE2Yk5ra3hYQkVmZ2JscFVPK0drMFE9PSIsInZhbHVlIjoibSswNktoOUMzT1NYRjdsalFRY3dSWmQrSlVhMDhkdU44aVEwQ3FcL01pczh5QVI3aGZiQ2xVOEhpM1NhNFZGMWliVXRvYkVtNHdMSU0zOFlxVnVqRnNnPT0iLCJtYWMiOiJjY2YxNGRjZjcwMWJlYTY2M2I3NGNkMGNiMmQwNjlmZDA4MzM2NDUwYjYwMDAzODJhNzA4ODBiODgzODM0MGJlIn0%3D; expires=Sat, 24-Jan-2026 03:30:23 GMT; Max-Age=7200; path=/
Set-Cookie: pegimane-socmed_travel=eyJpdiI6ImRGWXdNYzBpSzlhYUU0TEZDNUY4TEE9PSIsInZhbHVlIjoiQlA3Q1NDVVwvREk5XC9BNFZmN1l1YmZVMWhqa3dYeTBuS01OMFdKVXBDR2oxZWxXSGw5Skw4N2RXeHlkR2VuMERzNStlemR6c2RTXC8rQzFLc1NoT1gzQWc9PSIsIm1hYyI6ImY3YzVmOTQwZmQ4YTBkYTFiYWQ2MzQwNDU3ZTYzNWEzM2ZiMGFmMDQ2MDc2MTdlNjdjZTQ2YTAyNzcyOGFlNjUifQ%3D%3D; expires=Mon, 23-Feb-2026 11:30:23 GMT; Max-Age=2628000; path=/; HttpOnly
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=8nksd0NqkmSrn%2FPw22TShbQwoE3R3NFl%2FJkImjUJyclhmQ017GyYlK7nLW2TYADmCWNYgTAeAcJe90Dq%2FvMt6NO2s3fBFIjH1O4gmAsvPkEiyXcF0%2FXR2g%3D%3D"}]}
cf-cache-status: DYNAMIC
vary: accept-encoding
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=12,cfOrigin;dur=969
CF-RAY: 9c2bc3e769faa06b-SIN
alt-svc: h3=":443"; ma=86400
Open service 104.21.51.177:8443 · tommytalk.ai
2026-01-24 01:30
HTTP/1.1 522 <none> Date: Sat, 24 Jan 2026 01:30:42 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c2bc3e7ae070b0c-FRA alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 172.67.183.56:80 · tommytalk.ai
2026-01-24 01:30
HTTP/1.1 301 Moved Permanently
Date: Sat, 24 Jan 2026 01:30:22 GMT
Content-Length: 0
Connection: close
Location: https://tommytalk.ai/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=EfNGhHzgZSw2WDaqDb0V7%2F%2FbarUEMYDE6%2Bb2v%2ByxNZn67JvCfKfIZb8eFdx264qQPxDJJNwIAbKbGdpjZB%2FjlyKt5d%2Bj32KB2EM%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c2bc3e15ce39b2e-FRA
alt-svc: h3=":443"; ma=86400
Open service 104.21.51.177:80 · tommytalk.ai
2026-01-24 01:30
HTTP/1.1 301 Moved Permanently
Date: Sat, 24 Jan 2026 01:30:22 GMT
Content-Length: 0
Connection: close
Location: https://tommytalk.ai/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=F226G2GCRZN%2FhHIEQ1edLW2IvERQ1VjKk1SPeFJUNrQh%2Fl3ycL%2B9Z72yKEjkOist6b8oyaTCWE5MAGfmTRvwrhLqPIUdVbBSQUDbLw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c2bc3e12c832fc1-AMS
alt-svc: h3=":443"; ma=86400
Open service 52.90.32.11:443 · staging-api-chat.tommytalk.ai
2026-01-23 00:57
HTTP/1.1 200 OK
Server: nginx/1.24.0 (Ubuntu)
Date: Fri, 23 Jan 2026 00:57:29 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 6773
Connection: close
Vary: Origin
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: Content-Length,Content-Type
Cross-Origin-Resource-Policy: cross-origin
Origin-Agent-Cluster: ?1
Referrer-Policy: no-referrer
Strict-Transport-Security: max-age=15552000; includeSubDomains
X-Content-Type-Options: nosniff
X-DNS-Prefetch-Control: off
X-Download-Options: noopen
X-Frame-Options: SAMEORIGIN
X-Permitted-Cross-Domain-Policies: none
X-XSS-Protection: 0
Accept-Ranges: bytes
Cache-Control: public, max-age=0
Last-Modified: Sun, 28 Sep 2025 12:56:25 GMT
ETag: W/"1a75-19990655a8c"
Page title: AI Chat API Server
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AI Chat API Server</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.container {
background: white;
border-radius: 20px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
padding: 40px;
max-width: 800px;
width: 100%;
}
h1 {
color: #333;
font-size: 2.5em;
margin-bottom: 10px;
text-align: center;
}
.subtitle {
color: #666;
text-align: center;
margin-bottom: 40px;
font-size: 1.1em;
}
.section {
margin-bottom: 30px;
}
.section-title {
color: #667eea;
font-size: 1.3em;
margin-bottom: 15px;
font-weight: 600;
}
.links {
display: grid;
gap: 10px;
}
.link-card {
display: block;
padding: 15px 20px;
background: #f8f9fa;
border-radius: 10px;
text-decoration: none;
color: #333;
transition: all 0.3s ease;
border: 2px solid transparent;
}
.link-card:hover {
background: #fff;
border-color: #667eea;
transform: translateX(5px);
box-shadow: 0 5px 15px rgba(102, 126, 234, 0.2);
}
.link-card .title {
font-weight: 600;
margin-bottom: 5px;
color: #667eea;
}
.link-card .description {
font-size: 0.9em;
color: #666;
}
.status {
text-align: center;
margin-top: 30px;
padding-top: 30px;
border-top: 1px solid #e0e0e0;
}
.status-badge {
display: inline-block;
padding: 5px 15px;
background: #28a745;
color: white;
border-radius: 20px;
font-size: 0.9em;
font-weight: 600;
}
.api-info {
background: #f0f4ff;
border-left: 4px solid #667eea;
padding: 15px;
margin-bottom: 30px;
border-radius: 5px;
}
.api-info p {
margin: 5px 0;
color: #555;
}
.api-info code {
background: #667eea;
color: white;
padding: 2px 6px;
border-radius: 3px;
font-family: 'Monaco', 'Menlo', monospace;
font-size: 0.9em;
}
</style>
</head>
<body>
<div class="container">
<h1>🤖 AI Chat API Server</h1>
<p class="subtitle">Stream Chat with AI Assistant Integration</p>
<div class="api-info">
<p><strong>Base URL:</strong> <code>http://localhost:3000</code></p>
<p><strong>API Version:</strong> <code>v2</code></p>
<p><strong>API Endpoint:</strong> <code>/api/v2</code></p>
</div>
<div class="section">
<h2 class="section-title">📚 API Documentation</h2>
<div class="links">
<a href="/api-docs" class="link-card">
<div class="title">Swagger UI</div>
<div class="description">In
Open service 52.90.32.11:80 · api-chat.tommytalk.ai
2026-01-22 20:23
HTTP/1.1 301 Moved Permanently Server: nginx/1.24.0 (Ubuntu) Date: Thu, 22 Jan 2026 20:23:31 GMT Content-Type: text/html Content-Length: 178 Connection: close Location: https://api-chat.tommytalk.ai/ Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx/1.24.0 (Ubuntu)</center> </body> </html>