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: 5733ddf49ff49cd1b885ff43c0e58872cfe858b02885a00a94d7b08723976883
Public Swagger UI/API detected at path: /swagger.json - sample paths:
GET /admin/clients
GET /admin/getAllClientsPowerUsage
GET /admin/getAllClientsPowerUsageCsv
GET /admin/getAwardsBySite
GET /admin/getClientPowerUsage
GET /admin/getClientPowerUsageCsv
GET /admin/getEmailsByAddress
GET /admin/getEnvironment
GET /admin/getEventsBySiteId
GET /admin/getRandomNumber
GET /admin/invoices
GET /admin/miners
GET /admin/sendSplitPowerPercentageBySite
GET /admin/sites
GET /admin/verify
GET /bitcoin/coinmarketcap
GET /bitcoin/mempoolspace
GET /bitcoin/minerstat
GET /database/customers/{customerId}/sites
GET /database/executing-events
GET /database/pool-swaps
GET /database/sites/{siteId}/day-ahead
GET /database/sites/{siteId}/events
GET /database/sites/{siteId}/look-ahead
GET /database/sites/{siteId}/real-time
GET /foreman/clients/{clientId}
GET /foreman/clients/{clientId}/asics
GET /foreman/clients/{clientId}/miners
GET /pjm/getLmpData
POST /admin/bearerHash
POST /admin/createInvoices
POST /admin/endDrs3Manually
POST /admin/endMisoRealTimeEvent
POST /admin/endMisoRealTimeTestEvent
POST /admin/getDrs2Roi
POST /admin/getEmails
POST /admin/getInvoices
POST /admin/insertHistoricLmpData
POST /admin/postIncompleteClients
POST /admin/processDrs2DayAheadAwards
POST /admin/processEvent
POST /admin/processEvents
POST /admin/processEventsByEmailAndSite
POST /admin/processEventsCheck
POST /admin/processText
POST /admin/reverseXor
POST /admin/runDailyProcesses
POST /admin/runOvernightProcesses
POST /admin/runPython
POST /admin/scheduleMisoPeakAvoidanceEvent
POST /admin/sendEmail
POST /admin/sendEventEndNotifications
POST /admin/sendInternalAndHostedMinerCounts
POST /admin/sendTestEmailNotification
POST /admin/sendTestTextNotification
POST /admin/startDrs3Manually
POST /admin/startDrs3TestTexts
POST /admin/startDrs3TestTextsCheck
POST /admin/startMisoRealTimeEvent
POST /admin/startMisoRealTimeTestEvent
POST /admin/submitDrs2Offers
POST /admin/submitDrs3Offers
POST /admin/updateClientGroups
POST /admin/updateClientPowerUsage
POST /admin/updateClientPowerUsageCheck
POST /admin/updateClients
POST /admin/updateEventConfigs
POST /admin/updateLmps
POST /admin/updateMiners
POST /admin/updatePnodes
POST /admin/uploadJsonFileToTable
POST /admin/xor
POST /alta/sensors/balancePower
POST /flex/addEvent
POST /flex/addSites
POST /flex/createUsers
POST /flex/login
POST /flex/resetPassword
POST /flex/verifySignature
POST /foreman/dispatches/{clientId}
POST /foreman/dispatches/{clientId}/{eventId}/cancel
POST /pjm/getDSRDASynchronizedReserveAward
POST /pjm/getDSRRTSynchronizedReserveAward
POST /pjm/getMarketResults
POST /pjm/getPortfolios
POST /pjm/getToken
POST /pjm/submitDSRScheduleOffer
POST /pjm/submitDSRScheduleOfferUpdate
POST /pjm/submitDSRSynchronizedReserveOffer
POST /pjm/submitDSRSynchronizedReserveUpdate
POST /pjm/submitDSRUpdate
POST /slack/ackMessage
POST /slack/postMessage
POST /slack/sendException
POST /slack/sendMessage
Severity: info
Fingerprint: 5733ddf49ff49cd1b885ff435897b6ad46d3d4313626b690c90d1964eb9615aa
Public Swagger UI/API detected at path: /swagger.json - sample paths:
GET /admin/getAllClientsPowerUsage
GET /admin/getAllClientsPowerUsageCsv
GET /admin/getAwardsBySite
GET /admin/getClientPowerUsage
GET /admin/getClientPowerUsageCsv
GET /admin/getEmailsByAddress
GET /admin/getEnvironment
GET /admin/getEventsBySiteId
GET /admin/getRandomNumber
GET /admin/sendSplitPowerPercentageBySite
GET /bitcoin/coinmarketcap
GET /bitcoin/mempoolspace
GET /bitcoin/minerstat
GET /database/customers/{customerId}/sites
GET /database/executing-events
GET /database/pool-swaps
GET /database/sites/{siteId}/day-ahead
GET /database/sites/{siteId}/events
GET /database/sites/{siteId}/look-ahead
GET /database/sites/{siteId}/real-time
GET /foreman/clients/{clientId}
GET /foreman/clients/{clientId}/asics
GET /foreman/clients/{clientId}/miners
GET /pjm/getLmpData
POST /admin/addClientEmail
POST /admin/bearerHash
POST /admin/createInvoices
POST /admin/endDrs3Manually
POST /admin/endMisoRealTimeEvent
POST /admin/endMisoRealTimeTestEvent
POST /admin/getDrs2Roi
POST /admin/getEmails
POST /admin/getInvoices
POST /admin/insertHistoricLmpData
POST /admin/postIncompleteClients
POST /admin/processDrs2DayAheadAwards
POST /admin/processEvent
POST /admin/processEvents
POST /admin/processEventsByEmailAndSite
POST /admin/processEventsCheck
POST /admin/processText
POST /admin/reverseXor
POST /admin/runDailyProcesses
POST /admin/runOvernightProcesses
POST /admin/runPython
POST /admin/scheduleMisoPeakAvoidanceEvent
POST /admin/sendEmail
POST /admin/sendEventEndNotifications
POST /admin/sendInternalAndHostedMinerCounts
POST /admin/sendTestEmailNotification
POST /admin/sendTestTextNotification
POST /admin/startDrs3Manually
POST /admin/startDrs3TestTexts
POST /admin/startDrs3TestTextsCheck
POST /admin/startMisoRealTimeEvent
POST /admin/startMisoRealTimeTestEvent
POST /admin/submitDrs2Offers
POST /admin/submitDrs3Offers
POST /admin/updateClientGroups
POST /admin/updateClientPowerUsage
POST /admin/updateClientPowerUsageCheck
POST /admin/updateClients
POST /admin/updateEventConfigs
POST /admin/updateLmps
POST /admin/updateMiners
POST /admin/updatePnodes
POST /admin/uploadJsonFileToTable
POST /admin/xor
POST /alta/sensors/balancePower
POST /flex/addEvent
POST /flex/addSites
POST /flex/createUsers
POST /flex/login
POST /flex/resetPassword
POST /flex/verifySignature
POST /foreman/dispatches/{clientId}
POST /foreman/dispatches/{clientId}/{eventId}/cancel
POST /pjm/getDSRDASynchronizedReserveAward
POST /pjm/getDSRRTSynchronizedReserveAward
POST /pjm/getMarketResults
POST /pjm/getPortfolios
POST /pjm/getToken
POST /pjm/submitDSRScheduleOffer
POST /pjm/submitDSRScheduleOfferUpdate
POST /pjm/submitDSRSynchronizedReserveOffer
POST /pjm/submitDSRSynchronizedReserveUpdate
POST /pjm/submitDSRUpdate
POST /slack/ackMessage
POST /slack/postMessage
POST /slack/sendException
POST /slack/sendMessage
Severity: info
Fingerprint: 5733ddf49ff49cd1b885ff435897b6ad46d3d4313626b690c90d1964c7a31fc9
Public Swagger UI/API detected at path: /swagger.json - sample paths:
GET /admin/getAllClientsPowerUsage
GET /admin/getAllClientsPowerUsageCsv
GET /admin/getAwardsBySite
GET /admin/getClientPowerUsage
GET /admin/getClientPowerUsageCsv
GET /admin/getEmailsByAddress
GET /admin/getEnvironment
GET /admin/getEventsBySiteId
GET /admin/getRandomNumber
GET /admin/sendSplitPowerPercentageBySite
GET /bitcoin/coinmarketcap
GET /bitcoin/mempoolspace
GET /bitcoin/minerstat
GET /database/customers/{customerId}/sites
GET /database/executing-events
GET /database/pool-swaps
GET /database/sites/{siteId}/day-ahead
GET /database/sites/{siteId}/events
GET /database/sites/{siteId}/look-ahead
GET /database/sites/{siteId}/real-time
GET /foreman/clients/{clientId}
GET /foreman/clients/{clientId}/asics
GET /foreman/clients/{clientId}/miners
GET /pjm/getLmpData
POST /admin/bearerHash
POST /admin/createInvoices
POST /admin/endDrs3Manually
POST /admin/endMisoRealTimeEvent
POST /admin/endMisoRealTimeTestEvent
POST /admin/getDrs2Roi
POST /admin/getEmails
POST /admin/getInvoices
POST /admin/insertHistoricLmpData
POST /admin/postIncompleteClients
POST /admin/processDrs2DayAheadAwards
POST /admin/processEvent
POST /admin/processEvents
POST /admin/processEventsByEmailAndSite
POST /admin/processEventsCheck
POST /admin/processText
POST /admin/reverseXor
POST /admin/runDailyProcesses
POST /admin/runOvernightProcesses
POST /admin/runPython
POST /admin/scheduleMisoPeakAvoidanceEvent
POST /admin/sendEmail
POST /admin/sendEventEndNotifications
POST /admin/sendInternalAndHostedMinerCounts
POST /admin/sendTestEmailNotification
POST /admin/sendTestTextNotification
POST /admin/startDrs3Manually
POST /admin/startDrs3TestTexts
POST /admin/startDrs3TestTextsCheck
POST /admin/startMisoRealTimeEvent
POST /admin/startMisoRealTimeTestEvent
POST /admin/submitDrs2Offers
POST /admin/submitDrs3Offers
POST /admin/updateClientGroups
POST /admin/updateClientPowerUsage
POST /admin/updateClientPowerUsageCheck
POST /admin/updateClients
POST /admin/updateEventConfigs
POST /admin/updateLmps
POST /admin/updateMiners
POST /admin/updatePnodes
POST /admin/uploadJsonFileToTable
POST /admin/xor
POST /alta/sensors/balancePower
POST /flex/addEvent
POST /flex/addSites
POST /flex/createUsers
POST /flex/login
POST /flex/resetPassword
POST /flex/verifySignature
POST /foreman/dispatches/{clientId}
POST /foreman/dispatches/{clientId}/{eventId}/cancel
POST /pjm/getDSRDASynchronizedReserveAward
POST /pjm/getDSRRTSynchronizedReserveAward
POST /pjm/getMarketResults
POST /pjm/getPortfolios
POST /pjm/getToken
POST /pjm/submitDSRScheduleOffer
POST /pjm/submitDSRScheduleOfferUpdate
POST /pjm/submitDSRSynchronizedReserveOffer
POST /pjm/submitDSRSynchronizedReserveUpdate
POST /pjm/submitDSRUpdate
POST /slack/ackMessage
POST /slack/postMessage
POST /slack/sendException
POST /slack/sendMessage
Severity: info
Fingerprint: 5733ddf49ff49cd1b885ff435897b6ad31f2fd6581d2cf506b9633283769df95
Public Swagger UI/API detected at path: /swagger.json - sample paths:
GET /admin/getAllClientsPowerUsage
GET /admin/getClientPowerUsage
GET /admin/getEmailsByAddress
GET /admin/getEnvironment
GET /admin/getRandomNumber
GET /bitcoin/coinmarketcap
GET /bitcoin/mempoolspace
GET /bitcoin/minerstat
GET /database/customers/{customerId}/sites
GET /database/executing-events
GET /database/pool-swaps
GET /database/sites/{siteId}/day-ahead
GET /database/sites/{siteId}/events
GET /database/sites/{siteId}/look-ahead
GET /database/sites/{siteId}/real-time
GET /foreman/clients/{clientId}
GET /foreman/clients/{clientId}/asics
GET /foreman/clients/{clientId}/miners
GET /pjm/getLmpData
POST /admin/bearerHash
POST /admin/createInvoices
POST /admin/endDrs3Manually
POST /admin/endMisoRealTimeEvent
POST /admin/endMisoRealTimeTestEvent
POST /admin/getDrs2Roi
POST /admin/getEmails
POST /admin/getInvoices
POST /admin/insertHistoricLmpData
POST /admin/postIncompleteClients
POST /admin/processDrs2DayAheadAwards
POST /admin/processEvent
POST /admin/processEvents
POST /admin/processEventsByEmailAndSite
POST /admin/processEventsCheck
POST /admin/processText
POST /admin/reverseXor
POST /admin/runDailyProcesses
POST /admin/runOvernightProcesses
POST /admin/runPython
POST /admin/scheduleMisoPeakAvoidanceEvent
POST /admin/sendEmail
POST /admin/sendEventEndNotifications
POST /admin/sendInternalAndHostedMinerCounts
POST /admin/sendTestEmailNotification
POST /admin/sendTestTextNotification
POST /admin/startDrs3Manually
POST /admin/startDrs3TestTexts
POST /admin/startDrs3TestTextsCheck
POST /admin/startMisoRealTimeEvent
POST /admin/startMisoRealTimeTestEvent
POST /admin/submitDrs2Offers
POST /admin/submitDrs3Offers
POST /admin/updateClientGroups
POST /admin/updateClientPowerUsage
POST /admin/updateClientPowerUsageCheck
POST /admin/updateClients
POST /admin/updateEventConfigs
POST /admin/updateLmps
POST /admin/updateMiners
POST /admin/updatePnodes
POST /admin/uploadJsonFileToTable
POST /admin/xor
POST /alta/sensors/balancePower
POST /flex/addEvent
POST /flex/addSites
POST /flex/createUsers
POST /flex/login
POST /flex/resetPassword
POST /flex/verifySignature
POST /foreman/dispatches/{clientId}
POST /foreman/dispatches/{clientId}/{eventId}/cancel
POST /pjm/getDSRDASynchronizedReserveAward
POST /pjm/getDSRRTSynchronizedReserveAward
POST /pjm/getMarketResults
POST /pjm/getPortfolios
POST /pjm/getToken
POST /pjm/submitDSRScheduleOffer
POST /pjm/submitDSRScheduleOfferUpdate
POST /pjm/submitDSRSynchronizedReserveOffer
POST /pjm/submitDSRSynchronizedReserveUpdate
POST /pjm/submitDSRUpdate
POST /slack/ackMessage
POST /slack/postMessage
POST /slack/sendException
POST /slack/sendMessage
Severity: info
Fingerprint: 5733ddf49ff49cd1b885ff435897b6ad31f2fd6581d2cf506b963328c8f41282
Public Swagger UI/API detected at path: /swagger.json - sample paths:
GET /admin/getAllClientsPowerUsage
GET /admin/getClientPowerUsage
GET /admin/getEmailsByAddress
GET /admin/getEnvironment
GET /admin/getRandomNumber
GET /bitcoin/coinmarketcap
GET /bitcoin/mempoolspace
GET /bitcoin/minerstat
GET /database/customers/{customerId}/sites
GET /database/executing-events
GET /database/pool-swaps
GET /database/sites/{siteId}/day-ahead
GET /database/sites/{siteId}/events
GET /database/sites/{siteId}/look-ahead
GET /database/sites/{siteId}/real-time
GET /foreman/clients/{clientId}
GET /foreman/clients/{clientId}/asics
GET /foreman/clients/{clientId}/miners
GET /pjm/getLmpData
POST /admin/bearerHash
POST /admin/createInvoices
POST /admin/endDrs3Manually
POST /admin/endMisoRealTimeEvent
POST /admin/endMisoRealTimeTestEvent
POST /admin/getDrs2Roi
POST /admin/getEmails
POST /admin/getInvoices
POST /admin/insertHistoricLmpData
POST /admin/postIncompleteClients
POST /admin/processDrs2DayAheadAwards
POST /admin/processEvent
POST /admin/processEvents
POST /admin/processEventsByEmailAndSite
POST /admin/processEventsCheck
POST /admin/processText
POST /admin/reverseXor
POST /admin/runDailyProcesses
POST /admin/runOvernightProcesses
POST /admin/runPython
POST /admin/sendEmail
POST /admin/sendEventEndNotifications
POST /admin/sendInternalAndHostedMinerCounts
POST /admin/sendTestEmailNotification
POST /admin/sendTestTextNotification
POST /admin/startDrs3Manually
POST /admin/startDrs3TestTexts
POST /admin/startDrs3TestTextsCheck
POST /admin/startMisoRealTimeEvent
POST /admin/startMisoRealTimeTestEvent
POST /admin/submitDrs2Offers
POST /admin/submitDrs3Offers
POST /admin/updateClientGroups
POST /admin/updateClientPowerUsage
POST /admin/updateClientPowerUsageCheck
POST /admin/updateClients
POST /admin/updateEventConfigs
POST /admin/updateLmps
POST /admin/updateMiners
POST /admin/updatePnodes
POST /admin/uploadJsonFileToTable
POST /admin/xor
POST /alta/sensors/balancePower
POST /flex/addEvent
POST /flex/addSites
POST /flex/createUsers
POST /flex/login
POST /flex/resetPassword
POST /flex/verifySignature
POST /foreman/dispatches/{clientId}
POST /foreman/dispatches/{clientId}/{eventId}/cancel
POST /pjm/getDSRDASynchronizedReserveAward
POST /pjm/getDSRRTSynchronizedReserveAward
POST /pjm/getMarketResults
POST /pjm/getPortfolios
POST /pjm/getToken
POST /pjm/submitDSRScheduleOffer
POST /pjm/submitDSRScheduleOfferUpdate
POST /pjm/submitDSRSynchronizedReserveOffer
POST /pjm/submitDSRSynchronizedReserveUpdate
POST /pjm/submitDSRUpdate
POST /slack/ackMessage
POST /slack/postMessage
POST /slack/sendException
POST /slack/sendMessage
Severity: info
Fingerprint: 5733ddf49ff49cd1b885ff430d5078105f801cf38b4885aad6e74c32356e66bc
Public Swagger UI/API detected at path: /swagger.json - sample paths:
GET /admin/getAllClientsMonthlyPowerUsage
GET /admin/getClientMonthlyPowerUsage
GET /admin/getEmailsByAddress
GET /admin/getEnvironment
GET /admin/getRandomNumber
GET /bitcoin/coinmarketcap
GET /bitcoin/mempoolspace
GET /bitcoin/minerstat
GET /database/customers/{customerId}/sites
GET /database/executing-events
GET /database/pool-swaps
GET /database/sites/{siteId}/day-ahead
GET /database/sites/{siteId}/events
GET /database/sites/{siteId}/look-ahead
GET /database/sites/{siteId}/real-time
GET /foreman/clients/{clientId}
GET /foreman/clients/{clientId}/asics
GET /foreman/clients/{clientId}/miners
GET /pjm/getLmpData
POST /admin/bearerHash
POST /admin/createInvoices
POST /admin/endDrs3Manually
POST /admin/endMisoRealTimeEvent
POST /admin/endMisoRealTimeTestEvent
POST /admin/getDrs2Roi
POST /admin/getEmails
POST /admin/getInvoices
POST /admin/insertHistoricLmpData
POST /admin/postIncompleteClients
POST /admin/processDrs2DayAheadAwards
POST /admin/processEvent
POST /admin/processEvents
POST /admin/processEventsByEmailAndSite
POST /admin/processEventsCheck
POST /admin/processText
POST /admin/reverseXor
POST /admin/runDailyProcesses
POST /admin/runOvernightProcesses
POST /admin/runPython
POST /admin/sendEmail
POST /admin/sendEventEndNotifications
POST /admin/sendInternalAndHostedMinerCounts
POST /admin/sendTestEmailNotification
POST /admin/sendTestTextNotification
POST /admin/startDrs3Manually
POST /admin/startDrs3TestTexts
POST /admin/startDrs3TestTextsCheck
POST /admin/startMisoRealTimeEvent
POST /admin/startMisoRealTimeTestEvent
POST /admin/submitDrs2Offers
POST /admin/submitDrs3Offers
POST /admin/updateClientGroups
POST /admin/updateClientPowerUsage
POST /admin/updateClientPowerUsageCheck
POST /admin/updateClients
POST /admin/updateEventConfigs
POST /admin/updateLmps
POST /admin/updateMiners
POST /admin/updatePnodes
POST /admin/uploadJsonFileToTable
POST /admin/xor
POST /alta/sensors/balancePower
POST /flex/addEvent
POST /flex/addSites
POST /flex/createUsers
POST /flex/login
POST /flex/resetPassword
POST /flex/verifySignature
POST /foreman/dispatches/{clientId}
POST /foreman/dispatches/{clientId}/{eventId}/cancel
POST /pjm/getDSRDASynchronizedReserveAward
POST /pjm/getDSRRTSynchronizedReserveAward
POST /pjm/getMarketResults
POST /pjm/getPortfolios
POST /pjm/getToken
POST /pjm/submitDSRScheduleOffer
POST /pjm/submitDSRScheduleOfferUpdate
POST /pjm/submitDSRSynchronizedReserveOffer
POST /pjm/submitDSRSynchronizedReserveUpdate
POST /pjm/submitDSRUpdate
POST /slack/ackMessage
POST /slack/postMessage
POST /slack/sendException
POST /slack/sendMessage
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: 5733ddf49ff49cd1b885ff435897b6ad46d3d4313626b690c90d1964eb9615aa
Public Swagger UI/API detected at path: /swagger.json - sample paths:
GET /admin/getAllClientsPowerUsage
GET /admin/getAllClientsPowerUsageCsv
GET /admin/getAwardsBySite
GET /admin/getClientPowerUsage
GET /admin/getClientPowerUsageCsv
GET /admin/getEmailsByAddress
GET /admin/getEnvironment
GET /admin/getEventsBySiteId
GET /admin/getRandomNumber
GET /admin/sendSplitPowerPercentageBySite
GET /bitcoin/coinmarketcap
GET /bitcoin/mempoolspace
GET /bitcoin/minerstat
GET /database/customers/{customerId}/sites
GET /database/executing-events
GET /database/pool-swaps
GET /database/sites/{siteId}/day-ahead
GET /database/sites/{siteId}/events
GET /database/sites/{siteId}/look-ahead
GET /database/sites/{siteId}/real-time
GET /foreman/clients/{clientId}
GET /foreman/clients/{clientId}/asics
GET /foreman/clients/{clientId}/miners
GET /pjm/getLmpData
POST /admin/addClientEmail
POST /admin/bearerHash
POST /admin/createInvoices
POST /admin/endDrs3Manually
POST /admin/endMisoRealTimeEvent
POST /admin/endMisoRealTimeTestEvent
POST /admin/getDrs2Roi
POST /admin/getEmails
POST /admin/getInvoices
POST /admin/insertHistoricLmpData
POST /admin/postIncompleteClients
POST /admin/processDrs2DayAheadAwards
POST /admin/processEvent
POST /admin/processEvents
POST /admin/processEventsByEmailAndSite
POST /admin/processEventsCheck
POST /admin/processText
POST /admin/reverseXor
POST /admin/runDailyProcesses
POST /admin/runOvernightProcesses
POST /admin/runPython
POST /admin/scheduleMisoPeakAvoidanceEvent
POST /admin/sendEmail
POST /admin/sendEventEndNotifications
POST /admin/sendInternalAndHostedMinerCounts
POST /admin/sendTestEmailNotification
POST /admin/sendTestTextNotification
POST /admin/startDrs3Manually
POST /admin/startDrs3TestTexts
POST /admin/startDrs3TestTextsCheck
POST /admin/startMisoRealTimeEvent
POST /admin/startMisoRealTimeTestEvent
POST /admin/submitDrs2Offers
POST /admin/submitDrs3Offers
POST /admin/updateClientGroups
POST /admin/updateClientPowerUsage
POST /admin/updateClientPowerUsageCheck
POST /admin/updateClients
POST /admin/updateEventConfigs
POST /admin/updateLmps
POST /admin/updateMiners
POST /admin/updatePnodes
POST /admin/uploadJsonFileToTable
POST /admin/xor
POST /alta/sensors/balancePower
POST /flex/addEvent
POST /flex/addSites
POST /flex/createUsers
POST /flex/login
POST /flex/resetPassword
POST /flex/verifySignature
POST /foreman/dispatches/{clientId}
POST /foreman/dispatches/{clientId}/{eventId}/cancel
POST /pjm/getDSRDASynchronizedReserveAward
POST /pjm/getDSRRTSynchronizedReserveAward
POST /pjm/getMarketResults
POST /pjm/getPortfolios
POST /pjm/getToken
POST /pjm/submitDSRScheduleOffer
POST /pjm/submitDSRScheduleOfferUpdate
POST /pjm/submitDSRSynchronizedReserveOffer
POST /pjm/submitDSRSynchronizedReserveUpdate
POST /pjm/submitDSRUpdate
POST /slack/ackMessage
POST /slack/postMessage
POST /slack/sendException
POST /slack/sendMessage
Severity: info
Fingerprint: 5733ddf49ff49cd1b885ff435897b6ad46d3d4313626b690c90d1964c7a31fc9
Public Swagger UI/API detected at path: /swagger.json - sample paths:
GET /admin/getAllClientsPowerUsage
GET /admin/getAllClientsPowerUsageCsv
GET /admin/getAwardsBySite
GET /admin/getClientPowerUsage
GET /admin/getClientPowerUsageCsv
GET /admin/getEmailsByAddress
GET /admin/getEnvironment
GET /admin/getEventsBySiteId
GET /admin/getRandomNumber
GET /admin/sendSplitPowerPercentageBySite
GET /bitcoin/coinmarketcap
GET /bitcoin/mempoolspace
GET /bitcoin/minerstat
GET /database/customers/{customerId}/sites
GET /database/executing-events
GET /database/pool-swaps
GET /database/sites/{siteId}/day-ahead
GET /database/sites/{siteId}/events
GET /database/sites/{siteId}/look-ahead
GET /database/sites/{siteId}/real-time
GET /foreman/clients/{clientId}
GET /foreman/clients/{clientId}/asics
GET /foreman/clients/{clientId}/miners
GET /pjm/getLmpData
POST /admin/bearerHash
POST /admin/createInvoices
POST /admin/endDrs3Manually
POST /admin/endMisoRealTimeEvent
POST /admin/endMisoRealTimeTestEvent
POST /admin/getDrs2Roi
POST /admin/getEmails
POST /admin/getInvoices
POST /admin/insertHistoricLmpData
POST /admin/postIncompleteClients
POST /admin/processDrs2DayAheadAwards
POST /admin/processEvent
POST /admin/processEvents
POST /admin/processEventsByEmailAndSite
POST /admin/processEventsCheck
POST /admin/processText
POST /admin/reverseXor
POST /admin/runDailyProcesses
POST /admin/runOvernightProcesses
POST /admin/runPython
POST /admin/scheduleMisoPeakAvoidanceEvent
POST /admin/sendEmail
POST /admin/sendEventEndNotifications
POST /admin/sendInternalAndHostedMinerCounts
POST /admin/sendTestEmailNotification
POST /admin/sendTestTextNotification
POST /admin/startDrs3Manually
POST /admin/startDrs3TestTexts
POST /admin/startDrs3TestTextsCheck
POST /admin/startMisoRealTimeEvent
POST /admin/startMisoRealTimeTestEvent
POST /admin/submitDrs2Offers
POST /admin/submitDrs3Offers
POST /admin/updateClientGroups
POST /admin/updateClientPowerUsage
POST /admin/updateClientPowerUsageCheck
POST /admin/updateClients
POST /admin/updateEventConfigs
POST /admin/updateLmps
POST /admin/updateMiners
POST /admin/updatePnodes
POST /admin/uploadJsonFileToTable
POST /admin/xor
POST /alta/sensors/balancePower
POST /flex/addEvent
POST /flex/addSites
POST /flex/createUsers
POST /flex/login
POST /flex/resetPassword
POST /flex/verifySignature
POST /foreman/dispatches/{clientId}
POST /foreman/dispatches/{clientId}/{eventId}/cancel
POST /pjm/getDSRDASynchronizedReserveAward
POST /pjm/getDSRRTSynchronizedReserveAward
POST /pjm/getMarketResults
POST /pjm/getPortfolios
POST /pjm/getToken
POST /pjm/submitDSRScheduleOffer
POST /pjm/submitDSRScheduleOfferUpdate
POST /pjm/submitDSRSynchronizedReserveOffer
POST /pjm/submitDSRSynchronizedReserveUpdate
POST /pjm/submitDSRUpdate
POST /slack/ackMessage
POST /slack/postMessage
POST /slack/sendException
POST /slack/sendMessage
Severity: info
Fingerprint: 5733ddf49ff49cd1b885ff435897b6ad31f2fd6581d2cf506b9633283769df95
Public Swagger UI/API detected at path: /swagger.json - sample paths:
GET /admin/getAllClientsPowerUsage
GET /admin/getClientPowerUsage
GET /admin/getEmailsByAddress
GET /admin/getEnvironment
GET /admin/getRandomNumber
GET /bitcoin/coinmarketcap
GET /bitcoin/mempoolspace
GET /bitcoin/minerstat
GET /database/customers/{customerId}/sites
GET /database/executing-events
GET /database/pool-swaps
GET /database/sites/{siteId}/day-ahead
GET /database/sites/{siteId}/events
GET /database/sites/{siteId}/look-ahead
GET /database/sites/{siteId}/real-time
GET /foreman/clients/{clientId}
GET /foreman/clients/{clientId}/asics
GET /foreman/clients/{clientId}/miners
GET /pjm/getLmpData
POST /admin/bearerHash
POST /admin/createInvoices
POST /admin/endDrs3Manually
POST /admin/endMisoRealTimeEvent
POST /admin/endMisoRealTimeTestEvent
POST /admin/getDrs2Roi
POST /admin/getEmails
POST /admin/getInvoices
POST /admin/insertHistoricLmpData
POST /admin/postIncompleteClients
POST /admin/processDrs2DayAheadAwards
POST /admin/processEvent
POST /admin/processEvents
POST /admin/processEventsByEmailAndSite
POST /admin/processEventsCheck
POST /admin/processText
POST /admin/reverseXor
POST /admin/runDailyProcesses
POST /admin/runOvernightProcesses
POST /admin/runPython
POST /admin/scheduleMisoPeakAvoidanceEvent
POST /admin/sendEmail
POST /admin/sendEventEndNotifications
POST /admin/sendInternalAndHostedMinerCounts
POST /admin/sendTestEmailNotification
POST /admin/sendTestTextNotification
POST /admin/startDrs3Manually
POST /admin/startDrs3TestTexts
POST /admin/startDrs3TestTextsCheck
POST /admin/startMisoRealTimeEvent
POST /admin/startMisoRealTimeTestEvent
POST /admin/submitDrs2Offers
POST /admin/submitDrs3Offers
POST /admin/updateClientGroups
POST /admin/updateClientPowerUsage
POST /admin/updateClientPowerUsageCheck
POST /admin/updateClients
POST /admin/updateEventConfigs
POST /admin/updateLmps
POST /admin/updateMiners
POST /admin/updatePnodes
POST /admin/uploadJsonFileToTable
POST /admin/xor
POST /alta/sensors/balancePower
POST /flex/addEvent
POST /flex/addSites
POST /flex/createUsers
POST /flex/login
POST /flex/resetPassword
POST /flex/verifySignature
POST /foreman/dispatches/{clientId}
POST /foreman/dispatches/{clientId}/{eventId}/cancel
POST /pjm/getDSRDASynchronizedReserveAward
POST /pjm/getDSRRTSynchronizedReserveAward
POST /pjm/getMarketResults
POST /pjm/getPortfolios
POST /pjm/getToken
POST /pjm/submitDSRScheduleOffer
POST /pjm/submitDSRScheduleOfferUpdate
POST /pjm/submitDSRSynchronizedReserveOffer
POST /pjm/submitDSRSynchronizedReserveUpdate
POST /pjm/submitDSRUpdate
POST /slack/ackMessage
POST /slack/postMessage
POST /slack/sendException
POST /slack/sendMessage
Severity: info
Fingerprint: 5733ddf49ff49cd1b885ff435897b6ad31f2fd6581d2cf506b963328c8f41282
Public Swagger UI/API detected at path: /swagger.json - sample paths:
GET /admin/getAllClientsPowerUsage
GET /admin/getClientPowerUsage
GET /admin/getEmailsByAddress
GET /admin/getEnvironment
GET /admin/getRandomNumber
GET /bitcoin/coinmarketcap
GET /bitcoin/mempoolspace
GET /bitcoin/minerstat
GET /database/customers/{customerId}/sites
GET /database/executing-events
GET /database/pool-swaps
GET /database/sites/{siteId}/day-ahead
GET /database/sites/{siteId}/events
GET /database/sites/{siteId}/look-ahead
GET /database/sites/{siteId}/real-time
GET /foreman/clients/{clientId}
GET /foreman/clients/{clientId}/asics
GET /foreman/clients/{clientId}/miners
GET /pjm/getLmpData
POST /admin/bearerHash
POST /admin/createInvoices
POST /admin/endDrs3Manually
POST /admin/endMisoRealTimeEvent
POST /admin/endMisoRealTimeTestEvent
POST /admin/getDrs2Roi
POST /admin/getEmails
POST /admin/getInvoices
POST /admin/insertHistoricLmpData
POST /admin/postIncompleteClients
POST /admin/processDrs2DayAheadAwards
POST /admin/processEvent
POST /admin/processEvents
POST /admin/processEventsByEmailAndSite
POST /admin/processEventsCheck
POST /admin/processText
POST /admin/reverseXor
POST /admin/runDailyProcesses
POST /admin/runOvernightProcesses
POST /admin/runPython
POST /admin/sendEmail
POST /admin/sendEventEndNotifications
POST /admin/sendInternalAndHostedMinerCounts
POST /admin/sendTestEmailNotification
POST /admin/sendTestTextNotification
POST /admin/startDrs3Manually
POST /admin/startDrs3TestTexts
POST /admin/startDrs3TestTextsCheck
POST /admin/startMisoRealTimeEvent
POST /admin/startMisoRealTimeTestEvent
POST /admin/submitDrs2Offers
POST /admin/submitDrs3Offers
POST /admin/updateClientGroups
POST /admin/updateClientPowerUsage
POST /admin/updateClientPowerUsageCheck
POST /admin/updateClients
POST /admin/updateEventConfigs
POST /admin/updateLmps
POST /admin/updateMiners
POST /admin/updatePnodes
POST /admin/uploadJsonFileToTable
POST /admin/xor
POST /alta/sensors/balancePower
POST /flex/addEvent
POST /flex/addSites
POST /flex/createUsers
POST /flex/login
POST /flex/resetPassword
POST /flex/verifySignature
POST /foreman/dispatches/{clientId}
POST /foreman/dispatches/{clientId}/{eventId}/cancel
POST /pjm/getDSRDASynchronizedReserveAward
POST /pjm/getDSRRTSynchronizedReserveAward
POST /pjm/getMarketResults
POST /pjm/getPortfolios
POST /pjm/getToken
POST /pjm/submitDSRScheduleOffer
POST /pjm/submitDSRScheduleOfferUpdate
POST /pjm/submitDSRSynchronizedReserveOffer
POST /pjm/submitDSRSynchronizedReserveUpdate
POST /pjm/submitDSRUpdate
POST /slack/ackMessage
POST /slack/postMessage
POST /slack/sendException
POST /slack/sendMessage
Severity: info
Fingerprint: 5733ddf49ff49cd1b885ff430d5078105f801cf38b4885aad6e74c32356e66bc
Public Swagger UI/API detected at path: /swagger.json - sample paths:
GET /admin/getAllClientsMonthlyPowerUsage
GET /admin/getClientMonthlyPowerUsage
GET /admin/getEmailsByAddress
GET /admin/getEnvironment
GET /admin/getRandomNumber
GET /bitcoin/coinmarketcap
GET /bitcoin/mempoolspace
GET /bitcoin/minerstat
GET /database/customers/{customerId}/sites
GET /database/executing-events
GET /database/pool-swaps
GET /database/sites/{siteId}/day-ahead
GET /database/sites/{siteId}/events
GET /database/sites/{siteId}/look-ahead
GET /database/sites/{siteId}/real-time
GET /foreman/clients/{clientId}
GET /foreman/clients/{clientId}/asics
GET /foreman/clients/{clientId}/miners
GET /pjm/getLmpData
POST /admin/bearerHash
POST /admin/createInvoices
POST /admin/endDrs3Manually
POST /admin/endMisoRealTimeEvent
POST /admin/endMisoRealTimeTestEvent
POST /admin/getDrs2Roi
POST /admin/getEmails
POST /admin/getInvoices
POST /admin/insertHistoricLmpData
POST /admin/postIncompleteClients
POST /admin/processDrs2DayAheadAwards
POST /admin/processEvent
POST /admin/processEvents
POST /admin/processEventsByEmailAndSite
POST /admin/processEventsCheck
POST /admin/processText
POST /admin/reverseXor
POST /admin/runDailyProcesses
POST /admin/runOvernightProcesses
POST /admin/runPython
POST /admin/sendEmail
POST /admin/sendEventEndNotifications
POST /admin/sendInternalAndHostedMinerCounts
POST /admin/sendTestEmailNotification
POST /admin/sendTestTextNotification
POST /admin/startDrs3Manually
POST /admin/startDrs3TestTexts
POST /admin/startDrs3TestTextsCheck
POST /admin/startMisoRealTimeEvent
POST /admin/startMisoRealTimeTestEvent
POST /admin/submitDrs2Offers
POST /admin/submitDrs3Offers
POST /admin/updateClientGroups
POST /admin/updateClientPowerUsage
POST /admin/updateClientPowerUsageCheck
POST /admin/updateClients
POST /admin/updateEventConfigs
POST /admin/updateLmps
POST /admin/updateMiners
POST /admin/updatePnodes
POST /admin/uploadJsonFileToTable
POST /admin/xor
POST /alta/sensors/balancePower
POST /flex/addEvent
POST /flex/addSites
POST /flex/createUsers
POST /flex/login
POST /flex/resetPassword
POST /flex/verifySignature
POST /foreman/dispatches/{clientId}
POST /foreman/dispatches/{clientId}/{eventId}/cancel
POST /pjm/getDSRDASynchronizedReserveAward
POST /pjm/getDSRRTSynchronizedReserveAward
POST /pjm/getMarketResults
POST /pjm/getPortfolios
POST /pjm/getToken
POST /pjm/submitDSRScheduleOffer
POST /pjm/submitDSRScheduleOfferUpdate
POST /pjm/submitDSRSynchronizedReserveOffer
POST /pjm/submitDSRSynchronizedReserveUpdate
POST /pjm/submitDSRUpdate
POST /slack/ackMessage
POST /slack/postMessage
POST /slack/sendException
POST /slack/sendMessage
Open service 15.197.149.68:80 · api-dev.megawatthq.com
2026-01-10 01:26
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Sat, 10 Jan 2026 01:27:32 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=%2BeH%2FmdZ3izo7I9BxF2hTZ%2FKp2gQ824ZZp1RTQ%2FC1LGI%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1768008452"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=%2BeH%2FmdZ3izo7I9BxF2hTZ%2FKp2gQ824ZZp1RTQ%2FC1LGI%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1768008452"
Server: Heroku
Vary: origin,accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 15.197.149.68:443 · api-dev.megawatthq.com
2026-01-09 01:32
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Fri, 09 Jan 2026 01:32:33 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=TrSm27zeO3LWZiJ7PUGno%2Bl%2BIemKBkHRPtQ9ZcadwSo%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1767922353"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=TrSm27zeO3LWZiJ7PUGno%2Bl%2BIemKBkHRPtQ9ZcadwSo%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1767922353"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 15.197.149.68:80 · api-dev.megawatthq.com
2026-01-03 00:47
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Sat, 03 Jan 2026 00:47:51 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=3PnCsXbp4EkIXyeKRxOQ33m%2FJFKX60NCqQEu%2FAZqeSg%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1767401271"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=3PnCsXbp4EkIXyeKRxOQ33m%2FJFKX60NCqQEu%2FAZqeSg%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1767401271"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 15.197.149.68:443 · api-dev.megawatthq.com
2026-01-02 01:46
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Fri, 02 Jan 2026 01:46:20 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=qWWkYHZbbr9DSVqcJ2%2BoYO8lsmrXFhmkiUUBeacNk8I%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1767318380"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=qWWkYHZbbr9DSVqcJ2%2BoYO8lsmrXFhmkiUUBeacNk8I%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1767318380"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 15.197.149.68:443 · api-dev.megawatthq.com
2025-12-30 09:14
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Tue, 30 Dec 2025 09:14:44 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=eG2jGtv5K5LjluO5CQMjPQHHzv5xbVmesmWrnFp2pzI%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1767086084"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=eG2jGtv5K5LjluO5CQMjPQHHzv5xbVmesmWrnFp2pzI%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1767086084"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 15.197.149.68:443 · api-dev.megawatthq.com
2025-12-23 08:28
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Tue, 23 Dec 2025 08:28:01 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=oxDO7mSjTFq8ZHVzzlKa%2BxaAg%2FV07qjewtXV2JHRacM%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1766478481"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=oxDO7mSjTFq8ZHVzzlKa%2BxaAg%2FV07qjewtXV2JHRacM%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1766478481"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 15.197.149.68:80 · api-dev.megawatthq.com
2025-12-23 00:51
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Tue, 23 Dec 2025 00:51:32 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=mQ77cb3vgr0Rf1hsiNZoL2h1e5cBptciuHbPD0ZqqkQ%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1766451092"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=mQ77cb3vgr0Rf1hsiNZoL2h1e5cBptciuHbPD0ZqqkQ%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1766451092"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 15.197.149.68:80 · api-dev.megawatthq.com
2025-12-21 08:24
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Sun, 21 Dec 2025 08:24:14 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=rWiHnYxQF0bAAioDVHAuaADYWggUxcjr5N4PpZIuRBs%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1766305454"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=rWiHnYxQF0bAAioDVHAuaADYWggUxcjr5N4PpZIuRBs%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1766305454"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 15.197.149.68:443 · api-dev.megawatthq.com
2025-12-21 06:51
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Sun, 21 Dec 2025 06:51:34 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=TI7u6TUS8qTNctudWOz8bobm8YuuJoND4RrlD83Hzcg%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1766299894"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=TI7u6TUS8qTNctudWOz8bobm8YuuJoND4RrlD83Hzcg%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1766299894"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 15.197.149.68:80 · api-dev.megawatthq.com
2025-12-19 09:24
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Fri, 19 Dec 2025 09:24:26 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=4kMUjQQWkZd69oDUArtZNy7LWnOSERR3eyZXrZTIMJs%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1766136266"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=4kMUjQQWkZd69oDUArtZNy7LWnOSERR3eyZXrZTIMJs%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1766136266"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 15.197.149.68:443 · api-dev.megawatthq.com
2025-12-19 01:41
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Fri, 19 Dec 2025 01:41:23 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=PSs5zdJXm6bfI0W4TPm%2Fjhdc4uyBAy2gyINqk%2FOoGW8%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1766108483"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=PSs5zdJXm6bfI0W4TPm%2Fjhdc4uyBAy2gyINqk%2FOoGW8%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1766108483"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 76.223.57.73:80 · api-dev.megawatthq.com
2025-12-19 01:41
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Fri, 19 Dec 2025 01:41:25 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=LPyX3Da8fds23HDUtNPvWlb26fFobWeBDytJM1%2F9rb4%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1766108485"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=LPyX3Da8fds23HDUtNPvWlb26fFobWeBDytJM1%2F9rb4%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1766108485"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 15.197.149.68:80 · api-dev.megawatthq.com
2025-12-19 01:41
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Fri, 19 Dec 2025 01:41:25 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=LPyX3Da8fds23HDUtNPvWlb26fFobWeBDytJM1%2F9rb4%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1766108485"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=LPyX3Da8fds23HDUtNPvWlb26fFobWeBDytJM1%2F9rb4%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1766108485"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 3.33.241.96:443 · api-dev.megawatthq.com
2025-12-19 01:41
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Fri, 19 Dec 2025 01:41:22 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=b3NaCoaMsgilHqPi0tWAecm21tIGzUgwRJNLpdb1jIM%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1766108482"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=b3NaCoaMsgilHqPi0tWAecm21tIGzUgwRJNLpdb1jIM%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1766108482"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 76.223.57.73:443 · api-dev.megawatthq.com
2025-12-19 01:41
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Fri, 19 Dec 2025 01:41:22 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=b3NaCoaMsgilHqPi0tWAecm21tIGzUgwRJNLpdb1jIM%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1766108482"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=b3NaCoaMsgilHqPi0tWAecm21tIGzUgwRJNLpdb1jIM%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1766108482"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 13.248.213.92:80 · api-dev.megawatthq.com
2025-12-19 01:41
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Fri, 19 Dec 2025 01:41:25 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=LPyX3Da8fds23HDUtNPvWlb26fFobWeBDytJM1%2F9rb4%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1766108485"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=LPyX3Da8fds23HDUtNPvWlb26fFobWeBDytJM1%2F9rb4%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1766108485"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 13.248.213.92:443 · api-dev.megawatthq.com
2025-12-19 01:41
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Fri, 19 Dec 2025 01:41:22 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=b3NaCoaMsgilHqPi0tWAecm21tIGzUgwRJNLpdb1jIM%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1766108482"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=b3NaCoaMsgilHqPi0tWAecm21tIGzUgwRJNLpdb1jIM%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1766108482"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>
Open service 3.33.241.96:80 · api-dev.megawatthq.com
2025-12-19 01:41
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 2675
Content-Type: text/html; charset=utf-8
Date: Fri, 19 Dec 2025 01:41:25 GMT
Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=LPyX3Da8fds23HDUtNPvWlb26fFobWeBDytJM1%2F9rb4%3D\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\u0026ts=1766108485"}],"max_age":3600}
Reporting-Endpoints: heroku-nel="https://nel.heroku.com/reports?s=LPyX3Da8fds23HDUtNPvWlb26fFobWeBDytJM1%2F9rb4%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1766108485"
Server: Heroku
Vary: accept-encoding
Via: 1.1 heroku-router
Connection: close
Page title: Megawatt API Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Megawatt API Documentation</title>
<link rel="stylesheet" type="text/css" href="/swaggerui/swagger-ui.css" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/swaggerui/favicon-16x16.png" sizes="16x16" />
<style>
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="/swaggerui/swagger-ui-bundle.js"></script>
<script src="/swaggerui/swagger-ui-standalone-preset.js"></script>
<script src="/swaggerui/extend.js" type="text/javascript"></script>
<script>
function getUrlVars() {
const vars = [];
let hash;
const hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (let i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
window.onload = function() {
let url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/swagger.json";
}
// pull validatorUrl string or null form server
let validatorUrl = null;
validatorUrl: '//online.swagger.io/validator';
const ACCESS_TOKEN_QUERY_PARAM_NAME = 'access_token';
const accessToken = getUrlVars()[ACCESS_TOKEN_QUERY_PARAM_NAME];
const swaggerOptions = {
url: url + (accessToken ? (url.indexOf('?') < 0 ? '?' : '&') + ACCESS_TOKEN_QUERY_PARAM_NAME + '=' + accessToken : ''),
validatorUrl: validatorUrl,
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: 'StandaloneLayout',
docExpansion: "list",
tagsSorter: apisSorter.alpha,
operationsSorter: operationsSorter.alpha,
// patch: uiCompleteScript -- Rendering
onComplete: function() {
},
tryItOutEnabled: false,
}
const ui = SwaggerUIBundle(swaggerOptions);
window.ui = ui;
};
</script>
</body>
</html>