Compare commits

..

108 Commits

Author SHA1 Message Date
uptime-probe[bot]
d10876ce7f chore(uptime): probe results 2026-05-11T07:40:30Z 2026-05-11 07:40:30 +00:00
uptime-probe[bot]
09e7028418 chore(uptime): probe results 2026-05-11T07:30:32Z 2026-05-11 07:30:32 +00:00
uptime-probe[bot]
f0f8825e99 chore(uptime): probe results 2026-05-11T07:23:17Z 2026-05-11 07:23:17 +00:00
uptime-probe[bot]
34202fb10e chore(uptime): probe results 2026-05-11T07:17:13Z 2026-05-11 07:17:13 +00:00
uptime-probe[bot]
7a0eb50cae chore(uptime): probe results 2026-05-11T07:11:05Z 2026-05-11 07:11:05 +00:00
uptime-probe[bot]
f70599b930 chore(uptime): probe results 2026-05-11T06:51:48Z 2026-05-11 06:51:48 +00:00
uptime-probe[bot]
ff452f8f8c chore(uptime): probe results 2026-05-11T06:45:21Z 2026-05-11 06:45:21 +00:00
uptime-probe[bot]
db1b1943b8 chore(uptime): probe results 2026-05-11T06:26:58Z 2026-05-11 06:26:58 +00:00
uptime-probe[bot]
7faae77d9b chore(uptime): probe results 2026-05-11T06:23:11Z 2026-05-11 06:23:11 +00:00
uptime-probe[bot]
1ac95151e3 chore(uptime): probe results 2026-05-11T05:55:54Z 2026-05-11 05:55:54 +00:00
uptime-probe[bot]
ac240b7e79 chore(uptime): probe results 2026-05-11T05:46:44Z 2026-05-11 05:46:44 +00:00
uptime-probe[bot]
a78add65a9 chore(uptime): probe results 2026-05-11T05:22:02Z 2026-05-11 05:22:02 +00:00
uptime-probe[bot]
604b8ba9cb chore(uptime): probe results 2026-05-11T04:51:17Z 2026-05-11 04:51:17 +00:00
uptime-probe[bot]
b1c614f99a chore(uptime): probe results 2026-05-11T04:39:04Z 2026-05-11 04:39:04 +00:00
uptime-probe[bot]
8a0b71ef74 chore(uptime): probe results 2026-05-11T04:19:15Z 2026-05-11 04:19:15 +00:00
uptime-probe[bot]
13bd539d5c chore(uptime): probe results 2026-05-11T04:07:01Z 2026-05-11 04:07:01 +00:00
uptime-probe[bot]
f6b214f28d chore(uptime): probe results 2026-05-11T03:51:27Z 2026-05-11 03:51:27 +00:00
uptime-probe[bot]
5fbc6a6e46 chore(uptime): probe results 2026-05-11T03:40:37Z 2026-05-11 03:40:37 +00:00
uptime-probe[bot]
044c42f22d chore(uptime): probe results 2026-05-11T03:16:32Z 2026-05-11 03:16:32 +00:00
uptime-probe[bot]
86633d887b chore(uptime): probe results 2026-05-11T03:10:55Z 2026-05-11 03:10:55 +00:00
uptime-probe[bot]
d3c72ed90e chore(uptime): probe results 2026-05-11T03:05:53Z 2026-05-11 03:05:53 +00:00
9b30205c3b Merge pull request 'ci: rename .github/workflows -> .gitea/workflows (post-suspension sweep)' (#11) from ci-rename-github-to-gitea into main
All checks were successful
CI / noop (push) Successful in 1s
Uptime probe (Gitea-native — replaces upptime) / Probe + commit (push) Successful in 19s
2026-05-11 03:01:15 +00:00
uptime-probe[bot]
b652ac4a87 chore(uptime): probe results 2026-05-11T02:50:57Z 2026-05-11 02:50:57 +00:00
uptime-probe[bot]
3ad639c023 chore(uptime): probe results 2026-05-11T02:40:53Z 2026-05-11 02:40:53 +00:00
uptime-probe[bot]
1498a80ba6 chore(uptime): probe results 2026-05-11T02:35:56Z 2026-05-11 02:35:56 +00:00
uptime-probe[bot]
2a0bbc759d chore(uptime): probe results 2026-05-11T02:30:55Z 2026-05-11 02:30:55 +00:00
uptime-probe[bot]
f34ce444dd chore(uptime): probe results 2026-05-11T02:25:55Z 2026-05-11 02:25:55 +00:00
uptime-probe[bot]
5f9abef18b chore(uptime): probe results 2026-05-11T02:10:54Z 2026-05-11 02:10:54 +00:00
uptime-probe[bot]
1526e2536b chore(uptime): probe results 2026-05-11T02:00:55Z 2026-05-11 02:00:55 +00:00
uptime-probe[bot]
f449342ff7 chore(uptime): probe results 2026-05-11T01:55:53Z 2026-05-11 01:55:53 +00:00
uptime-probe[bot]
9250df3215 chore(uptime): probe results 2026-05-11T01:45:53Z 2026-05-11 01:45:53 +00:00
uptime-probe[bot]
053a04769a chore(uptime): probe results 2026-05-11T01:10:54Z 2026-05-11 01:10:54 +00:00
uptime-probe[bot]
a470325e97 chore(uptime): probe results 2026-05-11T01:00:53Z 2026-05-11 01:00:53 +00:00
uptime-probe[bot]
41584249fd chore(uptime): probe results 2026-05-11T00:55:55Z 2026-05-11 00:55:55 +00:00
uptime-probe[bot]
7bbdfb71ba chore(uptime): probe results 2026-05-11T00:46:50Z 2026-05-11 00:46:50 +00:00
uptime-probe[bot]
e0b759c6be chore(uptime): probe results 2026-05-11T00:40:54Z 2026-05-11 00:40:54 +00:00
uptime-probe[bot]
cf4f84ffa5 chore(uptime): probe results 2026-05-11T00:35:53Z 2026-05-11 00:35:53 +00:00
uptime-probe[bot]
8133ff55ed chore(uptime): probe results 2026-05-11T00:25:54Z 2026-05-11 00:25:54 +00:00
uptime-probe[bot]
354d4818a7 chore(uptime): probe results 2026-05-11T00:00:55Z 2026-05-11 00:00:55 +00:00
uptime-probe[bot]
77fb693b39 chore(uptime): probe results 2026-05-10T23:30:56Z 2026-05-10 23:30:56 +00:00
uptime-probe[bot]
c1922dc0f7 chore(uptime): probe results 2026-05-10T23:25:55Z 2026-05-10 23:25:55 +00:00
uptime-probe[bot]
16de4eeeed chore(uptime): probe results 2026-05-10T23:10:54Z 2026-05-10 23:10:54 +00:00
uptime-probe[bot]
fba9f0f8ce chore(uptime): probe results 2026-05-10T22:35:53Z 2026-05-10 22:35:53 +00:00
uptime-probe[bot]
c3a8fb488a chore(uptime): probe results 2026-05-10T22:30:53Z 2026-05-10 22:30:53 +00:00
uptime-probe[bot]
b65e937006 chore(uptime): probe results 2026-05-10T22:25:53Z 2026-05-10 22:25:53 +00:00
uptime-probe[bot]
5ad71e4d8b chore(uptime): probe results 2026-05-10T22:20:21Z 2026-05-10 22:20:21 +00:00
uptime-probe[bot]
481d9cc02f chore(uptime): probe results 2026-05-10T22:05:25Z 2026-05-10 22:05:25 +00:00
uptime-probe[bot]
cb978d8ee5 chore(uptime): probe results 2026-05-10T22:01:32Z 2026-05-10 22:01:32 +00:00
uptime-probe[bot]
b7b1903672 chore(uptime): probe results 2026-05-10T21:40:44Z 2026-05-10 21:40:44 +00:00
463c77787f ci: rename .github/workflows -> .gitea/workflows (post-suspension sweep)
GitHub org Molecule-AI was suspended 2026-05-06; SCM moved to Gitea
(git.moleculesai.app). The wholesale `git push --mirror` migration left
workflow files under .github/workflows/, which Gitea Actions does NOT
read - it reads .gitea/workflows/ exclusively.

This rename + the cross-repo `uses:` path rewrite are the minimum
edits to make CI fire on this repo again. The workflow content itself
is not modified (other than the path rewrites and lowercasing of the
old `Molecule-AI` org reference to the post-suspension `molecule-ai`).

Refs: feedback_post_suspension_migration_must_sweep_dormant_repos
2026-05-10 14:12:30 -07:00
uptime-probe[bot]
f7d57236b8 chore(uptime): probe results 2026-05-10T21:10:46Z 2026-05-10 21:10:46 +00:00
31581cc39a ci: drop prebake verify marker (internal#250 deployed)
All checks were successful
CI / noop (push) Successful in 3s
Uptime probe (Gitea-native — replaces upptime) / Probe + commit (push) Successful in 48s
2026-05-10 21:08:21 +00:00
uptime-probe[bot]
089c3b7c7a chore(uptime): probe results 2026-05-10T21:06:28Z 2026-05-10 21:06:28 +00:00
117dc23976 ci: prebake verification marker 20260510T210142Z (Phase 3, internal#250)
All checks were successful
CI / noop (push) Successful in 1s
Uptime probe (Gitea-native — replaces upptime) / Probe + commit (push) Successful in 1m34s
2026-05-10 21:01:43 +00:00
998bb5f993 chore(ci): remove recovery marker (rerun delivered, see internal#233)
Some checks failed
CI / noop (push) Successful in 1s
Uptime probe (Gitea-native — replaces upptime) / Probe + commit (push) Failing after 6s
2026-05-10 19:45:50 +00:00
09a0c2f4fe chore(ci): re-fire after incident recovery 2026-05-10 (revert me)
Some checks failed
CI / noop (push) Successful in 1s
Uptime probe (Gitea-native — replaces upptime) / Probe + commit (push) Failing after 1s
2026-05-10 19:44:40 +00:00
0a58b81bea pull
Some checks failed
CI / noop (push) Successful in 1s
Uptime probe (Gitea-native — replaces upptime) / Probe + commit (push) Failing after 1s
pull
2026-05-10 15:28:51 +00:00
1e90432ac4 fix(uptime): regenerate stale yml files from current JSONL data
All checks were successful
CI / noop (push) Successful in 0s
All sites showing stale 'down' status from 2026-04-19 data.
Current probe data shows all 7 sites up. Updating yml + summary.json
to reflect actual state.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 15:28:23 +00:00
4cf1393feb fix(status): add probe result aggregator + update uptime-probe workflow
Adds the missing Upptime-format aggregator step that was lost in the
Upptime → custom-probe migration (post-2026-05-06 GitHub suspension).

Changes:
- scripts/aggregate.py (NEW): Python script that reads history/<slug>.jsonl,
  computes rolling uptime% and response-time aggregates, writes
  history/<slug>.yml (latest status) and history/summary.json
  (day/week/month/year per-site aggregates)
- .github/workflows/uptime-probe.yml: adds "Aggregate probe results"
  step between probe run and commit; ensures .yml and summary.json
  are regenerated on every probe tick

Immediate effect: fixes false-positive "down" status on Canvas pricing
and legal routes (stuck at 404 from 2026-04-19); refreshes all rolling
uptime aggregates to reflect current probe data.

See: molecule-ai/molecule-ai-status#7

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 14:59:52 +00:00
7e35bc44f5 Merge pull request 'chore(ci): wrap curl with || echo 000 in uptime-probe health gate' (#9) from sre/status-probe-curl-nits into main
Some checks failed
CI / noop (push) Successful in 1s
Uptime probe (Gitea-native — replaces upptime) / Probe + commit (push) Failing after 2s
2026-05-10 13:41:12 +00:00
09412a76e4 chore(ci): wrap curl with || echo 000 in uptime-probe health gate
curl without -f returns non-zero on connection failure (DNS/timeout)
before reading the HTTP status line, causing a bare exit under set -euo
pipefail. Wrapping with || echo 000 ensures the friendly ::error::
message fires for all failure modes (HTTP 502 and connect failures alike).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 13:39:19 +00:00
b524b79c82 Merge pull request 'fix(ci): add Gitea health gate before push in uptime-probe' (#8) from sre/status-probe-gitea-health-gate into main
Some checks are pending
CI / noop (push) Waiting to run
2026-05-10 13:33:42 +00:00
edf2bfeefa fix(ci): add Gitea health gate before push in uptime-probe
Probe runs on GitHub Actions (ubuntu-latest) — confirmed independent of
Gitea Actions runner. Previously the commit step silently swallowed push
failures with `|| echo "push failed"`. Now:

1. Health gate: checks git.moleculesai.app/api/v1/version returns 200
   before pushing. Fails fast with a clear ::error message if Gitea is
   502 or unreachable, rather than silently skipping the push.

2. Fail loudly: `set -euo pipefail` replaces `set +e`, so any push error
   surfaces as a workflow failure (visible in GitHub Actions UI).

3. Self-heals: the next /5 cron firing picks up the buffered history/
   results once Gitea recovers.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 13:32:18 +00:00
uptime-probe[bot]
bfc3364df3 chore(uptime): probe results 2026-05-10T11:57:35Z 2026-05-10 11:57:35 +00:00
uptime-probe[bot]
31383b8339 chore(uptime): probe results 2026-05-10T11:32:20Z 2026-05-10 11:32:20 +00:00
uptime-probe[bot]
15e99ae56f chore(uptime): probe results 2026-05-10T11:26:31Z 2026-05-10 11:26:31 +00:00
uptime-probe[bot]
fe79601c3f chore(uptime): probe results 2026-05-10T11:21:54Z 2026-05-10 11:21:54 +00:00
uptime-probe[bot]
746e358312 chore(uptime): probe results 2026-05-10T11:12:02Z 2026-05-10 11:12:02 +00:00
uptime-probe[bot]
1097cd45c1 chore(uptime): probe results 2026-05-10T11:05:44Z 2026-05-10 11:05:44 +00:00
uptime-probe[bot]
54fea1a4ca chore(uptime): probe results 2026-05-10T11:00:43Z 2026-05-10 11:00:43 +00:00
uptime-probe[bot]
b262638614 chore(uptime): probe results 2026-05-10T10:55:44Z 2026-05-10 10:55:44 +00:00
uptime-probe[bot]
5c912bf601 chore(uptime): probe results 2026-05-10T10:46:12Z 2026-05-10 10:46:12 +00:00
uptime-probe[bot]
99ce0660f7 chore(uptime): probe results 2026-05-10T10:40:47Z 2026-05-10 10:40:47 +00:00
uptime-probe[bot]
62b4318df6 chore(uptime): probe results 2026-05-10T10:35:44Z 2026-05-10 10:35:44 +00:00
uptime-probe[bot]
594f35db81 chore(uptime): probe results 2026-05-10T10:20:43Z 2026-05-10 10:20:43 +00:00
uptime-probe[bot]
9ceae24e23 chore(uptime): probe results 2026-05-10T10:16:59Z 2026-05-10 10:16:59 +00:00
uptime-probe[bot]
4ca3108f02 chore(uptime): probe results 2026-05-10T10:12:15Z 2026-05-10 10:12:15 +00:00
uptime-probe[bot]
45ec377aef chore(uptime): probe results 2026-05-10T10:01:33Z 2026-05-10 10:01:33 +00:00
uptime-probe[bot]
f4ac316431 chore(uptime): probe results 2026-05-10T09:50:44Z 2026-05-10 09:50:44 +00:00
uptime-probe[bot]
1deab6b9ee chore(uptime): probe results 2026-05-10T09:46:15Z 2026-05-10 09:46:15 +00:00
uptime-probe[bot]
d011bdfd80 chore(uptime): probe results 2026-05-10T09:41:29Z 2026-05-10 09:41:29 +00:00
uptime-probe[bot]
95b14bf513 chore(uptime): probe results 2026-05-10T09:36:34Z 2026-05-10 09:36:34 +00:00
uptime-probe[bot]
1b75b59c5f chore(uptime): probe results 2026-05-10T09:32:39Z 2026-05-10 09:32:39 +00:00
uptime-probe[bot]
d0eae930c4 chore(uptime): probe results 2026-05-10T09:26:33Z 2026-05-10 09:26:33 +00:00
uptime-probe[bot]
d53105c0b3 chore(uptime): probe results 2026-05-10T09:17:30Z 2026-05-10 09:17:30 +00:00
uptime-probe[bot]
c374af99f8 chore(uptime): probe results 2026-05-10T09:06:14Z 2026-05-10 09:06:14 +00:00
uptime-probe[bot]
01a1ff4106 chore(uptime): probe results 2026-05-10T09:00:45Z 2026-05-10 09:00:45 +00:00
uptime-probe[bot]
12afb642e3 chore(uptime): probe results 2026-05-10T08:47:07Z 2026-05-10 08:47:07 +00:00
uptime-probe[bot]
f1e86aa0fc chore(uptime): probe results 2026-05-10T08:39:44Z 2026-05-10 08:39:44 +00:00
uptime-probe[bot]
acfb7278ab chore(uptime): probe results 2026-05-10T08:32:26Z 2026-05-10 08:32:26 +00:00
uptime-probe[bot]
b6fe3e5954 chore(uptime): probe results 2026-05-10T08:27:18Z 2026-05-10 08:27:18 +00:00
uptime-probe[bot]
07943a3772 chore(uptime): probe results 2026-05-10T08:21:29Z 2026-05-10 08:21:29 +00:00
uptime-probe[bot]
de5058b3b1 chore(uptime): probe results 2026-05-10T08:15:43Z 2026-05-10 08:15:43 +00:00
uptime-probe[bot]
65f3180f5f chore(uptime): probe results 2026-05-10T08:11:03Z 2026-05-10 08:11:03 +00:00
uptime-probe[bot]
9b290f8761 chore(uptime): probe results 2026-05-10T08:01:02Z 2026-05-10 08:01:02 +00:00
uptime-probe[bot]
422d78cdcc chore(uptime): probe results 2026-05-10T07:50:56Z 2026-05-10 07:50:56 +00:00
uptime-probe[bot]
953d6809c3 chore(uptime): probe results 2026-05-10T07:45:59Z 2026-05-10 07:45:59 +00:00
uptime-probe[bot]
dc3b4a19a5 chore(uptime): probe results 2026-05-10T07:40:53Z 2026-05-10 07:40:53 +00:00
uptime-probe[bot]
8585ee1a0d chore(uptime): probe results 2026-05-10T07:36:13Z 2026-05-10 07:36:13 +00:00
uptime-probe[bot]
4767c1ad59 chore(uptime): probe results 2026-05-10T07:26:46Z 2026-05-10 07:26:46 +00:00
uptime-probe[bot]
2c656f25af chore(uptime): probe results 2026-05-10T07:16:24Z 2026-05-10 07:16:24 +00:00
uptime-probe[bot]
d0f6623d0d chore(uptime): probe results 2026-05-10T07:10:59Z 2026-05-10 07:10:59 +00:00
uptime-probe[bot]
756b205eff chore(uptime): probe results 2026-05-10T07:06:44Z 2026-05-10 07:06:44 +00:00
uptime-probe[bot]
c2e910e874 chore(uptime): probe results 2026-05-10T06:56:37Z 2026-05-10 06:56:37 +00:00
uptime-probe[bot]
49720f0541 chore(uptime): probe results 2026-05-10T06:52:39Z 2026-05-10 06:52:39 +00:00
uptime-probe[bot]
804f613bf8 chore(uptime): probe results 2026-05-10T06:45:58Z 2026-05-10 06:45:58 +00:00
uptime-probe[bot]
21cc911732 chore(uptime): probe results 2026-05-10T06:41:29Z 2026-05-10 06:41:29 +00:00
5e7cf89945 Merge pull request '[migrate] Replace upptime with Gitea-native uptime probe (closes #2)' (#4) from feat/uptime-probe-cron-issue2 into main
All checks were successful
CI / noop (push) Successful in 3s
Uptime probe (Gitea-native — replaces upptime) / Probe + commit (push) Successful in 1m9s
Closes #2. Replace upptime with Gitea-native uptime probe
2026-05-10 06:39:46 +00:00
18 changed files with 1047 additions and 130 deletions

View File

@ -85,11 +85,38 @@ jobs:
echo "== run summary =="
jq -r '.[] | "\(.name): \(.status_code) \(.latency_ms)ms success=\(.success)"' /tmp/run.json || cat /tmp/run.json
- 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.
- 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.
run: |
set +e
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
git config user.name "uptime-probe[bot]"
git config user.email "uptime-probe@bots.moleculesai.app"
git add history/
@ -98,4 +125,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 || echo "push failed; next run will retry"
git push origin HEAD:main

View File

@ -0,0 +1,94 @@
{"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: down
code: 404
responseTime: 6
lastUpdated: 2026-04-19T23:24:15.768Z
startTime: 2026-04-15T21:23:29.357Z
status: up
code: 200
responseTime: 176
lastUpdated: 2026-05-11T07:40:28Z
startTime: 2026-05-10T06:41:28Z
generator: Upptime <https://github.com/upptime/upptime>

View File

@ -0,0 +1,94 @@
{"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: down
code: 404
responseTime: 16
lastUpdated: 2026-04-19T23:24:15.564Z
startTime: 2026-04-15T21:23:14.154Z
status: up
code: 200
responseTime: 174
lastUpdated: 2026-05-11T07:40:28Z
startTime: 2026-05-10T06:41:28Z
generator: Upptime <https://github.com/upptime/upptime>

View File

@ -0,0 +1,94 @@
{"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: 251
lastUpdated: 2026-04-19T23:24:14.843Z
startTime: 2026-04-15T21:23:11.836Z
responseTime: 190
lastUpdated: 2026-05-11T07:40:28Z
startTime: 2026-05-10T06:41:28Z
generator: Upptime <https://github.com/upptime/upptime>

View File

@ -0,0 +1,94 @@
{"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: 35
lastUpdated: 2026-04-19T23:24:15.060Z
startTime: 2026-04-15T21:23:12.233Z
responseTime: 189
lastUpdated: 2026-05-11T07:40:28Z
startTime: 2026-05-10T06:41:28Z
generator: Upptime <https://github.com/upptime/upptime>

View File

@ -0,0 +1,94 @@
{"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: 560
lastUpdated: 2026-04-19T23:24:14.058Z
startTime: 2026-04-18T00:16:23.747Z
responseTime: 313
lastUpdated: 2026-05-11T07:40:28Z
startTime: 2026-05-10T06:41:28Z
generator: Upptime <https://github.com/upptime/upptime>

94
history/docs-site.jsonl Normal file
View File

@ -0,0 +1,94 @@
{"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: 165
lastUpdated: 2026-04-19T23:24:14.410Z
startTime: 2026-04-18T00:16:24.647Z
responseTime: 184
lastUpdated: 2026-05-11T07:40:28Z
startTime: 2026-05-10T06:41:28Z
generator: Upptime <https://github.com/upptime/upptime>

View File

@ -0,0 +1,94 @@
{"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: 111
lastUpdated: 2026-04-19T23:24:15.350Z
startTime: 2026-04-18T00:16:26.682Z
responseTime: 177
lastUpdated: 2026-05-11T07:40:28Z
startTime: 2026-05-10T06:41:28Z
generator: Upptime <https://github.com/upptime/upptime>

View File

@ -2,7 +2,6 @@
{
"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%",
@ -10,83 +9,67 @@
"uptimeWeek": "100.00%",
"uptimeMonth": "100.00%",
"uptimeYear": "100.00%",
"time": 278,
"timeDay": 275,
"timeWeek": 278,
"timeMonth": 278,
"timeYear": 278,
"time": 286.0,
"timeDay": 292.0,
"timeWeek": 286.0,
"timeMonth": 286.0,
"timeYear": 286.0,
"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": "98.21%",
"uptime": "100.00%",
"uptimeDay": "100.00%",
"uptimeWeek": "98.21%",
"uptimeMonth": "98.21%",
"uptimeYear": "98.21%",
"time": 247,
"timeDay": 258,
"timeWeek": 247,
"timeMonth": 247,
"timeYear": 247,
"dailyMinutesDown": {
"2026-04-18": 49
}
"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": {}
},
{
"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": "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
}
"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": {}
},
{
"name": "Control plane Legal pages",
"name": "Control plane \u2014 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": "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
}
"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": {}
},
{
"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%",
@ -94,59 +77,45 @@
"uptimeWeek": "100.00%",
"uptimeMonth": "100.00%",
"uptimeYear": "100.00%",
"time": 229,
"timeDay": 263,
"timeWeek": 229,
"timeMonth": 229,
"timeYear": 229,
"time": 154.0,
"timeDay": 159.0,
"timeWeek": 154.0,
"timeMonth": 154.0,
"timeYear": 154.0,
"dailyMinutesDown": {}
},
{
"name": "Canvas pricing route",
"name": "Canvas \u2014 pricing route",
"url": "https://www.moleculesai.app/pricing",
"icon": "https://icons.duckduckgo.com/ip3/www.moleculesai.app.ico",
"slug": "canvas-pricing-route",
"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
}
"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": {}
},
{
"name": "Canvas legal redirect",
"name": "Canvas \u2014 legal redirect",
"url": "https://www.moleculesai.app/legal/terms",
"icon": "https://icons.duckduckgo.com/ip3/www.moleculesai.app.ico",
"slug": "canvas-legal-redirect",
"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
}
"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": {}
}
]

263
scripts/aggregate.py Executable file
View File

@ -0,0 +1,263 @@
#!/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()