---
updatedAt: 2026-06-04T15:58:41.000Z
---

Fetch the complete documentation index at: https://docs.blockdaemon.com/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# Get a Financial Report for an Address Between a Time Period

Returns a financial report by a user-defined account address between a time period. Default timescale is within the last 30 days.


<Callout icon="💡" theme="default">
  ### **Compute Unit Value**: `100` (fixed)
</Callout>

***

> 🚧 Truncation Info
>
> For responses that have big numbers (such as in transfer amounts from blockchain transactions), truncation might be applied from Javascript’s native JSON parser.
>
> To avoid this behavior, we recommend using a library such as [`json-bigint`](https://github.com/sidorares/json-bigint) or [`lossless-json`](https://github.com/josdejong/lossless-json)

***

<HTMLBlock>{`
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
  body {
    font-family: Arial, sans-serif;
  }
  .filter-box {
  	width: 100%;
  }
  .table-container {
    border: 1px solid #ccc;
    margin-top: 15px;
  }
  .show {
    display: block;
  }
  .scrollable-table {
    max-height: 320px; /* Approx height for 5 rows */
    overflow-y: scroll; /* Always show scrollbar */
  }
  table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
  }
  th, td {
    border: 1px solid #ccc;
    padding: 10px;
    vertical-align: top;
    word-wrap: break-word;
  }
  #protocolTableSearchable th {
    text-align: left;
    position: sticky;
    top: 0;
    background-clip: padding-box;
    z-index: 1;
    background-color: #230688;
    color: white !important;
  }
  code {
    background-color: #eee;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: monospace;
    cursor: pointer;
    transition: background-color 0.2s ease;
    position: relative;
  }
  code:hover {
    background-color: #ddd;
  }
  [data-color-mode="dark"] code:hover {
    background-color: #637288;
  }
  /* Tooltip styles */
  .tooltip {
    position: absolute;
    background-color: #333;
    color: white;
    padding: 8px 12px;
    border-radius: 4px;
    font-size: 12px;
    z-index: 1000;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease;
    font-family: Arial, sans-serif;
  }
  .tooltip.show {
    opacity: 1;
  }
  .tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: #333 transparent transparent transparent;
  }
  /* Only two colors: white and light gray */
  [data-color-mode="light"] .protocol-group-odd td {
    background-color: #ffffff; /* white */
  }
  [data-color-mode="light"] .protocol-group-even td {
    background-color: #f5f5f5; /* light gray */
  }

  [data-color-mode="dark"] .protocol-group-odd td {
    background-color: #242e34; /* dark gray */
  }
  [data-color-mode="dark"] .protocol-group-even td {
    background-color: #4f5a66; /* lighter gray */
  }
</style>
</head>
<body>

<h3>Supported Protocols & Networks</h3>

<div class="table-container show">
  <input type="text" id="searchProtocolInput" class="filter-box" placeholder="Search protocol name..." onkeyup="filterTable()" />
  <div class="scrollable-table">
    <table id="protocolTableSearchable">
      <thead>
        <tr>
          <th>Protocol</th>
          <th>Network</th>
          <th>Path Parameter</th>
        </tr>
      </thead>
<tbody>
  <tr class="protocol-group-odd">
    <td rowspan="1">Algorand</td>
    <td>Mainnet</td>
    <td><code class="copyable-code" title="Click to copy">algorand/mainnet</code></td>
  </tr>
  <tr class="protocol-group-even">
    <td rowspan="2">Polkadot</td>
    <td>Mainnet</td>
    <td><code class="copyable-code" title="Click to copy">polkadot/mainnet</code></td>
  </tr>
  <tr class="protocol-group-even">
    <td>Westend</td>
    <td><code class="copyable-code" title="Click to copy">polkadot/westend</code></td>
  </tr>
  <tr class="protocol-group-odd">
    <td rowspan="2">Stellar</td>
    <td>Mainnet</td>
    <td><code class="copyable-code" title="Click to copy">stellar/mainnet</code></td>
  </tr>
  <tr class="protocol-group-odd">
    <td>Testnet</td>
    <td><code class="copyable-code" title="Click to copy">stellar/testnet</code></td>
  </tr>
  <tr class="protocol-group-even">
    <td rowspan="2">XRP</td>
    <td>Mainnet</td>
    <td><code class="copyable-code" title="Click to copy">xrp/mainnet</code></td>
  </tr>
  <tr class="protocol-group-even">
    <td>Testnet</td>
    <td><code class="copyable-code" title="Click to copy">xrp/testnet</code></td>
  </tr>
</tbody>
    </table>
  </div>
</div>
</body>
</html>
`}</HTMLBlock>

<br />

<br />

> **Note that the date filters`to` and `from` are not supported for Stellar and XRP.**

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "version": "3.0.0",
    "title": "Blockdaemon REST API",
    "description": "Blockdaemon REST API provides a RESTful and uniform way to access blockchain resources,\nwith a rich and reusable model across multiple protocols/cryptocurrencies.\n\n[Documentation](https://docs.blockdaemon.com/reference/rest-api-overview)\n\n### Currently supported protocols:\n\n* algorand\n  * mainnet\n* avalanche \n  * mainnet-c/testnet-c\n* bitcoin\n  * mainnet/testnet/testnet4\n* bitcoincash\n  * mainnet/testnet\n* dogecoin\n  * mainnet/testnet\n* ethereum\n  * mainnet/holesky/sepolia/hoodi\n* litecoin\n  * mainnet/testnet\n* near\n  * mainnet\n* optimism\n  * mainnet\n* polkadot\n  * mainnet/westend\n* polygon\n  * mainnet/amoy\n* solana\n  * mainnet/testnet\n* stellar\n  * mainnet/testnet\n* tezos\n  * mainnet\n* tron\n  * mainnet/nile\n* xrp\n  * mainnet\n\n### Pagination\nCertain resources contain a lot of data, more than what's practical\nto return for a single request.\nWith the help of pagination, the data is split across multiple responses.\nEach response returns a subset of the items requested, and a continuation token.\n\nTo get the next batch of items, copy the returned continuation token\nto the continuation query parameter and repeat the request with the new URL.\nIn case no continuation token is returned, there is no more data available.\n",
    "contact": {
      "name": "Blockdaemon",
      "email": "support@blockdaemon.com",
      "url": "https://blockdaemon.com"
    },
    "x-logo": {
      "url": "https://storage.googleapis.com/blockdaemon-app-static-images/marketing/PNG/dark-logo.png",
      "altText": "Blockdaemon logo"
    }
  },
  "x-readme": {
    "samples-languages": [
      "curl",
      "go",
      "javascript",
      "python",
      "node"
    ]
  },
  "servers": [
    {
      "url": "https://svc.blockdaemon.com/universal/{version}",
      "description": "Production server",
      "variables": {
        "version": {
          "enum": [
            "v1"
          ],
          "default": "v1"
        }
      }
    },
    {
      "url": "https://ubiquity.api.blockdaemon.com/{version}",
      "description": "[Legacy Auth] Production server",
      "variables": {
        "version": {
          "enum": [
            "v1"
          ],
          "default": "v1"
        }
      }
    }
  ],
  "tags": [
    {
      "name": "Balances & UTXO"
    }
  ],
  "security": [
    {
      "apiKeyAuthHeader": []
    },
    {
      "bearerAuth": []
    }
  ],
  "paths": {
    "/{protocol}/{network}/account/{address}/report": {
      "get": {
        "summary": "Get a Financial Report for an Address Between a Time Period",
        "operationId": "GetReportByAddress",
        "description": "Returns a financial report by a user-defined account address between a time period. Default timescale is within the last 30 days.\n",
        "tags": [
          "Balances & UTXO"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "protocol",
            "required": true,
            "description": "Protocol handle, one of: `algorand`, `polkadot`, `stellar` `tezos`, `xrp`.\n",
            "schema": {
              "type": "string",
              "default": "polkadot"
            },
            "examples": {
              "Polkadot": {
                "value": "polkadot"
              }
            }
          },
          {
            "$ref": "#/components/parameters/network"
          },
          {
            "name": "address",
            "in": "path",
            "required": true,
            "description": "The account address of the protocol.",
            "schema": {
              "type": "string",
              "default": "12yi4uHFbnSUryffXT7Xq92fbGC3iXvCs3vz9HjVgpb4sBvL"
            },
            "examples": {
              "DOT_address": {
                "value": "12yi4uHFbnSUryffXT7Xq92fbGC3iXvCs3vz9HjVgpb4sBvL",
                "description": "Polkadot address"
              }
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "The Unix Timestamp from where to start.",
            "schema": {
              "type": "integer"
            },
            "example": 961846434
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "The Unix Timestamp from where to end.",
            "schema": {
              "type": "integer"
            },
            "example": 1119612834
          },
          {
            "name": "page_token",
            "in": "query",
            "required": false,
            "description": "The token to retrieve more items in the next request. Use the `next_page_token` returned from the previous response for this parameter.",
            "schema": {
              "type": "string"
            },
            "example": "xyz"
          },
          {
            "name": "page_size",
            "in": "query",
            "required": false,
            "description": "The max number of items to return in a response.\nDefaults to 50k and is capped at 100k.\n",
            "schema": {
              "type": "integer"
            },
            "example": 1000
          }
        ],
        "responses": {
          "200": {
            "description": "Account Activity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/report"
                },
                "example": {
                  "fields": [
                    {
                      "protocol": "Algorand",
                      "address": "GXL2EQ6JV54MTMP2IXOTF5CJLS7GAWMRDZMOY7JZAPO72AQRDDYGD6OX3E",
                      "currency": "ALGO",
                      "event_id": "RSSPF4EIKXRILWH6I4LZGPZA32YHWIWYFPWZFOHZQOXP23JBX6IA",
                      "block": 8986308,
                      "timestamp": 1599745808,
                      "hash": "RSSPF4EIKXRILWH6I4LZGPZA32YHWIWYFPWZFOHZQOXP23JBX6IA",
                      "action": "pay",
                      "value": "1009113666",
                      "fee": "1000",
                      "sender_address": "SP745JJR4KPRQEXJZHVIEN736LYTL2T2DFMG3OIIFJBV66K73PHNMDCZVM",
                      "decimals": 6,
                      "meta": {
                        "type": "algorand_meta",
                        "sender_reward": "0",
                        "recipient_reward": "0",
                        "close": "",
                        "close_amount": "0",
                        "close_reward": "0"
                      }
                    }
                  ],
                  "items": 1,
                  "limit": 50000
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "413": {
            "description": "Too Many Transactions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "apiKeyAuthHeader": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "Unlock higher TPS - Create your own API key in the [Blockdaemon App](https://app.blockdaemon.com).\n",
        "x-default": "2go1YqUcuAr4WZ2-3WgSD3c7qpatZqQuNWhTVBldKZnTSUtw"
      },
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Opaque",
        "description": "[Legacy Auth] Unlock higher TPS - Create your own API key in the [Blockdaemon App](https://app.blockdaemon.com).\n",
        "x-default": "2go1YqUcuAr4WZ2-3WgSD3c7qpatZqQuNWhTVBldKZnTSUtw"
      }
    },
    "responses": {
      "TooManyRequests": {
        "description": "Rate limit exceeded",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "example": {
              "type": "too-many-requests",
              "title": "Too Many Requests",
              "status": 429,
              "detail": "Request rate limits have been exceeded. Try again after a few seconds."
            }
          }
        }
      },
      "BadRequest": {
        "description": "Bad request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "NotFound": {
        "description": "Not Found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "example": {
              "type": "not-found",
              "title": "Not Found",
              "status": 404
            }
          }
        }
      },
      "UnauthorizedError": {
        "description": "Invalid or expired token",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "example": {
              "type": "unauthorized",
              "title": "Invalid Token",
              "status": 401
            }
          }
        }
      },
      "ServerError": {
        "description": "An internal server error happened",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "example": {
              "type": "internal-server-error",
              "title": "Internal Server Error",
              "status": 500
            }
          }
        }
      },
      "ServiceUnavailable": {
        "description": "The resource you are trying to access is currently unavailable",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "example": {
              "type": "unavailable",
              "title": "Unavailable",
              "status": 503
            }
          }
        }
      }
    },
    "schemas": {
      "error": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The HTTP error type.",
            "example": "bad-request"
          },
          "code": {
            "type": "integer",
            "description": "The numeric error code.",
            "example": 16384
          },
          "title": {
            "type": "string",
            "description": "The short error description.",
            "example": "Invalid Address"
          },
          "status": {
            "type": "integer",
            "description": "The HTTP status of the error.",
            "example": 400
          },
          "detail": {
            "type": "string",
            "description": "Long error description",
            "example": "The requested address is invalid on this protocol."
          }
        }
      },
      "report": {
        "type": "object",
        "properties": {
          "fields": {
            "type": "array",
            "description": "The transaction items.",
            "items": {
              "$ref": "#/components/schemas/report_field"
            }
          },
          "items": {
            "type": "integer",
            "description": "The number of transactions in the report.",
            "example": 1
          },
          "limit": {
            "type": "integer",
            "description": "The limit number."
          },
          "page_size": {
            "type": "integer",
            "description": "The limit number provided in the request or the default.",
            "example": 100
          },
          "page_token": {
            "type": "string",
            "description": "The token to retrieve more items in the next request. Use the `next_page_token` returned from the previous response for this parameter.",
            "example": "xyz"
          }
        },
        "required": [
          "fields",
          "items"
        ]
      },
      "report_field": {
        "type": "object",
        "properties": {
          "protocol": {
            "type": "string",
            "description": "The protocol the address relates to.",
            "example": "Algorand"
          },
          "address": {
            "type": "string",
            "description": "The wallet/account the transaction occurred",
            "example": "GXL2EQ6JV54MTMP2IXOTF5CJLS7GAWMRDZMOY7JZAPO72AQRDDYGD6OX3E"
          },
          "currency": {
            "type": "string",
            "description": "The currency symbol.",
            "example": "ALGO"
          },
          "event_id": {
            "type": "string",
            "description": "The ID of the event within a transaction.",
            "example": "RNEYUT3MRYGT5ENSLIC7LGJCJMW6BXNS6SAW7A25DTYRW4TFJ5JA"
          },
          "block": {
            "type": "integer",
            "format": "int64",
            "description": "The block number the transaction occurred on.",
            "example": 8986217
          },
          "timestamp": {
            "type": "integer",
            "format": "int32",
            "description": "The unix timestamp when the transaction was added to a block.",
            "example": 1599745403
          },
          "hash": {
            "type": "string",
            "description": "The transaction ID.",
            "example": "RNEYUT3MRYGT5ENSLIC7LGJCJMW6BXNS6SAW7A25DTYRW4TFJ5JA"
          },
          "action": {
            "type": "string",
            "description": "The action type e.g. Transfer, Deposit, Staking Reward etc..",
            "example": "pay"
          },
          "value": {
            "type": "string",
            "description": "The amount of currency involved in the transaction (smallest unit).",
            "example": "1000000"
          },
          "fee": {
            "type": "string",
            "description": "How much was charged as a fee for processing the transaction.",
            "example": "1000"
          },
          "sender_address": {
            "type": "string",
            "description": "The address where the funds originated.",
            "example": "T3BYUTYZCWV7UVK7IFYPC2UKH5VNBGVP4PUKSUBF5F6GQ244Y4I2XUWCQM"
          },
          "decimals": {
            "type": "integer",
            "format": "int32",
            "description": "The number of decimals in one coin, used to convert smallest unit to 1 whole coin if needed.",
            "example": 6
          },
          "meta": {
            "$ref": "#/components/schemas/report_field_meta"
          }
        },
        "required": [
          "action",
          "address",
          "block",
          "currency",
          "decimals",
          "event_id",
          "fee",
          "hash",
          "protocol",
          "sender_address",
          "timestamp",
          "value"
        ]
      },
      "report_field_meta": {
        "description": "Additional metadata bespoke to specific protocols.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/algorand_meta"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "algorand_meta": "#/components/schemas/algorand_meta"
          }
        }
      },
      "algorand_meta": {
        "type": "object",
        "nullable": true,
        "properties": {
          "type": {
            "type": "string",
            "default": "algorand_meta",
            "description": "The type of protocol the metadata relates to."
          },
          "sender_reward": {
            "type": "string",
            "description": "The sender reward amount.",
            "example": "121176"
          },
          "recipient_reward": {
            "type": "string",
            "description": "The recipient reward amount.",
            "example": "0"
          },
          "close": {
            "type": "string",
            "description": "The closing account.",
            "example": "XIU7HGGAJ3QOTATPDSIIHPFVKMICXKHMOR2FJKHTVLII4FAOA3CYZQDLG4"
          },
          "close_amount": {
            "type": "string",
            "description": " The closing amount.",
            "example": "0"
          },
          "close_reward": {
            "type": "string",
            "description": "The closing reward.",
            "example": "0"
          }
        }
      }
    },
    "parameters": {
      "network": {
        "name": "network",
        "in": "path",
        "required": true,
        "description": "Which network to target. Available networks can be found in the list of supported protocols or with /{protocol}.",
        "schema": {
          "type": "string",
          "default": "mainnet"
        },
        "examples": {
          "Mainnet": {
            "value": "mainnet"
          },
          "Mainnet-C": {
            "value": "mainnet-c"
          },
          "Testnet": {
            "value": "testnet"
          },
          "Testnet4": {
            "value": "testnet4",
            "description": "Bitcoin testnet network"
          },
          "Testnet-C": {
            "value": "testnet-c"
          },
          "Holesky": {
            "value": "holesky",
            "description": "Ethereum testnet network"
          },
          "Hoodi": {
            "value": "hoodi",
            "description": "Ethereum testnet network"
          },
          "Sepolia": {
            "value": "sepolia",
            "description": "Ethereum testnet network"
          },
          "Westend": {
            "value": "westend",
            "description": "Polkadot testnet network"
          },
          "Amoy": {
            "value": "amoy",
            "description": "Polygon testnet network"
          }
        }
      }
    }
  }
}
```