---
title: "Merkle tree metadata"
method: GET
path: "/v1/trees/{tree_index}"
tags: ["trees"]
---

# Merkle tree metadata

`GET /v1/trees/{tree_index}`

## Request

- Base URL: `https://utxo-indexer.api.umbraprivacy.com`
- URL: `https://utxo-indexer.api.umbraprivacy.com/v1/trees/{tree_index}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/umbra-defi/apis/umbra-indexer-read-service/docs/v1/trees/:tree_index/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns metadata for a specific Indexed Merkle Tree:
- `num_leaves` -- current leaf count.
- `root` -- current Poseidon root hash (raw bytes).
- `utxo_count` -- UTXO records stored for this tree.

**Always Protobuf** -- responds with `application/x-protobuf` regardless
of the `Accept` header.

**Tree capacity**: `MAX_LEAVES_PER_TREE = 1,048,576` (depth-20 tree).
Once full, the write service starts a new tree at the next sequential index.

## Path parameters

- `tree_index` integer, required

## Response `200`

Tree metadata retrieved successfully.

## Other responses

- `400`: Invalid `tree_index` parameter.
- `404`: No tree with the specified index exists.
- `429`: Rate limit exceeded.
- `500`: Storage backend error.

---

[API](https://skmtc.dev/umbra-defi/apis/umbra-indexer-read-service.md) - [All operations](https://skmtc.dev/umbra-defi/apis/umbra-indexer-read-service/llms.txt) - [OpenAPI document](https://skmtc.dev/umbra-defi/apis/umbra-indexer-read-service/revisions/ea7a4ee03e38?raw)
