Compare commits

..

No commits in common. "main" and "feat/uptime-probe-cron-issue2" have entirely different histories.

18 changed files with 130 additions and 1047 deletions

View File

@ -85,38 +85,11 @@ jobs:
echo "== run summary =="
jq -r '.[] | "\(.name): \(.status_code) \(.latency_ms)ms success=\(.success)"' /tmp/run.json || cat /tmp/run.json
- name: Aggregate probe results → Upptime format
# Reads history/<slug>.jsonl files, computes rolling uptime/response-time
# aggregates, and writes history/<slug>.yml + history/summary.json.
# This fills the gap left by the Upptime → custom-probe migration:
# the probe binary handles JSONL appends; this step handles the
# aggregator outputs that the status page UI reads.
# See molecule-ai/molecule-ai-status#7.
- name: Commit history changes (best-effort)
# Best-effort: a transient git push race shouldn't block the
# next probe run. The next /5 firing will commit again.
run: |
set -euo pipefail
python3 scripts/aggregate.py --history-dir history
- name: Commit history changes
# Fails fast if Gitea is unhealthy rather than silently swallowing
# the push. The next /5 cron firing picks up where this left off once
# Gitea recovers. Also guarded against concurrent-run race: the
# workflow-level concurrency group (line ~42) ensures at most one
# probe run per branch is in-flight at any time.
run: |
set -euo pipefail
# Health gate: fail fast if Gitea is 502 or otherwise unreachable.
# The probe ran successfully; we just can't persist the results yet.
GATEWAY="https://git.moleculesai.app"
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" \
--max-time 10 "$GATEWAY/api/v1/version" || echo 000)
if [ "$HTTP_CODE" != "200" ]; then
echo "::error::Gitea unhealthy (HTTP $HTTP_CODE) — cannot push results."
echo "::error::Probe data is in history/. Next successful push after Gitea"
echo "::error::recovers will commit all buffered results."
exit 1
fi
set +e
git config user.name "uptime-probe[bot]"
git config user.email "uptime-probe@bots.moleculesai.app"
git add history/
@ -125,4 +98,4 @@ jobs:
exit 0
fi
git commit -m "chore(uptime): probe results $(date -u +%Y-%m-%dT%H:%M:%SZ)"
git push origin HEAD:main
git push origin HEAD:main || echo "push failed; next run will retry"

View File

@ -1,94 +0,0 @@
{"timestamp":"2026-05-10T06:41:28Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":131,"success":true}
{"timestamp":"2026-05-10T06:45:58Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":53,"success":true}
{"timestamp":"2026-05-10T06:52:38Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":113,"success":true}
{"timestamp":"2026-05-10T06:56:37Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":83,"success":true}
{"timestamp":"2026-05-10T07:06:43Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":166,"success":true}
{"timestamp":"2026-05-10T07:10:59Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":56,"success":true}
{"timestamp":"2026-05-10T07:16:23Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":106,"success":true}
{"timestamp":"2026-05-10T07:26:45Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":147,"success":true}
{"timestamp":"2026-05-10T07:36:12Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":112,"success":true}
{"timestamp":"2026-05-10T07:40:53Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":166,"success":true}
{"timestamp":"2026-05-10T07:45:59Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":95,"success":true}
{"timestamp":"2026-05-10T07:50:56Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":91,"success":true}
{"timestamp":"2026-05-10T08:01:02Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":132,"success":true}
{"timestamp":"2026-05-10T08:11:03Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":153,"success":true}
{"timestamp":"2026-05-10T08:15:43Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":50,"success":true}
{"timestamp":"2026-05-10T08:21:28Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":100,"success":true}
{"timestamp":"2026-05-10T08:27:17Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":102,"success":true}
{"timestamp":"2026-05-10T08:32:25Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":187,"success":true}
{"timestamp":"2026-05-10T08:39:43Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":145,"success":true}
{"timestamp":"2026-05-10T08:47:06Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":113,"success":true}
{"timestamp":"2026-05-10T09:00:44Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":401,"success":true}
{"timestamp":"2026-05-10T09:06:13Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":416,"success":true}
{"timestamp":"2026-05-10T09:17:28Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":439,"success":true}
{"timestamp":"2026-05-10T09:26:32Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":342,"success":true}
{"timestamp":"2026-05-10T09:32:38Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":134,"success":true}
{"timestamp":"2026-05-10T09:36:34Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":95,"success":true}
{"timestamp":"2026-05-10T09:41:28Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":100,"success":true}
{"timestamp":"2026-05-10T09:46:15Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":381,"success":true}
{"timestamp":"2026-05-10T09:50:44Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":164,"success":true}
{"timestamp":"2026-05-10T10:01:32Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":412,"success":true}
{"timestamp":"2026-05-10T10:12:14Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":326,"success":true}
{"timestamp":"2026-05-10T10:16:58Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":207,"success":true}
{"timestamp":"2026-05-10T10:20:43Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":67,"success":true}
{"timestamp":"2026-05-10T10:35:43Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":121,"success":true}
{"timestamp":"2026-05-10T10:40:46Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":95,"success":true}
{"timestamp":"2026-05-10T10:46:12Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":138,"success":true}
{"timestamp":"2026-05-10T10:55:43Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":95,"success":true}
{"timestamp":"2026-05-10T11:00:43Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":72,"success":true}
{"timestamp":"2026-05-10T11:05:43Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":51,"success":true}
{"timestamp":"2026-05-10T11:12:01Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":162,"success":true}
{"timestamp":"2026-05-10T11:21:52Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":127,"success":true}
{"timestamp":"2026-05-10T11:26:30Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":168,"success":true}
{"timestamp":"2026-05-10T11:32:19Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":108,"success":true}
{"timestamp":"2026-05-10T11:57:34Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":160,"success":true}
{"timestamp":"2026-05-10T21:06:26Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":475,"success":true}
{"timestamp":"2026-05-10T21:10:45Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":251,"success":true}
{"timestamp":"2026-05-10T21:40:43Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":324,"success":true}
{"timestamp":"2026-05-10T22:01:30Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":190,"success":true}
{"timestamp":"2026-05-10T22:05:24Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":103,"success":true}
{"timestamp":"2026-05-10T22:20:20Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":247,"success":true}
{"timestamp":"2026-05-10T22:25:52Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":54,"success":true}
{"timestamp":"2026-05-10T22:30:53Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":155,"success":true}
{"timestamp":"2026-05-10T22:35:52Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":46,"success":true}
{"timestamp":"2026-05-10T23:10:54Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":210,"success":true}
{"timestamp":"2026-05-10T23:25:54Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":125,"success":true}
{"timestamp":"2026-05-10T23:30:56Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":96,"success":true}
{"timestamp":"2026-05-11T00:00:54Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":118,"success":true}
{"timestamp":"2026-05-11T00:25:53Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":146,"success":true}
{"timestamp":"2026-05-11T00:35:53Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":92,"success":true}
{"timestamp":"2026-05-11T00:40:53Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":84,"success":true}
{"timestamp":"2026-05-11T00:46:50Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":129,"success":true}
{"timestamp":"2026-05-11T00:55:54Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":94,"success":true}
{"timestamp":"2026-05-11T01:00:53Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":50,"success":true}
{"timestamp":"2026-05-11T01:10:53Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":117,"success":true}
{"timestamp":"2026-05-11T01:45:53Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":106,"success":true}
{"timestamp":"2026-05-11T01:55:52Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":85,"success":true}
{"timestamp":"2026-05-11T02:00:54Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":73,"success":true}
{"timestamp":"2026-05-11T02:10:53Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":95,"success":true}
{"timestamp":"2026-05-11T02:25:54Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":147,"success":true}
{"timestamp":"2026-05-11T02:30:55Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":128,"success":true}
{"timestamp":"2026-05-11T02:35:55Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":96,"success":true}
{"timestamp":"2026-05-11T02:40:53Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":49,"success":true}
{"timestamp":"2026-05-11T02:50:57Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":154,"success":true}
{"timestamp":"2026-05-11T03:05:52Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":165,"success":true}
{"timestamp":"2026-05-11T03:10:54Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":70,"success":true}
{"timestamp":"2026-05-11T03:16:30Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":133,"success":true}
{"timestamp":"2026-05-11T03:40:36Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":203,"success":true}
{"timestamp":"2026-05-11T03:51:25Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":190,"success":true}
{"timestamp":"2026-05-11T04:06:59Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":220,"success":true}
{"timestamp":"2026-05-11T04:19:13Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":104,"success":true}
{"timestamp":"2026-05-11T04:39:03Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":198,"success":true}
{"timestamp":"2026-05-11T04:51:15Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":91,"success":true}
{"timestamp":"2026-05-11T05:22:01Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":153,"success":true}
{"timestamp":"2026-05-11T05:46:43Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":166,"success":true}
{"timestamp":"2026-05-11T05:55:53Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":141,"success":true}
{"timestamp":"2026-05-11T06:23:10Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":208,"success":true}
{"timestamp":"2026-05-11T06:26:57Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":104,"success":true}
{"timestamp":"2026-05-11T06:45:18Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":188,"success":true}
{"timestamp":"2026-05-11T06:51:47Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":116,"success":true}
{"timestamp":"2026-05-11T07:11:02Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":187,"success":true}
{"timestamp":"2026-05-11T07:17:11Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":173,"success":true}
{"timestamp":"2026-05-11T07:23:15Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":170,"success":true}
{"timestamp":"2026-05-11T07:30:30Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":122,"success":true}
{"timestamp":"2026-05-11T07:40:28Z","name":"Canvas — legal redirect","url":"https://www.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":176,"success":true}

