> For the complete documentation index, see [llms.txt](https://docs.ultie.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ultie.org/integrations/live-game-feed.md).

# Live game data feed

Connect a field's current game state to vMix, OBS, or another broadcast overlay.

Ultie provides a public feed for the game currently assigned to a specific event field. Use it to keep a broadcast overlay in sync with the game status, teams, score, clock, and pause state.

## Build the feed URL

Use this URL structure:

```
https://api.ultie.org/export/game-on-the-field/{event-slug}/{field-number}/{format}
```

| Parameter      | Value                                |
| -------------- | ------------------------------------ |
| `event-slug`   | The slug from the public event URL   |
| `field-number` | The field number, such as `1` or `2` |
| `format`       | `csv` or `json`                      |

These examples show how the URL is formed:

* 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`

`spring2025` is an illustrative placeholder. Replace it with your event slug; the example itself is not a working test feed.

## Available fields

The feed returns the current state of the game linked to the selected field.

| Field               | Description                      |
| ------------------- | -------------------------------- |
| `status`            | game status                      |
| `field`             | Field number                     |
| `homeTeamScore`     | Home team score                  |
| `visitorTeamScore`  | Visiting team score              |
| `homeTeamTitle`     | Full home team name              |
| `visitorTeamTitle`  | Full visiting team name          |
| `homeTeamAlias`     | Short home team name             |
| `visitorTeamAlias`  | Short visiting team name         |
| `homeTeamAvatar`    | Home team image URL              |
| `visitorTeamAvatar` | Visiting team image URL          |
| `homeTeamCity`      | Home team city                   |
| `visitorTeamCity`   | Visiting team city               |
| `remainTimeText`    | Remaining time in `MM:SS` format |
| `timePassedText`    | Elapsed time in `MM:SS` format   |
| `isPaused`          | Whether the game is paused       |
| `timePassedSec`     | Elapsed time in seconds          |
| `remainTimeSec`     | Remaining time in seconds        |
| `durationSec`       | game duration in seconds         |
| `startedAt`         | game start timestamp             |

## Connect the feed to vMix

1. Add a **Data Source** input in vMix.
2. Choose CSV or JSON to match the feed URL.
3. Paste the URL.
4. Set the refresh interval required for the broadcast.
5. Link the data fields to the corresponding fields in the Title input.

For example, use `homeTeamScore` and `visitorTeamScore` for the score, and `remainTimeText` or `timePassedText` for the clock.

## Connect the feed to OBS

OBS usually needs an intermediate script or another automation tool to use individual values from a remote CSV or JSON feed.

1. Fetch the feed at the interval required for the broadcast.
2. Write the required values to a local file or render them in a browser overlay.
3. Connect the local file or browser overlay to the relevant OBS source.

Map the team names, score, clock, and pause state according to the overlay design.
