Static JSON served straight from the CDN. It covers 51 faucets, and for those we can verify on-chain it carries the dispensing wallet's balance and last payout — so you can tell a funded faucet from one that merely returns HTTP 200.
Endpoints
| URL | Contents |
|---|---|
/api/v1/all.json | Everything — every network with its faucets. |
/api/v1/faucets.json | The faucet array on its own. |
/api/v1/networks.json | The network array on its own. |
/api/v1/networks/<network-id>.json | A single network and its faucets, e.g. ethereum-sepolia. |
Query-string filtering does not work on static hosting —
filter client-side (the payload is small) or fetch the per-network file.
A network-id is the network name slugified.
Freshness contract
Every response is wrapped in an envelope carrying
schema_version, generated_at and
next_update_expected_at. If
next_update_expected_at is in the past, our job has stopped and
the data should be treated as unreliable — you can assert on that without
knowing our schedule.
Example
curl -s https://testnetfaucets.dev/api/v1/networks/ethereum-sepolia.json \
| jq '.faucets[] | select(.status=="working") | {name, url, amount}'
Terms
Public domain data, no attribution required — though a link back is appreciated if it's useful to you. Full field reference is in API.md on GitHub.