View File

@ -1,7 +1,7 @@
url: https://www.moleculesai.app/legal/terms
status: up
code: 200
responseTime: 176
lastUpdated: 2026-05-11T07:40:28Z
startTime: 2026-05-10T06:41:28Z
status: down
code: 404
responseTime: 6
lastUpdated: 2026-04-19T23:24:15.768Z
startTime: 2026-04-15T21:23:29.357Z
generator: Upptime <https://github.com/upptime/upptime>

View File

@ -1,94 +0,0 @@
{"timestamp":"2026-05-10T06:41:28Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":129,"success":true}
{"timestamp":"2026-05-10T06:45:58Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":52,"success":true}
{"timestamp":"2026-05-10T06:52:38Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":131,"success":true}
{"timestamp":"2026-05-10T06:56:37Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":82,"success":true}
{"timestamp":"2026-05-10T07:06:43Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":165,"success":true}
{"timestamp":"2026-05-10T07:10:59Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":50,"success":true}
{"timestamp":"2026-05-10T07:16:23Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":98,"success":true}
{"timestamp":"2026-05-10T07:26:45Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":149,"success":true}
{"timestamp":"2026-05-10T07:36:12Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":103,"success":true}
{"timestamp":"2026-05-10T07:40:53Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":165,"success":true}
{"timestamp":"2026-05-10T07:45:59Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":99,"success":true}
{"timestamp":"2026-05-10T07:50:56Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":86,"success":true}
{"timestamp":"2026-05-10T08:01:02Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":129,"success":true}
{"timestamp":"2026-05-10T08:11:03Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":151,"success":true}
{"timestamp":"2026-05-10T08:15:43Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":49,"success":true}
{"timestamp":"2026-05-10T08:21:28Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":90,"success":true}
{"timestamp":"2026-05-10T08:27:17Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":102,"success":true}
{"timestamp":"2026-05-10T08:32:25Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":187,"success":true}
{"timestamp":"2026-05-10T08:39:43Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":139,"success":true}
{"timestamp":"2026-05-10T08:47:06Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":291,"success":true}
{"timestamp":"2026-05-10T09:00:44Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":405,"success":true}
{"timestamp":"2026-05-10T09:06:13Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":369,"success":true}
{"timestamp":"2026-05-10T09:17:28Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":474,"success":true}
{"timestamp":"2026-05-10T09:26:32Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":230,"success":true}
{"timestamp":"2026-05-10T09:32:38Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":144,"success":true}
{"timestamp":"2026-05-10T09:36:34Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":238,"success":true}
{"timestamp":"2026-05-10T09:41:28Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":100,"success":true}
{"timestamp":"2026-05-10T09:46:15Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":316,"success":true}
{"timestamp":"2026-05-10T09:50:44Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":50,"success":true}
{"timestamp":"2026-05-10T10:01:32Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":448,"success":true}
{"timestamp":"2026-05-10T10:12:14Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":363,"success":true}
{"timestamp":"2026-05-10T10:16:58Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":210,"success":true}
{"timestamp":"2026-05-10T10:20:43Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":66,"success":true}
{"timestamp":"2026-05-10T10:35:43Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":113,"success":true}
{"timestamp":"2026-05-10T10:40:46Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":94,"success":true}
{"timestamp":"2026-05-10T10:46:12Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":136,"success":true}
{"timestamp":"2026-05-10T10:55:43Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":58,"success":true}
{"timestamp":"2026-05-10T11:00:43Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":71,"success":true}
{"timestamp":"2026-05-10T11:05:43Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":54,"success":true}
{"timestamp":"2026-05-10T11:12:01Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":160,"success":true}
{"timestamp":"2026-05-10T11:21:52Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":127,"success":true}
{"timestamp":"2026-05-10T11:26:30Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":178,"success":true}
{"timestamp":"2026-05-10T11:32:19Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":107,"success":true}
{"timestamp":"2026-05-10T11:57:34Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":162,"success":true}
{"timestamp":"2026-05-10T21:06:26Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":451,"success":true}
{"timestamp":"2026-05-10T21:10:45Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":251,"success":true}
{"timestamp":"2026-05-10T21:40:43Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":200,"success":true}
{"timestamp":"2026-05-10T22:01:30Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":196,"success":true}
{"timestamp":"2026-05-10T22:05:24Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":102,"success":true}
{"timestamp":"2026-05-10T22:20:20Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":229,"success":true}
{"timestamp":"2026-05-10T22:25:52Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":54,"success":true}
{"timestamp":"2026-05-10T22:30:53Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":155,"success":true}
{"timestamp":"2026-05-10T22:35:52Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":46,"success":true}
{"timestamp":"2026-05-10T23:10:54Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":210,"success":true}
{"timestamp":"2026-05-10T23:25:54Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":126,"success":true}
{"timestamp":"2026-05-10T23:30:56Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":110,"success":true}
{"timestamp":"2026-05-11T00:00:54Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":117,"success":true}
{"timestamp":"2026-05-11T00:25:53Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":149,"success":true}
{"timestamp":"2026-05-11T00:35:53Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":92,"success":true}
{"timestamp":"2026-05-11T00:40:53Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":80,"success":true}
{"timestamp":"2026-05-11T00:46:50Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":130,"success":true}
{"timestamp":"2026-05-11T00:55:54Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":94,"success":true}
{"timestamp":"2026-05-11T01:00:53Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":51,"success":true}
{"timestamp":"2026-05-11T01:10:53Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":117,"success":true}
{"timestamp":"2026-05-11T01:45:53Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":106,"success":true}
{"timestamp":"2026-05-11T01:55:52Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":61,"success":true}
{"timestamp":"2026-05-11T02:00:54Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":68,"success":true}
{"timestamp":"2026-05-11T02:10:53Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":96,"success":true}
{"timestamp":"2026-05-11T02:25:54Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":147,"success":true}
{"timestamp":"2026-05-11T02:30:55Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":128,"success":true}
{"timestamp":"2026-05-11T02:35:55Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":98,"success":true}
{"timestamp":"2026-05-11T02:40:53Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":55,"success":true}
{"timestamp":"2026-05-11T02:50:57Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":159,"success":true}
{"timestamp":"2026-05-11T03:05:52Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":175,"success":true}
{"timestamp":"2026-05-11T03:10:54Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":70,"success":true}
{"timestamp":"2026-05-11T03:16:30Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":125,"success":true}
{"timestamp":"2026-05-11T03:40:36Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":205,"success":true}
{"timestamp":"2026-05-11T03:51:25Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":190,"success":true}
{"timestamp":"2026-05-11T04:06:59Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":209,"success":true}
{"timestamp":"2026-05-11T04:19:13Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":105,"success":true}
{"timestamp":"2026-05-11T04:39:03Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":188,"success":true}
{"timestamp":"2026-05-11T04:51:15Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":86,"success":true}
{"timestamp":"2026-05-11T05:22:01Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":158,"success":true}
{"timestamp":"2026-05-11T05:46:43Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":166,"success":true}
{"timestamp":"2026-05-11T05:55:53Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":150,"success":true}
{"timestamp":"2026-05-11T06:23:10Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":208,"success":true}
{"timestamp":"2026-05-11T06:26:57Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":103,"success":true}
{"timestamp":"2026-05-11T06:45:18Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":184,"success":true}
{"timestamp":"2026-05-11T06:51:47Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":115,"success":true}
{"timestamp":"2026-05-11T07:11:02Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":194,"success":true}
{"timestamp":"2026-05-11T07:17:11Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":180,"success":true}
{"timestamp":"2026-05-11T07:23:15Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":182,"success":true}
{"timestamp":"2026-05-11T07:30:30Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":120,"success":true}
{"timestamp":"2026-05-11T07:40:28Z","name":"Canvas — pricing route","url":"https://www.moleculesai.app/pricing","method":"GET","status_code":200,"latency_ms":174,"success":true}

View File

@ -1,7 +1,7 @@
url: https://www.moleculesai.app/pricing
status: up
code: 200
responseTime: 174
lastUpdated: 2026-05-11T07:40:28Z
startTime: 2026-05-10T06:41:28Z
status: down
code: 404
responseTime: 16
lastUpdated: 2026-04-19T23:24:15.564Z
startTime: 2026-04-15T21:23:14.154Z
generator: Upptime <https://github.com/upptime/upptime>

View File

