> For the complete documentation index, see [llms.txt](https://docs.hydromancer.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hydromancer.xyz/readme/rest-api/outcomes/outcomevenuestats.md).

# outcomeVenueStats

Market counts, lifetime and 24-hour trading stats, and open interest per HIP-4 venue, plus validator-deployed markets.

Returns one entry per permissionless outcome venue: how many of its outcomes and questions are currently registered or already settled, plus trading stats across every outcome it deployed. Markets registered by validator quorum belong to no venue and are reported together as one entry named `"validator"`.

## POST Request

<table><thead><tr><th width="161">Field</th><th width="119">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>type</code></td><td>string</td><td>Must be <code>"outcomeVenueStats"</code></td></tr><tr><td><code>venue</code></td><td>string (optional)</td><td>Only this venue (2–4 ASCII letters, case-insensitive), or <code>"validator"</code> for validator-deployed markets; absent returns all</td></tr><tr><td><code>limit</code></td><td>integer (optional)</td><td>Max venues returned, in <code>venueName</code> order. Default 20, maximum 100</td></tr></tbody></table>

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://api.hydromancer.xyz/info \
  -H "Authorization: Bearer $HYDROMANCER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type": "outcomeVenueStats"}'

# Only validator-deployed markets
curl -X POST https://api.hydromancer.xyz/info \
  -H "Authorization: Bearer $HYDROMANCER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type": "outcomeVenueStats", "venue": "validator"}'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import os

response = requests.post(
    'https://api.hydromancer.xyz/info',
    json={'type': 'outcomeVenueStats'},
    headers={'Authorization': f"Bearer {os.environ['HYDROMANCER_API_KEY']}"},
)
print(response.json())
```

{% endtab %}
{% endtabs %}

## Response

Responses are cached for up to 30 seconds. Trading stats cover the venue's whole history, across both open and settled outcomes. Each chain match is counted once (quantity metrics take the Buy side; every match emits one Buy and one Sell). Settlement and the four HIP-4 conversion ops (`Split Outcome`, `Negate Outcome`, `Merge Outcome`, `Merge Question`) are excluded from all metrics.

<table><thead><tr><th width="240">Field</th><th width="130">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>venues</code></td><td>array</td><td>Venues with at least one market, ordered by <code>venueName</code></td></tr><tr><td><code>venues[].venueName</code></td><td>string</td><td>Venue name claimed via <code>activateOutcomeDeployer</code>, or <code>"validator"</code> for markets registered by validator quorum</td></tr><tr><td><code>venues[].registeredOutcomes</code></td><td>integer</td><td>Outcomes registered and not yet settled, question children included</td></tr><tr><td><code>venues[].settledOutcomes</code></td><td>integer</td><td>Outcomes settled so far, question children included</td></tr><tr><td><code>venues[].registeredQuestions</code></td><td>integer</td><td>Questions registered and not yet settled</td></tr><tr><td><code>venues[].settledQuestions</code></td><td>integer</td><td>Questions settled so far</td></tr><tr><td><code>venues[].trades</code></td><td>integer</td><td>Orderbook matches across the venue's outcomes</td></tr><tr><td><code>venues[].uniqueTraders</code></td><td>integer</td><td>Distinct users that traded any of the venue's outcomes</td></tr><tr><td><code>venues[].volumeNotional</code></td><td>string</td><td>Sum of <code>px * sz</code> across all matches</td></tr><tr><td><code>venues[].volumeContracts</code></td><td>string</td><td>Sum of <code>sz</code> across all matches</td></tr><tr><td><code>venues[].firstTrade</code></td><td>integer</td><td>Earliest orderbook fill, ms since epoch; <code>0</code> without trades</td></tr><tr><td><code>venues[].lastTrade</code></td><td>integer</td><td>Latest orderbook fill, ms since epoch; <code>0</code> without trades</td></tr><tr><td><code>venues[].volumeNotional24h</code></td><td>string</td><td>USDC traded over the last 24 hours across the venue's outcomes, including ones settled in that window. Each trade counts once at the price it traded at</td></tr><tr><td><code>venues[].openInterestNotional</code></td><td>string?</td><td>USDC value of the outstanding shares across the venue's outcomes, each side valued at the mid price, or at the last trade price while the book is empty. Sides without a price count as zero; <code>null</code> only when none of the sides holding shares has a price</td></tr></tbody></table>

```json
{
  "venues": [
    {
      "venueName": "out",
      "registeredOutcomes": 99,
      "settledOutcomes": 1245,
      "registeredQuestions": 19,
      "settledQuestions": 51,
      "trades": 619066,
      "uniqueTraders": 2763,
      "volumeNotional": "23808295.08",
      "volumeContracts": "49796346.00",
      "firstTrade": 1787995698097,
      "lastTrade": 1789637877835,
      "volumeNotional24h": "48213.57",
      "openInterestNotional": "1204388.12"
    }
  ]
}
```
