# Get the full omnibus structure hierarchy (header + tenants + embedded deposit wallets) as one consistent, paginated snapshot

Serves bulk/enumeration consumers (e.g. Portfolio Data Export) that would otherwise compose GET .../omnibus, GET .../tenants, and GET .../deposit-wallets and join the latter two themselves. Totals are always populated (no cursor/Slice mode) and results are sorted by (createdAt, id) for stable pagination across concurrent writes. This endpoint never returns balances; balances remain sourced from the Accounting Service. omnibus.balances is never fetched by this endpoint and appears as an empty list; consumers must not interpret it as host tenant balances.

Endpoint: GET /v1/domains/{domainId}/omnibus/{omnibusId}/hierarchy

## Path parameters:

  - `domainId` (string, required)

  - `omnibusId` (string, required)

## Query parameters:

  - `page` (integer)

  - `size` (integer)
    Page size. Absent means the server's configured default applies (currently 20; runtime-configurable, not a fixed contract value).

  - `status` (string)
    Filter tenants by status. Absent means no status filtering — export consumers must always fetch unfiltered.
    Enum: "LOCKED", "UNLOCKED"

  - `createdBefore` (string)
    Only include tenants created at or before this timestamp (inclusive). Enables as-of enumeration for backdated reports; tenants are never deleted, so this filter is exact.

  - `tenantIds` (array)
    Restricts results to these tenant IDs (additive filter, combined with other filters using AND semantics). An empty list is treated as absent.

## Response 200 fields (application/json):

  - `omnibus` (object, required)

  - `omnibus.id` (string, required)
    Unique identifier of the omnibus structure

  - `omnibus.domainId` (string, required)
    Identifier of the domain this omnibus structure belongs to

  - `omnibus.custodyAccountId` (string, required)
    Identifier of the custody account backing this omnibus structure

  - `omnibus.alias` (string, required)
    Alias of the omnibus structure

  - `omnibus.status` (string, required)
    Enum: "CREATING", "PENDING_SPONSORSHIP", "ACTIVE", "FAILED"

  - `omnibus.lockStatus` (string, required)
    Enum: "UNLOCKED", "LOCKED"

  - `omnibus.ignoredAccountIds` (array, required)
    List of custody account IDs to ignore during event processing

  - `omnibus.createdAt` (string, required)
    Timestamp when the omnibus structure was created

  - `omnibus.updatedAt` (string, required)
    Timestamp when the omnibus structure was last updated

  - `omnibus.sponsoringGasStationId` (object)

  - `omnibus.sponsoringGasStationId.present` (boolean)

  - `omnibus.balances` (array)
    Balances of the host tenant per ticker/ledger combination

  - `omnibus.balances.tickerId` (string, required)
    Ticker identifier

  - `omnibus.balances.ledgerId` (string, required)
    Ledger identifier

  - `omnibus.balances.reserved` (string, required)
    Reserved amount

  - `omnibus.balances.quarantined` (string, required)
    Quarantined amount

  - `omnibus.balances.availableBalance` (string)
    Available balance from accounting service; absent if the accounting service is unavailable

  - `hostTenantId` (object)

  - `content` (array, required)
    One element per tenant, including the Host tenant

  - `content.id` (string, required)
    Unique identifier of the tenant

  - `content.alias` (string, required)
    Alias of the tenant

  - `content.isHost` (boolean, required)
    Whether this tenant is the host tenant of the omnibus structure

  - `content.status` (string, required)
    Enum: same as `status` (2 values)

  - `content.createdAt` (string, required)
    Timestamp when the tenant was created

  - `content.updatedAt` (string, required)
    Timestamp when the tenant was last updated

  - `content.depositWallet` (object)

  - `content.depositWallet.present` (boolean)

  - `page` (object, required)

  - `page.number` (integer, required)
    Current page number (0-indexed)

  - `page.size` (integer, required)
    Number of elements per page

  - `page.totalElements` (integer, required)
    Total number of elements across all pages

  - `page.totalPages` (integer, required)
    Total number of pages

  - `page.first` (boolean, required)
    Whether this is the first page

  - `page.last` (boolean, required)
    Whether this is the last page