@ -1,94 +0,0 @@
{"timestamp":"2026-05-10T06:41:28Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":170,"success":true}
{"timestamp":"2026-05-10T06:45:58Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":123,"success":true}
{"timestamp":"2026-05-10T06:52:38Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":157,"success":true}
{"timestamp":"2026-05-10T06:56:37Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":103,"success":true}
{"timestamp":"2026-05-10T07:06:43Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":218,"success":true}
{"timestamp":"2026-05-10T07:10:59Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":152,"success":true}
{"timestamp":"2026-05-10T07:16:23Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":148,"success":true}
{"timestamp":"2026-05-10T07:26:45Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":161,"success":true}
{"timestamp":"2026-05-10T07:36:12Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":172,"success":true}
{"timestamp":"2026-05-10T07:40:53Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":101,"success":true}
{"timestamp":"2026-05-10T07:45:59Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":189,"success":true}
{"timestamp":"2026-05-10T07:50:56Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":107,"success":true}
{"timestamp":"2026-05-10T08:01:02Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":190,"success":true}
{"timestamp":"2026-05-10T08:11:03Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":172,"success":true}
{"timestamp":"2026-05-10T08:15:43Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":131,"success":true}
{"timestamp":"2026-05-10T08:21:28Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":186,"success":true}
{"timestamp":"2026-05-10T08:27:17Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":172,"success":true}
{"timestamp":"2026-05-10T08:32:25Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":256,"success":true}
{"timestamp":"2026-05-10T08:39:43Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":198,"success":true}
{"timestamp":"2026-05-10T08:47:06Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":162,"success":true}
{"timestamp":"2026-05-10T09:00:44Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":151,"success":true}
{"timestamp":"2026-05-10T09:06:13Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":202,"success":true}
{"timestamp":"2026-05-10T09:17:28Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":184,"success":true}
{"timestamp":"2026-05-10T09:26:32Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":232,"success":true}
{"timestamp":"2026-05-10T09:32:38Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":163,"success":true}
{"timestamp":"2026-05-10T09:36:34Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":135,"success":true}
{"timestamp":"2026-05-10T09:41:28Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":168,"success":true}
{"timestamp":"2026-05-10T09:46:15Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":102,"success":true}
{"timestamp":"2026-05-10T09:50:44Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":161,"success":true}
{"timestamp":"2026-05-10T10:01:32Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":166,"success":true}
{"timestamp":"2026-05-10T10:12:14Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":201,"success":true}
{"timestamp":"2026-05-10T10:16:58Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":100,"success":true}
{"timestamp":"2026-05-10T10:20:43Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":162,"success":true}
{"timestamp":"2026-05-10T10:35:43Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":148,"success":true}
{"timestamp":"2026-05-10T10:40:46Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":151,"success":true}
{"timestamp":"2026-05-10T10:46:12Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":202,"success":true}
{"timestamp":"2026-05-10T10:55:43Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":151,"success":true}
{"timestamp":"2026-05-10T11:00:43Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":103,"success":true}
{"timestamp":"2026-05-10T11:05:43Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":152,"success":true}
{"timestamp":"2026-05-10T11:12:01Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":165,"success":true}
{"timestamp":"2026-05-10T11:21:52Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":152,"success":true}
{"timestamp":"2026-05-10T11:26:30Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":159,"success":true}
{"timestamp":"2026-05-10T11:32:19Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":166,"success":true}
{"timestamp":"2026-05-10T11:57:34Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":193,"success":true}
{"timestamp":"2026-05-10T21:06:26Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":186,"success":true}
{"timestamp":"2026-05-10T21:10:45Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":172,"success":true}
{"timestamp":"2026-05-10T21:40:43Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":190,"success":true}
{"timestamp":"2026-05-10T22:01:30Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":230,"success":true}
{"timestamp":"2026-05-10T22:05:24Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":102,"success":true}
{"timestamp":"2026-05-10T22:20:20Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":225,"success":true}
{"timestamp":"2026-05-10T22:25:52Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":159,"success":true}
{"timestamp":"2026-05-10T22:30:53Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":149,"success":true}
{"timestamp":"2026-05-10T22:35:52Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":103,"success":true}
{"timestamp":"2026-05-10T23:10:54Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":175,"success":true}
{"timestamp":"2026-05-10T23:25:54Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":197,"success":true}
{"timestamp":"2026-05-10T23:30:56Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":153,"success":true}
{"timestamp":"2026-05-11T00:00:54Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":147,"success":true}
{"timestamp":"2026-05-11T00:25:53Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":154,"success":true}
{"timestamp":"2026-05-11T00:35:53Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":173,"success":true}
{"timestamp":"2026-05-11T00:40:53Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":170,"success":true}
{"timestamp":"2026-05-11T00:46:50Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":170,"success":true}
{"timestamp":"2026-05-11T00:55:54Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":150,"success":true}
{"timestamp":"2026-05-11T01:00:53Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":149,"success":true}
{"timestamp":"2026-05-11T01:10:53Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":230,"success":true}
{"timestamp":"2026-05-11T01:45:53Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":168,"success":true}
{"timestamp":"2026-05-11T01:55:52Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":149,"success":true}
{"timestamp":"2026-05-11T02:00:54Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":153,"success":true}
{"timestamp":"2026-05-11T02:10:53Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":164,"success":true}
{"timestamp":"2026-05-11T02:25:54Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":180,"success":true}
{"timestamp":"2026-05-11T02:30:55Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":168,"success":true}
{"timestamp":"2026-05-11T02:35:55Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":184,"success":true}
{"timestamp":"2026-05-11T02:40:53Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":200,"success":true}
{"timestamp":"2026-05-11T02:50:57Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":153,"success":true}
{"timestamp":"2026-05-11T03:05:52Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":161,"success":true}
{"timestamp":"2026-05-11T03:10:54Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":255,"success":true}
{"timestamp":"2026-05-11T03:16:30Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":164,"success":true}
{"timestamp":"2026-05-11T03:40:36Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":219,"success":true}
{"timestamp":"2026-05-11T03:51:25Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":195,"success":true}
{"timestamp":"2026-05-11T04:06:59Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":185,"success":true}
{"timestamp":"2026-05-11T04:19:13Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":162,"success":true}
{"timestamp":"2026-05-11T04:39:03Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":185,"success":true}
{"timestamp":"2026-05-11T04:51:15Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":156,"success":true}
{"timestamp":"2026-05-11T05:22:01Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":204,"success":true}
{"timestamp":"2026-05-11T05:46:43Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":160,"success":true}
{"timestamp":"2026-05-11T05:55:53Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":179,"success":true}
{"timestamp":"2026-05-11T06:23:10Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":176,"success":true}
{"timestamp":"2026-05-11T06:26:57Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":147,"success":true}
{"timestamp":"2026-05-11T06:45:18Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":242,"success":true}
{"timestamp":"2026-05-11T06:51:47Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":156,"success":true}
{"timestamp":"2026-05-11T07:11:02Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":280,"success":true}
{"timestamp":"2026-05-11T07:17:11Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":196,"success":true}
{"timestamp":"2026-05-11T07:23:15Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":172,"success":true}
{"timestamp":"2026-05-11T07:30:30Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":154,"success":true}
{"timestamp":"2026-05-11T07:40:28Z","name":"Control plane API","url":"https://api.moleculesai.app/health","method":"GET","status_code":200,"latency_ms":190,"success":true}

View File

@ -1,7 +1,7 @@
url: https://api.moleculesai.app/health
status: up
code: 200
responseTime: 190
lastUpdated: 2026-05-11T07:40:28Z
startTime: 2026-05-10T06:41:28Z
responseTime: 251
lastUpdated: 2026-04-19T23:24:14.843Z
startTime: 2026-04-15T21:23:11.836Z
generator: Upptime <https://github.com/upptime/upptime>

View File

