global-speed-checker
Global Speed Checker
Check HTTP endpoint performance from 28 regions worldwide.
When to Use
- "check the speed of https://openstatus.dev"
- "test https://openstatus.dev globally"
- "how fast is my API from different regions"
Workflow
1. Parse Request
Extract from user's message:
- URL (required)
- Method (optional, default: GET)
- Headers (optional)
- Body (optional)
2. Make API Call
curl -s -L -X POST "https://openstatus.dev/play/checker/api?compact=true" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","method":"GET"}'
The response contains newline-delimited JSON. Each line is a region result. Final line is the check ID.
Note: The compact=true parameter reduces response size by removing headers/body and returning calculated timing phases.
3. Process and Display Results
Parse the response (newline-delimited JSON) and create a markdown table sorted by latency (fastest first):
- Columns: Region | Latency | Status | DNS | Connection | TLS | TTFB | Transfer
- Region: Map code to name using the Read tool to load references/regions-detailed.md (e.g.,
fra→ "Frankfurt (Fly) 🇩🇪") - Timing phases: In compact mode, timing phases are pre-calculated in the response (dns, connection, tls, ttfb, transfer). Otherwise, calculate from raw
timingobject (e.g., DNS =dnsDone - dnsStart) - Sorting: Sort the parsed results array by latency value before rendering the table
4. Add Summary
**Fastest**: [region] ([latency]) • **Slowest**: [region] ([latency]) • **Average**: [avg]ms • **Success rate**: [x/y] ([%])
[View and share results](https://openstatus.dev/play/checker/[check-id])
Then ask: Would you like to see detailed insights or structured JSON data?
5. Optional: Insights (if requested)
Analyze results (3-5 observations):
- Status codes, regional gaps, TLS/TTFB/DNS performance
- See references/insights-generation-guide.md
6. Optional: JSON Export (if requested)
Provide complete results as structured JSON.
Region Mapping
Common codes:
fra→ Frankfurt (Fly) 🇩🇪iad→ Virginia (Fly) 🇺🇸sin→ Singapore (Fly) 🇸🇬lhr→ London (Fly) 🇬🇧koyeb_fra→ Frankfurt (Koyeb) 🇩🇪railway_us-west2→ California (Railway) 🇺🇸
Full list: references/regions-detailed.md
Error Handling
Rate Limit (429): Show limit, remaining, reset time
Invalid Request (400): Show error message and details from response
No Client IP (400): Explain VPN/proxy may cause this
Reference Files
- regions-detailed.md - Complete region mapping
- timing-phases.md - Timing explanations and optimization
- insights-generation-guide.md - Insight patterns
- performance-benchmarks.md - Expected performance ranges
- common-issues.md - Troubleshooting guide
Notes
- Tests from 28 regions (Fly.io, Koyeb, Railway)
- Takes ~2-5 seconds
- Rate limit: 3 requests per 60 seconds
- Results cached for 7 days
More from openstatushq/skills
status-report
Write periodic status reports summarizing overall system health, uptime, incidents, and maintenance. Use when the user mentions "status report," "health report," "uptime report," "weekly status," "monthly report," "system health summary," "reliability report," or wants to publish a regular update on how their services are performing.
6maintenance
Write planned maintenance announcements for each phase (scheduled, in-progress, completed). Use when the user mentions "maintenance announcement," "scheduled maintenance," "maintenance window," "planned downtime," "maintenance notification," or needs to communicate upcoming planned work to users.
6postmortem
Write blameless postmortems after incidents with timeline, root cause analysis, impact assessment, and action items. Use when the user mentions "postmortem," "post-mortem," "incident review," "root cause analysis," "RCA," "incident retrospective," "what went wrong," or wants to document lessons from a resolved incident.
6status-page-context
Create or update the status page context document that all other status page skills reference. Use when setting up status page skills for the first time, or when the user mentions "status page context," "configure status page," "set up incident tone," or wants to define their service components, SLAs, or communication style.
6incident-communication
Write clear, empathetic incident status updates for any phase of an incident (investigating, identified, monitoring, resolved). Use when the user mentions "incident update," "status update," "outage communication," "write an incident," "investigating update," "post-incident update," or needs to communicate a service disruption to users.
6openstatus-theme
Design, scaffold, and contribute a community theme to openstatus (the open-source status page). Use whenever the user wants to create a new theme, customize status-page colors, build a palette for their brand, fork and contribute to openstatus's `@openstatus/theme-store`, or mentions OKLCH colors, CSS variables, or themes.openstatus.dev. Also use when the user pastes a theme export from the live explorer and wants it wired into the repo.
5