---
title: "Compare one underlying asset across venues"
method: GET
path: "/api/public/v1/assets/{canonical}/cross-market"
tags: ["Cross-market intelligence"]
---

# Compare one underlying asset across venues

`GET /api/public/v1/assets/{canonical}/cross-market`

## Request

- Base URL: `https://api.coinversa.ai`
- URL: `https://api.coinversa.ai/api/public/v1/assets/{canonical}/cross-market`
- Auth: API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/coinversa/apis/coinversa-api/docs/api/public/v1/assets/:canonical/cross-market/get.ts> (a function with typed inputs; its response is checked against the schema)

Resolve an underlying asset and compare its venue instruments. For example GOLD includes recognized aliases such as PAXG; canonical identifiers are different from venue symbols such as xyz:GOLD. Position-count bias and notional exposure measure different things. Missing optional venue fields mean unavailable, not zero. Aggregated wallet counts sum per-venue counts and do not deduplicate wallets across venues.

## Path parameters

- `canonical` string, required: Underlying asset identifier or recognized alias, e.g. GOLD or PAXG; not a venue instrument identifier.

## Response `200`

OK

- GetAssetCrossMarketBody
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `aggregate` CrossMarketAggregate, required
    - `biasRange` number, double, required: Maximum minus minimum available venue position-count bias.
    - `longNotional` number, double, required: Sum of long position notional, USD.
    - `longPositions` integer, required: Sum of long positions over available venue data.
    - `netBias` number, double, required: Position-count bias: (longPositions-shortPositions)/(longPositions+shortPositions); zero when denominator is zero.
    - `shortNotional` number, double, required: Sum of short position notional, USD.
    - `shortPositions` integer, required: Sum of short positions over available venue data.
    - `totalOpenInterest` number, double, required: Sum of available venue open interest, USD.
    - `totalPositions` integer, required: Sum of directory position counts across venues.
    - `totalUniqueWallets` integer, required: Sum of per-venue unique wallet counts; the same wallet can be counted on multiple venues.
    - `totalUnrealizedPnl` number, double, required: Sum of available unrealized position PnL, USD.
    - `totalVolume24h` number, double, required: Sum of available 24-hour venue traded notional, USD.
  - `asset` CrossMarketAssetSummary, required
    - `canonical` string, required: Resolved underlying asset identifier.
    - `crossMarket` boolean, required: Whether the asset is listed on more than one venue.
    - `synonyms` string[], nullable, required: Recognized economically linked ticker aliases, not independent assets.
    - `venueCount` integer, required: Number of venue instruments in the directory.
  - `query` string, required: Trimmed input identifier.
  - `resolvedCanonical` string, required: Resolved underlying asset identifier after alias mapping.
  - `venues` CrossMarketVenue[], nullable, required: Venue instruments; omitted optional metrics mean unavailable, not zero.
    - `avgLongLeverage` number, double: Average leverage of long positions, multiple.
    - `avgShortLeverage` number, double: Average leverage of short positions, multiple.
    - `collateral` string, required: Venue collateral token.
    - `dex` string, required: Venue identifier, e.g. hl or xyz.
    - `fundingRate` number, double: Available funding rate as supplied by the venue, not annualized.
    - `isSynonym` boolean, required: Whether this ticker is recognized as an alias of the canonical underlying asset.
    - `longNotional` number, double: Long position notional, USD; omitted when unavailable.
    - `longPositions` integer: Number of long positions; omitted when unavailable.
    - `markPx` number, double: Available mark price, USD per unit.
    - `netBias` number, double: Position-count bias from -1 to +1; omitted when unavailable.
    - `openInterest` number, double: Available open interest, USD; omitted when unavailable.
    - `positions` integer: Available position count; omitted when unavailable.
    - `shortNotional` number, double: Short position notional, USD; omitted when unavailable.
    - `shortPositions` integer: Number of short positions; omitted when unavailable.
    - `symbol` string, required: Exact market symbol, e.g. xyz:GOLD.
    - `ticker` string, required: Venue ticker without dex prefix.
    - `totalUnrealizedPnl` number, double: Sum of unrealized position PnL, USD.
    - `uniqueWallets` integer: Unique wallets in this venue instrument; not deduplicated against other venues.
    - `volume24h` number, double: Available traded notional over 24 hours, USD.

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `422`: Unprocessable Entity
- `429`: Too Many Requests
- `500`: Internal Server Error
- `504`: Gateway Timeout

## Changes

- **2026-09-23** `f2eba29805e5`: 9 info
  - api tag `Cross-market intelligence` added
  - added the non-success response with the status `403`
  - removed the non-success response with the status `401`
  - added the optional property `reason` to the response with the `400` status
  - …5 more

[Operation history](https://skmtc.dev/coinversa/apis/coinversa-api/changes/api/public/v1/assets/:canonical/cross-market/get.md)

---

[API](https://skmtc.dev/coinversa/apis/coinversa-api.md) - [All operations](https://skmtc.dev/coinversa/apis/coinversa-api/llms.txt) - [OpenAPI document](https://skmtc.dev/coinversa/apis/coinversa-api/revisions/3454317a5830?raw)
