---
id: live-3d-tracker
title: Live 3D Tracker in Sport Line API
description: Description of the Live 3D Tracker widget for visualizing sports match activity in real time.
version: v1
language: en
---

# Live 3D Tracker in Sport Line API

## What Is Live 3D Tracker?

Live 3D Tracker is a ready-made widget for visualizing a sporting event. It displays the
field or court, ball position, attacks, score, timer, and match events.

Sport Line API does not provide raw data for the client to render a tracker
independently. The API only indicates whether the ready-made widget is available for a
specific match and returns its identifier in `zp`.

```text
Sport Line API → zp field → ready-made Live 3D Tracker widget
```

The tracker is not an independent source of match lists. To find a match and retrieve
its `zp`, the client needs a SportAPI sports line subscription.

## Ready-made Widget

The client does not need to develop the match visualization independently. SportAPI
provides a ready-made widget for embedding in a website or web application.

Two integration methods are available:

- a direct `iframe`;
- the `embed.js` script, which creates the `iframe` automatically and allows the widget
  to be controlled through JavaScript.

Short direct-embedding example:

```html
<iframe
  src="https://bet-embed-sport-tracker.vercel.app/?key=pk_live_yourkey&gameid=745829876&sport=1&lang=en"
  style="width: 100%; height: 360px; border: none; display: block;"
  allowfullscreen
  title="Live tracker"
></iframe>
```

The tracker is intended only for embedding. Do not open its page as a standalone page
of the website.

## Complete Integration Documentation

Embedding methods, obtaining a key, allowed domains, parameters, switching matches, and
diagnostics are described in the [complete Live 3D Tracker documentation](https://sportapi.net/docs/live-3d-tracker/service-overview.html).

Widget appearance demo:
[https://bet-embed-sport-tracker-stage.vercel.app/showcase](https://bet-embed-sport-tracker-stage.vercel.app/showcase).

The demo page does not use real Live data. It shows the widget's appearance for the
supported sports.

## The `zp` Field

`zp` is returned in the sports line match object:

```json
{
  "game_id": 746266481,
  "sport_id": 1,
  "zp": 746266481
}
```

Pass the `zp` value as the ready-made widget's `gameid` parameter:

```text
tracker gameid = sports line zp
```

For the example above:

```js
BetZoneEmbed.init({
  container: '#zone',
  key: 'pk_live_yourkey',
  gameid: 746266481,
  sport: 1,
  lang: 'en',
  height: 360
});
```

Do not pass `game_id`, `game_mid`, or `stat_id` as `gameid`. Even if `game_id` and `zp`
contain the same number in a particular response, the fields serve different purposes.

## When to Show the Tracker

Show the widget only when all of the following conditions are met:

1. The match is Live.
2. The tracker supports the sport.
3. `zp` contains an ID rather than `null`.
4. The client has an active Live 3D Tracker key.
5. The page's domain is allowed for that key.
6. The sport and language are included in the connected subscription.

If the sports line returns:

```json
{
  "zp": null
}
```

the tracker is unavailable for this match. Do not create an empty widget or substitute
another identifier for `zp`.

## Supported Sports

Pass the match's `sport_id` as the `sport` parameter.

| ID | Sport |
|---:|---|
| `1` | Football |
| `2` | Ice Hockey |
| `3` | Basketball |
| `4` | Tennis |
| `5` | Baseball |
| `6` | Volleyball |
| `7` | Rugby |
| `8` | Handball |
| `10` | Table Tennis |
| `13` | American Football |
| `17` | Water Polo |
| `21` | Darts |
| `26` | Formula 1 |
| `28` | Australian Rules |
| `44` | Horse Racing |
| `66` | Cricket |
| `86` | CS:GO / Esports |

A sport's presence in this table means that the tracker can display it. It does not
guarantee visualization for every Live match. Always perform the final availability
check using `zp`.

The client's available sport set may be restricted by the subscription.

## Practical Integration Rules

1. Show the tracker only for a Live match.
2. Verify that `sport_id` is in the supported-sports list.
3. Pass `zp` as `gameid` without modifying it.
4. Do not create the widget when `zp: null`.
5. Use the ready-made `iframe` or `embed.js` instead of rendering the data yourself.
6. Do not confuse `zp` with `game_id` or other identifiers.
7. Use the [Live 3D Tracker documentation](https://sportapi.net/docs/live-3d-tracker/service-overview.html) for the complete integration.

## Support

To obtain a key and add a production domain, test domain, or `localhost`, contact
SportAPI support:
[@suport_sportapi](https://t.me/suport_sportapi).

## Related Documents

- [Match Data Model](../data-models/match.md)
- [`events` — Match List](../api-reference/events.md)
- [`event` — Specific Match](../api-reference/event.md)
- [Field Reference](../data-models/field-reference.md)
