How would one programmatically obtain information on current BP’s as well as BP candidates? Information I would like:

A. Basic info

  1. Website URL
  2. Country
  3. Location of servers
  4. Server types (cloud vs bare metal, etc.)

B. Current Stats

  1. Current number of votes
  2. Current vote rank
  3. How many voters?
  4. List of top 10 voters
  5. Transactions per second processed
  6. Blocks per second processed

C. History

  1. Down time
  2. Previous vote rankings (and how long ranking maintained)

3 Answers 3


To get the producer list, including vote totals, in json form: cleos system listproducers -j

After you retrieve a producer's url from the list, fetch bp.json from that to get more information. e.g. https://some-producer.io/bp.json. The schema for bp.json lives here.

Some of the information you want, such as server type, isn't available on-chain or in bp.json. Some of it, such as blocks processed, requires digging through the block log.


Because nodeos or keosd communicate in a REST way, they are available in the programming language.

In the example in the link below, there is an example of communicating with JavaScript. https://github.com/EOSIO/eosjs


You can obtain the majority of that information from the following URLs:


As well as: http://eosnetworkmonitor.io/

  • Thanks, but I am looking for a way to do this programmatically. Using cleos or a library or something.
    – expaand
    Commented Jun 16, 2018 at 21:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.