All the API endpoints return JSON, and will have the Content-Type
header set
to application/json
.
Please try to be respectful, and not try to get loads of data with many requests. Please use the SQLite snapshots for that purpose.
Attribution is appreciated.
Every 30 minutes, a snapshot of the network is taken and saved to the stats
database. The nodes in this database will only include "live" nodes, ones found
via discovery in the last 24 hours.
This endpoint will return the raw timeseries data from the stats
database.
Each row can be considered unique.
curl https://www.ethernets.io/api/stats/
curl https://www.ethernets.io/api/stats/?client-name=geth&network=17000&synced=all
List of stats, grouped by:
client_name
client_user_data
client_version
client_os
client_arch
network_id
fork_id
next_fork_id
country
synced
dial_success
With extra fields:
timestamp
- The timestamp of the specific stat.total
- Count of the nodes matching the specified labels.after
is given.
If both before
and after
are not defined, the last 30 minutes is returned.before
is given.
If both before
and after
are not defined, the last 30 minutes is returned.-1
for all networks.next-fork
.
Default is all next-fork
values.next-fork-name
.
Default is all values. Example: next-fork-name=cancun
all
, no
, yes
, respectively.
Default is yes
(synced).client_name
values.{
"stats": [
{
"timestamp": string,
"client_name": string,
"client_user_data": string|null,
"client_version": string,
"client_os": string,
"client_arch": string,
"network_id": number,
"fork_id": string,
"next_fork_id": number|null,
"country": string,
"synced": boolean,
"dial_success": boolean,
"total": number
},
...
]
}
{
"stats": [
{
"timestamp": "2023-12-12T19:00:00Z",
"client_name": "besu",
"client_user_data": null,
"client_version": "v23.1.2",
"client_os": "Linux",
"client_arch": "amd64",
"network_id": 1,
"fork_id": "dce96c2d",
"next_fork_id": null,
"country": "Australia",
"synced": true,
"dial_success": false,
"total": 1
},
...
]
}