Loading..

Bitnodes API v1.0

All API endpoints are available for public use without any authentication required. Requests originating from the same IP address is limited to a maximum of 5000 requests per day.

Available endpoints:

New snapshot is generally available approximately every 5 minutes, so it is recommended that periodical requests are made at most every 5 minutes. Timestamps used in requests and responses are in Unix time in seconds unless specified otherwise in the documentation below.


List Snapshots

List snapshots that are available in the crawler export directory, latest first.

GET /api/v1/snapshots/

Parameters: page and limit. Limit is capped at 100.

Latest snapshot rows can also be fetched directly:

GET /api/v1/snapshots/latest/
GET /api/v1/snapshots/<TIMESTAMP>/

Use field=coordinates for unique latitude and longitude pairs, or field=user_agents for unique user agents. Default snapshot responses are keyed by ADDRESS:PORT and use the original 13-field node data format.


List Nodes

List reachable nodes from the latest snapshot.

GET /api/v1/nodes/

Parameters: page, limit, country, and q.


Node Status

Get status for a node in the latest crawler export. If a node is not present in the latest snapshot, status is returned as DOWN.

GET /api/v1/nodes/<ADDRESS>-<PORT>/

Values in the data array represent protocol version, user agent, connected since, services, height, hostname, city, country code, latitude, longitude, timezone, ASN, and organization name.


Node Latency

Get live latency samples observed by the pinger from Bitcoin pong replies. If no live samples have been observed for the node, the endpoint returns 501 unavailable rather than fabricated values.

GET /api/v1/nodes/<ADDRESS>-<PORT>/latency/

Node Bitcoin Address

Store operator-submitted Bitcoin address metadata for a node in local Redis. This standalone deployment marks submitted metadata as unverified because it does not include the original hosted ownership-verification service.

POST /api/v1/nodes/<ADDRESS>-<PORT>/

Leaderboard

List nodes according to a Bitnodes-style Peer Index derived from live snapshot fields available in this repository.

GET /api/v1/nodes/leaderboard/

Parameters: page, limit, and q. The response includes original field names such as vi, si, hi, ai, pi, dli, dui, wli, wui, mli, mui, nsi, ni, bi, peer_index, and rank.


Node Ranking

Get ranking and Peer Index fields for a single node from the latest export.

GET /api/v1/nodes/leaderboard/<ADDRESS>-<PORT>/

Data Propagation

List live inventory announcements observed by the pinger and inspect the nodes that announced a selected hash. Use ?type=1 for transactions or ?type=2 for blocks. Responses are generated from Redis tinv:* and binv:* keys; if no live announcements have been observed yet, the index returns 501 unavailable rather than fabricated values.

GET /api/v1/inv/
GET /api/v1/inv/<INV_HASH>/

DNS Seeder

Get a list of reachable nodes to bootstrap your Bitcoin client connection to the Bitcoin network.

DNS <RECORD> <PREFIX>seed.bitnodes.io

IPv4 nodes are returned via A records, IPv6 nodes are returned via AAAA records and .onion nodes are returned via TXT records.

seed.bitnodes.io returns a list of reachable nodes with NODE_NETWORK (1) service bit set. Prefix x[1-f] is accepted to filter nodes by specific services. For example, x5.seed.bitnodes.io returns a list of reachable nodes with services set to 5, i.e. NODE_NETWORK (1), NODE_BLOOM (4).