XRP — server, Methods, mpt (1/3)
API reference for XRP. All methods ->
server_info (rippled)
Retrieves status of the server in human-readable format.
The server_info command asks the server for a human-readable version of various information about the rippled server being queried.
Parameters
-
id(integer; required): a request ID (example: 1). -
jsonrpc(string; required): a JSON-RPC spec used (example: 2.0). -
method(string; required): a method used for the request. -
params(array; required):counters(boolean; optional): Iftrue, return metrics about the job queue, ledger store, and API method activity. The default isfalse.
Returns
The response follows the standard format, with a successful result containing an info object as its only field.
The info object may have some arrangement of the following fields:
amendment_blocked(boolean; may be omitted): Iftrue, this server is amendment blocked. If the server is not amendment blocked, the response omits this field.build_version(string): The version number of the runningrippledserver.closed_ledger(object; may be omitted): Information on the most recently closed ledger that has not been validated by consensus, as a Server Ledger Object. If the most recently validated ledger is available, the response omits this field and includesvalidated_ledgerinstead.complete_ledgers(string): Range expression indicating the sequence numbers of the ledger versions the localrippledhas in its database. This may be a disjoint sequence such as24900901-24900984,24901116-24901158. If the server does not have any complete ledgers (for example, it recently started syncing with the network), this is the stringempty.git(object; admin only): The Git details of yourrippledbuild.git.branch(string; admin only): The Git branch used to build your version ofrippled.git.hash(string; admin only): The Git hash of the commit used to build your version ofrippled.
hostid(string): On an admin request, returns the hostname of the server running therippledinstance; otherwise, returns a single RFC-1751 word based on the node public key.io_latency_ms(number): Amount of time spent waiting for I/O operations, in milliseconds. If this number is not very, very low, then therippledserver is probably having serious load issues.jq_trans_overflow(string — number): The number of times (since starting up) that this server has had over 250 transactions waiting to be processed at once. A large number here may mean that your server is unable to handle the transaction load of the XRP Ledger network. For detailed recommendations of future-proof server specifications, see Capacity Planning.last_close(object): Information about the last time the server closed a ledger, including the amount of time it took to reach a consensus and the number of trusted validators participating.last_close.converge_time_s(number): The amount of time it took to reach a consensus on the most recently validated ledger version, in seconds.last_close.proposers(number): How many trusted validators the server considered (including itself, if configured as a validator) in the consensus process for the most recently validated ledger version.
load(object; admin only): Detailed information about the current load state of the server.load.job_types(array; admin only): Information about the rate of different types of jobs the server is doing and how much time it spends on each.load.threads(number; admin only): The number of threads in the server's main job pool.
load_factor(number): The multiplier to the transaction cost the server is currently enforcing. For example, at1000load factor and a reference transaction cost of 10 drops of XRP, the load-scaled transaction cost is 10,000 drops (0.01 XRP). The load factor is determined by the highest of the individual server's load factor, the cluster's load factor, the open ledger cost, and the overall network's load factor.load_factor_local(number; may be omitted): The current multiplier to the transaction cost based on load to this server.load_factor_net(number; may be omitted): The current multiplier to the transaction cost being used by the rest of the network.load_factor_cluster(number; may be omitted): The current multiplier to the transaction cost based on load to servers in this cluster.load_factor_fee_escalation(number; may be omitted): The current multiplier to the transaction cost that a transaction must pay to get into the open ledger.load_factor_fee_queue(number; may be omitted): The current multiplier to the transaction cost required to get into the queue, if the queue is full.load_factor_server(number; may be omitted): The current multiplier based on server, cluster, and network load (not including open ledger cost).network_ledger(string; may be omitted): When starting the server with the--netparameter, this field contains the stringwaitingwhile the server is syncing to the network.peers(number): How many otherrippledservers this one is currently connected to.ports(array): A list of ports where the server is listening for API commands. Each entry is a Port Descriptor object.pubkey_node(string): Public key used to verify this server for peer-to-peer communications. This node key pair is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of keys.) You can set a persistent value in the config file using the[node_seed]config option, which is useful for clustering.pubkey_validator(string; admin only): Public key used by this node to sign ledger validations. This validation key pair is derived from the[validator_token]or[validation_seed]config field.server_state(string): A string indicating to what extent the server is participating in the network. See Possible Server States for more details.server_state_duration_us(number): The number of consecutive microseconds the server has been in the current state.state_accounting(object): A map of various server states with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network. The contents of this field are formatted as State Accounting Objects.uptime(number): Number of consecutive seconds that the server has been operational.validated_ledger(object; may be omitted): Information about the most recent fully-validated ledger, as a Server Ledger Object. If not available, omitted andclosed_ledgeris included instead.validation_quorum(number): Minimum number of trusted validations required to validate a ledger version.validator_list_expires(string; admin only): Either the human-readable time, in UTC, when the current validator list expires, or the stringunknownif the server has yet to load a published validator list, or the stringneverif the server uses a static validator list.counters(object): Performance metrics regarding RPC calls, JobQueue, and nodestore details (node_writes,node_reads_total,node_reads_hit, etc.).current_activity(object): Lists items currently being run in the job queue and contains two arrays forjobsandmethods.
Port Descriptor Object
Each member of the ports array is an object with the following fields:
port(string — number): A port number where the server is listening.protocol(array of string): A list of protocols being served on this port. Valid protocols includehttporhttpsfor JSON-RPC,ws,ws2,wss,wss2for WebSocket,grpcfor gRPC, andpeerfor the XRP Ledger Peer Protocol.
State Accounting Object
Each field in the state_accounting object has a key that refers to a specific server state, and a value that is an object with the following fields:
duration_us(string — number): The number of microseconds the server has spent in this state. (This is updated whenever the server transitions into another state.)transitions(string — number): The number of times the server has changed into this state.
Server Ledger Object
The response provides either a validated_ledger field or a closed_ledger field. Either field contains an object with the following fields:
age(number): The time since the ledger was closed, in seconds.base_fee_xrp(number): Base fee, in XRP (not drops). This may be represented in scientific notation such as1e-05for0.00001.hash(string — hash): Unique hash for the ledger, as hexadecimal.reserve_base_xrp(number): Minimum amount of XRP (not drops) necessary for every account to keep in reserve.reserve_inc_xrp(number): Amount of XRP (not drops) added to the account reserve for each object an account owns in the ledger.seq(number): The ledger index of the latest validated ledger.
Request example
curl 'https://rpc.ankr.com/xrp_mainnet/YOUR_ANKR_API_KEY' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "server_info",
"params": [{"counters" : false}]
}'
Response example
{
"result": {
"info": {
"build_version": "2.6.2",
"complete_ledgers": "100146025-100650763",
"hostid": "SAD",
"initial_sync_duration_us": "292599227",
"io_latency_ms": 1,
"jq_trans_overflow": "0",
"last_close": {
"converge_time_s": 3,
"proposers": 35
},
"load_factor": 1,
"peer_disconnects": "18440",
"peer_disconnects_resources": "3",
"peers": 49,
"ports": [
{
"port": "51235",
"protocol": [
"peer"
]
},
{
"port": "51234",
"protocol": [
"http"
]
},
{
"port": "51233",
"protocol": [
"ws"
]
},
{
"port": "50051",
"protocol": [
"grpc"
]
}
],
"pubkey_node": "n94B86FddoyYsndK6N8gZwcD5xoMonptkHxmWnNqc22naS5V1pF8",
"server_state": "full",
"server_state_duration_us": "99692864611",
"state_accounting": {
"connected": {
"duration_us": "283465932",
"transitions": "2"
},
"disconnected": {
"duration_us": "1040136",
"transitions": "2"
},
"full": {
"duration_us": "99692864611",
"transitions": "1"
},
"syncing": {
"duration_us": "8093158",
"transitions": "1"
},
"tracking": {
"duration_us": "0",
"transitions": "1"
}
},
"time": "2025-Dec-04 15:01:28.199321 UTC",
"uptime": 99985,
"validated_ledger": {
"age": 4,
"base_fee_xrp": 1e-05,
"hash": "DC9E71BB38F18D5202594FA800230B0B080199704D7CA02BD2524ED49170DA2F",
"reserve_base_xrp": 1,
"reserve_inc_xrp": 0.2,
"seq": 100650763
},
"validation_quorum": 28
},
"status": "success"
}
}
server_state
Retrieves status of the server in machine-readable format.
The server_state command asks the server for various machine-readable information about the rippled server's current state. The response is almost the same as the server_info rippled method, but uses units that are easier to process instead of easier to read. (For example, XRP values are given in integer drops instead of scientific notation or decimal values, and time is given in milliseconds instead of seconds.)
The Clio server does not support server_state directly, but you can ask for the server_state of the rippled server that Clio is connected to. Specify "ledger_index": "current" (WebSocket) or "params": [{"ledger_index": "current"}] (JSON-RPC).
Parameters
id(integer; required): a request ID (example: 1).jsonrpc(string; required): a JSON-RPC spec used (example: 2.0).method(string; required): a method used for the request.params(array; required): none.
Returns
The response follows the standard format, with a successful result containing a state object as its only field.
The state object may have some arrangement of the following fields:
amendment_blocked(boolean): (May be omitted) Iftrue, this server is amendment blocked. If the server is not amendment blocked, the response omits this field.build_version(string): The version number of the runningrippledversion.complete_ledgers(string): Range expression indicating the sequence numbers of the ledger versions the localrippledhas in its database. It is possible to be a disjoint sequence, e.g. "2500-5000,32570-7695432". If the server does not have any complete ledgers (for example, it recently started syncing with the network), this is the stringempty.closed_ledger(object): (May be omitted) Information on the most recently closed ledger that has not been validated by consensus, as a Server Ledger Object. If the most recently validated ledger is available, the response omits this field and includesvalidated_ledgerinstead.io_latency_ms(number): Amount of time spent waiting for I/O operations, in milliseconds. If this number is not very, very low, then therippledserver is probably having serious load issues.jq_trans_overflow(string — number): The number of times this server has had over 250 transactions waiting to be processed at once. A large number here may mean that your server is unable to handle the transaction load of the XRP Ledger network. For detailed recommendations of future-proof server specifications, see Capacity Planning.last_close(object): Information about the last time the server closed a ledger, including the amount of time it took to reach a consensus and the number of trusted validators participating.last_close.converge_time(number): The amount of time it took to reach a consensus on the most recently validated ledger version, in milliseconds.last_close.proposers(number): How many trusted validators the server considered (including itself, if configured as a validator) in the consensus process for the most recently validated ledger version.
load(object): (Admin only) Detailed information about the current load state of the server.load.job_types(array): (Admin only) Information about the rate of different types of jobs the server is doing and how much time it spends on each.load.threads(number): (Admin only) The number of threads in the server's main job pool.
load_base(number): The baseline amount of server load used in transaction cost calculations. If theload_factoris equal to theload_base, then only the base transaction cost is enforced. If theload_factoris higher than theload_base, then transaction costs are multiplied by the ratio between them. For example, if theload_factoris double theload_base, then transaction costs are doubled.load_factor(number): The load factor the server is currently enforcing. The ratio between this value and theload_basedetermines the multiplier for transaction costs. The load factor is determined by the highest of the individual server's load factor, the cluster's load factor, the open ledger cost, and the overall network's load factor.load_factor_fee_escalation(number): (May be omitted) The current multiplier to the transaction cost to get into the open ledger, in fee levels.load_factor_fee_queue(number): (May be omitted) The current multiplier to the transaction cost to get into the queue, if the queue is full, in fee levels.load_factor_fee_reference(number): (May be omitted) The transaction cost with no load scaling, in fee levels.load_factor_server(number): (May be omitted) The load factor the server is enforcing, based on load to the server, cluster, and network, but not factoring in the open ledger cost.network_ledger(string): (May be omitted) When starting the server with the--netparameter, this field contains the stringwaitingwhile the server is syncing to the network. The field is omitted otherwise.peers(number): How many otherrippledservers this one is currently connected to.ports(array): A list of ports where the server is listening for API commands. Each entry in the array is a Port Descriptor object.pubkey_node(string): Public key used to verify this server for peer-to-peer communications. This node key pair is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of keys.) You can set a persistent value in the config file using the[node_seed]config option, which is useful for clustering.pubkey_validator(string): (Admin only) Public key used by this node to sign ledger validations. This validation key pair is derived from the[validator_token]or[validation_seed]config field.server_state(string): A string indicating to what extent the server is participating in the network. See Possible Server States for more details.server_state_duration_us(number): The number of consecutive microseconds the server has been in the current state.state_accounting(object): A map of various server states with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network. The contents of this field are formatted as State Accounting Objects.time(string): The current time in UTC, according to the server's clock.uptime(number): Number of consecutive seconds that the server has been operational.validated_ledger(object): (May be omitted) Information about the most recent fully-validated ledger, as a Server Ledger Object. If the most recent validated ledger is not available, the response omits this field and includesclosed_ledgerinstead.validation_quorum(number): Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations.validator_list_expires(number): (Admin only) When the current validator list expires, in seconds since the Ripple Epoch, or 0 if the server has yet to load a published validator list.
Port Descriptor Object
Each member of the ports array is an object with the following fields:
port(string — number): A port number where the server is listening.protocol(array of string): A list of protocols being served on this port. Valid protocols includehttporhttpsfor JSON-RPC,ws,ws2,wss,wss2for WebSocket,grpcfor gRPC, andpeerfor the XRP Ledger Peer Protocol.
State Accounting Object
Each field in the state_accounting object has a key that refers to a specific server state, and a value that is an object with the following fields:
duration_us(string — number): The number of microseconds the server has spent in this state. (This is updated whenever the server transitions into another state.)transitions(string — number): The number of times the server has changed into this state.
Server Ledger Object
The response provides either a validated_ledger field or a closed_ledger field. Either field contains an object with the following fields:
base_fee(number): The base fee, in drops of XRP, for propagating a transaction to the network, as of this ledger version.close_time(number): The official close time of this ledger version, in seconds since the Ripple Epoch. This value is rounded; see Ledger Close Times for details.hash(string — hash): The unique hash of this ledger version, as hexadecimal.reserve_base(number): The minimum account reserve, as of the most recent validated ledger version.reserve_inc(number): The owner reserve for each item an account owns, as of the most recent validated ledger version.seq(number): The ledger index of this ledger version.
Request example
curl 'https://rpc.ankr.com/xrp_mainnet/YOUR_ANKR_API_KEY' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "server_state",
"params": []
}'
Response example
{
"result": {
"state": {
"build_version": "2.6.2",
"complete_ledgers": "100145467-100651296",
"initial_sync_duration_us": "397921122",
"io_latency_ms": 1,
"jq_trans_overflow": "0",
"last_close": {
"converge_time": 3001,
"proposers": 35
},
"load_base": 256,
"load_factor": 256,
"load_factor_fee_escalation": 256,
"load_factor_fee_queue": 256,
"load_factor_fee_reference": 256,
"load_factor_server": 256,
"peer_disconnects": "15089",
"peer_disconnects_resources": "7",
"peers": 24,
"ports": [
{
"port": "51235",
"protocol": [
"peer"
]
},
{
"port": "51234",
"protocol": [
"http"
]
},
{
"port": "51233",
"protocol": [
"ws"
]
},
{
"port": "50051",
"protocol": [
"grpc"
]
}
],
"pubkey_node": "n94B86FddoyYsndK6N8gZwcD5xoMonptkHxmWnNqc22naS5V1pF8",
"server_state": "full",
"server_state_duration_us": "101916702241",
"state_accounting": {
"connected": {
"duration_us": "391641811",
"transitions": "2"
},
"disconnected": {
"duration_us": "2071962",
"transitions": "2"
},
"full": {
"duration_us": "101916702241",
"transitions": "1"
},
"syncing": {
"duration_us": "4207345",
"transitions": "1"
},
"tracking": {
"duration_us": "1",
"transitions": "1"
}
},
"time": "2025-Dec-04 15:35:55.844094 UTC",
"uptime": 102314,
"validated_ledger": {
"base_fee": 10,
"close_time": 818177751,
"hash": "883E90590C94615CA601D2B9C577FE9AD382ADD5065550EA8021B8088AFD4581",
"reserve_base": 1000000,
"reserve_inc": 200000,
"seq": 100651296
},
"validation_quorum": 28
},
"status": "success"
}
}