LayerHopDocsLaunch app (opens in a new tab)

Status and monitoring

Check whether LayerHop is up at status.layerhop.com or with GET /v1/status — current status of the API, checkout, worker, dashboard and every liquidity provider, 90 days of uptime, and recent incidents.

LayerHop's status page at status.layerhop.com shows whether each part of LayerHop is working right now, its uptime over the last 90 days, and incidents from the last 14 days. The same data is public JSON at GET https://api.layerhop.com/v1/status, so you can show it in your own app or alert on it. Every component is checked every minute (liquidity providers every 5 minutes), and LayerHop's team is alerted as soon as something breaks.

What is monitored?#

Component Group How it is checked
api: API Core GET https://api.layerhop.com/v1/health answers 2xx
web: Swap app & website Core https://layerhop.com/ answers 2xx
worker: Order tracking & webhooks Core The worker's heartbeat. It tracks orders and checkout payments and delivers webhooks; it counts as down when its heartbeat is older than 3 minutes
checkout: Checkout & payment buttons Payments https://layerhop.com/checkout.js answers 2xx
dashboard: Developer dashboard Developer tools https://dashboard.layerhop.com/ answers 2xx
docs: Documentation Developer tools https://docs.layerhop.com/ answers 2xx
mcp: MCP server Developer tools https://mcp.layerhop.com/healthz answers 2xx
bot: Telegram bot Developer tools https://bot.layerhop.com/healthz answers 2xx
provider:jupiter, provider:relay, provider:debridge, provider:lifi, provider:zerox, provider:kyberswap Liquidity providers Every 5 minutes LayerHop quotes three sample routes through its public API; a provider is up when it returned a quote

HTTP probes time out after 10 seconds. Check history is kept for 90 days.

Incidents and alerts#

Two consecutive failed checks of a component open an incident: the component shows as down on the status page and the incident is listed with its start time. The LayerHop team is alerted at once by email and Telegram. The first successful check after that resolves the incident and sends a recovery alert.

A component whose latest check failed but has no open incident shows as degraded. Because a stopped worker cannot report itself, the API watches the worker's heartbeat independently and opens (and alerts on) the worker incident on its own.

When the worker is down, quotes, transactions and checkout pages still work, but order status updates, paid checkout sessions and webhook deliveries are delayed. Nothing is lost: when the worker recovers it catches up on every order and session, and pending webhook deliveries are retried as usual (see Webhooks).

GET /v1/status#

GET https://api.layerhop.com/v1/status needs no key, allows any origin (CORS), and is cached for 30 seconds.

Terminal
curl https://api.layerhop.com/v1/status
JSON
{
  "status": "operational",
  "updatedAt": "2026-10-18T09:00:12.000Z",
  "components": [
    {
      "id": "api",
      "name": "API",
      "group": "Core",
      "status": "operational",
      "latencyMs": 84,
      "uptime90d": 99.98,
      "days": [
        { "date": "2026-07-21", "uptime": null },
        { "date": "2026-10-18", "uptime": 100 }
      ]
    }
  ],
  "incidents": [
    {
      "id": "inc_01k7…",
      "componentId": "provider:lifi",
      "component": "LI.FI",
      "title": "LI.FI is unavailable",
      "startedAt": "2026-10-16T22:10:00.000Z",
      "resolvedAt": "2026-10-16T22:25:00.000Z"
    }
  ],
  "url": "https://layerhop.com/status"
}
Field Meaning
status Overall: operational (everything up), degraded (some component's latest check failed) or outage (at least one component is down).
components[].status operational, degraded (latest check failed) or down (open incident).
components[].latencyMs Response time of the latest check in the last 15 minutes, or null.
components[].uptime90d Percentage of successful checks over 90 days (two decimals), or null without checks.
components[].days 90 entries, oldest first: each day's uptime percentage, or null for days without checks.
incidents Incidents started in the last 14 days, newest first (at most 50). resolvedAt is null while ongoing.
url The human-readable status page.

With the SDKs: await lh.serviceStatus() (TypeScript), lh.service_status() (Python), c.ServiceStatus(ctx) (Go) and lh.service_status().await (Rust).

Using it in your integration#

  • Show a banner when status is not operational, or when the components you depend on (for example checkout and worker for payments, or one provider) are not.
  • Poll at most every 30 seconds; responses are cached for that long.
  • A provider being down does not mean swaps fail: LayerHop compares every provider and routes through the others.
  • To be told about delays in order tracking, alert on the worker component.

Questions about an incident: dev@layerhop.com.

Last updated