Query https://map.corrupt.link/haze.geojson with basic HTTP authorization of your haze explr login. You can optionally replace the password with the SHA256 version.
If you want to add it to QGIS, use https://map.corrupt.link/plainhaze.geojson?auth=<PAYLOAD> where <PAYLOAD> is base64 of your username and password SHA256 separated by a colon. (ex. alice@bob.net:fccacb26c90aef704b379d02e24a13e3f96ffd0175421d7309110158fd3726fd --> YWxpY2VAYm9iLm5ldDpmY2NhY2IyNmM5MGFlZjcwNGIzNzlkMDJlMjRhMTNlM2Y5NmZmZDAxNzU0MjFkNzMwOTExMDE1OGZkMzcyNmZkCg==)
On linux you can use the following shell one-liner to generate this for you:
echo "EMAIL:`echo 'PASSWORD' | sha256sum | sed -e 's/ -//'`" | base64
Found from TLS details
WebUI only open to mods and admins
DNS: 134.122.23.207 2604:a880:400:d0::18af:9001 (Digital Ocean East)
| Port | Utility |
|---|---|
| 22 | SSH (Possible honeypot?) |
| 80 | Standard HTTP, Redirects to TLS |
| 443 | Standard HTTPS |
| 8021 | |
| 8022 | Maybe real SSH? |
| 8120 | API used in app, websocket on /explr |
| 8121 | API used in app |
| 8121 | 8120 | |||
|---|---|---|---|---|
| Capture | In | Out | In | Out |
| 1 | 227.03k | 1.39k | ||
| 2 | 138.36k | 3.08k | 458.46k | 3.49k |
ec2-107-20-157-215.compute-1.amazonaws.com
| Capture | In | Out |
|---|---|---|
| 1 | ||
| 3 | 3.64k | 5.36k |
server-52-85-193-49.iad55.r.cloudfront.net
CloudFront relay
| Capture | In | Out |
|---|---|---|
| 1 | ||
| 3 | 1.04m | 42.67k |
AppleHttpServer
| Capture | In | Out |
|---|---|---|
| 1 | 49.1k + 12.9k | 14.55k 10.29k |
| 3 | 126 | 542 |
| Capture | In | Out |
|---|---|---|
| 1 | ||
| 3 | 112 | 12.33k |
usewr1-edge-bx-025.aaplimg.com
usqas2-vip-fx-107.b.aaplimg.com
Accelerator?
wss://do.ecven.com:8120/explr
For each message sent, increment socketMessageId
{
"event": "authenticateAccount_request",
"body": [
{
"password": "<SHA256 PASSWORD>",
"email": "<ACCOUNT EMAIL>"
}
],
"socketMessageId": 0
}
{
"event": "authenticateAccount_response",
"body": {
"response": 1,
"email": "<ACCOUNT EMAIL>",
"username": "<ACCOUNT USERNAME>",
"accountType": 0,
"authToken": "<AUTH TOKEN UUID>",
"isDisclaimerAccepted": true,
"isTutorialRead": false
},
"socketMessageId": 0
}
{
"event":"getBasePoint_request",
"body":[],
"socketMessageId":0
}
{
"event":"getBasePoint_response",
"body": {
"response":1,
"basePoint": {
"_sharedClassName":"Coordinates",
"latitude":39.44798120000226,
"longitude":-77.48753190000001
},
"updateBasePointToLiveCoordinates":false
},
"socketMessageId":0
}
{
"event": "getExplrConfigRequest",
"socketMessageId": 0
}
{
"response": 1,
"socketMessageId": 0,
"event": "getExplrConfigResponse",
"EXPLR_CONFIG": {
"LEVEL_THRESHOLDS": {
"0": 0,
"1": 20,
"2": 100,
"3": 250,
"4": 1000,
"5": 2500
},
"DAILY_LOCATION_AMOUNT": {
"0": 1,
"1": 1,
"2": 1,
"3": 2,
"4": 2,
"5": 2
},
"MEMO_APPROVE_REWARD_OPTIONS": {
"1": 2,
"2": 4,
"3": 8,
"4": 12,
"6": 20,
"8": 30,
"-2": 0,
"-1": 0
},
"UNCONFIRMED_APPROVE_REWARD_OPTIONS": {
"1": 1,
"2": 2,
"3": 4,
"4": 6,
"6": 10,
"8": 15,
"-2": 0,
"-1": 0
},
"STARTER_LOCATION_AMOUNT": 20,
"CONTRIBUTION_REWARD_FOR_MEMO_ON_UNCONFIRMED": 8,
"LOCATION_REWARD_FOR_MEMO_ON_UNCONFIRMED": 5,
"CONTRIBUTION_REWARD_FOR_DROP_DEPLOYED": 50,
"CONTRIBUTION_REWARD_FOR_DROP_CAPTURED": 50,
"MEMO_SESSION_JOIN_DISTANCE_LIMIT_IN_KMS": 1,
"MEMO_CREATION_AREA_LIMIT_IN_KMS": 1,
"CONTRIBUTION_REWARD_FOR_SUBMISSION_REVIEW": 0.2,
"DISCORD_LINKS": {
"default": "https://discord.gg/6XXKqvpFxz",
"requestAFeatureChannel": "https://discord.gg/abXT5JVHAU",
"submissionQuestionsChannel": "https://discord.gg/amDX4U8ahZ"
}
}
}
{
"event": "reportDeviceInfoRequest",
"modelname": "iPhone 16 Pro Max",
"osName": "iOS",
"osVersion": "26.4",
"browserName": null,
"broswerVersion": null,
"brand": "Apple",
"manufacturer": "Apple",
"deviceType": "PHONE"
}
{
"event": "getMyLocationsRequest_request",
"body": [
{
"higlightImages": true
}
],
"socketMessageId": 0
}
{
"event": "getMyLocationsRequest_response",
"body": {
"locations": [
{
"_sharedClassName": "LocationMarker",
"id": "<LOCATION ID>",
"name": "<LOCATION NAME>",
"coordinates": {
"latitude": <LATITUDE>,
"longitude": <LONGITUDE>,
"_sharedClassName": "Coordinates"
},
"locationCategory": 0,
"explored": 0,
"isUnconfirmedLocation": 1
},
{
"_sharedClassName": "LocationMarker",
"id": "<LOCATION ID>",
"name": "<LOCATION NAME>",
"coordinates": {
"speed": 0,
"heading": 0,
"accuracy": 0,
"altitude": 0,
"latitude": <LATITUDE>,
"longitude": <LONGITUDE>,
"_sharedClassName": "Coordinates",
"altitudeAccuracy": 0
},
"locationCategory": 0,
"explored": 0,
"isUnconfirmedLocation": 0
}
],
"highlightImages": [
{
"locationId": "<LOCATION ID>",
"url": "https://do.ecven.com:8121/<locationGalleries || memos>/<LOCATION ID>/<MEDIA ID>.jpg",
"blurhash": "C2kKDIJfY3Znd4d1h3efXMb6gg=="
}
],
"unconfirmedLocationSubmissions": [
{
"_sharedClassName": "LocationSubmission",
"id": "<LOCATION ID>",
"coordinates": {
"_sharedClassName": "Coordinates",
"latitude": <LATITUDE>,
"longitude": <LONGITUDE>
},
"name": "<LOCATION NAME>",
"gallery": [
{
"_sharedClassName": "UnconfirmedLocationSubmissionMediaData",
"id": "e658edd6-2d4c-4440-b2dc-620ff787b0e4",
"mediaType": "jpg",
"uploaderData": {
"email": "liz@hacdc.org",
"username": "sciencegiel100"
},
"url": "https://do.ecven.com:8121/locationGalleries/b9ba1562-561f-4958-ba62-509ba1acf93a/e658edd6-2d4c-4440-b2dc-620ff787b0e4.jpg",
"thumbnailUrl": "https://do.ecven.com:8121/locationGalleries/b9ba1562-561f-4958-ba62-509ba1acf93a/thumbnails/e658edd6-2d4c-4440-b2dc-620ff787b0e4_thumbnail.jpg",
"review": {
"status": 0,
"message": null,
"date": null
},
"likes": 0,
"likedByUser": false,
"metadata": {
"Make": "Apple",
"Flash": 16,
"Model": "iPhone 15 Pro Max",
"FNumber": 1.7799999713880652,
"DateTime": "2025:05:10 18:41:43",
"GPSSpeed": 0.2478117945265159,
"LensMake": "Apple",
"Software": "18.5",
"LensModel": "iPhone 15 Pro Max back triple camera 6.765mm f/1.78",
"SceneType": 1,
"ColorSpace": 65535,
"OffsetTime": "-04:00",
"ExifVersion": [
2,
3,
2
],
"FocalLength": 6.764999865652793,
"GPSAltitude": 51.44491544947703,
"GPSLatitude": <LATITUDE>,
"GPSSpeedRef": "K",
"Orientation": 1,
"SubjectArea": [
2011,
1508,
1106,
665
],
"XResolution": 72,
"YResolution": 72,
"ExposureMode": 0,
"ExposureTime": 0.00021701388888888888,
"GPSDateStamp": "2025:05:10",
"GPSLongitude": <LONGITUDE>,
"GPSTimeStamp": "22:41:43",
"HostComputer": "iPhone 15 Pro Max",
"MeteringMode": 5,
"WhiteBalance": 0,
"ApertureValue": 1.6637544366004915,
"SensingMethod": 2,
"originalWidth": 4032,
"CompositeImage": 2,
"GPSAltitudeRef": 0,
"GPSDestBearing": 264.4307250538406,
"GPSLatitudeRef": "N",
"ResolutionUnit": 2,
"originalHegiht": 3024,
"BrightnessValue": 9.95662418335654,
"ExposureProgram": 2,
"FlashPixVersion": [
1,
0
],
"GPSImgDirection": 264.4307250538406,
"GPSLongitudeRef": "W",
"ISOSpeedRatings": [
64
],
"PixelXDimension": 4032,
"PixelYDimension": 3024,
"DateTimeOriginal": "2025:05:10 18:41:43",
"SceneCaptureType": 0,
"originalFileName": "IMG_3344.jpeg",
"originalFileSize": 3083270,
"originalMimeType": "image/jpeg",
"DateTimeDigitized": "2025:05:10 18:41:43",
"ExposureBiasValue": 0,
"GPSDestBearingRef": "T",
"LensSpecification": [
2.2200000286102295,
15.65999984741211,
1.7799999713897705,
2.799999952316284
],
"ShutterSpeedValue": 12.17001733102253,
"FocalLenIn35mmFilm": 48,
"GPSImgDirectionRef": "T",
"OffsetTimeOriginal": "-04:00",
"SubsecTimeOriginal": "492",
"OffsetTimeDigitized": "-04:00",
"SubsecTimeDigitized": "492",
"GPSHPositioningError": 4.660972795951025,
"ComponentsConfiguration": [
1,
2,
3,
0
]
},
"blurhash": "XggODYKEiHiPh3h6eJd3hoA+B8iU",
"locationId": "<LOCATION ID>",
"state": 2
},
{
"_sharedClassName": "UnconfirmedLocationSubmissionMediaData",
"id": "<MEDIA ID>",
"mediaType": "jpg",
"uploaderData": {
"email": "<ACCOUNT EMAIL>",
"username": "<ACCOUNT USERNAME>"
},
"url": "https://do.ecven.com:8121/locationGalleries/<LOCATION ID>/<MEDIA ID>.jpg",
"thumbnailUrl": "https://do.ecven.com:8121/locationGalleries/<LOCATION ID>/thumbnails/<MEDIA ID>_thumbnail.jpg",
"review": {
"status": 0,
"message": null,
"date": null
},
"likes": 0,
"likedByUser": false,
"metadata": {
"Make": "Apple",
"Flash": 16,
"Model": "iPhone 15 Pro Max",
"FNumber": 1.7799999713880652,
"DateTime": "2025:05:10 18:53:27",
"GPSSpeed": 0,
"LensMake": "Apple",
"Software": "18.5",
"LensModel": "iPhone 15 Pro Max back triple camera 6.765mm f/1.78",
"SceneType": 1,
"ColorSpace": 65535,
"OffsetTime": "-04:00",
"ExifVersion": [
2,
3,
2
],
"FocalLength": 6.764999865652793,
"GPSAltitude": 40.23681866040334,
"GPSLatitude": 38.924805,
"GPSSpeedRef": "K",
"Orientation": 6,
"SubjectArea": [
2851,
2137,
3141,
1884
],
"XResolution": 72,
"YResolution": 72,
"ExposureMode": 0,
"ExposureTime": 0.008264462809917356,
"GPSDateStamp": "2025:05:10",
"GPSLongitude": 76.85524666666667,
"GPSTimeStamp": "22:53:25",
"HostComputer": "iPhone 15 Pro Max",
"MeteringMode": 5,
"WhiteBalance": 0,
"ApertureValue": 1.6637544366004915,
"SensingMethod": 2,
"originalWidth": 4284,
"CompositeImage": 2,
"GPSAltitudeRef": 0,
"GPSDestBearing": 8.632770539408424,
"GPSLatitudeRef": "N",
"ResolutionUnit": 2,
"originalHegiht": 5712,
"BrightnessValue": 4.928007601227891,
"ExposureProgram": 2,
"FlashPixVersion": [
1,
0
],
"GPSImgDirection": 8.632770539408424,
"GPSLongitudeRef": "W",
"ISOSpeedRatings": [
64
],
"PixelXDimension": 5712,
"PixelYDimension": 4284,
"DateTimeOriginal": "2025:05:10 18:53:27",
"SceneCaptureType": 0,
"originalFileName": "IMG_3351.jpeg",
"originalFileSize": 8312455,
"originalMimeType": "image/jpeg",
"DateTimeDigitized": "2025:05:10 18:53:27",
"ExposureBiasValue": 0,
"GPSDestBearingRef": "T",
"LensSpecification": [
2.2200000286102295,
15.65999984741211,
1.7799999713897705,
2.799999952316284
],
"ShutterSpeedValue": 6.924366061244187,
"FocalLenIn35mmFilm": 24,
"GPSImgDirectionRef": "T",
"OffsetTimeOriginal": "-04:00",
"SubsecTimeOriginal": "117",
"OffsetTimeDigitized": "-04:00",
"SubsecTimeDigitized": "117",
"GPSHPositioningError": 119.49265197060788,
"ComponentsConfiguration": [
1,
2,
3,
0
]
},
"blurhash": "2NgFDQIamXWI94RoZ4yHVoZnsAP4",
"locationId": "<LOCATION ID>",
"state": 2
}
],
"locationCategory": 0,
"locationRating": {
"difficultyRating": 0,
"overallRating": 0,
"levelRequired": 0,
"ratingItemsList": [
{
"id": 4,
"count": 1,
"comments": []
},
{
"id": 27,
"count": 1,
"comments": []
}
]
},
"locationComments": [
{
"_sharedClassName": "LocationComment",
"id": "<COMMENT ID>",
"commenter": {
"email": "<ACCOUNT EMAIL>",
"username": "<ACCOUNT USERNAME>",
"accountType": 0,
"level": 2
},
"createdAt": "2025-12-23T15:26:44.000Z",
"updatedAt": "2025-12-23T15:26:44.000Z",
"comment": "<COMMENT TEXT>\n",
"upvotes": 0,
"downvotes": 0,
"upvotedByUser": false,
"downvotedByUser": false
}
],
"review": {
"status": 2,
"message": "<REVIEW MESSAGE>",
"date": "2025-12-29T12:08:16.532Z",
"reviewedBy": {
"email": "<REVIEWER ACCOUNT EMAIL>",
"username": "<REVIEWER ACCOUNT USERNAME>"
}
},
"submitDate": "2025-12-23T15:26:44.000Z",
"isUnconfirmedLocation": true,
"unconfirmedLocationSource": 2,
"submittorUserDatas": [
{
"email": "<ACCOUNT EMAIL>",
"id": "<ACCOUNT ID>",
"username": "<ACCOUNT USERNAME>",
"lvl": 2,
"honor": 3
}
],
"locationsInProximity": []
}
],
"memoSubmissionsWithNewLocations": [],
"response": 1
},
"socketMessageId": 0
}
{
"event":"claimDailyLocationRewards_request",
"body":[],
"socketMessageId":0
}
{
"event":"claimDailyLocationRewards_response",
"body": {
"response":0,
"responseDetails":"All daily locations have already been claimed"
},
"socketMessageId":0
}
{
"event":"getAllBlockedUsersRequest",
"socketMessageId":0
}
{
"response":1,
"socketMessageId":0,
"event":"getAllBlockedUsersResponse",
"blockedUsers":[]
}
{
"event": "getUserProfile_request",
"body": [
"<ACCOUNT EMAIL>"
],
"socketMessageId": 0
}
{
"event": "getUserProfile_response",
"body": {
"id": "<ACCOUNT UUID>",
"locationsUnlocked": 316,
"locationsExplored": 18,
"memosCreated": 19,
"dropsDeployed": 0,
"dropsCaptured": 0,
"contribution": 216,
"totalLocationsInApp": 27441,
"locationsAdded": 5,
"userLevel": 2,
"honorLevel": 3,
"bio": "<ACCOUNT DESCRIPTION>",
"coverPhoto": {
"_sharedClassName": "ProfileCoverPhoto",
"id": "<MEDIA ID>",
"mediaType": "jpg",
"url": "https://do.ecven.com:8121/profileCoverPhotos/<MEDIA ID>.jpg",
"thumbnailUrl": "https://do.ecven.com:8121/profileCoverPhotos/<MEDIA ID>_thumbnail.jpg",
"blurhash": "2gcSFYJod3iPeHd7iLd4i5WPbfnH"
},
"accountType": 0,
"response": 1
},
"socketMessageId": 0
}
{
"event":"getUserSettings_request",
"body":[],
"socketMessageId":0
}
{
"event":"getUserSettings_response",
"body": {
"response":1,
"settings": {
"units":"metric",
"mapRotation":1
}
},
"socketMessageId":0
}
{
"event": "getUserNotificationsRequest",
"filters": [
{
"type": {
"in": [
"DAILY_LOCATIONS_GROUPED_BY_WEEK",
"STARTER_LOCATIONS_GROUPED",
"MEMO_REJECTED",
"MEMO_APPROVED",
"MEMO_MERGE_APPROVED",
"MEMO_EDIT_APPROVED",
"MEMO_EDIT_REJECTED",
"UNCONFIRMED_APPROVED",
"UNCONFIRMED_MERGE_APPROVED",
"UNCONFIRMED_REJECTED",
"MEMO_CREATED_ON_UNCONFIRMED",
"UNCONFIRMED_MORE_INFO_REQUESTED",
"MEMO_MORE_INFO_REQUESTED",
"MEMO_EDIT_MORE_INFO_REQUESTED",
"SUBMISSIONS_REVIEWED_GROUPED_BY_DAY"
]
},
"openedAt": {
"isNull": true
}
},
{
"type": {
"in": [
"DAILY_LOCATIONS_GROUPED_BY_WEEK",
"STARTER_LOCATIONS_GROUPED",
"MEMO_REJECTED",
"MEMO_APPROVED",
"MEMO_MERGE_APPROVED",
"MEMO_EDIT_APPROVED",
"MEMO_EDIT_REJECTED",
"UNCONFIRMED_APPROVED",
"UNCONFIRMED_MERGE_APPROVED",
"UNCONFIRMED_REJECTED",
"MEMO_CREATED_ON_UNCONFIRMED",
"UNCONFIRMED_MORE_INFO_REQUESTED",
"MEMO_MORE_INFO_REQUESTED",
"MEMO_EDIT_MORE_INFO_REQUESTED",
"SUBMISSIONS_REVIEWED_GROUPED_BY_DAY"
]
},
"hasUnopenedChildren": {
"equals": true
}
}
],
"socketMessageId": 0
}
{
"response": 1,
"socketMessageId": 0,
"event": "getUserNotificationsResponse",
"notifications": []
}
{
"event": "getNewsFeedEntriesRequest",
"socketMessageId": 0
}
{
"response": 1,
"socketMessageId": 0,
"event": "getNewsFeedEntriesResponse",
"newsFeedEntries": [
{
"_sharedClassName": "NewsFeedEntry",
"id": 2,
"title": "1.6.0 Update",
"content": "<h2>New Release - Level System</h2>\n \n <p>Hey Explorers, we've got some exciting updates for you!</p>\n \n\n <p>- You're already looking at the first new feature, this news feed that helps us keep you updated about what we're up to;)</p>\n <p>- The big update is the minimum level required feature that we added to protect locations better. Here's how it works: </p>\n \n <div style=\"margin-left: 20px;\">\n <p>• When you add a location or memo, you can vote for a minimum level:</p>\n \n <img \n src=\"https://ecven.com/min_required_level_announcement.png\" \n style=\"width: 206px; margin: 0px auto 0px 0px;\" \n draggable=\"true\"\n >\n \n <p>• Only people who have reached that level will be able to unlock this location (unless they've already unlocked the location or added it themselves).</p>\n <p>• The level required rating for a location will be the average of everyone's vote.</p> \n <p>• People who have higher levels should have done a lot of urbexing and contributed a lot, so we hope this will help to protect the better, more untouched locations.</p>\n <p>• If you have any thoughts or suggestions on this new level system, let us know! Protecting locations is crucial, so we want to make sure we get this right. It's hard to find the right balance between helping people finding new places and protecting locations, but we want to do our best to make sure only the right kind of people can find these spots;)</p>\n </div>\n \n\n <p>- You can now share links in your bio. Feel free to share your socials, YouTube, TikTok, etc:) If there's ways we can help you grow your channels, let us know!</p>\n <p>- After you reach the Pathfinder level, you'll get 2 daily locations instead of 1.</p>\n <p>- Added \"dead air\" and \"unstable structure/roof\" ratings.</p>\n <p>- And tons of performance improvements, especially on the map, so you can have a sleek experience!</p>\n",
"publishedAt": "2025-02-22T15:31:29.000Z",
"createdAt": "2025-02-22T14:52:11.000Z",
"updatedAt": "2025-02-22T15:31:29.000Z",
"readAt": "2025-12-23T15:11:48.000Z"
}
]
}
{
"event":"getCommentId_request",
"body":[],
"socketMessageId":0
}
{
"event":"getCommentId_response",
"body": {
"response":1,
"id":";{
~;St;~z}~gz~;S;k~.~~;E;~z}~oz
~;S;SHHGz{G|;vE;~{;St;~z}~gz~;S;k~.~~;E;~z}~oz
~;S;SHHGz{G|;v"
},
"socketMessageId":0
}
{
"event":"getMapboxPublicTokenMobile_request",
"body":[],
"socketMessageId":0
}
{
"event":"getMapboxPublicTokenMobile_response",
"body": {
"response":1,
"proxyUrl":null,
"token":"pk.<MAPBOX TOKEN>",
"styleMonochrome":"mapbox://styles/eclectic-ventures/clyrai2pq00ds01r1hvdoapp6",
"styleSatellite":"mapbox://styles/eclectic-ventures/clyraiw62008001phhi861mvd"
},
"socketMessageId":0
}