Uptime Monitor - Website Availability Monitoring

Monitor website uptime - check availability, response times, and status

How to use it

  1. Hit Copy the whole skill.
  2. Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
    ChatGPT: make a Project and paste it into Instructions.
    Neither? Paste it at the top of a new chat — it works for that chat.
  3. Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit gooseworks-ai/goose-skills/skills/monitoring/capabilities/uptime-monitor#main ~/.claude/skills/uptime-monitor

For one project only, change the path to .claude/skills/uptime-monitor.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text169 lines
uptime-monitor/SKILL.md169 lines5.2 KBpushed 96d agoRawView on GitHub

Uptime Monitor - Website Availability Monitoring

Setup

Read your credentials from ~/.gooseworks/credentials.json:

export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")

If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login

All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"

Monitor website uptime, check response times, and verify service availability.

Workflow

Step 1: Check Website Status

Verify site is accessible:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"linkup","path":"/fetch","body":{"url":"https://yoursite.com"}}'

Step 2: Verify Page Content

Ensure page loads correctly:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"scrapegraph","path":"/v1/smartscraper"}'
  "website_url": "https://yoursite.com",
  "user_prompt": "Check if page loads and contains expected content. Report any error messages."
}'

Step 3: Test API Health

Check API endpoints:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"linkup","path":"/fetch","body":{"url":"https://api.yoursite.com/health"}}'

Step 4: Check Multiple Endpoints

Monitor critical paths:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/batches"}'
  "urls": [
    "https://yoursite.com",
    "https://yoursite.com/login",
    "https://api.yoursite.com/health",
    "https://yoursite.com/dashboard"
  ]
}'

Step 5: Research Status Page

Check official status:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"scrapegraph","path":"/v1/smartscraper"}'
  "website_url": "https://status.yoursite.com",
  "user_prompt": "Extract current service status, any incidents, and affected components"
}'

Step 6: Send Alert (if down)

Use SMS for critical alerts:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"textbelt","path":"/text"}'
  "phone": "+1234567890",
  "message": "ALERT: yoursite.com is down! Check immediately."
}'

Monitoring Script

SITES=("https://example.com" "https://api.example.com/health")

for site in "${SITES[@]}"; do
  echo "Checking: $site"
  curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"linkup","path":"/fetch","body":"{\\"}'
done

Example Usage

# Quick status check
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"linkup","path":"/fetch","body":{"url":"https://stripe.com"}}'

# Check status page
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"scrapegraph","path":"/v1/smartscraper"}'
  "website_url": "https://status.github.com",
  "user_prompt": "What is the current status of GitHub services?"
}'

# Monitor competitor uptime
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"linkup","path":"/fetch","body":{"url":"https://competitor.com"}}'

What to Monitor

  1. Homepage: Main website accessible
  2. API Health: Health check endpoints
  3. Login/Auth: Authentication working
  4. Critical Features: Core functionality
  5. Status Page: Official service status

Discover More

List all endpoints, or add a path for parameter details:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"linkup API endpoints"}' api show olostep
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"scrapegraph API endpoints"}' api show textbelt 

Example: curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \ -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"api":"olostep","path":"/v1/scrapes"}' for endpoint parameters.

