There is a public API server that allows developers to access the Avalanche network without having to run a node thesmelves. The public API server is actually several AvalancheGo nodes behind a load balancer to ensure high availability and high request throughput.
The public API server is at
https://api.avax.network/ for Avalanche Mainnet and
https://api.avax-test.network/ for Avalanche Testnet. To access a particular API, just append the relevant API endpoint, as documented here. For example, the URL to send X-Chain API calls to is
The public API server supports all the API endpoints that make sense to be available on a public-facing service, including APIs for the X-Chain, P-Chain and C-Chain. For a full list of available APIs see here.
Requests to the public API server API are distributed by a load balancer to an individual node. As a result, consecutive requests may go to different nodes. That can cause issues for some use cases. For example, one node may think a given transaction is accepted, while for another node the transaction is still processing. To work around this, you can use 'sticky sessions', as documented here. This allows consecutive API calls to be routed to the same node.
If you're using AvalancheJS to access the public API, simply set the following in your code:
Usage of public API nodes is free and available to everyone without any authentication or authorization. Rate limiting is present, but many of the API calls are cached, and the rate limits are quite high. If your application is running up against the limits, please contact us.
If you have questions, problems or suggestions, come talk to us.