# XRP Ledger (XRPL) API
> Live on-chain data from the XRP Ledger (XRPL), the decentralized blockchain behind XRP, served straight from public XRPL nodes by JSON-RPC — no key, nothing cached. The account endpoint returns any address's core state: its XRP balance, transaction sequence, the number of objects it owns, and its account flags and domain — the genesis-era account rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh holds tens of thousands of XRP. The balances endpoint returns the full wallet: the XRP balance plus every issued-currency trustline (token or stablecoin) the account holds, with the issuer, currency and amount, decoding hex currency codes to readable tickers. The transactions endpoint returns the account's most recent ledger activity — payments, DEX offers, trustline changes — each with its hash, type, amount, fee, result and time. The server endpoint returns the state of the ledger itself: the latest validated ledger index and age, the base and per-object XRP reserves, the current fee and the node software version — the network health a wallet or explorer needs. Everything is read live from the XRPL, nothing stored. This is the XRP Ledger on-chain layer for any wallet, explorer, exchange, payments or analytics app. Distinct from EVM and Solana on-chain APIs and from price feeds — this is XRPL account state, token balances, transactions and ledger health. 4 endpoints, no key on our side.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/xrpl-api/..."
```

## Pricing
- **Free** (Free) — 4,000 calls/Mo, 5 req/s
- **Starter** ($13/Mo) — 100,000 calls/Mo, 12 req/s
- **Pro** ($33/Mo) — 600,000 calls/Mo, 30 req/s
- **Mega** ($79/Mo) — 3,500,000 calls/Mo, 80 req/s

## Endpoints

### XRPL

#### `GET /v1/account` — An address's core state

**Parameters:**
- `address` (query, required, string) — XRPL classic address Example: `rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/xrpl-api/v1/account?address=rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"
```

**Response:**
```json
{
    "data": {
        "flags": 1703936,
        "domain": null,
        "source": "XRP Ledger",
        "address": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
        "sequence": 44196,
        "balance_xrp": 56760.625556,
        "owner_count": 1,
        "ledger_index": 104804932,
        "balance_drops": "56760625556"
    },
    "meta": {
        "timestamp": "2026-06-09T11:38:20.986Z",
        "request_id": "33f5cceb-2890-42df-8bef-00858b0c3609"
    },
    "status": "ok",
    "message": "Account retrieved successfully",
    "success": true
}
```

#### `GET /v1/balances` — XRP + token (trustline) balances

**Parameters:**
- `address` (query, required, string) — XRPL classic address Example: `rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/xrpl-api/v1/balances?address=rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"
```

**Response:**
```json
{
    "data": {
        "xrp": 56760.625556,
        "source": "XRP Ledger",
        "tokens": [
            {
                "limit": 0,
                "issuer": "rwdFmXzRpUC6DCcPedKSLaBZQyyCdnu72m",
                "balance": -0.1165139515638055,
                "currency": "USD",
                "currency_raw": "USD"
            },
            {
                "limit": 0,
                "issuer": "rD1jovjQeEpvaDwn9wKaYokkXXrqo4D23x",
                "balance": -1,
                "currency": "USD",
                "currency_raw": "USD"
            },
            {
                "limit": 0,
                "issuer": "rDv5FHeAdRSsUpSa1mLyrZKhSoRXzotCvY",
                "balance": -1,
                "currency": "USD",
                "currency_raw": "USD"
            },
            {
                "limit": 0,
                "issuer": "rUjbzuRoQagHet3XnygZkfaTFTFkMoD3YG",
                "balance": -99999899,
                "currency": "USD",
                "currency_raw": "USD"
            },
            {
                "limit": 0,
                "issuer": "rUjbzuRoQagHet3XnygZkfaTFTFkMoD3YG",
                "balance": -10000000,
                "currency": "CNY",
                "currency_raw": "CNY"
            },
            {
                "limit": 0,
                "issuer": "rfMwmKUJR53jbRratQVGmPJZLBZJiuKZ9a",
                "balance": -900000000,
                "currency": "USD",
                "currency_raw": "USD"
            },
            {

…(truncated, see openapi.json for full schema)
```

#### `GET /v1/server` — Live XRPL ledger state

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/xrpl-api/v1/server"
```

**Response:**
```json
{
    "data": {
        "peers": 14,
        "source": "XRP Ledger",
        "load_factor": 1,
        "server_state": "full",
        "build_version": "3.1.3",
        "uptime_seconds": 787102,
        "complete_ledgers": "32570-104804932",
        "validated_ledger": {
            "index": 104804932,
            "age_seconds": 2,
            "base_fee_xrp": 1.0e-5,
            "reserve_inc_xrp": 0.2,
            "reserve_base_xrp": 1
        }
    },
    "meta": {
        "timestamp": "2026-06-09T11:38:21.568Z",
        "request_id": "7103fd3d-ebfa-44a8-9cee-8bdfccd46607"
    },
    "status": "ok",
    "message": "Server info retrieved successfully",
    "success": true
}
```

#### `GET /v1/transactions` — Recent account transactions

**Parameters:**
- `address` (query, required, string) — XRPL classic address Example: `rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh`
- `limit` (query, optional, string) — Max transactions (1-100, default 20) Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/xrpl-api/v1/transactions?address=rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh&limit=10"
```

**Response:**
```json
{
    "data": {
        "count": 10,
        "source": "XRP Ledger",
        "address": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
        "transactions": [
            {
                "date": "2026-06-09T07:32:30.000Z",
                "hash": "C04DF039D3C12870EB2663A79A6DA331316379CB1E4606455251A5F905984663",
                "type": "Payment",
                "amount": {
                    "value": 1.0e-6,
                    "currency": "XRP"
                },
                "result": "tesSUCCESS",
                "account": "rUDxJ3UgwoQpqg4JmYKWaQ86pMqbcyRoqn",
                "fee_xrp": 1.0e-5,
                "validated": true,
                "destination": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
                "ledger_index": 104801101
            },
            {
                "date": "2026-06-02T03:40:51.000Z",
                "hash": "0337B1568468AA487E93F3A71C9D88FA2270E2A90BB816AAB9AB9DE4CFD448D1",
                "type": "Payment",
                "amount": {
                    "value": 1.0e-6,
                    "currency": "XRP"
                },
                "result": "tesSUCCESS",
                "account": "rhkPTtL7Rs3L4KMWubW4i1FPDm3yDy6E5V",
                "fee_xrp": 1.0e-5,
                "validated": true,
                "destination": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
                "ledger_index": 104641078
            },
            {
                "date": "2026-05-21T12:23:41.000Z",
                "hash": "D7241E7A3EC25C632A0438264
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Spec

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/xrpl-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "source": "Public XRP Ledger nodes via JSON-RPC (live)",
        "service": "xrpl-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/server": "Live XRPL ledger state: validated ledger, reserves, fee, node version.",
            "GET /v1/account": "An address's core state (address=rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh): XRP balance, sequence, flags.",
            "GET /v1/balances": "An address's XRP + issued-token (trustline) balances (address=).",
            "GET /v1/transactions": "An address's recent transactions (address=, limit)."
        },
        "description": "Live on-chain data from the XRP Ledger (XRPL) via public nodes: any address's core state (XRP balance, sequence, owner count, flags, domain); the full wallet of XRP plus every issued-currency trustline with issuer, currency and amount (hex currency codes decoded); the account's most recent transactions (payments, offers, trustline changes) with hash, type, amount, fee, result and time; and the live ledger state (latest validated ledger, close time, XRP reserves, fee, node version). Live, no key, nothing stored. Distinct from EVM and Solana on-chain APIs and from price feeds — this is XRPL account state, token balances, transactions and ledger health.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-09T11:38:22.108Z",
        "request_id": "afab7ddd-f527-43eb-a6b0-1b8dcb4e0f7f"
    },
    "status": "ok",
   
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/xrpl-api
OpenAPI spec: https://www.oanor.com/api/xrpl-api/openapi.json
