You can use the checker to check the status of your services. The checker is a global service that runs on Fly.io machines and is available in the following supported regions:

  • ams (Amsterdam)
  • hkg (Hong-Kong)
  • iad (Northern Virginia)
  • gru (São Paulo)
  • syd (Sydney)
  • jnb (Johannesburg)

Send a POST request to https://checker.openstatus.dev/ping/[region] with the url and method as body props.

You might want to define the prefer-fly-region: [region] header additionally.

Example

curl --request POST \
  --url https://checker.openstatus.dev/ping/ams \
  --header 'Content-Type: application/json' \
  --header 'x-openstatus-key: <YOUR_API_KEY>' \
  --header 'prefer-fly-region: ams' \
  --data '{
  "url": "https://api.openstatus.dev/ping",
  "method": "GET"
}'

Response:

{
  "status": 200,
  "latency": 18,
  "headers": {
    "Content-Type": "application/json; charset=UTF-8",
    "Date": "Sat, 20 Jan 2024 16:31:18 GMT",
    "Fly-Request-Id": "01HMKVCQ9P2CBDS5GPFBN8EVYP-ams",
    "Server": "Fly/f9c163a6 (2024-01-16)",
    "Via": "2 fly.io"
  },
  "time": 1705768279337,
  "timing": {
    "dnsStart": 1705768279337,
    "dnsDone": 1705768279343,
    "connectStart": 1705768279343,
    "connectDone": 1705768279343,
    "tlsHandshakeStart": 1705768279343,
    "tlsHandshakeDone": 1705768279350,
    "firstByteStart": 1705768279350,
    "firstByteDone": 1705768279355,
    "transferStart": 1705768279355,
    "transferDone": 1705768279355
  }
}

All timestamps are in UNIX epoch milliseconds. The response headers are unknown key value string pairs. All other props are fixed.

type CheckerResponse = {
  status: number;
  latency: number;
  headers: Record<string, string>;
  time: number;
  timing: {
    dnsStart: number;
    dnsDone: number;
    connectStart: number;
    connectDone: number;
    tlsHandshakeStart: number;
    tlsHandshakeDone: number;
    firstByteStart: number;
    firstByteDone: number;
    transferStart: number;
    transferDone: number;
  };
};

You can use it to check from a region the following metrics:

  • DNS Look up time,
  • TLS handshake time,
  • TCP connection time,
  • Time to first byte.