@ -1,94 +0,0 @@
{"timestamp":"2026-05-10T06:41:28Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":171,"success":true}
{"timestamp":"2026-05-10T06:45:58Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":123,"success":true}
{"timestamp":"2026-05-10T06:52:38Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":157,"success":true}
{"timestamp":"2026-05-10T06:56:37Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":103,"success":true}
{"timestamp":"2026-05-10T07:06:43Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":218,"success":true}
{"timestamp":"2026-05-10T07:10:59Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":152,"success":true}
{"timestamp":"2026-05-10T07:16:23Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":149,"success":true}
{"timestamp":"2026-05-10T07:26:45Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":161,"success":true}
{"timestamp":"2026-05-10T07:36:12Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":172,"success":true}
{"timestamp":"2026-05-10T07:40:53Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":100,"success":true}
{"timestamp":"2026-05-10T07:45:59Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":188,"success":true}
{"timestamp":"2026-05-10T07:50:56Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":107,"success":true}
{"timestamp":"2026-05-10T08:01:02Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":190,"success":true}
{"timestamp":"2026-05-10T08:11:03Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":172,"success":true}
{"timestamp":"2026-05-10T08:15:43Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":131,"success":true}
{"timestamp":"2026-05-10T08:21:28Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":178,"success":true}
{"timestamp":"2026-05-10T08:27:17Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":172,"success":true}
{"timestamp":"2026-05-10T08:32:25Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":245,"success":true}
{"timestamp":"2026-05-10T08:39:43Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":198,"success":true}
{"timestamp":"2026-05-10T08:47:06Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":161,"success":true}
{"timestamp":"2026-05-10T09:00:44Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":150,"success":true}
{"timestamp":"2026-05-10T09:06:13Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":202,"success":true}
{"timestamp":"2026-05-10T09:17:28Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":174,"success":true}
{"timestamp":"2026-05-10T09:26:32Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":232,"success":true}
{"timestamp":"2026-05-10T09:32:38Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":162,"success":true}
{"timestamp":"2026-05-10T09:36:34Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":135,"success":true}
{"timestamp":"2026-05-10T09:41:28Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":153,"success":true}
{"timestamp":"2026-05-10T09:46:15Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":102,"success":true}
{"timestamp":"2026-05-10T09:50:44Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":149,"success":true}
{"timestamp":"2026-05-10T10:01:32Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":166,"success":true}
{"timestamp":"2026-05-10T10:12:14Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":201,"success":true}
{"timestamp":"2026-05-10T10:16:58Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":99,"success":true}
{"timestamp":"2026-05-10T10:20:43Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":149,"success":true}
{"timestamp":"2026-05-10T10:35:43Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":147,"success":true}
{"timestamp":"2026-05-10T10:40:46Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":151,"success":true}
{"timestamp":"2026-05-10T10:46:12Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":190,"success":true}
{"timestamp":"2026-05-10T10:55:43Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":151,"success":true}
{"timestamp":"2026-05-10T11:00:43Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":105,"success":true}
{"timestamp":"2026-05-10T11:05:43Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":152,"success":true}
{"timestamp":"2026-05-10T11:12:01Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":165,"success":true}
{"timestamp":"2026-05-10T11:21:52Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":152,"success":true}
{"timestamp":"2026-05-10T11:26:30Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":159,"success":true}
{"timestamp":"2026-05-10T11:32:19Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":166,"success":true}
{"timestamp":"2026-05-10T11:57:34Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":177,"success":true}
{"timestamp":"2026-05-10T21:06:26Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":187,"success":true}
{"timestamp":"2026-05-10T21:10:45Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":172,"success":true}
{"timestamp":"2026-05-10T21:40:43Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":190,"success":true}
{"timestamp":"2026-05-10T22:01:30Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":230,"success":true}
{"timestamp":"2026-05-10T22:05:24Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":102,"success":true}
{"timestamp":"2026-05-10T22:20:20Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":214,"success":true}
{"timestamp":"2026-05-10T22:25:52Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":148,"success":true}
{"timestamp":"2026-05-10T22:30:53Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":149,"success":true}
{"timestamp":"2026-05-10T22:35:52Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":103,"success":true}
{"timestamp":"2026-05-10T23:10:54Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":175,"success":true}
{"timestamp":"2026-05-10T23:25:54Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":197,"success":true}
{"timestamp":"2026-05-10T23:30:56Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":153,"success":true}
{"timestamp":"2026-05-11T00:00:54Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":147,"success":true}
{"timestamp":"2026-05-11T00:25:53Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":154,"success":true}
{"timestamp":"2026-05-11T00:35:53Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":172,"success":true}
{"timestamp":"2026-05-11T00:40:53Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":170,"success":true}
{"timestamp":"2026-05-11T00:46:50Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":169,"success":true}
{"timestamp":"2026-05-11T00:55:54Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":150,"success":true}
{"timestamp":"2026-05-11T01:00:53Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":149,"success":true}
{"timestamp":"2026-05-11T01:10:53Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":230,"success":true}
{"timestamp":"2026-05-11T01:45:53Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":168,"success":true}
{"timestamp":"2026-05-11T01:55:52Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":149,"success":true}
{"timestamp":"2026-05-11T02:00:54Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":153,"success":true}
{"timestamp":"2026-05-11T02:10:53Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":164,"success":true}
{"timestamp":"2026-05-11T02:25:54Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":173,"success":true}
{"timestamp":"2026-05-11T02:30:55Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":169,"success":true}
{"timestamp":"2026-05-11T02:35:55Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":175,"success":true}
{"timestamp":"2026-05-11T02:40:53Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":189,"success":true}
{"timestamp":"2026-05-11T02:50:57Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":153,"success":true}
{"timestamp":"2026-05-11T03:05:52Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":161,"success":true}
{"timestamp":"2026-05-11T03:10:54Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":255,"success":true}
{"timestamp":"2026-05-11T03:16:30Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":156,"success":true}
{"timestamp":"2026-05-11T03:40:36Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":207,"success":true}
{"timestamp":"2026-05-11T03:51:25Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":195,"success":true}
{"timestamp":"2026-05-11T04:06:59Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":188,"success":true}
{"timestamp":"2026-05-11T04:19:13Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":154,"success":true}
{"timestamp":"2026-05-11T04:39:03Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":185,"success":true}
{"timestamp":"2026-05-11T04:51:15Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":156,"success":true}
{"timestamp":"2026-05-11T05:22:01Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":204,"success":true}
{"timestamp":"2026-05-11T05:46:43Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":160,"success":true}
{"timestamp":"2026-05-11T05:55:53Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":179,"success":true}
{"timestamp":"2026-05-11T06:23:10Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":176,"success":true}
{"timestamp":"2026-05-11T06:26:57Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":148,"success":true}
{"timestamp":"2026-05-11T06:45:18Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":241,"success":true}
{"timestamp":"2026-05-11T06:51:47Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":156,"success":true}
{"timestamp":"2026-05-11T07:11:02Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":280,"success":true}
{"timestamp":"2026-05-11T07:17:11Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":198,"success":true}
{"timestamp":"2026-05-11T07:23:15Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":174,"success":true}
{"timestamp":"2026-05-11T07:30:30Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":159,"success":true}
{"timestamp":"2026-05-11T07:40:28Z","name":"Control plane — Legal pages","url":"https://api.moleculesai.app/legal/terms","method":"GET","status_code":200,"latency_ms":189,"success":true}

View File

@ -1,7 +1,7 @@
url: https://api.moleculesai.app/legal/terms
status: up
code: 200
responseTime: 189
lastUpdated: 2026-05-11T07:40:28Z
startTime: 2026-05-10T06:41:28Z
responseTime: 35
lastUpdated: 2026-04-19T23:24:15.060Z
startTime: 2026-04-15T21:23:12.233Z
generator: Upptime <https://github.com/upptime/upptime>

View File

