# Static Data

### How do I start the integration?

To begin integration:

1. **Schedule an onboarding call** with IMG Arena’s Integration Management team.
2. They will provide access credentials and walk you through the Sandbox tool.
3. **Use the `/tournament`** [**endpoint** ](https://app.gitbook.com/s/gD9hukZlLQwRd0NZZaXQ/master/static-data)to retrieve an `eventID`.
4. This ID is required to initialize a tournament in the Sandbox environment.
5. [**Explore available modules**](https://app.gitbook.com/s/gD9hukZlLQwRd0NZZaXQ/golf-ec-deep-linking/sandbox-examples) using the Sandbox interface.

* This helps validate view configurations and understand how the integration library behaves across different contexts.

### How do I build static data?

To generate static tournament data:

1. **Query the `/tournaments`** [**endpoint**](https://app.gitbook.com/s/gD9hukZlLQwRd0NZZaXQ/master/static-data)**.**
   1. Use `dateFrom` and `dateTo` parameters to define the range.
   2. Example:

```
GET https://dde-api.imggaming.com/golf/tournaments?dateFrom=2022-01-01&dateTo=2022-12-31
```

* This returns all tournaments covered by IMG Arena within the specified period

2. **Query the `/schedule`** [**endpoint**](https://app.gitbook.com/s/gD9hukZlLQwRd0NZZaXQ/master/static-data)**.**
   * For any active tournament week, use `/schedule` to retrieve tee-time data.
   * This includes groupings and timings for each round.

* Refer to the `/schedule` endpoint documentation for schema details and response structure.

### How do I map IMG Arena Event IDs to Internal systems IDs?

To perform tournament-level mapping:

1. **Query the `/tournaments` endpoint**
2. Extract key fields: `name`, `tour`, and `startDate`
3. These attributes are consistent across systems and suitable for matching
4. **Apply fuzzy matching logic**

* Use string similarity or date-based heuristics to align IMG Arena events with internal records
* This approach accounts for minor naming variations while leveraging universal identifiers like start date

Tip: Ensure your parser tolerates formatting differences (e.g., “The Masters” vs “Masters Tournament”) and supports partial matches when exact alignment isn’t guaranteed.

### What static data should I save and why?

To support reliable tournament mapping, scheduling, and market linking, save the following fields

| Parameter                                                  | Definition                                                                    | Purpose                                                                                                                                                                                     |
| ---------------------------------------------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name                                                       | Name of the tournament                                                        | To retrieve the tournament name related to the ID.                                                                                                                                          |
| startTeeTime                                               | Returns time of the first tee-off of the tournament                           | To determine the start time of the tournament. **Note that value will populate when the initial tee-times are made available. If tee-times are not available, then Null will be returned.** |
| isStreaming under golfCourses --> roundNo --> holes object | Returns which hole will have streaming enabled                                | Once the course details are made available, you can use this parameter to determine which hole will have streaming.                                                                         |
| id                                                         | Unique ID for the tournament                                                  | This ID returned will be the "eventID" used in the integration library. i.e this is the event ID needed to load the tournament via the event centre.                                        |
| tour                                                       | Returns the name of the federation of which the golf tournament is apart off. | Helps determine if the tour is apart of PGA, LPGA or DPWT. This will help when it comes to mapping. Note that we return "tour": "European Tour" for DPWT events.                            |
| startDate                                                  | Returns the start date of the tournament.                                     | This will help with mapping.                                                                                                                                                                |

From the `/tournaments` endpoint, persist the following fields to support tournament mapping, scheduling, and integration:

* **`name`**: Tournament name — used for display and fuzzy matching
* **`startDate`**: Tournament start date — critical for aligning with internal schedules
* **`id`**: Unique tournament identifier — passed as `eventID` when initializing the integration library
* **`tour`**: Federation or tour name (e.g., PGA, DPWT, LPGA) — used for filtering, categorization, and routing logic

These fields form the foundation for static data mapping and are essential for linking dynamic endpoints like `/schedule`, `/markets`, and `/leaderboard`.

#### **From the /tournament/{ID}/schedule endpoint:**

To support tee-time mapping, group-level targeting, and market linkage, store the following fields

| Parameter                                           | Definition                                                                            | Purpose                                                                                                                                                                                                                                                                                                       |
| --------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| startTime                                           | Start time for the group                                                              | expected time for when the group will start the hole.                                                                                                                                                                                                                                                         |
| date                                                | Stat date for the group                                                               | Start date of the group.                                                                                                                                                                                                                                                                                      |
| groupId                                             | Unique group ID for the group                                                         | You will need to save the groupId if you will be using initial context within the integration library. The GroupID will be useful when trying to link a 3/2 ball on the frontend to the 3/2ball markets. i.e so if a user clicks on a particular group the relevant markets will be displayed and vice versa. |
| teeSeq                                              | Tee Sequence for a given group. i.e "teeSeq": 4 means 4th group to start on the hole. | This will help you determine the ordering of the groups.                                                                                                                                                                                                                                                      |
| round                                               | The round the tee-times are related to.                                               | This will help determine which round the tee-time is related to.                                                                                                                                                                                                                                              |
| hole                                                | The hole that the group will start on, either will be 1 or 10                         | Will inform you which hole the groups are expected to started from.                                                                                                                                                                                                                                           |
| players within group--> groupNo --> teams--> teamNo | determine which players are within a group.                                           | Will inform you which players are within a group. This will help mapping at group level.                                                                                                                                                                                                                      |

### What static data should I build from the `/tournament/{ID}/schedule` endpoint?

Before accessing this endpoint, ensure you have:

* **Tournament name**
* **Tournament ID (`eventID`)**
* **Estimated schedule release time** — typically **2 days before tournament start**

Static Data to Build by Round

<table><thead><tr><th width="177"></th><th></th></tr></thead><tbody><tr><td><code>groupId</code></td><td>Unique identifier for each group — used for market linkage and UI targeting</td></tr><tr><td><code>playerIds</code></td><td>List of players within the group — supports 2-Ball, 3-Ball, and Player Markets</td></tr><tr><td><code>teeTime</code></td><td>Scheduled start time — used for rendering and market activation</td></tr><tr><td><code>holeStart</code></td><td>Starting hole number (e.g., 1 or 10) — relevant for shotgun formats</td></tr><tr><td><code>groupOrder</code></td><td>Order of play — defines sequencing of groups within a roun</td></tr></tbody></table>

🧠 Release Timing Notes

* **Rounds 1 and 2**: Tee-times and groupings are released in advance (typically 48 hours before start)
* **Rounds 3 and 4**: Groupings are published after Round 2 completion, based on leaderboard standings

### When does a tournament start

* Use the `/tournament/{ID}` endpoint.
* Field: `startTeeTime`
* Returns the first scheduled tee-time (UTC).
* If not yet available, this field will return `null`

### When can I display the Golf Event Centre

* The Event Centre becomes renderable once **tee-times are available**.
* Use `startTeeTime` as the trigger to initialize the UI.

### When should I pull the `/schedule` endpoint

* Most tournaments run **Thursday–Sunday**.
* Initial schedule (Rounds 1 & 2) is typically available **Tuesday midday GMT**.
* Recommended polling:
* Every **minute on Tuesdays** for upcoming events.
* After completion of **Round 2 and Round 3** to retrieve updated groupings for Rounds 3 & 4.

### What format is `startTime`

* Format: `HH:MMZ` (UTC)
* `Z` indicates offset (e.g., `+01:00`, `-05:00`)

### When should I stop displaying the Event Centre

Recommended:

* Keep live until a few hours post-event.
* Event Centre supports displaying events up to **2–3 weeks in the past**.

### How do I track round status

* Use the `/leaderboards` **WebSocket** feed.
* Field: `roundStatuses`
  * Indicates: `notStarted`, `inProgress`, `suspended`, `finished`.
* Contact your Integration Manager for access.

### Can we get a list of player Id?

* Endpoint:\
  `https://dde-api.imggaming.com/golf/players`
* Returns: Player ID, name, country, DOB (if known), European Tour ID, PGA Tour ID.
* Contact your Integration Manager for access.

### What does Round "401" mean?

* Round `401` indicates a **playoff stage**