1---
2name: uptime-monitor
3description: Monitor website uptime - check availability, response times, and status
4source: orthogonal
5---
6 
7 
8# Uptime Monitor - Website Availability Monitoring
9 
10## Setup
11 
12Read your credentials from ~/.gooseworks/credentials.json:
13```bash
14export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
15export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
16```
17 
18If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login`
19 
20All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"`
21 
22 
23Monitor website uptime, check response times, and verify service availability.
24 
25## Workflow
26 
27### Step 1: Check Website Status
28Verify site is accessible:
29 
30```bash
31curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
32 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
33 -H "Content-Type: application/json" \
34 -d '{"api":"linkup","path":"/fetch","body":{"url":"https://yoursite.com"}}'
35```
36 
37### Step 2: Verify Page Content
38Ensure page loads correctly:
39 
40```bash
41curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
42 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
43 -H "Content-Type: application/json" \
44 -d '{"api":"scrapegraph","path":"/v1/smartscraper"}'
45 "website_url": "https://yoursite.com",
46 "user_prompt": "Check if page loads and contains expected content. Report any error messages."
47}'
48```
49 
50### Step 3: Test API Health
51Check API endpoints:
52 
53```bash
54curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
55 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
56 -H "Content-Type: application/json" \
57 -d '{"api":"linkup","path":"/fetch","body":{"url":"https://api.yoursite.com/health"}}'
58```
59 
60### Step 4: Check Multiple Endpoints
61Monitor critical paths:
62 
63```bash
64curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
65 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
66 -H "Content-Type: application/json" \
67 -d '{"api":"olostep","path":"/v1/batches"}'
68 "urls": [
69 "https://yoursite.com",
70 "https://yoursite.com/login",
71 "https://api.yoursite.com/health",
72 "https://yoursite.com/dashboard"
73 ]
74}'
75```
76 
77### Step 5: Research Status Page
78Check official status:
79 
80```bash
81curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
82 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
83 -H "Content-Type: application/json" \
84 -d '{"api":"scrapegraph","path":"/v1/smartscraper"}'
85 "website_url": "https://status.yoursite.com",
86 "user_prompt": "Extract current service status, any incidents, and affected components"
87}'
88```
89 
90### Step 6: Send Alert (if down)
91Use SMS for critical alerts:
92 
93```bash
94curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
95 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
96 -H "Content-Type: application/json" \
97 -d '{"api":"textbelt","path":"/text"}'
98 "phone": "+1234567890",
99 "message": "ALERT: yoursite.com is down! Check immediately."
100}'
101```
102 
103## Monitoring Script
104 
105```bash
106SITES=("https://example.com" "https://api.example.com/health")
107 
108for site in "${SITES[@]}"; do
109 echo "Checking: $site"
110 curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
111 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
112 -H "Content-Type: application/json" \
113 -d '{"api":"linkup","path":"/fetch","body":"{\\"}'
114done
115```
116 
117## Example Usage
118 
119```bash
120# Quick status check
121curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
122 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
123 -H "Content-Type: application/json" \
124 -d '{"api":"linkup","path":"/fetch","body":{"url":"https://stripe.com"}}'
125 
126# Check status page
127curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
128 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
129 -H "Content-Type: application/json" \
130 -d '{"api":"scrapegraph","path":"/v1/smartscraper"}'
131 "website_url": "https://status.github.com",
132 "user_prompt": "What is the current status of GitHub services?"
133}'
134 
135# Monitor competitor uptime
136curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
137 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
138 -H "Content-Type: application/json" \
139 -d '{"api":"linkup","path":"/fetch","body":{"url":"https://competitor.com"}}'
140```
141 
142## What to Monitor
143 
1441. **Homepage**: Main website accessible
1452. **API Health**: Health check endpoints
1463. **Login/Auth**: Authentication working
1474. **Critical Features**: Core functionality
1485. **Status Page**: Official service status
149 
150## Discover More
151 
152List all endpoints, or add a path for parameter details:
153 
154```bash
155curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
156 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
157 -H "Content-Type: application/json" \
158 -d '{"prompt":"linkup API endpoints"}' api show olostep
159curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
160 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
161 -H "Content-Type: application/json" \
162 -d '{"prompt":"scrapegraph API endpoints"}' api show textbelt
163```
164 
165Example: `curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \
166 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
167 -H "Content-Type: application/json" \
168 -d '{"api":"olostep","path":"/v1/scrapes`"}' for endpoint parameters.
169 

Discussion

Alternatives

Also in Monitoring
Professional Full-Stack Developer for Network Mapping & Monitoring ApplicationAct as a professional full-stack developer tasked with building a web application for mapping and monitoring networks using Mikrotik Netwatch API. Implement multi-user role-based management to handle devices, monitor their status, and manage user subscriptions.Coding · CC0-1.0Prompt refinerHigh-end Prompt Engineering & Prompt Refiner skill. Transforms raw or messy user requests into concise, token-efficient, high-performance master prompts for systems like GPT, Claude, and Gemini. Use when you want to optimize or redesign a prompt so it solves the problem reliably while minimizing tokens.Data & AI · CC0-1.0Pharmacokinetic and Pharmacodynamic ModellingPharmacokinetic and pharmacodynamic modelling and simulation - non-compartmental analysis, compartmental and population PK, PK/PD and exposure-response, TMDD, PBPK orientation, bioequivalence, allometric scaling and first-in-human dose, drug interaction prediction, and Bayesian therapeutic drug monitoring. Use when analysing concentration-time data, deriving exposure metrics, fitting PK or PD models, or evaluating dosing regimens. Triggers include "pharmacokinetics", "pharmacodynamics", "PK/PD", "NCA", "non-compartmental", "AUC", "Cmax", "lambda z", "half-life", "clearance", "volume of distribution", "compartmental model", "population PK", "popPK", "NONMEM", "nlmixr2", "Pharmpy", "Monolix", "exposure-response", "Emax", "EC50", "indirect response", "effect compartment", "TMDD", "PBPK", "bioequivalence", "RSABE", "ABEL", "allometric scaling", "first-in-human", "MABEL", "drug-drug interaction", "DDI", "ICH M12", "concentration-QTc", "therapeutic drug monitoring", "MIPD", and "dosing regimen".Science · MITDistributed tracingImplement distributed tracing with Jaeger and Tempo to track requests across microservices and identify performance bottlenecks. Use when debugging microservices, analyzing request flows, or implementing observability for distributed systems.Infrastructure & ops · MIT