# Waves API
The following APIs are available for Waves:
Node REST API (described in the “Node” chapter) provides the following features:
- broadcasting a signed transaction to the blockchain
- obtaining account data, token info, transactions, blocks, etc.
- validating transactions, use various utilities, and much more.
Each node owner can enable its REST API. The Waves team supports the node pools with the public API.
Waves Data Service API is intended for reading data from the blockchain, including market data on cryptocurrency trading from Exchange transactions, lists of transactions by type and variety of filters, etc.
gRPC Server (described in the “Node” chapter) is a node extension that enables running gRPC services. gRPC Server can obtain information about accounts, tokens, transactions, and blocks, as well as broadcast a signed transaction.
Blockchain Updates (described in the “Node” chapter) is a node extension for tracking changes made by each transaction: in account balances, in data storages, in token parameters and other.
Waves Keeper API (described in the “Ecosystem Apps” chapter) enables signing and sending transactions and exchange orders on behalf of a user in a browser with the Waves Keeper extension installed.
💡 Client libraries for various programming languages are listed in the Client Libraries article.
# Which API to use
Different APIs are suitable for getting different blockchain data.
|Current account balance||Node REST API or gRPC Server|
|Changing the balance by blockchain height||Blockchain Updates|
|Token fields, including ticker; token search by ticker||Data Service API|
|Asset balance distribution to addresses||Node REST API|
|Changes in token parameters (as a result of reissue/burning, sponsorship setup, etc.)||Blockchain Updates|
|Exchange data for a pair of tokens: the last price, market data for 24 hours, candles||Data Service API|
|List of transactions by address||Node REST API or gRPC Server|
|Transaction status (confirmed/unconfirmed)||Node REST API or gRPC Server|
|Result of the Invoke Script transaction||Node REST API or gRPC Server|
|Search for transactions by type and filters||Data Service API|
|Changes performed by each transaction||Blockchain Updates|
|Entries in account data storages|
|Current record values||Node REST API or gRPC Server|
|Changing entries||Blockchain Updates|
|Active leases||Node REST API orgRPC Server|
|Changing leases||Blockchain Updates|