# Live Game Data Feed for OBS & vMix

### **Getting the Feed URL**

For every field at your tournament, there's a live data feed you can use in real-time overlays for OBS, vMix, or other broadcasting tools. Feeds are available in **CSV** or **JSON** formats — use whatever works best for your workflow.

**Examples:**

* CSV: `https://api.ultie.org/export/game-on-the-field/spring2025/1/csv`
* JSON: `https://api.ultie.org/export/game-on-the-field/spring2025/1/json`

**URL Structure:**

{% tabs %}
{% tab title="Link" %}
<https://api.ultie.org/export/game-on-the-field/{tournament_URL}/{field_number}/{format}>
{% endtab %}
{% endtabs %}

* `{tournament_URL}` — Tournament URL ID like `spring2025`, `windmill2025`, etc.
* `{field_number}` — the field number: `1`, `2`, `3`, etc.
* `{format}` — either `csv` or `json`

### **Understanding the Data Fields**

Each feed provides a snapshot of the current game state. Here’s what the fields mean:

<table><thead><tr><th width="210">Field</th><th>Description</th><th data-hidden></th></tr></thead><tbody><tr><td>status</td><td>Game status: <code>NOT_STARTED</code>, <code>IN_PROGRESS</code>, or <code>FINISHED</code></td><td></td></tr><tr><td>field</td><td>Field number</td><td></td></tr><tr><td>homeTeamScore</td><td>Score for the team on the <strong>left</strong> (home team)</td><td></td></tr><tr><td>visitorTeamScore</td><td>Score for the team on the <strong>right</strong> (visiting team)</td><td></td></tr><tr><td>homeTeamTitle</td><td>Full name of the left (home) team</td><td></td></tr><tr><td>visitorTeamTitle</td><td>Full name of the right (visitor) team</td><td></td></tr><tr><td>homeTeamAlias</td><td>Short version of the home team name (up to 5 characters)</td><td></td></tr><tr><td>visitorTeamAlias</td><td>Short version of the visitor team name (up to 5 characters)</td><td></td></tr><tr><td>homeTeamAvatar</td><td>Logo (400x400, png) of the left (home) team</td><td></td></tr><tr><td>visitorTeamAvatar</td><td>Logo (400x400, png) of the right (visitor) team</td><td></td></tr><tr><td>homeTeamCity</td><td>Full name of the home team’s city</td><td></td></tr><tr><td>visitorTeamCity</td><td>Full name of the visitor team’s city</td><td></td></tr><tr><td>remainTimeText</td><td>Time remaining, in <code>MM:SS</code> format (e.g. <code>23:59</code>)</td><td></td></tr><tr><td>timePassedText</td><td>Game time elapsed, in <code>MM:SS</code> format</td><td></td></tr><tr><td>isPaused</td><td><code>true</code> if the game clock is currently paused</td><td></td></tr><tr><td>timePassedSec</td><td>Time elapsed in seconds</td><td></td></tr><tr><td>remainTimeSec</td><td>Time remaining in seconds</td><td></td></tr><tr><td>durationSec</td><td>Total match duration in seconds</td><td></td></tr><tr><td>startedAt</td><td>Game start timestamp (server time)</td><td></td></tr></tbody></table>

{% hint style="warning" %}
**Note**: `homeTeamAlias` and `visitorTeamAlias` are custom short codes (max 5 characters) used in overlays. These need to be sent to the tournament organizer or to us in advance, so we can register them in the system.
{% endhint %}

### **How to Use It in OBS & vMix**

Using in **OBS** (via Text GDI+ & Auto-Updating File)

1. Add a new **Text (GDI+)** source in OBS
2. Check **“Read from file”**
3. Point it to a local `.txt` file
4. Use a script or automation tool (e.g. Touch Portal, NodeCG, Stream Deck plugin) that pulls the data from the feed and writes specific values (like score or timer) into that text file on a loop.

Use your overlay design to decide what fields to show: team names, scores, clock, etc.

### Using in **vMix** (via Data Source Input)

1. In vMix, go to **Add Input > Data Source**
2. Choose **CSV** or **JSON**, depending on your feed format
3. Paste the feed URL (e.g. `https://api.ultie.org/export/game-on-the-field/spring2025/1/json`)
4. Set the refresh interval (every 1–2 seconds recommended)
5. Add a **Title Input**, then link your text fields to the correct data columns — for example, score, team name, or timer.

### **Quick Mapping Tips**

* **Score:** `homeTeamScore` and `visitorTeamScore`
* **Timer:** use `timePassedText` for time elapsed or `remainTimeText` for time left
* **Pause status:** check `isPaused` — you may want to freeze or hide the timer
* **Team names:** use `homeTeamAlias` and `visitorTeamAlias` for short displays, or `homeTeamTitle` / `visitorTeamTitle` for full names

### **Test Data**

Need sample data for **testing or setting things up?**\
Message us on [**Telegram**](https://t.me/ultieorg) or [**WhatsApp**](https://wa.me/447719564497) — we’ll quickly send you a working link with live examples.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ultie.org/live-game-data-feed-for-obs-and-vmix.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