@ -1,94 +0,0 @@
{"timestamp":"2026-05-10T06:41:28Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":242,"success":true}
{"timestamp":"2026-05-10T06:45:58Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":150,"success":true}
{"timestamp":"2026-05-10T06:52:38Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":229,"success":true}
{"timestamp":"2026-05-10T06:56:37Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":172,"success":true}
{"timestamp":"2026-05-10T07:06:43Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":403,"success":true}
{"timestamp":"2026-05-10T07:10:59Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":220,"success":true}
{"timestamp":"2026-05-10T07:16:23Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":180,"success":true}
{"timestamp":"2026-05-10T07:26:45Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":291,"success":true}
{"timestamp":"2026-05-10T07:36:12Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":197,"success":true}
{"timestamp":"2026-05-10T07:40:53Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":206,"success":true}
{"timestamp":"2026-05-10T07:45:59Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":650,"success":true}
{"timestamp":"2026-05-10T07:50:56Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":218,"success":true}
{"timestamp":"2026-05-10T08:01:02Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":282,"success":true}
{"timestamp":"2026-05-10T08:11:03Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":194,"success":true}
{"timestamp":"2026-05-10T08:15:43Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":163,"success":true}
{"timestamp":"2026-05-10T08:21:28Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":212,"success":true}
{"timestamp":"2026-05-10T08:27:17Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":215,"success":true}
{"timestamp":"2026-05-10T08:32:25Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":306,"success":true}
{"timestamp":"2026-05-10T08:39:43Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":261,"success":true}
{"timestamp":"2026-05-10T08:47:06Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":213,"success":true}
{"timestamp":"2026-05-10T09:00:44Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":771,"success":true}
{"timestamp":"2026-05-10T09:06:13Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":482,"success":true}
{"timestamp":"2026-05-10T09:17:28Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":417,"success":true}
{"timestamp":"2026-05-10T09:26:32Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":343,"success":true}
{"timestamp":"2026-05-10T09:32:38Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":272,"success":true}
{"timestamp":"2026-05-10T09:36:34Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":302,"success":true}
{"timestamp":"2026-05-10T09:41:28Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":205,"success":true}
{"timestamp":"2026-05-10T09:46:15Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":213,"success":true}
{"timestamp":"2026-05-10T09:50:44Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":159,"success":true}
{"timestamp":"2026-05-10T10:01:32Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":417,"success":true}
{"timestamp":"2026-05-10T10:12:14Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":369,"success":true}
{"timestamp":"2026-05-10T10:16:58Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":242,"success":true}
{"timestamp":"2026-05-10T10:20:43Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":166,"success":true}
{"timestamp":"2026-05-10T10:35:43Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":287,"success":true}
{"timestamp":"2026-05-10T10:40:46Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":266,"success":true}
{"timestamp":"2026-05-10T10:46:12Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":233,"success":true}
{"timestamp":"2026-05-10T10:55:43Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":656,"success":true}
{"timestamp":"2026-05-10T11:00:43Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":340,"success":true}
{"timestamp":"2026-05-10T11:05:43Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":320,"success":true}
{"timestamp":"2026-05-10T11:12:01Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":451,"success":true}
{"timestamp":"2026-05-10T11:21:52Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":277,"success":true}
{"timestamp":"2026-05-10T11:26:30Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":343,"success":true}
{"timestamp":"2026-05-10T11:32:19Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":317,"success":true}
{"timestamp":"2026-05-10T11:57:34Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":300,"success":true}
{"timestamp":"2026-05-10T21:06:26Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":368,"success":true}
{"timestamp":"2026-05-10T21:10:45Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":231,"success":true}
{"timestamp":"2026-05-10T21:40:43Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":429,"success":true}
{"timestamp":"2026-05-10T22:01:30Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":354,"success":true}
{"timestamp":"2026-05-10T22:05:24Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":149,"success":true}
{"timestamp":"2026-05-10T22:20:20Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":300,"success":true}
{"timestamp":"2026-05-10T22:25:52Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":202,"success":true}
{"timestamp":"2026-05-10T22:30:53Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":262,"success":true}
{"timestamp":"2026-05-10T22:35:52Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":203,"success":true}
{"timestamp":"2026-05-10T23:10:54Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":289,"success":true}
{"timestamp":"2026-05-10T23:25:54Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":537,"success":true}
{"timestamp":"2026-05-10T23:30:56Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":205,"success":true}
{"timestamp":"2026-05-11T00:00:54Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":336,"success":true}
{"timestamp":"2026-05-11T00:25:53Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":227,"success":true}
{"timestamp":"2026-05-11T00:35:53Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":216,"success":true}
{"timestamp":"2026-05-11T00:40:53Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":363,"success":true}
{"timestamp":"2026-05-11T00:46:50Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":190,"success":true}
{"timestamp":"2026-05-11T00:55:54Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":189,"success":true}
{"timestamp":"2026-05-11T01:00:53Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":166,"success":true}
{"timestamp":"2026-05-11T01:10:53Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":251,"success":true}
{"timestamp":"2026-05-11T01:45:53Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":312,"success":true}
{"timestamp":"2026-05-11T01:55:52Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":191,"success":true}
{"timestamp":"2026-05-11T02:00:54Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":266,"success":true}
{"timestamp":"2026-05-11T02:10:53Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":208,"success":true}
{"timestamp":"2026-05-11T02:25:54Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":261,"success":true}
{"timestamp":"2026-05-11T02:30:55Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":235,"success":true}
{"timestamp":"2026-05-11T02:35:55Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":197,"success":true}
{"timestamp":"2026-05-11T02:40:53Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":160,"success":true}
{"timestamp":"2026-05-11T02:50:57Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":210,"success":true}
{"timestamp":"2026-05-11T03:05:52Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":268,"success":true}
{"timestamp":"2026-05-11T03:10:54Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":205,"success":true}
{"timestamp":"2026-05-11T03:16:30Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":288,"success":true}
{"timestamp":"2026-05-11T03:40:36Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":467,"success":true}
{"timestamp":"2026-05-11T03:51:25Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":358,"success":true}
{"timestamp":"2026-05-11T04:06:59Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":321,"success":true}
{"timestamp":"2026-05-11T04:19:13Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":280,"success":true}
{"timestamp":"2026-05-11T04:39:03Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":437,"success":true}
{"timestamp":"2026-05-11T04:51:15Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":212,"success":true}
{"timestamp":"2026-05-11T05:22:01Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":445,"success":true}
{"timestamp":"2026-05-11T05:46:43Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":290,"success":true}
{"timestamp":"2026-05-11T05:55:53Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":200,"success":true}
{"timestamp":"2026-05-11T06:23:10Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":317,"success":true}
{"timestamp":"2026-05-11T06:26:57Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":188,"success":true}
{"timestamp":"2026-05-11T06:45:18Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":298,"success":true}
{"timestamp":"2026-05-11T06:51:47Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":219,"success":true}
{"timestamp":"2026-05-11T07:11:02Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":400,"success":true}
{"timestamp":"2026-05-11T07:17:11Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":270,"success":true}
{"timestamp":"2026-05-11T07:23:15Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":286,"success":true}
{"timestamp":"2026-05-11T07:30:30Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":210,"success":true}
{"timestamp":"2026-05-11T07:40:28Z","name":"Customer app","url":"https://app.moleculesai.app","method":"GET","status_code":200,"latency_ms":313,"success":true}

View File

@ -1,7 +1,7 @@
url: https://app.moleculesai.app
status: up
code: 200
responseTime: 313
lastUpdated: 2026-05-11T07:40:28Z
startTime: 2026-05-10T06:41:28Z
responseTime: 560
lastUpdated: 2026-04-19T23:24:14.058Z
startTime: 2026-04-18T00:16:23.747Z
generator: Upptime <https://github.com/upptime/upptime>

View File

