---
title: "RPC endpoint independence — which provider each chain is using"
method: GET
path: "/api/rpc/health"
tags: ["status"]
---

# RPC endpoint independence — which provider each chain is using

`GET /api/rpc/health`

## Request

- Base URL: `https://api.anygas.xyz/svc`
- URL: `https://api.anygas.xyz/svc/api/rpc/health`
- Auth: none declared

Robyn keeps MULTIPLE RPC endpoints per chain and switches automatically when one degrades. One endpoint is active per chain at a time (never raced), so nonce reads stay self-consistent for the payout path; eth_sendRawTransaction is never retried across endpoints. Use this to tell "the chain is down" apart from "one vendor is down".

## Response `200`

Per-chain endpoint health

- object
  - `endpoints` object: chainId -> {total, healthy, active, redundant}
  - `degraded` string[]: chains with fewer usable endpoints than configured
  - `chains` object: full per-endpoint detail incl. call counts, latency and demotion cooldowns

---

[API](https://skmtc.dev/anygas/apis/robyn-anygas-api.md) · [All operations](https://skmtc.dev/anygas/apis/robyn-anygas-api/llms.txt) · [OpenAPI document](https://skmtc.dev/anygas/apis/robyn-anygas-api/revisions/9b7498be8304?raw)
