GitHub.com
tcp/443 tcp/80
cloudflare
tcp/443 tcp/80 tcp/8443
GraphQL introspection is enabled.
This could leak to data leak if not properly configured.
Severity: medium
Fingerprint: c2db3a1c40d490db1a0bbaa3033f3dff3086accd012968c2cb8b3636f56ee9d2
GraphQL introspection enabled at /graphql Types: 126 (by kind: ENUM: 8, INPUT_OBJECT: 55, INTERFACE: 1, OBJECT: 53, SCALAR: 8, UNION: 1) Operations: - Query: Query | fields: area, areas, bulkAreas, climb, stats - Mutation: Mutation | fields: addArea, addEntityTag, addMediaObjects, deleteMediaObject, removeEntityTag Directives: deprecated, include, oneOf, skip, specifiedBy (total: 5)
Severity: medium
Fingerprint: c2db3a1c40d490db84e0e35084e0e35084e0e35084e0e35084e0e35084e0e350
GraphQL introspection enabled at /api
GraphQL introspection is enabled.
This could leak to data leak if not properly configured.
Severity: medium
Fingerprint: c2db3a1c40d490db1a0bbaa388c412b3f75821b144b8aa96c8b01ca278574d3e
GraphQL introspection enabled at /graphql Types: 128 (by kind: ENUM: 8, INPUT_OBJECT: 57, INTERFACE: 1, OBJECT: 53, SCALAR: 8, UNION: 1) Operations: - Query: Query | fields: area, areas, bulkAreas, climb, stats - Mutation: Mutation | fields: addArea, addEntityTag, addMediaObjects, deleteMediaObject, removeEntityTag Directives: deprecated, include, oneOf, skip, specifiedBy (total: 5)
Severity: medium
Fingerprint: c2db3a1c40d490db1a0bbaa3033f3dff3086accd012968c2cb8b3636f56ee9d2
GraphQL introspection enabled at /graphql Types: 126 (by kind: ENUM: 8, INPUT_OBJECT: 55, INTERFACE: 1, OBJECT: 53, SCALAR: 8, UNION: 1) Operations: - Query: Query | fields: area, areas, bulkAreas, climb, stats - Mutation: Mutation | fields: addArea, addEntityTag, addMediaObjects, deleteMediaObject, removeEntityTag Directives: deprecated, include, oneOf, skip, specifiedBy (total: 5)
Open service 104.21.89.118:443 · api.openbeta.io
2026-01-10 02:26
HTTP/1.1 400 Bad Request
Date: Sat, 10 Jan 2026 02:26:05 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 406
Connection: close
x-powered-by: Express
access-control-allow-origin: *
etag: W/"196-HUCJKwlQurC5GNaaJnH0d+HOnRw"
strict-transport-security: max-age=31536000; includeSubDomains
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=12,cfOrigin;dur=5
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=pBMcNL3u%2F0zia4wWcKBZfwY171ggiryAnotaLHQaxSm1VvNK%2FmJcEYj74AJlz%2B5Ku2%2FKQUfHJZ1dDMF85KUEpOwabeT92amaYzoP2hOl6Q%3D%3D"}]}
Server: cloudflare
CF-RAY: 9bb8ba41984e41df-EWR
alt-svc: h3=":443"; ma=86400
{"errors":[{"message":"This operation has been blocked as a potential Cross-Site Request Forgery (CSRF). Please either specify a 'content-type' header (with a type that is not one of application/x-www-form-urlencoded, multipart/form-data, text/plain) or provide a non-empty value for one of the following headers: x-apollo-operation-name, apollo-require-preflight\n","extensions":{"code":"BAD_REQUEST"}}]}
Open service 172.67.141.162:443 · stg-api.openbeta.io
2026-01-08 21:09
HTTP/1.1 400 Bad Request
Date: Thu, 08 Jan 2026 21:09:37 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 406
Connection: close
x-powered-by: Express
access-control-allow-origin: *
etag: W/"196-HUCJKwlQurC5GNaaJnH0d+HOnRw"
strict-transport-security: max-age=31536000; includeSubDomains
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
cf-cache-status: DYNAMIC
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=25,cfOrigin;dur=11
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=EbemYPPGOe2EZUfc5A6I3TiC%2FwE1MEPOIRtoh0FWA25mPLkhehec8b0UzrS6G3%2F8Bvjf23oqYWy1gZGk3UFQfvU5qSEGs8l87svzUDXF85d2TwU%3D"}]}
Server: cloudflare
CF-RAY: 9baead4a684bac39-YYZ
alt-svc: h3=":443"; ma=86400
{"errors":[{"message":"This operation has been blocked as a potential Cross-Site Request Forgery (CSRF). Please either specify a 'content-type' header (with a type that is not one of application/x-www-form-urlencoded, multipart/form-data, text/plain) or provide a non-empty value for one of the following headers: x-apollo-operation-name, apollo-require-preflight\n","extensions":{"code":"BAD_REQUEST"}}]}
Open service 2606:4700:3030::6815:5976:8443 · openbeta.io
2026-01-08 18:11
HTTP/1.1 522 <none> Date: Thu, 08 Jan 2026 18:12:19 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19448,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bada91a99565c1b-SJC alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 104.21.89.118:80 · openbeta.io
2026-01-08 18:11
HTTP/1.1 301 Moved Permanently
Date: Thu, 08 Jan 2026 18:11:58 GMT
Content-Length: 0
Connection: close
Location: https://openbeta.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=DWSeO8TDliCRDwoHDM56FmoC%2F4tNJ2PgvcuVbsDN1KyaeOC33Hd41WU90HlgOko7LZS%2BRUt9kAFt0FRBrWiw7NxKOigGu3TjeHsI"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=5,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9bada91359457769-YYZ
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3034::ac43:8da2:80 · openbeta.io
2026-01-08 18:11
HTTP/1.1 301 Moved Permanently
Date: Thu, 08 Jan 2026 18:11:58 GMT
Content-Length: 0
Connection: close
Location: https://openbeta.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=n3WiE%2BQ2%2FzwU1OMmiXft1GBq2HnKjPUhO6DcS0glUqTAM8xiZBCgCdpDRtiBET1usmoHYIJ0HDf5XoDLLuVpNdNFd1roh7yrha2Zhn6n8fJp0uQjWwRp"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=10,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9bada9132ef8c090-SJC
alt-svc: h3=":443"; ma=86400
Open service 172.67.141.162:8443 · openbeta.io
2026-01-08 18:11
HTTP/1.1 522 <none> Date: Thu, 08 Jan 2026 18:12:18 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19328,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bada918e921a034-FRA alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2606:4700:3030::6815:5976:80 · openbeta.io
2026-01-08 18:11
HTTP/1.1 301 Moved Permanently
Date: Thu, 08 Jan 2026 18:11:58 GMT
Content-Length: 0
Connection: close
Location: https://openbeta.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=rvhASJQI%2FyAWEStOWy2MSaOezJ1JrPe9NzlQvlqB8tix6oum0s15njNpA4bj9r5M4WsfyUekkB22NQifhaFBgNw3f2xY0GKVmKJ9NPoyvn5afqtRDIfQ"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=12,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9bada9129ed264b2-FRA
alt-svc: h3=":443"; ma=86400
Open service 104.21.89.118:8443 · openbeta.io
2026-01-08 18:11
HTTP/1.1 522 <none> Date: Thu, 08 Jan 2026 18:12:19 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19611,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bada9188df0d3a4-FRA alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 172.67.141.162:80 · openbeta.io
2026-01-08 18:11
HTTP/1.1 301 Moved Permanently
Date: Thu, 08 Jan 2026 18:11:58 GMT
Content-Length: 0
Connection: close
Location: https://openbeta.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Grxd9lXsFlE513ox%2B4k2psni2Jo9r0HpAUa%2B3S8gsZENqenObNoxdtxZsyL59akx5JgPdxVax%2FHM1KA7L0JdHxd%2BCDtSyxWReO5f"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=12,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9bada912589a39b4-EWR
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3034::ac43:8da2:8443 · openbeta.io
2026-01-08 18:11
HTTP/1.1 522 <none> Date: Thu, 08 Jan 2026 18:12:18 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19292,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bada9187f64aa39-EWR alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2606:4700:3034::ac43:8da2:443 · openbeta.io
2026-01-08 18:11
HTTP/1.1 200 OK
Date: Thu, 08 Jan 2026 18:11:58 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Cache-Control: s-maxage=3600, stale-while-revalidate
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=PILoLyFErdLrW3iN0WheayS9AGdXV8Jc756ykTaEjGAQR4VQjx%2Bp61sW9Gsos0cPZKNVe9ksL2180cqHo0OSNeZUBTjqn1k%2B4ubA8CRZM%2FLSUD6yqOax"}]}
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=11,cfOrigin;dur=109
Server: cloudflare
vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding
x-nextjs-cache: HIT
x-powered-by: Next.js
x-railway-edge: railway/europe-west4-drams3a
x-railway-request-id: quYDdbteQaO3vEESw9P4nw
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
CF-RAY: 9bada9142eed671a-AMS
alt-svc: h3=":443"; ma=86400
Open service 104.21.89.118:443 · openbeta.io
2026-01-08 18:11
HTTP/1.1 200 OK
Date: Thu, 08 Jan 2026 18:11:59 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Cache-Control: s-maxage=3600, stale-while-revalidate
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=%2BejbEiGfcG9YOKeNaeRLAOj0y71n4A14I6qpRWl2ufji4OSjAgUBVRVMftP3EOtUWowgAUUcL2jbraPS1Tz5fu4ZieECyrKPF9dS"}]}
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=36,cfOrigin;dur=254
Server: cloudflare
vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding
x-nextjs-cache: HIT
x-powered-by: Next.js
x-railway-edge: railway/europe-west4-drams3a
x-railway-request-id: OcESlCJ4QC2XoIxYrJsmnA
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
CF-RAY: 9bada9154f716e15-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3030::6815:5976:443 · openbeta.io
2026-01-08 18:11
HTTP/1.1 200 OK
Date: Thu, 08 Jan 2026 18:11:59 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Cache-Control: s-maxage=3600, stale-while-revalidate
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ezWWFIwkY91idb%2Fjgvj%2F%2FhkT6CWM3F0n4YvhFaQB37T42rFnhmAK5PTv%2BUX3fFktKXazpifLQDqusvd3C2Ic05B9cHLMtgYkD442ewTh86NkALOwWnmt"}]}
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=21,cfOrigin;dur=208
Server: cloudflare
vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding
x-nextjs-cache: HIT
x-powered-by: Next.js
x-railway-edge: railway/europe-west4-drams3a
x-railway-request-id: DjF5dzjoSZWrn_y2ss7a6g
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
CF-RAY: 9bada9149f78feaf-AMS
alt-svc: h3=":443"; ma=86400
Open service 172.67.141.162:443 · openbeta.io
2026-01-08 18:11
HTTP/1.1 200 OK
Date: Thu, 08 Jan 2026 18:11:59 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Cache-Control: s-maxage=3600, stale-while-revalidate
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=iJ0JkYrBbzpIgEEou15MljHVIbB4xYioxSJ%2FnGVF%2F8aD4WyFpUQrs1kTdsZL1xtedgYr%2FLH%2FjjBHnMLCx6FPSvE%2F1oVA6nozryqp"}]}
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=39,cfOrigin;dur=144
Server: cloudflare
vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding
x-nextjs-cache: HIT
x-powered-by: Next.js
x-railway-edge: railway/europe-west4-drams3a
x-railway-request-id: ilVNhyMbSgeWqwwww9P4nw
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
CF-RAY: 9bada9151fba9490-LHR
alt-svc: h3=":443"; ma=86400
Open service 104.21.89.118:443 · api.openbeta.io
2026-01-02 23:21
HTTP/1.1 400 Bad Request
Date: Fri, 02 Jan 2026 23:21:08 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 406
Connection: close
x-powered-by: Express
access-control-allow-origin: *
etag: W/"196-HUCJKwlQurC5GNaaJnH0d+HOnRw"
strict-transport-security: max-age=31536000; includeSubDomains
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
cf-cache-status: DYNAMIC
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=98,cfOrigin;dur=4
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=pIcdq8%2BEhECNSE%2B5LhqlHQLnrX7xjtryLcjA3e3VvW%2BftpX8Pe15iRo1HHHRmZR%2BHghzaiYQa3Na7ftxH36xQcFrpRHN%2B%2FFxYZz%2B5XHccw%3D%3D"}]}
Server: cloudflare
CF-RAY: 9b7dfdb46c80190b-FRA
alt-svc: h3=":443"; ma=86400
{"errors":[{"message":"This operation has been blocked as a potential Cross-Site Request Forgery (CSRF). Please either specify a 'content-type' header (with a type that is not one of application/x-www-form-urlencoded, multipart/form-data, text/plain) or provide a non-empty value for one of the following headers: x-apollo-operation-name, apollo-require-preflight\n","extensions":{"code":"BAD_REQUEST"}}]}
Open service 172.67.141.162:443 · stg-api.openbeta.io
2026-01-01 20:54
HTTP/1.1 400 Bad Request
Date: Thu, 01 Jan 2026 20:54:15 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 406
Connection: close
x-powered-by: Express
access-control-allow-origin: *
etag: W/"196-HUCJKwlQurC5GNaaJnH0d+HOnRw"
strict-transport-security: max-age=31536000; includeSubDomains
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
cf-cache-status: DYNAMIC
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=103,cfOrigin;dur=18
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=FlS2o9l94meIDc5wT0gKu58QVO%2BFJBF74QNuTXHQGXfGAb7GPptPuhCdGUHZ9K7W6QOOrYA07maO%2Fn1URfCbLiIbYEP2nwD3N5GYObqXnsuHyoo%3D"}]}
Server: cloudflare
CF-RAY: 9b74e928fe593f0f-FRA
alt-svc: h3=":443"; ma=86400
{"errors":[{"message":"This operation has been blocked as a potential Cross-Site Request Forgery (CSRF). Please either specify a 'content-type' header (with a type that is not one of application/x-www-form-urlencoded, multipart/form-data, text/plain) or provide a non-empty value for one of the following headers: x-apollo-operation-name, apollo-require-preflight\n","extensions":{"code":"BAD_REQUEST"}}]}
Open service 2606:50c0:8000::153:443 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 200 OK
Connection: close
Content-Length: 3386
Server: GitHub.com
Content-Type: text/html; charset=utf-8
Last-Modified: Wed, 19 May 2021 09:29:40 GMT
Access-Control-Allow-Origin: *
ETag: "60a4da84-d3a"
expires: Wed, 31 Dec 2025 23:39:01 GMT
Cache-Control: max-age=600
x-proxy-cache: MISS
X-GitHub-Request-Id: AD8D:3D0C51:A66A506:A8BF413:6955B1B7
Accept-Ranges: bytes
Date: Wed, 31 Dec 2025 23:29:02 GMT
Via: 1.1 varnish
Age: 0
X-Served-By: cache-fra-eddf8230156-FRA
X-Cache: HIT
X-Cache-Hits: 1
X-Timer: S1767223742.181944,VS0,VE1
Vary: Accept-Encoding
X-Fastly-Request-ID: 9ba102d043dd033187d6584b885f203bdfe6efd5
Page title: Mountain Project - Route Recommender
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mountain Project - Route Recommender</title>
<link rel="stylesheet" href="style/main.css">
</head>
<body>
<section class="section" id="route-finder">
<h1 class="route-finder__heading">Mountain Project Route Recommender</h1>
<form id="route-finder-form" method="POST" action="http://18.221.10.29"></form>
<p class="route-finder__text">
Fill out the fields below and we'll make an intelligent recommendation on what you should climb.
</p>
<label for="type">Route Type</label>
<select class="route-finder__select" id="type-select" name="type" required>
<option value="" selected>Choose type first!</option>
<option value="Boulder">Boulder</option>
<option value="Sport">Sport</option>
<option value="Trad">Trad</option>
</select>
<label for="min-grade">Minimum Grade</label>
<select class="route-finder__select" id="min-grade" name="min-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label for="max-grade">Maximum Grade</label>
<select class="route-finder__select" id="max-grade" name="max-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label class="route-finder__label" for="pitches">No. Pitches</label>
<select class="route-finder__select" id="pitches" name="pitches" required>
</select>
<label for="location">Location</label>
<select class="route-finder__select" id="location" name="location" required>
<option value="" selected>Select one</option>
</select>
<label class="route-finder__label" for="user_id">Mountain Project User ID</label>
<input class="route-finder__input" type="number" id="user_id" name="user_id" value="123">
<!-- <fieldset id="keywords">
<legend>Keywords</legend>
</fieldset> -->
<button id="submit-button" class="route-finder__submit" type="submit" name="button">Get Routes</button>
</form>
<h3 class="route-finder__about-heading">About</h3>
<p class="route-finder__about"><a href="https://github.com/sailskisurf23/MtProjRec" target="_blank">Recommendation engine</a> by <a target="_blank" href="https://www.linkedin.com/in/colinbrochard/">Colin Brochard</a>.<br> <a href="https://github.com/ian-schu/mountain_project_collab" target="_blank">Front end code</a> by <a target="_blank" href="https://www.linkedin.com/in/ianschumann/">Ian Schumann</a>.</p>
</section>
<section class="section" id="results">
<h2 id="the_results_heading" class="results__heading">Recommended Routes</h2>
<p id="the_results_description" class="results__description"></p>
<table class="results__table">
<thead>
<tr>
<td>Name</td>
<td>Grade</td>
<td>No. Pitches</td>
<td>Keywords</td>
<td>No. Stars</td>
</tr>
</thead>
<tbody id="the_results">
</tbody>
</table>
</section>
<script src="scripts/datasets.js" type="text/javascript" charset="utf-8"></script>
<script src="scripts/main.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>
Open service 2606:50c0:8000::153:80 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 301 Moved Permanently Connection: close Content-Length: 162 Server: GitHub.com Content-Type: text/html Location: https://mp-recommender.apps.openbeta.io/ X-GitHub-Request-Id: 7F19:2FB824:A579542:A7CE814:6955B1BD Accept-Ranges: bytes Age: 0 Date: Wed, 31 Dec 2025 23:29:02 GMT Via: 1.1 varnish X-Served-By: cache-vie6372-VIE X-Cache: MISS X-Cache-Hits: 0 X-Timer: S1767223742.142462,VS0,VE107 Vary: Accept-Encoding X-Fastly-Request-ID: b480d37841964aa4189b2363032b8918f7a43e19 Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html>
Open service 185.199.108.153:80 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 301 Moved Permanently Connection: close Content-Length: 162 Server: GitHub.com Content-Type: text/html Location: https://mp-recommender.apps.openbeta.io/ X-GitHub-Request-Id: A002:3D0C51:A66A595:A8BF4A0:6955B1BD Accept-Ranges: bytes Date: Wed, 31 Dec 2025 23:29:02 GMT Via: 1.1 varnish Age: 0 X-Served-By: cache-sin-wsat1880064-SIN X-Cache: HIT X-Cache-Hits: 1 X-Timer: S1767223742.315273,VS0,VE1 Vary: Accept-Encoding X-Fastly-Request-ID: ce91017f0f76431e3d36c105c4ff75db31d4981a Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html>
Open service 2606:50c0:8003::153:80 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 301 Moved Permanently Connection: close Content-Length: 162 Server: GitHub.com Content-Type: text/html Location: https://mp-recommender.apps.openbeta.io/ X-GitHub-Request-Id: A002:3D0C51:A66A595:A8BF4A0:6955B1BD Accept-Ranges: bytes Date: Wed, 31 Dec 2025 23:29:02 GMT Via: 1.1 varnish Age: 0 X-Served-By: cache-sin-wsat1880055-SIN X-Cache: HIT X-Cache-Hits: 1 X-Timer: S1767223742.313194,VS0,VE1 Vary: Accept-Encoding X-Fastly-Request-ID: 9e1a1c4f2ebe0f2b1a80bfbfbf9752dc675f8c6b Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html>
Open service 185.199.111.153:80 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 301 Moved Permanently Connection: close Content-Length: 162 Server: GitHub.com Content-Type: text/html Location: https://mp-recommender.apps.openbeta.io/ X-GitHub-Request-Id: 120B:1E3944:57F460F:5AB466F:6955B1BD Accept-Ranges: bytes Date: Wed, 31 Dec 2025 23:29:01 GMT Via: 1.1 varnish Age: 0 X-Served-By: cache-pao-kpao1770068-PAO X-Cache: HIT X-Cache-Hits: 1 X-Timer: S1767223742.828364,VS0,VE1 Vary: Accept-Encoding X-Fastly-Request-ID: 35f5653bbd4ad24e6b0e82a8d682951f2f4507d1 Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html>
Open service 2606:50c0:8003::153:443 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 200 OK
Connection: close
Content-Length: 3386
Server: GitHub.com
Content-Type: text/html; charset=utf-8
Last-Modified: Wed, 19 May 2021 09:29:40 GMT
Access-Control-Allow-Origin: *
ETag: "60a4da84-d3a"
expires: Wed, 31 Dec 2025 23:39:01 GMT
Cache-Control: max-age=600
x-proxy-cache: MISS
X-GitHub-Request-Id: 3FA3:1E3944:57F4611:5AB4670:6955B1BD
Accept-Ranges: bytes
Date: Wed, 31 Dec 2025 23:29:01 GMT
Via: 1.1 varnish
Age: 0
X-Served-By: cache-pao-kpao1770077-PAO
X-Cache: HIT
X-Cache-Hits: 1
X-Timer: S1767223742.860838,VS0,VE6
Vary: Accept-Encoding
X-Fastly-Request-ID: 6ee02e2a1a5404c0e4cfd5e0bd4acbaef89afe14
Page title: Mountain Project - Route Recommender
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mountain Project - Route Recommender</title>
<link rel="stylesheet" href="style/main.css">
</head>
<body>
<section class="section" id="route-finder">
<h1 class="route-finder__heading">Mountain Project Route Recommender</h1>
<form id="route-finder-form" method="POST" action="http://18.221.10.29"></form>
<p class="route-finder__text">
Fill out the fields below and we'll make an intelligent recommendation on what you should climb.
</p>
<label for="type">Route Type</label>
<select class="route-finder__select" id="type-select" name="type" required>
<option value="" selected>Choose type first!</option>
<option value="Boulder">Boulder</option>
<option value="Sport">Sport</option>
<option value="Trad">Trad</option>
</select>
<label for="min-grade">Minimum Grade</label>
<select class="route-finder__select" id="min-grade" name="min-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label for="max-grade">Maximum Grade</label>
<select class="route-finder__select" id="max-grade" name="max-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label class="route-finder__label" for="pitches">No. Pitches</label>
<select class="route-finder__select" id="pitches" name="pitches" required>
</select>
<label for="location">Location</label>
<select class="route-finder__select" id="location" name="location" required>
<option value="" selected>Select one</option>
</select>
<label class="route-finder__label" for="user_id">Mountain Project User ID</label>
<input class="route-finder__input" type="number" id="user_id" name="user_id" value="123">
<!-- <fieldset id="keywords">
<legend>Keywords</legend>
</fieldset> -->
<button id="submit-button" class="route-finder__submit" type="submit" name="button">Get Routes</button>
</form>
<h3 class="route-finder__about-heading">About</h3>
<p class="route-finder__about"><a href="https://github.com/sailskisurf23/MtProjRec" target="_blank">Recommendation engine</a> by <a target="_blank" href="https://www.linkedin.com/in/colinbrochard/">Colin Brochard</a>.<br> <a href="https://github.com/ian-schu/mountain_project_collab" target="_blank">Front end code</a> by <a target="_blank" href="https://www.linkedin.com/in/ianschumann/">Ian Schumann</a>.</p>
</section>
<section class="section" id="results">
<h2 id="the_results_heading" class="results__heading">Recommended Routes</h2>
<p id="the_results_description" class="results__description"></p>
<table class="results__table">
<thead>
<tr>
<td>Name</td>
<td>Grade</td>
<td>No. Pitches</td>
<td>Keywords</td>
<td>No. Stars</td>
</tr>
</thead>
<tbody id="the_results">
</tbody>
</table>
</section>
<script src="scripts/datasets.js" type="text/javascript" charset="utf-8"></script>
<script src="scripts/main.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>
Open service 2606:50c0:8002::153:80 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 301 Moved Permanently Connection: close Content-Length: 162 Server: GitHub.com Content-Type: text/html Location: https://mp-recommender.apps.openbeta.io/ X-GitHub-Request-Id: 120B:1E3944:57F460F:5AB466F:6955B1BD Accept-Ranges: bytes Date: Wed, 31 Dec 2025 23:29:01 GMT Via: 1.1 varnish Age: 0 X-Served-By: cache-pao-kpao1770033-PAO X-Cache: HIT X-Cache-Hits: 1 X-Timer: S1767223742.828480,VS0,VE2 Vary: Accept-Encoding X-Fastly-Request-ID: d4cb80fb680b5f5766cd935a927e708022065ccf Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html>
Open service 2606:50c0:8001::153:443 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 200 OK
Connection: close
Content-Length: 3386
Server: GitHub.com
Content-Type: text/html; charset=utf-8
Last-Modified: Wed, 19 May 2021 09:29:40 GMT
Access-Control-Allow-Origin: *
ETag: "60a4da84-d3a"
expires: Wed, 31 Dec 2025 23:00:11 GMT
Cache-Control: max-age=600
x-proxy-cache: MISS
X-GitHub-Request-Id: AA88:A2E6E:A78DC57:A9DFC3A:6955A8A3
Accept-Ranges: bytes
Date: Wed, 31 Dec 2025 23:29:01 GMT
Via: 1.1 varnish
Age: 0
X-Served-By: cache-rtm-ehrd2290042-RTM
X-Cache: HIT
X-Cache-Hits: 1
X-Timer: S1767223742.745279,VS0,VE1
Vary: Accept-Encoding
X-Fastly-Request-ID: 7b91394427a628d29d766ee56cd92fee6a39255d
Page title: Mountain Project - Route Recommender
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mountain Project - Route Recommender</title>
<link rel="stylesheet" href="style/main.css">
</head>
<body>
<section class="section" id="route-finder">
<h1 class="route-finder__heading">Mountain Project Route Recommender</h1>
<form id="route-finder-form" method="POST" action="http://18.221.10.29"></form>
<p class="route-finder__text">
Fill out the fields below and we'll make an intelligent recommendation on what you should climb.
</p>
<label for="type">Route Type</label>
<select class="route-finder__select" id="type-select" name="type" required>
<option value="" selected>Choose type first!</option>
<option value="Boulder">Boulder</option>
<option value="Sport">Sport</option>
<option value="Trad">Trad</option>
</select>
<label for="min-grade">Minimum Grade</label>
<select class="route-finder__select" id="min-grade" name="min-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label for="max-grade">Maximum Grade</label>
<select class="route-finder__select" id="max-grade" name="max-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label class="route-finder__label" for="pitches">No. Pitches</label>
<select class="route-finder__select" id="pitches" name="pitches" required>
</select>
<label for="location">Location</label>
<select class="route-finder__select" id="location" name="location" required>
<option value="" selected>Select one</option>
</select>
<label class="route-finder__label" for="user_id">Mountain Project User ID</label>
<input class="route-finder__input" type="number" id="user_id" name="user_id" value="123">
<!-- <fieldset id="keywords">
<legend>Keywords</legend>
</fieldset> -->
<button id="submit-button" class="route-finder__submit" type="submit" name="button">Get Routes</button>
</form>
<h3 class="route-finder__about-heading">About</h3>
<p class="route-finder__about"><a href="https://github.com/sailskisurf23/MtProjRec" target="_blank">Recommendation engine</a> by <a target="_blank" href="https://www.linkedin.com/in/colinbrochard/">Colin Brochard</a>.<br> <a href="https://github.com/ian-schu/mountain_project_collab" target="_blank">Front end code</a> by <a target="_blank" href="https://www.linkedin.com/in/ianschumann/">Ian Schumann</a>.</p>
</section>
<section class="section" id="results">
<h2 id="the_results_heading" class="results__heading">Recommended Routes</h2>
<p id="the_results_description" class="results__description"></p>
<table class="results__table">
<thead>
<tr>
<td>Name</td>
<td>Grade</td>
<td>No. Pitches</td>
<td>Keywords</td>
<td>No. Stars</td>
</tr>
</thead>
<tbody id="the_results">
</tbody>
</table>
</section>
<script src="scripts/datasets.js" type="text/javascript" charset="utf-8"></script>
<script src="scripts/main.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>
Open service 185.199.111.153:443 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 200 OK
Connection: close
Content-Length: 3386
Server: GitHub.com
Content-Type: text/html; charset=utf-8
Last-Modified: Wed, 19 May 2021 09:29:40 GMT
Access-Control-Allow-Origin: *
ETag: "60a4da84-d3a"
expires: Wed, 31 Dec 2025 23:00:11 GMT
Cache-Control: max-age=600
x-proxy-cache: MISS
X-GitHub-Request-Id: AA88:A2E6E:A78DC57:A9DFC3A:6955A8A3
Accept-Ranges: bytes
Date: Wed, 31 Dec 2025 23:29:01 GMT
Via: 1.1 varnish
Age: 0
X-Served-By: cache-rtm-ehrd2290041-RTM
X-Cache: HIT
X-Cache-Hits: 1
X-Timer: S1767223742.750081,VS0,VE1
Vary: Accept-Encoding
X-Fastly-Request-ID: c3a48a0450601a6555a760cfe7a7d06648461178
Page title: Mountain Project - Route Recommender
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mountain Project - Route Recommender</title>
<link rel="stylesheet" href="style/main.css">
</head>
<body>
<section class="section" id="route-finder">
<h1 class="route-finder__heading">Mountain Project Route Recommender</h1>
<form id="route-finder-form" method="POST" action="http://18.221.10.29"></form>
<p class="route-finder__text">
Fill out the fields below and we'll make an intelligent recommendation on what you should climb.
</p>
<label for="type">Route Type</label>
<select class="route-finder__select" id="type-select" name="type" required>
<option value="" selected>Choose type first!</option>
<option value="Boulder">Boulder</option>
<option value="Sport">Sport</option>
<option value="Trad">Trad</option>
</select>
<label for="min-grade">Minimum Grade</label>
<select class="route-finder__select" id="min-grade" name="min-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label for="max-grade">Maximum Grade</label>
<select class="route-finder__select" id="max-grade" name="max-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label class="route-finder__label" for="pitches">No. Pitches</label>
<select class="route-finder__select" id="pitches" name="pitches" required>
</select>
<label for="location">Location</label>
<select class="route-finder__select" id="location" name="location" required>
<option value="" selected>Select one</option>
</select>
<label class="route-finder__label" for="user_id">Mountain Project User ID</label>
<input class="route-finder__input" type="number" id="user_id" name="user_id" value="123">
<!-- <fieldset id="keywords">
<legend>Keywords</legend>
</fieldset> -->
<button id="submit-button" class="route-finder__submit" type="submit" name="button">Get Routes</button>
</form>
<h3 class="route-finder__about-heading">About</h3>
<p class="route-finder__about"><a href="https://github.com/sailskisurf23/MtProjRec" target="_blank">Recommendation engine</a> by <a target="_blank" href="https://www.linkedin.com/in/colinbrochard/">Colin Brochard</a>.<br> <a href="https://github.com/ian-schu/mountain_project_collab" target="_blank">Front end code</a> by <a target="_blank" href="https://www.linkedin.com/in/ianschumann/">Ian Schumann</a>.</p>
</section>
<section class="section" id="results">
<h2 id="the_results_heading" class="results__heading">Recommended Routes</h2>
<p id="the_results_description" class="results__description"></p>
<table class="results__table">
<thead>
<tr>
<td>Name</td>
<td>Grade</td>
<td>No. Pitches</td>
<td>Keywords</td>
<td>No. Stars</td>
</tr>
</thead>
<tbody id="the_results">
</tbody>
</table>
</section>
<script src="scripts/datasets.js" type="text/javascript" charset="utf-8"></script>
<script src="scripts/main.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>
Open service 2606:50c0:8001::153:80 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 301 Moved Permanently Connection: close Content-Length: 162 Server: GitHub.com Content-Type: text/html Location: https://mp-recommender.apps.openbeta.io/ X-GitHub-Request-Id: 43D4:3D391:A34599B:A598920:6955A8A3 Accept-Ranges: bytes Date: Wed, 31 Dec 2025 23:29:01 GMT Via: 1.1 varnish Age: 2330 X-Served-By: cache-rtm-ehrd2290048-RTM X-Cache: HIT X-Cache-Hits: 1 X-Timer: S1767223742.641388,VS0,VE1 Vary: Accept-Encoding X-Fastly-Request-ID: c51f6568ca2b7e370714960e28b7438d7e6dcf75 Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html>
Open service 185.199.109.153:443 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 200 OK
Connection: close
Content-Length: 3386
Server: GitHub.com
Content-Type: text/html; charset=utf-8
Last-Modified: Wed, 19 May 2021 09:29:40 GMT
Access-Control-Allow-Origin: *
ETag: "60a4da84-d3a"
expires: Wed, 31 Dec 2025 23:00:11 GMT
Cache-Control: max-age=600
x-proxy-cache: MISS
X-GitHub-Request-Id: AA88:A2E6E:A78DC57:A9DFC3A:6955A8A3
Accept-Ranges: bytes
Date: Wed, 31 Dec 2025 23:29:01 GMT
Via: 1.1 varnish
Age: 0
X-Served-By: cache-rtm-ehrd2290058-RTM
X-Cache: HIT
X-Cache-Hits: 1
X-Timer: S1767223742.751553,VS0,VE1
Vary: Accept-Encoding
X-Fastly-Request-ID: 85cbd9647ebb9199a920a9b7905fdc7ecc2eba1d
Page title: Mountain Project - Route Recommender
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mountain Project - Route Recommender</title>
<link rel="stylesheet" href="style/main.css">
</head>
<body>
<section class="section" id="route-finder">
<h1 class="route-finder__heading">Mountain Project Route Recommender</h1>
<form id="route-finder-form" method="POST" action="http://18.221.10.29"></form>
<p class="route-finder__text">
Fill out the fields below and we'll make an intelligent recommendation on what you should climb.
</p>
<label for="type">Route Type</label>
<select class="route-finder__select" id="type-select" name="type" required>
<option value="" selected>Choose type first!</option>
<option value="Boulder">Boulder</option>
<option value="Sport">Sport</option>
<option value="Trad">Trad</option>
</select>
<label for="min-grade">Minimum Grade</label>
<select class="route-finder__select" id="min-grade" name="min-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label for="max-grade">Maximum Grade</label>
<select class="route-finder__select" id="max-grade" name="max-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label class="route-finder__label" for="pitches">No. Pitches</label>
<select class="route-finder__select" id="pitches" name="pitches" required>
</select>
<label for="location">Location</label>
<select class="route-finder__select" id="location" name="location" required>
<option value="" selected>Select one</option>
</select>
<label class="route-finder__label" for="user_id">Mountain Project User ID</label>
<input class="route-finder__input" type="number" id="user_id" name="user_id" value="123">
<!-- <fieldset id="keywords">
<legend>Keywords</legend>
</fieldset> -->
<button id="submit-button" class="route-finder__submit" type="submit" name="button">Get Routes</button>
</form>
<h3 class="route-finder__about-heading">About</h3>
<p class="route-finder__about"><a href="https://github.com/sailskisurf23/MtProjRec" target="_blank">Recommendation engine</a> by <a target="_blank" href="https://www.linkedin.com/in/colinbrochard/">Colin Brochard</a>.<br> <a href="https://github.com/ian-schu/mountain_project_collab" target="_blank">Front end code</a> by <a target="_blank" href="https://www.linkedin.com/in/ianschumann/">Ian Schumann</a>.</p>
</section>
<section class="section" id="results">
<h2 id="the_results_heading" class="results__heading">Recommended Routes</h2>
<p id="the_results_description" class="results__description"></p>
<table class="results__table">
<thead>
<tr>
<td>Name</td>
<td>Grade</td>
<td>No. Pitches</td>
<td>Keywords</td>
<td>No. Stars</td>
</tr>
</thead>
<tbody id="the_results">
</tbody>
</table>
</section>
<script src="scripts/datasets.js" type="text/javascript" charset="utf-8"></script>
<script src="scripts/main.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>
Open service 185.199.109.153:80 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 301 Moved Permanently Connection: close Content-Length: 162 Server: GitHub.com Content-Type: text/html Location: https://mp-recommender.apps.openbeta.io/ X-GitHub-Request-Id: 43D4:3D391:A34599B:A598920:6955A8A3 Accept-Ranges: bytes Date: Wed, 31 Dec 2025 23:29:01 GMT Via: 1.1 varnish Age: 2330 X-Served-By: cache-rtm-ehrd2290023-RTM X-Cache: HIT X-Cache-Hits: 1 X-Timer: S1767223742.639623,VS0,VE1 Vary: Accept-Encoding X-Fastly-Request-ID: 011da441c93345eba2746102ecfe6e75e1373ef0 Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html>
Open service 185.199.108.153:443 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 200 OK
Connection: close
Content-Length: 3386
Server: GitHub.com
Content-Type: text/html; charset=utf-8
Last-Modified: Wed, 19 May 2021 09:29:40 GMT
Access-Control-Allow-Origin: *
ETag: "60a4da84-d3a"
expires: Wed, 31 Dec 2025 23:00:11 GMT
Cache-Control: max-age=600
x-proxy-cache: MISS
X-GitHub-Request-Id: AA88:A2E6E:A78DC57:A9DFC3A:6955A8A3
Accept-Ranges: bytes
Date: Wed, 31 Dec 2025 23:29:01 GMT
Via: 1.1 varnish
Age: 0
X-Served-By: cache-rtm-ehrd2290024-RTM
X-Cache: HIT
X-Cache-Hits: 1
X-Timer: S1767223742.747917,VS0,VE1
Vary: Accept-Encoding
X-Fastly-Request-ID: 4ed03f810b065bba4203ff35dec83ad5080c17c9
Page title: Mountain Project - Route Recommender
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mountain Project - Route Recommender</title>
<link rel="stylesheet" href="style/main.css">
</head>
<body>
<section class="section" id="route-finder">
<h1 class="route-finder__heading">Mountain Project Route Recommender</h1>
<form id="route-finder-form" method="POST" action="http://18.221.10.29"></form>
<p class="route-finder__text">
Fill out the fields below and we'll make an intelligent recommendation on what you should climb.
</p>
<label for="type">Route Type</label>
<select class="route-finder__select" id="type-select" name="type" required>
<option value="" selected>Choose type first!</option>
<option value="Boulder">Boulder</option>
<option value="Sport">Sport</option>
<option value="Trad">Trad</option>
</select>
<label for="min-grade">Minimum Grade</label>
<select class="route-finder__select" id="min-grade" name="min-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label for="max-grade">Maximum Grade</label>
<select class="route-finder__select" id="max-grade" name="max-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label class="route-finder__label" for="pitches">No. Pitches</label>
<select class="route-finder__select" id="pitches" name="pitches" required>
</select>
<label for="location">Location</label>
<select class="route-finder__select" id="location" name="location" required>
<option value="" selected>Select one</option>
</select>
<label class="route-finder__label" for="user_id">Mountain Project User ID</label>
<input class="route-finder__input" type="number" id="user_id" name="user_id" value="123">
<!-- <fieldset id="keywords">
<legend>Keywords</legend>
</fieldset> -->
<button id="submit-button" class="route-finder__submit" type="submit" name="button">Get Routes</button>
</form>
<h3 class="route-finder__about-heading">About</h3>
<p class="route-finder__about"><a href="https://github.com/sailskisurf23/MtProjRec" target="_blank">Recommendation engine</a> by <a target="_blank" href="https://www.linkedin.com/in/colinbrochard/">Colin Brochard</a>.<br> <a href="https://github.com/ian-schu/mountain_project_collab" target="_blank">Front end code</a> by <a target="_blank" href="https://www.linkedin.com/in/ianschumann/">Ian Schumann</a>.</p>
</section>
<section class="section" id="results">
<h2 id="the_results_heading" class="results__heading">Recommended Routes</h2>
<p id="the_results_description" class="results__description"></p>
<table class="results__table">
<thead>
<tr>
<td>Name</td>
<td>Grade</td>
<td>No. Pitches</td>
<td>Keywords</td>
<td>No. Stars</td>
</tr>
</thead>
<tbody id="the_results">
</tbody>
</table>
</section>
<script src="scripts/datasets.js" type="text/javascript" charset="utf-8"></script>
<script src="scripts/main.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>
Open service 185.199.110.153:443 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 200 OK
Connection: close
Content-Length: 3386
Server: GitHub.com
Content-Type: text/html; charset=utf-8
Last-Modified: Wed, 19 May 2021 09:29:40 GMT
Access-Control-Allow-Origin: *
ETag: "60a4da84-d3a"
expires: Wed, 31 Dec 2025 23:00:11 GMT
Cache-Control: max-age=600
x-proxy-cache: MISS
X-GitHub-Request-Id: AA88:A2E6E:A78DC57:A9DFC3A:6955A8A3
Accept-Ranges: bytes
Date: Wed, 31 Dec 2025 23:29:01 GMT
Via: 1.1 varnish
Age: 0
X-Served-By: cache-rtm-ehrd2290050-RTM
X-Cache: HIT
X-Cache-Hits: 1
X-Timer: S1767223742.749300,VS0,VE1
Vary: Accept-Encoding
X-Fastly-Request-ID: baa9e154854f72d848bafd6affe3c51d952a7d20
Page title: Mountain Project - Route Recommender
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mountain Project - Route Recommender</title>
<link rel="stylesheet" href="style/main.css">
</head>
<body>
<section class="section" id="route-finder">
<h1 class="route-finder__heading">Mountain Project Route Recommender</h1>
<form id="route-finder-form" method="POST" action="http://18.221.10.29"></form>
<p class="route-finder__text">
Fill out the fields below and we'll make an intelligent recommendation on what you should climb.
</p>
<label for="type">Route Type</label>
<select class="route-finder__select" id="type-select" name="type" required>
<option value="" selected>Choose type first!</option>
<option value="Boulder">Boulder</option>
<option value="Sport">Sport</option>
<option value="Trad">Trad</option>
</select>
<label for="min-grade">Minimum Grade</label>
<select class="route-finder__select" id="min-grade" name="min-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label for="max-grade">Maximum Grade</label>
<select class="route-finder__select" id="max-grade" name="max-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label class="route-finder__label" for="pitches">No. Pitches</label>
<select class="route-finder__select" id="pitches" name="pitches" required>
</select>
<label for="location">Location</label>
<select class="route-finder__select" id="location" name="location" required>
<option value="" selected>Select one</option>
</select>
<label class="route-finder__label" for="user_id">Mountain Project User ID</label>
<input class="route-finder__input" type="number" id="user_id" name="user_id" value="123">
<!-- <fieldset id="keywords">
<legend>Keywords</legend>
</fieldset> -->
<button id="submit-button" class="route-finder__submit" type="submit" name="button">Get Routes</button>
</form>
<h3 class="route-finder__about-heading">About</h3>
<p class="route-finder__about"><a href="https://github.com/sailskisurf23/MtProjRec" target="_blank">Recommendation engine</a> by <a target="_blank" href="https://www.linkedin.com/in/colinbrochard/">Colin Brochard</a>.<br> <a href="https://github.com/ian-schu/mountain_project_collab" target="_blank">Front end code</a> by <a target="_blank" href="https://www.linkedin.com/in/ianschumann/">Ian Schumann</a>.</p>
</section>
<section class="section" id="results">
<h2 id="the_results_heading" class="results__heading">Recommended Routes</h2>
<p id="the_results_description" class="results__description"></p>
<table class="results__table">
<thead>
<tr>
<td>Name</td>
<td>Grade</td>
<td>No. Pitches</td>
<td>Keywords</td>
<td>No. Stars</td>
</tr>
</thead>
<tbody id="the_results">
</tbody>
</table>
</section>
<script src="scripts/datasets.js" type="text/javascript" charset="utf-8"></script>
<script src="scripts/main.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>
Open service 2606:50c0:8002::153:443 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 200 OK
Connection: close
Content-Length: 3386
Server: GitHub.com
Content-Type: text/html; charset=utf-8
Last-Modified: Wed, 19 May 2021 09:29:40 GMT
Access-Control-Allow-Origin: *
ETag: "60a4da84-d3a"
expires: Wed, 31 Dec 2025 23:39:01 GMT
Cache-Control: max-age=600
x-proxy-cache: MISS
X-GitHub-Request-Id: E9B9:28E859:A07B6F1:A2D0661:6955B1BD
Accept-Ranges: bytes
Age: 0
Date: Wed, 31 Dec 2025 23:29:01 GMT
Via: 1.1 varnish
X-Served-By: cache-vie6337-VIE
X-Cache: MISS
X-Cache-Hits: 0
X-Timer: S1767223742.766838,VS0,VE121
Vary: Accept-Encoding
X-Fastly-Request-ID: 0bbc271fd84071c2e4c0363775fceefc7c3d8745
Page title: Mountain Project - Route Recommender
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mountain Project - Route Recommender</title>
<link rel="stylesheet" href="style/main.css">
</head>
<body>
<section class="section" id="route-finder">
<h1 class="route-finder__heading">Mountain Project Route Recommender</h1>
<form id="route-finder-form" method="POST" action="http://18.221.10.29"></form>
<p class="route-finder__text">
Fill out the fields below and we'll make an intelligent recommendation on what you should climb.
</p>
<label for="type">Route Type</label>
<select class="route-finder__select" id="type-select" name="type" required>
<option value="" selected>Choose type first!</option>
<option value="Boulder">Boulder</option>
<option value="Sport">Sport</option>
<option value="Trad">Trad</option>
</select>
<label for="min-grade">Minimum Grade</label>
<select class="route-finder__select" id="min-grade" name="min-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label for="max-grade">Maximum Grade</label>
<select class="route-finder__select" id="max-grade" name="max-grade" required>
<!-- <option value="" selected>Select one</option> -->
</select>
<label class="route-finder__label" for="pitches">No. Pitches</label>
<select class="route-finder__select" id="pitches" name="pitches" required>
</select>
<label for="location">Location</label>
<select class="route-finder__select" id="location" name="location" required>
<option value="" selected>Select one</option>
</select>
<label class="route-finder__label" for="user_id">Mountain Project User ID</label>
<input class="route-finder__input" type="number" id="user_id" name="user_id" value="123">
<!-- <fieldset id="keywords">
<legend>Keywords</legend>
</fieldset> -->
<button id="submit-button" class="route-finder__submit" type="submit" name="button">Get Routes</button>
</form>
<h3 class="route-finder__about-heading">About</h3>
<p class="route-finder__about"><a href="https://github.com/sailskisurf23/MtProjRec" target="_blank">Recommendation engine</a> by <a target="_blank" href="https://www.linkedin.com/in/colinbrochard/">Colin Brochard</a>.<br> <a href="https://github.com/ian-schu/mountain_project_collab" target="_blank">Front end code</a> by <a target="_blank" href="https://www.linkedin.com/in/ianschumann/">Ian Schumann</a>.</p>
</section>
<section class="section" id="results">
<h2 id="the_results_heading" class="results__heading">Recommended Routes</h2>
<p id="the_results_description" class="results__description"></p>
<table class="results__table">
<thead>
<tr>
<td>Name</td>
<td>Grade</td>
<td>No. Pitches</td>
<td>Keywords</td>
<td>No. Stars</td>
</tr>
</thead>
<tbody id="the_results">
</tbody>
</table>
</section>
<script src="scripts/datasets.js" type="text/javascript" charset="utf-8"></script>
<script src="scripts/main.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>
Open service 185.199.110.153:80 · mp-recommender.apps.openbeta.io
2025-12-31 23:29
HTTP/1.1 301 Moved Permanently Connection: close Content-Length: 162 Server: GitHub.com Content-Type: text/html Location: https://mp-recommender.apps.openbeta.io/ X-GitHub-Request-Id: A316:8FD0D:A3E51EF:A63A4FE:6955B1BD Accept-Ranges: bytes Date: Wed, 31 Dec 2025 23:29:01 GMT Via: 1.1 varnish Age: 0 X-Served-By: cache-fra-eddf8230030-FRA X-Cache: HIT X-Cache-Hits: 1 X-Timer: S1767223742.713415,VS0,VE1 Vary: Accept-Encoding X-Fastly-Request-ID: 02dab2daf7bcbeddd7faa27cd6189e816d9bc454 Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html>
Open service 172.67.141.162:443 · stg-api.openbeta.io
2025-12-30 05:24
HTTP/1.1 400 Bad Request
Date: Tue, 30 Dec 2025 05:24:47 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 406
Connection: close
x-powered-by: Express
access-control-allow-origin: *
etag: W/"196-HUCJKwlQurC5GNaaJnH0d+HOnRw"
strict-transport-security: max-age=31536000; includeSubDomains
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
cf-cache-status: DYNAMIC
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=269,cfOrigin;dur=15
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=3cPyR9MgmfGQWpwgNi0G36VjmuzH4Q58vF9%2BOuRNPMlV5maIPQIsxNNtb8PdIDAPjd%2Filo8o%2BvR1VQPViT7%2Bs7gTrohjiamqytDJb%2F2LWIXN"}]}
Server: cloudflare
CF-RAY: 9b5f1ce3b84c6ccc-BOM
alt-svc: h3=":443"; ma=86400
{"errors":[{"message":"This operation has been blocked as a potential Cross-Site Request Forgery (CSRF). Please either specify a 'content-type' header (with a type that is not one of application/x-www-form-urlencoded, multipart/form-data, text/plain) or provide a non-empty value for one of the following headers: x-apollo-operation-name, apollo-require-preflight\n","extensions":{"code":"BAD_REQUEST"}}]}
Open service 2606:4700:3030::6815:5976:443 · stg.openbeta.io
2025-12-23 16:26
HTTP/1.1 502 Bad Gateway Date: Tue, 23 Dec 2025 16:26:41 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=27,cfOrigin;dur=863 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b2938d13a8afd8b-SIN alt-svc: h3=":443"; ma=86400 error code: 502
Open service 2606:4700:3034::ac43:8da2:80 · stg.openbeta.io
2025-12-23 16:26
HTTP/1.1 301 Moved Permanently
Date: Tue, 23 Dec 2025 16:26:39 GMT
Content-Length: 0
Connection: close
Location: https://stg.openbeta.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Oi2%2F98o1tXUwmqyHXgBKeWKeQwhd37%2Byx4QgXXG26ppyJvRa5G75rjXSOgBF9C3R7t1P3fXtBBB293I51FGHCpoW7fzdOvPJ9U2psBM5vqKEkh4UpwLu%2FdRj%2FQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=15,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9b2938cbef936046-SIN
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3030::6815:5976:8443 · stg.openbeta.io
2025-12-23 16:26
HTTP/1.1 522 <none> Date: Tue, 23 Dec 2025 16:26:59 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19329,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b2938d208ff6cc1-SIN alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 172.67.141.162:8443 · stg.openbeta.io
2025-12-23 16:26
HTTP/1.1 522 <none> Date: Tue, 23 Dec 2025 16:26:59 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19481,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b2938d20dd6ce86-SIN alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2606:4700:3034::ac43:8da2:443 · stg.openbeta.io
2025-12-23 16:26
HTTP/1.1 502 Bad Gateway Date: Tue, 23 Dec 2025 16:26:41 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=30,cfOrigin;dur=827 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b2938d168123e53-SIN alt-svc: h3=":443"; ma=86400 error code: 502
Open service 104.21.89.118:80 · stg.openbeta.io
2025-12-23 16:26
HTTP/1.1 301 Moved Permanently
Date: Tue, 23 Dec 2025 16:26:39 GMT
Content-Length: 0
Connection: close
Location: https://stg.openbeta.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=raMIcBBasJwXoM5QsHCCNJkf%2FkcARbC59usFasFDpPftGJ7KAK0AZb%2BO8QWquswr4okQ7O7H7MZm43bV3vQBlLyWK0iAPbHsY65Kpl0%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=14,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9b2938cb4ff7a3dc-SIN
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3034::ac43:8da2:8443 · stg.openbeta.io
2025-12-23 16:26
HTTP/1.1 522 <none> Date: Tue, 23 Dec 2025 16:26:59 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19471,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b2938d14d7dc338-EWR alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2606:4700:3030::6815:5976:80 · stg.openbeta.io
2025-12-23 16:26
HTTP/1.1 301 Moved Permanently
Date: Tue, 23 Dec 2025 16:26:39 GMT
Content-Length: 0
Connection: close
Location: https://stg.openbeta.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=D5aB5VWFO9y7w2OQ%2F9qF5t4cT6xswR%2BXcVkr%2FJM4tr67zdf0IlV5BFHuSycV%2BlE%2BGeOE9ExJyNKA3lH7hicAD9ZO9gDKvYX962EhN4%2B9%2B1NsjuFGSOA3eRg%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=13,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9b2938cafc080c84-EWR
alt-svc: h3=":443"; ma=86400
Open service 104.21.89.118:8443 · stg.openbeta.io
2025-12-23 16:26
HTTP/1.1 522 <none> Date: Tue, 23 Dec 2025 16:26:59 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19468,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b2938d10e27e247-AMS alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 104.21.89.118:443 · stg.openbeta.io
2025-12-23 16:26
HTTP/1.1 502 Bad Gateway Date: Tue, 23 Dec 2025 16:26:40 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=32,cfOrigin;dur=460 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b2938cdfd4de8fe-LHR alt-svc: h3=":443"; ma=86400 error code: 502
Open service 172.67.141.162:80 · stg.openbeta.io
2025-12-23 16:26
HTTP/1.1 301 Moved Permanently
Date: Tue, 23 Dec 2025 16:26:39 GMT
Content-Length: 0
Connection: close
Location: https://stg.openbeta.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=OkxOhv9sd5UNYfdLr9PuFLPbq1mvu8gzUXW1XTNqy77REOysLldI5tIUfnWKD3RdeG8itMvjcQkQz%2FDyByYSFFA4Z2e6eUwzyRnNWPbQww%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=10,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9b2938cacdfe0f0a-LHR
alt-svc: h3=":443"; ma=86400
Open service 172.67.141.162:443 · stg.openbeta.io
2025-12-23 16:26
HTTP/1.1 502 Bad Gateway Date: Tue, 23 Dec 2025 16:26:40 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=43,cfOrigin;dur=452 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b2938cddffd9165-FRA alt-svc: h3=":443"; ma=86400 error code: 502
Open service 104.21.89.118:443 · api.openbeta.io
2025-12-23 05:59
HTTP/1.1 400 Bad Request
Date: Tue, 23 Dec 2025 05:59:01 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 406
Connection: close
x-powered-by: Express
access-control-allow-origin: *
etag: W/"196-HUCJKwlQurC5GNaaJnH0d+HOnRw"
strict-transport-security: max-age=31536000; includeSubDomains
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
cf-cache-status: DYNAMIC
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=97,cfOrigin;dur=15
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=el5YGdlGdlmvIO7gRWfQmmiLD1oH%2BBL8v4cMi%2F2CdqVDabe%2F8bgEESFefHSV9YOzkJ602zM%2FgbsV27ZESQVa259KRbXK5JGWZ1OHpfPpgg%3D%3D"}]}
Server: cloudflare
CF-RAY: 9b25a168aa616401-LHR
alt-svc: h3=":443"; ma=86400
{"errors":[{"message":"This operation has been blocked as a potential Cross-Site Request Forgery (CSRF). Please either specify a 'content-type' header (with a type that is not one of application/x-www-form-urlencoded, multipart/form-data, text/plain) or provide a non-empty value for one of the following headers: x-apollo-operation-name, apollo-require-preflight\n","extensions":{"code":"BAD_REQUEST"}}]}
Open service 2606:4700:3034::ac43:8da2:8443 · docs.openbeta.io
2025-12-22 19:27
HTTP/1.1 522 <none> Date: Mon, 22 Dec 2025 19:27:53 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19762,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b22046aed148247-SIN alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2606:4700:3034::ac43:8da2:443 · docs.openbeta.io
2025-12-22 19:27
HTTP/1.1 200 OK
Date: Mon, 22 Dec 2025 19:27:32 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Accept-Ranges: bytes
content-disposition: inline; filename="index.html"
last-modified: Thu, 31 Jul 2025 15:26:44 GMT
Server: cloudflare
x-railway-edge: railway/us-west2
x-railway-request-id: TqVYdgaHRdadE__j2prcFg
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=13,cfOrigin;dur=165
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=clOEPpAxz1TXqAIXusrM01AohuT%2Bk%2B6uiMCzC7MCfgM5UFAGSpXwxsMiMMnrIvjvEHY0SlR8kTJWGrMhlQr3Y2P%2BDj2y07dkIhXGR67tPpfbuXJud%2BHBC0XVJJY%3D"}]}
CF-RAY: 9b220464be0b33fc-SJC
alt-svc: h3=":443"; ma=86400
Page title: About | OpenBeta Documentation
<!doctype html>
<html class="docs-version-current" lang="en" dir="ltr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-beta.15">
<link rel="search" type="application/opensearchdescription+xml" title="OpenBeta Documentation" href="/opensearch.xml"><title data-react-helmet="true">About | OpenBeta Documentation</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://docs.openbeta.io/img/usa-heatmap-dark.png"><meta data-react-helmet="true" name="twitter:image" content="https://docs.openbeta.io/img/usa-heatmap-dark.png"><meta data-react-helmet="true" property="og:url" content="https://docs.openbeta.io/"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property="og:title" content="About | OpenBeta Documentation"><meta data-react-helmet="true" name="description" content="OpenBeta is an open source project dedicated to ensuring free and open access to rock climbing data in computer programming, research, and data science endeavors."><meta data-react-helmet="true" property="og:description" content="OpenBeta is an open source project dedicated to ensuring free and open access to rock climbing data in computer programming, research, and data science endeavors."><link data-react-helmet="true" rel="icon" href="/img/favicon.ico"><link data-react-helmet="true" rel="canonical" href="https://docs.openbeta.io/"><link data-react-helmet="true" rel="alternate" href="https://docs.openbeta.io/" hreflang="en"><link data-react-helmet="true" rel="alternate" href="https://docs.openbeta.io/" hreflang="x-default"><link data-react-helmet="true" rel="preconnect" href="https://YWE9NFCDLU-dsn.algolia.net" crossorigin="anonymous"><script data-react-helmet="true">function maybeInsertBanner(){window.__DOCUSAURUS_INSERT_BASEURL_BANNER&&insertBanner()}function insertBanner(){var n=document.getElementById("docusaurus-base-url-issue-banner-container");if(n){n.innerHTML='\n<div id="docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n';var e=document.getElementById("docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,r="/"===s.substr(-1)?s:s+"/";e.innerHTML=r}}window.__DOCUSAURUS_INSERT_BASEURL_BANNER=!0,document.addEventListener("DOMContentLoaded",maybeInsertBanner)</script><link rel="stylesheet" href="/assets/css/styles.44a5c159.css">
<link rel="preload" href="/assets/js/runtime~main.90f7d284.js" as="script">
<link rel="preload" href="/assets/js/main.06d1ed08.js" as="script">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div id="docusaurus-base-url-issue-banner-container"></div><div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox=
Open service 104.21.89.118:443 · docs.openbeta.io
2025-12-22 19:27
HTTP/1.1 200 OK
Date: Mon, 22 Dec 2025 19:27:33 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Accept-Ranges: bytes
content-disposition: inline; filename="index.html"
last-modified: Thu, 31 Jul 2025 15:26:44 GMT
Server: cloudflare
x-railway-edge: railway/europe-west4-drams3a
x-railway-request-id: vztj-J36Tk6EEzBLrJsmnA
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=31,cfOrigin;dur=195
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=VeEvQ88HdzE1ZCTC3wRiSNYD%2BILe%2Flw25N2J7HeKvNwBLCSYpXLbJECDThhH4AuSH3KldUoib1bdvwtIsjmMMsuD5Tbcdyd%2F8AoZrbLwiHw%3D"}]}
CF-RAY: 9b220466a8422bcb-FRA
alt-svc: h3=":443"; ma=86400
Page title: About | OpenBeta Documentation
<!doctype html>
<html class="docs-version-current" lang="en" dir="ltr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-beta.15">
<link rel="search" type="application/opensearchdescription+xml" title="OpenBeta Documentation" href="/opensearch.xml"><title data-react-helmet="true">About | OpenBeta Documentation</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://docs.openbeta.io/img/usa-heatmap-dark.png"><meta data-react-helmet="true" name="twitter:image" content="https://docs.openbeta.io/img/usa-heatmap-dark.png"><meta data-react-helmet="true" property="og:url" content="https://docs.openbeta.io/"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property="og:title" content="About | OpenBeta Documentation"><meta data-react-helmet="true" name="description" content="OpenBeta is an open source project dedicated to ensuring free and open access to rock climbing data in computer programming, research, and data science endeavors."><meta data-react-helmet="true" property="og:description" content="OpenBeta is an open source project dedicated to ensuring free and open access to rock climbing data in computer programming, research, and data science endeavors."><link data-react-helmet="true" rel="icon" href="/img/favicon.ico"><link data-react-helmet="true" rel="canonical" href="https://docs.openbeta.io/"><link data-react-helmet="true" rel="alternate" href="https://docs.openbeta.io/" hreflang="en"><link data-react-helmet="true" rel="alternate" href="https://docs.openbeta.io/" hreflang="x-default"><link data-react-helmet="true" rel="preconnect" href="https://YWE9NFCDLU-dsn.algolia.net" crossorigin="anonymous"><script data-react-helmet="true">function maybeInsertBanner(){window.__DOCUSAURUS_INSERT_BASEURL_BANNER&&insertBanner()}function insertBanner(){var n=document.getElementById("docusaurus-base-url-issue-banner-container");if(n){n.innerHTML='\n<div id="docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n';var e=document.getElementById("docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,r="/"===s.substr(-1)?s:s+"/";e.innerHTML=r}}window.__DOCUSAURUS_INSERT_BASEURL_BANNER=!0,document.addEventListener("DOMContentLoaded",maybeInsertBanner)</script><link rel="stylesheet" href="/assets/css/styles.44a5c159.css">
<link rel="preload" href="/assets/js/runtime~main.90f7d284.js" as="script">
<link rel="preload" href="/assets/js/main.06d1ed08.js" as="script">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div id="docusaurus-base-url-issue-banner-container"></div><div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox=
Open service 2606:4700:3034::ac43:8da2:80 · docs.openbeta.io
2025-12-22 19:27
HTTP/1.1 301 Moved Permanently
Date: Mon, 22 Dec 2025 19:27:32 GMT
Content-Length: 0
Connection: close
Location: https://docs.openbeta.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=uBwVmTLcryHFkmJsfF9yriLXNHIBbmP78yZ%2BTa6ZYLtEXzoxeQtGh2FZTRufDT3EQ7dvGbvM6LhDw5S3dKm67hmL0cTSUT%2B8jupXyiHVtST5Efpi9bqKclBkAgo%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=15,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9b220463adced381-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3030::6815:5976:80 · docs.openbeta.io
2025-12-22 19:27
HTTP/1.1 301 Moved Permanently
Date: Mon, 22 Dec 2025 19:27:32 GMT
Content-Length: 0
Connection: close
Location: https://docs.openbeta.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=sk64QdcVtENH%2FpeRHLy56ZFd7ohfDi6jkrAUGS6rmk9MTZ7Mn%2BzFOJJcQdYLNdOsg%2F6i1iU3EDrTCpEowNNAImrQ1BsY4r3e%2FXsYVi0OSy0qCxBJDmP4o4TmAN8%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=12,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9b220462def3ae0b-FRA
alt-svc: h3=":443"; ma=86400
Open service 104.21.89.118:8443 · docs.openbeta.io
2025-12-22 19:27
HTTP/1.1 522 <none> Date: Mon, 22 Dec 2025 19:27:53 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19754,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b220468f9bb9a0c-FRA alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 172.67.141.162:80 · docs.openbeta.io
2025-12-22 19:27
HTTP/1.1 301 Moved Permanently
Date: Mon, 22 Dec 2025 19:27:32 GMT
Content-Length: 0
Connection: close
Location: https://docs.openbeta.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Fkgk5SkEgfkyvICc67mbFdh%2BUnVB%2FhqfaiGNeh0ZB%2B0g60fB%2FcUCJG0%2BXVChHos2fy3NmCsDAj2N6b8i85yJQu0JCH5H13rAGmgq5IKCfi8%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=12,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9b2204632b0adcd0-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3030::6815:5976:8443 · docs.openbeta.io
2025-12-22 19:27
HTTP/1.1 522 <none> Date: Mon, 22 Dec 2025 19:27:52 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19417,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b220468ff0bf3d1-LHR alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 104.21.89.118:80 · docs.openbeta.io
2025-12-22 19:27
HTTP/1.1 301 Moved Permanently
Date: Mon, 22 Dec 2025 19:27:32 GMT
Content-Length: 0
Connection: close
Location: https://docs.openbeta.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=IxFPeDfGD%2B9efqQpfcKTDCzAKHk%2B137a1YDu08GfA%2Fp3nq4uSZG0sxkoXj1kswUB3avr9YpmSzH%2F9hrEiVjl9dnDwnrYeoxf4dzWo6F99VI%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=13,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9b220462a80307da-FRA
alt-svc: h3=":443"; ma=86400
Open service 172.67.141.162:8443 · docs.openbeta.io
2025-12-22 19:27
HTTP/1.1 522 <none> Date: Mon, 22 Dec 2025 19:27:52 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19634,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9b2204695e35bc03-FRA alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 172.67.141.162:443 · docs.openbeta.io
2025-12-22 19:27
HTTP/1.1 200 OK
Date: Mon, 22 Dec 2025 19:27:33 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Accept-Ranges: bytes
content-disposition: inline; filename="index.html"
last-modified: Thu, 31 Jul 2025 15:26:44 GMT
Server: cloudflare
x-railway-edge: railway/europe-west4-drams3a
x-railway-request-id: jwlzBTgAShqYdWuWYqdHTg
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=36,cfOrigin;dur=390
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Lgsb6LV3IRvNAJibyN4M1uE80%2BGm1mK5j6n%2FMuqT%2BF2Twv%2FJmOgz7lC3yHE8t6iw0C37uK%2Be0Tg0ferDhUl4nj%2FeC5jTPNopAdxmRLMpQVw%3D"}]}
CF-RAY: 9b220464faeedc60-FRA
alt-svc: h3=":443"; ma=86400
Page title: About | OpenBeta Documentation
<!doctype html>
<html class="docs-version-current" lang="en" dir="ltr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-beta.15">
<link rel="search" type="application/opensearchdescription+xml" title="OpenBeta Documentation" href="/opensearch.xml"><title data-react-helmet="true">About | OpenBeta Documentation</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://docs.openbeta.io/img/usa-heatmap-dark.png"><meta data-react-helmet="true" name="twitter:image" content="https://docs.openbeta.io/img/usa-heatmap-dark.png"><meta data-react-helmet="true" property="og:url" content="https://docs.openbeta.io/"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property="og:title" content="About | OpenBeta Documentation"><meta data-react-helmet="true" name="description" content="OpenBeta is an open source project dedicated to ensuring free and open access to rock climbing data in computer programming, research, and data science endeavors."><meta data-react-helmet="true" property="og:description" content="OpenBeta is an open source project dedicated to ensuring free and open access to rock climbing data in computer programming, research, and data science endeavors."><link data-react-helmet="true" rel="icon" href="/img/favicon.ico"><link data-react-helmet="true" rel="canonical" href="https://docs.openbeta.io/"><link data-react-helmet="true" rel="alternate" href="https://docs.openbeta.io/" hreflang="en"><link data-react-helmet="true" rel="alternate" href="https://docs.openbeta.io/" hreflang="x-default"><link data-react-helmet="true" rel="preconnect" href="https://YWE9NFCDLU-dsn.algolia.net" crossorigin="anonymous"><script data-react-helmet="true">function maybeInsertBanner(){window.__DOCUSAURUS_INSERT_BASEURL_BANNER&&insertBanner()}function insertBanner(){var n=document.getElementById("docusaurus-base-url-issue-banner-container");if(n){n.innerHTML='\n<div id="docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n';var e=document.getElementById("docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,r="/"===s.substr(-1)?s:s+"/";e.innerHTML=r}}window.__DOCUSAURUS_INSERT_BASEURL_BANNER=!0,document.addEventListener("DOMContentLoaded",maybeInsertBanner)</script><link rel="stylesheet" href="/assets/css/styles.44a5c159.css">
<link rel="preload" href="/assets/js/runtime~main.90f7d284.js" as="script">
<link rel="preload" href="/assets/js/main.06d1ed08.js" as="script">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div id="docusaurus-base-url-issue-banner-container"></div><div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox=
Open service 2606:4700:3030::6815:5976:443 · docs.openbeta.io
2025-12-22 19:27
HTTP/1.1 200 OK
Date: Mon, 22 Dec 2025 19:27:32 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Accept-Ranges: bytes
content-disposition: inline; filename="index.html"
last-modified: Thu, 31 Jul 2025 15:26:44 GMT
Server: cloudflare
x-railway-edge: railway/europe-west4-drams3a
x-railway-request-id: 2Njz_35ISGmy2NGy0-QtfA
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=11,cfOrigin;dur=334
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=O%2BhtRdZ33Ssg%2Be33BKqTu3yyhQtZaBHh52R33a0IU3kAignsyLeVibM0Qn0w7Hxb3oIhbRipWo3TNldAC8Ylq99PEcD2PqLTGe2K%2BUHUT0jo1KPcHx6lqAwaLWc%3D"}]}
CF-RAY: 9b220464b94d3637-FRA
alt-svc: h3=":443"; ma=86400
Page title: About | OpenBeta Documentation
<!doctype html>
<html class="docs-version-current" lang="en" dir="ltr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-beta.15">
<link rel="search" type="application/opensearchdescription+xml" title="OpenBeta Documentation" href="/opensearch.xml"><title data-react-helmet="true">About | OpenBeta Documentation</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:image" content="https://docs.openbeta.io/img/usa-heatmap-dark.png"><meta data-react-helmet="true" name="twitter:image" content="https://docs.openbeta.io/img/usa-heatmap-dark.png"><meta data-react-helmet="true" property="og:url" content="https://docs.openbeta.io/"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property="og:title" content="About | OpenBeta Documentation"><meta data-react-helmet="true" name="description" content="OpenBeta is an open source project dedicated to ensuring free and open access to rock climbing data in computer programming, research, and data science endeavors."><meta data-react-helmet="true" property="og:description" content="OpenBeta is an open source project dedicated to ensuring free and open access to rock climbing data in computer programming, research, and data science endeavors."><link data-react-helmet="true" rel="icon" href="/img/favicon.ico"><link data-react-helmet="true" rel="canonical" href="https://docs.openbeta.io/"><link data-react-helmet="true" rel="alternate" href="https://docs.openbeta.io/" hreflang="en"><link data-react-helmet="true" rel="alternate" href="https://docs.openbeta.io/" hreflang="x-default"><link data-react-helmet="true" rel="preconnect" href="https://YWE9NFCDLU-dsn.algolia.net" crossorigin="anonymous"><script data-react-helmet="true">function maybeInsertBanner(){window.__DOCUSAURUS_INSERT_BASEURL_BANNER&&insertBanner()}function insertBanner(){var n=document.getElementById("docusaurus-base-url-issue-banner-container");if(n){n.innerHTML='\n<div id="docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n';var e=document.getElementById("docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,r="/"===s.substr(-1)?s:s+"/";e.innerHTML=r}}window.__DOCUSAURUS_INSERT_BASEURL_BANNER=!0,document.addEventListener("DOMContentLoaded",maybeInsertBanner)</script><link rel="stylesheet" href="/assets/css/styles.44a5c159.css">
<link rel="preload" href="/assets/js/runtime~main.90f7d284.js" as="script">
<link rel="preload" href="/assets/js/main.06d1ed08.js" as="script">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div id="docusaurus-base-url-issue-banner-container"></div><div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox=
Open service 172.67.141.162:443 · stg-api.openbeta.io
2025-12-22 09:18
HTTP/1.1 400 Bad Request
Date: Mon, 22 Dec 2025 09:18:20 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 406
Connection: close
x-powered-by: Express
access-control-allow-origin: *
etag: W/"196-HUCJKwlQurC5GNaaJnH0d+HOnRw"
strict-transport-security: max-age=31536000; includeSubDomains
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
cf-cache-status: DYNAMIC
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=101,cfOrigin;dur=11
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=0TvhYIutjvPuhnM3o8IUrK9GoZobhDv1mCxPnZl0HOn6JcsrP%2FLGBzUmrce0u4kedgwOuHKnoYYLCs%2BtWppGAgBSsOuyA6dtu2bKOVC%2FMG9Wusg%3D"}]}
Server: cloudflare
CF-RAY: 9b1e87fe7e2af49b-FRA
alt-svc: h3=":443"; ma=86400
{"errors":[{"message":"This operation has been blocked as a potential Cross-Site Request Forgery (CSRF). Please either specify a 'content-type' header (with a type that is not one of application/x-www-form-urlencoded, multipart/form-data, text/plain) or provide a non-empty value for one of the following headers: x-apollo-operation-name, apollo-require-preflight\n","extensions":{"code":"BAD_REQUEST"}}]}
Open service 104.21.89.118:443 · api.openbeta.io
2025-12-20 13:16
HTTP/1.1 400 Bad Request
Date: Sat, 20 Dec 2025 13:16:12 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 406
Connection: close
x-powered-by: Express
access-control-allow-origin: *
etag: W/"196-HUCJKwlQurC5GNaaJnH0d+HOnRw"
strict-transport-security: max-age=31536000; includeSubDomains
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
cf-cache-status: DYNAMIC
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=80,cfOrigin;dur=299
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=I2obQDZNa7zsGQkKTW9kzrlDfDjiNasOOFifrwWZMJrGoXWNig70kZMctLwKqemsWgeYFfBwgDTeD6S8bux8%2FqAfvZhc1af2mNX0WBK5nA%3D%3D"}]}
Server: cloudflare
CF-RAY: 9b0f69acd9cb1991-LHR
alt-svc: h3=":443"; ma=86400
{"errors":[{"message":"This operation has been blocked as a potential Cross-Site Request Forgery (CSRF). Please either specify a 'content-type' header (with a type that is not one of application/x-www-form-urlencoded, multipart/form-data, text/plain) or provide a non-empty value for one of the following headers: x-apollo-operation-name, apollo-require-preflight\n","extensions":{"code":"BAD_REQUEST"}}]}
Open service 172.67.141.162:443 · stg-api.openbeta.io
2025-12-20 09:05
HTTP/1.1 400 Bad Request
Date: Sat, 20 Dec 2025 09:05:05 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 406
Connection: close
x-powered-by: Express
access-control-allow-origin: *
etag: W/"196-HUCJKwlQurC5GNaaJnH0d+HOnRw"
strict-transport-security: max-age=31536000; includeSubDomains
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
cf-cache-status: DYNAMIC
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=20,cfOrigin;dur=14
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=RbS%2FuZpYVTRf2hj3MjrXo%2Fn8E28FO0qPJUsJs0IHMfljpYtmJ%2FvAj104GvYyID4zF5AMdvEtkCzZvmbR5j0q3nDstjYxlAnna3JMNs45wBwf"}]}
Server: cloudflare
CF-RAY: 9b0df9d858aa2659-YYZ
alt-svc: h3=":443"; ma=86400
{"errors":[{"message":"This operation has been blocked as a potential Cross-Site Request Forgery (CSRF). Please either specify a 'content-type' header (with a type that is not one of application/x-www-form-urlencoded, multipart/form-data, text/plain) or provide a non-empty value for one of the following headers: x-apollo-operation-name, apollo-require-preflight\n","extensions":{"code":"BAD_REQUEST"}}]}