@ -1,94 +0,0 @@
{"timestamp":"2026-05-10T06:41:28Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":137,"success":true}
{"timestamp":"2026-05-10T06:45:58Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":51,"success":true}
{"timestamp":"2026-05-10T06:52:38Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":118,"success":true}
{"timestamp":"2026-05-10T06:56:37Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":82,"success":true}
{"timestamp":"2026-05-10T07:06:43Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":170,"success":true}
{"timestamp":"2026-05-10T07:10:59Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":478,"success":true}
{"timestamp":"2026-05-10T07:16:23Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":224,"success":true}
{"timestamp":"2026-05-10T07:26:45Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":441,"success":true}
{"timestamp":"2026-05-10T07:36:12Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":297,"success":true}
{"timestamp":"2026-05-10T07:40:53Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":60,"success":true}
{"timestamp":"2026-05-10T07:45:59Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":105,"success":true}
{"timestamp":"2026-05-10T07:50:56Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":80,"success":true}
{"timestamp":"2026-05-10T08:01:02Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":143,"success":true}
{"timestamp":"2026-05-10T08:11:03Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":75,"success":true}
{"timestamp":"2026-05-10T08:15:43Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":85,"success":true}
{"timestamp":"2026-05-10T08:21:28Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":74,"success":true}
{"timestamp":"2026-05-10T08:27:17Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":109,"success":true}
{"timestamp":"2026-05-10T08:32:25Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":193,"success":true}
{"timestamp":"2026-05-10T08:39:43Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":153,"success":true}
{"timestamp":"2026-05-10T08:47:06Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":116,"success":true}
{"timestamp":"2026-05-10T09:00:44Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":112,"success":true}
{"timestamp":"2026-05-10T09:06:13Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":231,"success":true}
{"timestamp":"2026-05-10T09:17:28Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":178,"success":true}
{"timestamp":"2026-05-10T09:26:32Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":232,"success":true}
{"timestamp":"2026-05-10T09:32:38Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":545,"success":true}
{"timestamp":"2026-05-10T09:36:34Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":492,"success":true}
{"timestamp":"2026-05-10T09:41:28Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":228,"success":true}
{"timestamp":"2026-05-10T09:46:15Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":273,"success":true}
{"timestamp":"2026-05-10T09:50:44Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":63,"success":true}
{"timestamp":"2026-05-10T10:01:32Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":324,"success":true}
{"timestamp":"2026-05-10T10:12:14Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":208,"success":true}
{"timestamp":"2026-05-10T10:16:58Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":101,"success":true}
{"timestamp":"2026-05-10T10:20:43Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":101,"success":true}
{"timestamp":"2026-05-10T10:35:43Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":192,"success":true}
{"timestamp":"2026-05-10T10:40:46Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":99,"success":true}
{"timestamp":"2026-05-10T10:46:12Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":209,"success":true}
{"timestamp":"2026-05-10T10:55:43Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":81,"success":true}
{"timestamp":"2026-05-10T11:00:43Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":53,"success":true}
{"timestamp":"2026-05-10T11:05:43Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":84,"success":true}
{"timestamp":"2026-05-10T11:12:01Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":185,"success":true}
{"timestamp":"2026-05-10T11:21:52Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":152,"success":true}
{"timestamp":"2026-05-10T11:26:30Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":102,"success":true}
{"timestamp":"2026-05-10T11:32:19Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":96,"success":true}
{"timestamp":"2026-05-10T11:57:34Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":554,"success":true}
{"timestamp":"2026-05-10T21:06:26Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":625,"success":true}
{"timestamp":"2026-05-10T21:10:45Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":263,"success":true}
{"timestamp":"2026-05-10T21:40:43Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":190,"success":true}
{"timestamp":"2026-05-10T22:01:30Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":612,"success":true}
{"timestamp":"2026-05-10T22:05:24Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":205,"success":true}
{"timestamp":"2026-05-10T22:20:20Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":370,"success":true}
{"timestamp":"2026-05-10T22:25:52Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":198,"success":true}
{"timestamp":"2026-05-10T22:30:53Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":99,"success":true}
{"timestamp":"2026-05-10T22:35:52Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":52,"success":true}
{"timestamp":"2026-05-10T23:10:54Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":190,"success":true}
{"timestamp":"2026-05-10T23:25:54Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":220,"success":true}
{"timestamp":"2026-05-10T23:30:56Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":185,"success":true}
{"timestamp":"2026-05-11T00:00:54Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":144,"success":true}
{"timestamp":"2026-05-11T00:25:53Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":589,"success":true}
{"timestamp":"2026-05-11T00:35:53Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":257,"success":true}
{"timestamp":"2026-05-11T00:40:53Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":85,"success":true}
{"timestamp":"2026-05-11T00:46:50Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":80,"success":true}
{"timestamp":"2026-05-11T00:55:54Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":124,"success":true}
{"timestamp":"2026-05-11T01:00:53Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":222,"success":true}
{"timestamp":"2026-05-11T01:10:53Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":277,"success":true}
{"timestamp":"2026-05-11T01:45:53Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":345,"success":true}
{"timestamp":"2026-05-11T01:55:52Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":153,"success":true}
{"timestamp":"2026-05-11T02:00:54Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":232,"success":true}
{"timestamp":"2026-05-11T02:10:53Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":141,"success":true}
{"timestamp":"2026-05-11T02:25:54Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":567,"success":true}
{"timestamp":"2026-05-11T02:30:55Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":292,"success":true}
{"timestamp":"2026-05-11T02:35:55Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":259,"success":true}
{"timestamp":"2026-05-11T02:40:53Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":140,"success":true}
{"timestamp":"2026-05-11T02:50:57Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":221,"success":true}
{"timestamp":"2026-05-11T03:05:52Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":477,"success":true}
{"timestamp":"2026-05-11T03:10:54Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":181,"success":true}
{"timestamp":"2026-05-11T03:16:30Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":126,"success":true}
{"timestamp":"2026-05-11T03:40:36Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":212,"success":true}
{"timestamp":"2026-05-11T03:51:25Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":192,"success":true}
{"timestamp":"2026-05-11T04:06:59Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":213,"success":true}
{"timestamp":"2026-05-11T04:19:13Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":124,"success":true}
{"timestamp":"2026-05-11T04:39:03Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":186,"success":true}
{"timestamp":"2026-05-11T04:51:15Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":498,"success":true}
{"timestamp":"2026-05-11T05:22:01Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":626,"success":true}
{"timestamp":"2026-05-11T05:46:43Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":336,"success":true}
{"timestamp":"2026-05-11T05:55:53Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":239,"success":true}
{"timestamp":"2026-05-11T06:23:10Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":158,"success":true}
{"timestamp":"2026-05-11T06:26:57Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":62,"success":true}
{"timestamp":"2026-05-11T06:45:18Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":165,"success":true}
{"timestamp":"2026-05-11T06:51:47Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":147,"success":true}
{"timestamp":"2026-05-11T07:11:02Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":216,"success":true}
{"timestamp":"2026-05-11T07:17:11Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":170,"success":true}
{"timestamp":"2026-05-11T07:23:15Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":183,"success":true}
{"timestamp":"2026-05-11T07:30:30Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":127,"success":true}
{"timestamp":"2026-05-11T07:40:28Z","name":"Docs site","url":"https://doc.moleculesai.app","method":"GET","status_code":200,"latency_ms":184,"success":true}

View File

@ -1,7 +1,7 @@
url: https://doc.moleculesai.app
status: up
code: 200
responseTime: 184
lastUpdated: 2026-05-11T07:40:28Z
startTime: 2026-05-10T06:41:28Z
responseTime: 165
lastUpdated: 2026-04-19T23:24:14.410Z
startTime: 2026-04-18T00:16:24.647Z
generator: Upptime <https://github.com/upptime/upptime>

View File

@ -1,94 +0,0 @@
{"timestamp":"2026-05-10T06:41:28Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":142,"success":true}
{"timestamp":"2026-05-10T06:45:58Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":52,"success":true}
{"timestamp":"2026-05-10T06:52:38Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":108,"success":true}
{"timestamp":"2026-05-10T06:56:37Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":85,"success":true}
{"timestamp":"2026-05-10T07:06:43Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":165,"success":true}
{"timestamp":"2026-05-10T07:10:59Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":50,"success":true}
{"timestamp":"2026-05-10T07:16:23Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":109,"success":true}
{"timestamp":"2026-05-10T07:26:45Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":147,"success":true}
{"timestamp":"2026-05-10T07:36:12Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":104,"success":true}
{"timestamp":"2026-05-10T07:40:53Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":167,"success":true}
{"timestamp":"2026-05-10T07:45:59Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":99,"success":true}
{"timestamp":"2026-05-10T07:50:56Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":85,"success":true}
{"timestamp":"2026-05-10T08:01:02Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":131,"success":true}
{"timestamp":"2026-05-10T08:11:03Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":151,"success":true}
{"timestamp":"2026-05-10T08:15:43Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":52,"success":true}
{"timestamp":"2026-05-10T08:21:28Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":97,"success":true}
{"timestamp":"2026-05-10T08:27:17Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":110,"success":true}
{"timestamp":"2026-05-10T08:32:25Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":190,"success":true}
{"timestamp":"2026-05-10T08:39:43Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":147,"success":true}
{"timestamp":"2026-05-10T08:47:06Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":123,"success":true}
{"timestamp":"2026-05-10T09:00:44Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":453,"success":true}
{"timestamp":"2026-05-10T09:06:13Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":477,"success":true}
{"timestamp":"2026-05-10T09:17:28Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":526,"success":true}
{"timestamp":"2026-05-10T09:26:32Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":347,"success":true}
{"timestamp":"2026-05-10T09:32:38Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":140,"success":true}
{"timestamp":"2026-05-10T09:36:34Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":105,"success":true}
{"timestamp":"2026-05-10T09:41:28Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":100,"success":true}
{"timestamp":"2026-05-10T09:46:15Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":370,"success":true}
{"timestamp":"2026-05-10T09:50:44Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":56,"success":true}
{"timestamp":"2026-05-10T10:01:32Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":540,"success":true}
{"timestamp":"2026-05-10T10:12:14Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":327,"success":true}
{"timestamp":"2026-05-10T10:16:58Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":96,"success":true}
{"timestamp":"2026-05-10T10:20:43Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":68,"success":true}
{"timestamp":"2026-05-10T10:35:43Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":111,"success":true}
{"timestamp":"2026-05-10T10:40:46Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":96,"success":true}
{"timestamp":"2026-05-10T10:46:12Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":136,"success":true}
{"timestamp":"2026-05-10T10:55:43Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":60,"success":true}
{"timestamp":"2026-05-10T11:00:43Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":76,"success":true}
{"timestamp":"2026-05-10T11:05:43Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":56,"success":true}
{"timestamp":"2026-05-10T11:12:01Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":181,"success":true}
{"timestamp":"2026-05-10T11:21:52Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":133,"success":true}
{"timestamp":"2026-05-10T11:26:30Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":168,"success":true}
{"timestamp":"2026-05-10T11:32:19Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":107,"success":true}
{"timestamp":"2026-05-10T11:57:34Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":159,"success":true}
{"timestamp":"2026-05-10T21:06:26Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":495,"success":true}
{"timestamp":"2026-05-10T21:10:45Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":253,"success":true}
{"timestamp":"2026-05-10T21:40:43Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":190,"success":true}
{"timestamp":"2026-05-10T22:01:30Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":192,"success":true}
{"timestamp":"2026-05-10T22:05:24Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":103,"success":true}
{"timestamp":"2026-05-10T22:20:20Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":236,"success":true}
{"timestamp":"2026-05-10T22:25:52Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":54,"success":true}
{"timestamp":"2026-05-10T22:30:53Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":157,"success":true}
{"timestamp":"2026-05-10T22:35:52Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":66,"success":true}
{"timestamp":"2026-05-10T23:10:54Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":210,"success":true}
{"timestamp":"2026-05-10T23:25:54Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":122,"success":true}
{"timestamp":"2026-05-10T23:30:56Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":90,"success":true}
{"timestamp":"2026-05-11T00:00:54Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":118,"success":true}
{"timestamp":"2026-05-11T00:25:53Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":148,"success":true}
{"timestamp":"2026-05-11T00:35:53Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":107,"success":true}
{"timestamp":"2026-05-11T00:40:53Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":80,"success":true}
{"timestamp":"2026-05-11T00:46:50Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":130,"success":true}
{"timestamp":"2026-05-11T00:55:54Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":93,"success":true}
{"timestamp":"2026-05-11T01:00:53Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":50,"success":true}
{"timestamp":"2026-05-11T01:10:53Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":117,"success":true}
{"timestamp":"2026-05-11T01:45:53Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":107,"success":true}
{"timestamp":"2026-05-11T01:55:52Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":65,"success":true}
{"timestamp":"2026-05-11T02:00:54Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":70,"success":true}
{"timestamp":"2026-05-11T02:10:53Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":94,"success":true}
{"timestamp":"2026-05-11T02:25:54Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":148,"success":true}
{"timestamp":"2026-05-11T02:30:55Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":130,"success":true}
{"timestamp":"2026-05-11T02:35:55Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":98,"success":true}
{"timestamp":"2026-05-11T02:40:53Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":51,"success":true}
{"timestamp":"2026-05-11T02:50:57Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":155,"success":true}
{"timestamp":"2026-05-11T03:05:52Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":165,"success":true}
{"timestamp":"2026-05-11T03:10:54Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":71,"success":true}
{"timestamp":"2026-05-11T03:16:30Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":127,"success":true}
{"timestamp":"2026-05-11T03:40:36Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":203,"success":true}
{"timestamp":"2026-05-11T03:51:25Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":190,"success":true}
{"timestamp":"2026-05-11T04:06:59Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":207,"success":true}
{"timestamp":"2026-05-11T04:19:13Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":106,"success":true}
{"timestamp":"2026-05-11T04:39:03Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":196,"success":true}
{"timestamp":"2026-05-11T04:51:15Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":100,"success":true}
{"timestamp":"2026-05-11T05:22:01Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":154,"success":true}
{"timestamp":"2026-05-11T05:46:43Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":166,"success":true}
{"timestamp":"2026-05-11T05:55:53Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":142,"success":true}
{"timestamp":"2026-05-11T06:23:10Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":213,"success":true}
{"timestamp":"2026-05-11T06:26:57Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":108,"success":true}
{"timestamp":"2026-05-11T06:45:18Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":187,"success":true}
{"timestamp":"2026-05-11T06:51:47Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":129,"success":true}
{"timestamp":"2026-05-11T07:11:02Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":186,"success":true}
{"timestamp":"2026-05-11T07:17:11Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":172,"success":true}
{"timestamp":"2026-05-11T07:23:15Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":212,"success":true}
{"timestamp":"2026-05-11T07:30:30Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":122,"success":true}
{"timestamp":"2026-05-11T07:40:28Z","name":"Landing page","url":"https://www.moleculesai.app/","method":"GET","status_code":200,"latency_ms":177,"success":true}

View File

@ -1,7 +1,7 @@
url: https://www.moleculesai.app/
status: up
code: 200
responseTime: 177
lastUpdated: 2026-05-11T07:40:28Z
startTime: 2026-05-10T06:41:28Z
responseTime: 111
lastUpdated: 2026-04-19T23:24:15.350Z
startTime: 2026-04-18T00:16:26.682Z
generator: Upptime <https://github.com/upptime/upptime>

View File

@ -2,6 +2,7 @@
{
"name": "Customer app",
"url": "https://app.moleculesai.app",
"icon": "https://icons.duckduckgo.com/ip3/app.moleculesai.app.ico",
"slug": "customer-app",
"status": "up",
"uptime": "100.00%",
@ -9,67 +10,83 @@
"uptimeWeek": "100.00%",
"uptimeMonth": "100.00%",
"uptimeYear": "100.00%",
"time": 286.0,
"timeDay": 292.0,
"timeWeek": 286.0,
"timeMonth": 286.0,
"timeYear": 286.0,
"time": 278,
"timeDay": 275,
"timeWeek": 278,
"timeMonth": 278,
"timeYear": 278,
"dailyMinutesDown": {}
},
{
"name": "Docs site",
"url": "https://doc.moleculesai.app",
"icon": "https://icons.duckduckgo.com/ip3/doc.moleculesai.app.ico",
"slug": "docs-site",
"status": "up",
"uptime": "100.00%",
"uptime": "98.21%",
"uptimeDay": "100.00%",
"uptimeWeek": "100.00%",
"uptimeMonth": "100.00%",
"uptimeYear": "100.00%",
"time": 215.0,
"timeDay": 215.0,
"timeWeek": 215.0,
"timeMonth": 215.0,
"timeYear": 215.0,
"dailyMinutesDown": {}
"uptimeWeek": "98.21%",
"uptimeMonth": "98.21%",
"uptimeYear": "98.21%",
"time": 247,
"timeDay": 258,
"timeWeek": 247,
"timeMonth": 247,
"timeYear": 247,
"dailyMinutesDown": {
"2026-04-18": 49
}
},
{
"name": "Control plane API",
"url": "https://api.moleculesai.app/health",
"icon": "https://icons.duckduckgo.com/ip3/api.moleculesai.app.ico",
"slug": "control-plane-api",
"status": "up",
"uptime": "100.00%",
"uptimeDay": "100.00%",
"uptimeWeek": "100.00%",
"uptimeMonth": "100.00%",
"uptimeYear": "100.00%",
"time": 170.0,
"timeDay": 171.0,
"timeWeek": 170.0,
"timeMonth": 170.0,
"timeYear": 170.0,
"dailyMinutesDown": {}
"uptime": "24.13%",
"uptimeDay": "0.01%",
"uptimeWeek": "24.13%",
"uptimeMonth": "24.13%",
"uptimeYear": "24.13%",
"time": 168,
"timeDay": 418,
"timeWeek": 168,
"timeMonth": 168,
"timeYear": 168,
"dailyMinutesDown": {
"2026-04-19": 1297,
"2026-04-18": 1440,
"2026-04-17": 1440,
"2026-04-16": 204
}
},
{
"name": "Control plane \u2014 Legal pages",
"name": "Control plane Legal pages",
"url": "https://api.moleculesai.app/legal/terms",
"icon": "https://icons.duckduckgo.com/ip3/api.moleculesai.app.ico",
"slug": "control-plane-legal-pages",
"status": "up",
"uptime": "100.00%",
"uptimeDay": "100.00%",
"uptimeWeek": "100.00%",
"uptimeMonth": "100.00%",
"uptimeYear": "100.00%",
"time": 168.0,
"timeDay": 169.0,
"timeWeek": 168.0,
"timeMonth": 168.0,
"timeYear": 168.0,
"dailyMinutesDown": {}
"uptime": "24.13%",
"uptimeDay": "0.00%",
"uptimeWeek": "24.13%",
"uptimeMonth": "24.13%",
"uptimeYear": "24.13%",
"time": 75,
"timeDay": 197,
"timeWeek": 75,
"timeMonth": 75,
"timeYear": 75,
"dailyMinutesDown": {
"2026-04-19": 1297,
"2026-04-18": 1440,
"2026-04-17": 1440,
"2026-04-16": 204
}
},
{
"name": "Landing page",
"url": "https://www.moleculesai.app/",
"icon": "https://icons.duckduckgo.com/ip3/www.moleculesai.app.ico",
"slug": "landing-page",
"status": "up",
"uptime": "100.00%",
@ -77,45 +94,59 @@
"uptimeWeek": "100.00%",
"uptimeMonth": "100.00%",
"uptimeYear": "100.00%",
"time": 154.0,
"timeDay": 159.0,
"timeWeek": 154.0,
"timeMonth": 154.0,
"timeYear": 154.0,
"time": 229,
"timeDay": 263,
"timeWeek": 229,
"timeMonth": 229,
"timeYear": 229,
"dailyMinutesDown": {}
},
{
"name": "Canvas \u2014 pricing route",
"name": "Canvas pricing route",
"url": "https://www.moleculesai.app/pricing",
"icon": "https://icons.duckduckgo.com/ip3/www.moleculesai.app.ico",
"slug": "canvas-pricing-route",
"status": "up",
"uptime": "100.00%",
"uptimeDay": "100.00%",
"uptimeWeek": "100.00%",
"uptimeMonth": "100.00%",
"uptimeYear": "100.00%",
"time": 152.0,
"timeDay": 157.0,
"timeWeek": 152.0,
"timeMonth": 152.0,
"timeYear": 152.0,
"dailyMinutesDown": {}
"status": "down",
"uptime": "0.00%",
"uptimeDay": "0.00%",
"uptimeWeek": "0.00%",
"uptimeMonth": "0.00%",
"uptimeYear": "0.00%",
"time": 34,
"timeDay": 21,
"timeWeek": 34,
"timeMonth": 34,
"timeYear": 34,
"dailyMinutesDown": {
"2026-04-19": 1297,
"2026-04-18": 1440,
"2026-04-17": 1440,
"2026-04-16": 1440,
"2026-04-15": 157
}
},
{
"name": "Canvas \u2014 legal redirect",
"name": "Canvas legal redirect",
"url": "https://www.moleculesai.app/legal/terms",
"icon": "https://icons.duckduckgo.com/ip3/www.moleculesai.app.ico",
"slug": "canvas-legal-redirect",
"status": "up",
"uptime": "100.00%",
"uptimeDay": "100.00%",
"uptimeWeek": "100.00%",
"uptimeMonth": "100.00%",
"uptimeYear": "100.00%",
"time": 153.0,
"timeDay": 158.0,
"timeWeek": 153.0,
"timeMonth": 153.0,
"timeYear": 153.0,
"dailyMinutesDown": {}
"status": "down",
"uptime": "0.00%",
"uptimeDay": "0.00%",
"uptimeWeek": "0.00%",
"uptimeMonth": "0.00%",
"uptimeYear": "0.00%",
"time": 28,
"timeDay": 18,
"timeWeek": 28,
"timeMonth": 28,
"timeYear": 28,
"dailyMinutesDown": {
"2026-04-19": 1297,
"2026-04-18": 1440,
"2026-04-17": 1440,
"2026-04-16": 1440,
"2026-04-15": 156
}
}
]

View File

@ -1,263 +0,0 @@
#!/usr/bin/env python3
"""
aggregate.py Upptime-format aggregator for molecule-ai-status.
Reads probe results from history/<slug>.jsonl files, computes rolling
uptime and response-time aggregates, and writes:
history/<slug>.yml latest probe result (Upptime status-file format)
history/summary.json per-site aggregates for day/week/month/year
Run after each probe run, before the git commit step.
Usage:
python3 scripts/aggregate.py [--history-dir history]
"""
import argparse
import json
import sys
import time
from datetime import datetime, timezone, timedelta
from pathlib import Path
def parse_ts(ts: str) -> datetime:
"""Parse ISO-8601 timestamp with Z suffix."""
return datetime.fromisoformat(ts.replace("Z", "+00:00"))
def compute_uptime_pct(results: list[dict], since: datetime) -> tuple[float, int]:
"""
Return (uptime_percent, minutes_down) for results since `since`.
A 5-minute interval is "down" if the result at or after that minute
had success=False. minutes_down is the count of such 5-min slots.
"""
now = datetime.now(timezone.utc)
if not results:
return 100.0, 0
# Bucket results into 5-minute slots
slots: dict[int, bool] = {} # slot_minute -> any_success
for r in results:
if parse_ts(r["timestamp"]) < since:
continue
slot = int(parse_ts(r["timestamp"]).timestamp() // 300) * 300
# If any probe in this slot succeeded, the slot is up
if slots.get(slot, r["success"]):
slots[slot] = r["success"]
if not slots:
return 100.0, 0
total_slots = len(slots)
up_slots = sum(1 for v in slots.values() if v)
uptime_pct = (up_slots / total_slots) * 100
minutes_down = total_slots - up_slots
return round(uptime_pct, 2), minutes_down
def avg_response_time(results: list[dict], since: datetime) -> float | None:
"""Return average latency_ms for results since `since`."""
latencies = [
r["latency_ms"]
for r in results
if parse_ts(r["timestamp"]) >= since and r.get("latency_ms") is not None
]
return round(sum(latencies) / len(latencies), 0) if latencies else None
def slug_from_name(name: str) -> str:
"""Derive slug from site name (matches Upptime convention)."""
return name.lower().replace("", "-").replace(" ", "-").replace(".", "")
def get_sites(upptimerc: Path) -> list[dict]:
"""Parse .upptimerc.yml to get site list (name, url)."""
try:
import yaml
except ImportError:
pass # Fall back to simple parser below
content = upptimerc.read_text()
# Try yaml import first
try:
import yaml as _yaml
data = _yaml.safe_load(content)
raw_sites = data.get("sites", []) if data else []
return [{"name": s["name"], "url": s["url"]} for s in raw_sites if s.get("name")]
except Exception:
pass
# Fallback: simple line-based parser for indented - name: / url: pairs
sites = []
in_sites = False
current = {}
for line in content.splitlines():
stripped = line.strip()
indent = len(line) - len(stripped)
if stripped == "sites:":
in_sites = True
continue
if not in_sites:
continue
# Dedent back to top-level ends sites block
if indent == 0 and stripped and not stripped.startswith("-"):
break
if stripped.startswith("- name:"):
if current.get("name"):
sites.append(current)
current = {"name": stripped.split("name:", 1)[1].strip().lstrip("- ")}
elif stripped.startswith("url:"):
current["url"] = stripped.split("url:", 1)[1].strip()
if current.get("name"):
sites.append(current)
return sites
def write_yml(slug: str, latest: dict | None, first_ts: str | None) -> str:
"""Write history/<slug>.yml in Upptime format."""
if latest is None:
# No probe results — leave as-is or write a placeholder
return ""
status = "up" if latest["success"] else "down"
code = latest["status_code"]
response_time = latest["latency_ms"]
last_updated = latest["timestamp"]
start_time = first_ts or last_updated
yml = f"""\
url: {latest["url"]}
status: {status}
code: {code}
responseTime: {response_time}
lastUpdated: {last_updated}
startTime: {start_time}
generator: Upptime <https://github.com/upptime/upptime>
"""
return yml
def write_summary_site_entry(name: str, url: str, slug: str,
results: list[dict],
start_time: datetime) -> dict:
"""Build a summary.json entry for one site."""
now = datetime.now(timezone.utc)
day_start = now - timedelta(days=1)
week_start = now - timedelta(weeks=1)
month_start = now - timedelta(days=30)
year_start = now - timedelta(days=365)
uptime, uptime_day, uptime_week, uptime_month, uptime_year = None, None, None, None, None
rt, rt_day, rt_week, rt_month, rt_year = None, None, None, None, None
# All-time
uptime, _ = compute_uptime_pct(results, start_time)
rt = avg_response_time(results, start_time)
# Day
uptime_day, _ = compute_uptime_pct(results, day_start)
rt_day = avg_response_time(results, day_start)
# Week
uptime_week, _ = compute_uptime_pct(results, week_start)
rt_week = avg_response_time(results, week_start)
# Month
uptime_month, _ = compute_uptime_pct(results, month_start)
rt_month = avg_response_time(results, month_start)
# Year
uptime_year, _ = compute_uptime_pct(results, year_start)
rt_year = avg_response_time(results, year_start)
latest = results[-1] if results else {}
status = "up" if latest.get("success", True) else "down"
def fmt(val):
if val is None:
return None
return f"{val:.2f}%" if isinstance(val, float) else val
return {
"name": name,
"url": url,
"slug": slug,
"status": status,
"uptime": fmt(uptime),
"uptimeDay": fmt(uptime_day),
"uptimeWeek": fmt(uptime_week),
"uptimeMonth": fmt(uptime_month),
"uptimeYear": fmt(uptime_year),
"time": rt,
"timeDay": rt_day,
"timeWeek": rt_week,
"timeMonth": rt_month,
"timeYear": rt_year,
"dailyMinutesDown": {},
}
def main():
parser = argparse.ArgumentParser(description="Aggregate upptime probe results")
parser.add_argument("--history-dir", default="history", help="Path to history directory")
args = parser.parse_args()
history_dir = Path(args.history_dir)
upptimerc = Path(".upptimerc.yml")
if not history_dir.exists():
print(f"No history directory: {history_dir}")
sys.exit(1)
sites = get_sites(upptimerc)
print(f"Aggregating {len(sites)} sites from {history_dir}/")
summary_entries = []
written_ymls = 0
for site in sites:
name = site["name"]
url = site["url"]
slug = slug_from_name(name)
jsonl_path = history_dir / f"{slug}.jsonl"
results = []
if jsonl_path.exists():
for line in jsonl_path.read_text().strip().splitlines():
if line.strip():
try:
results.append(json.loads(line))
except json.JSONDecodeError:
pass
# Sort by timestamp
results.sort(key=lambda r: r.get("timestamp", ""))
latest = results[-1] if results else None
first_ts = results[0].get("timestamp") if results else None
start_time = parse_ts(first_ts) if first_ts else datetime.now(timezone.utc)
# Write .yml
yml_content = write_yml(slug, latest, first_ts)
if yml_content:
yml_path = history_dir / f"{slug}.yml"
yml_path.write_text(yml_content)
written_ymls += 1
status = "up" if latest.get("success") else "down"
print(f" {slug}: {status} ({len(results)} results, latest {latest.get('status_code') if latest else 'N/A'})")
else:
print(f" {slug}: no results (skipped)")
# Build summary entry
entry = write_summary_site_entry(name, url, slug, results, start_time)
summary_entries.append(entry)
# Write summary.json
summary_path = history_dir / "summary.json"
summary_path.write_text(json.dumps(summary_entries, indent=2))
print(f"\nWrote {written_ymls} .yml files + summary.json ({len(summary_entries)} entries)")
if __name__ == "__main__":
main()