---
title: Izaicinājuma rezultātu API
description: Veido izaicinājumu kopvērtējumus, aktivitāšu blīvuma kartes, dalībnieku detalizētos skatus un aktivitāšu analītiku
order: 6
source_hash: 3be9a0ef7fd2
---

# Izaicinājuma rezultātu API

White-label portāli un citas atbalstītas integrācijas var izveidot izaicinājuma rezultātu skatu, izmantojot tālāk norādītos galapunktus. Tie visi izmanto izaicinājuma kodu, un tiem nepieciešams autentificēts API pieprasījums.

```
/api/v1/gamification/challenge/{code}/
```

::: warning Integrācijas piekļuve
API akreditācijas datus, atbalstītās autentifikācijas plūsmas un pieprasījumu ierobežojumus saskaņo ar DistantRace atbalsta komandu. Ja rezultātu vai analītikas galapunkts atgriež `404`, uzskati, ka pašreizējam pieprasītājam tas nav pieejams; tā pati atbilde tiek izmantota arī tad, ja resursu slēpj privātuma iestatījumi.
:::

## Galapunktu secība

| Galapunkts | Lietojums |
|----------|-----|
| `GET result-settings/` | Noskaidro rezultātu kolonnas, kārtošanu, kopsummas, sadaļas, distances un pieejamos neobligātos skatus |
| `GET heatmap/` | Ielādē apkopotas treniņu blīvuma šūnas, ja ir iespējots `show_heatmap` |
| `GET results/{challenger_id}/detailed/` | Ielādē viena dalībnieka rezultātu, apkopoto statistiku, salīdzinājumus un aktivitāšu laika joslu |
| `GET results/{challenger_id}/activities/{activity_id}/analytics/` | Ielādē vienas pieņemtas aktivitātes starplaikus, diagrammas un atļauto sensoru analītiku |

Sāc ar `result-settings/`. Izmanto tā karogus un kolonnu aprakstus, lai noteiktu, kuras vadīklas un skatus parādīt, nevis pieņemtu, ka visiem izaicinājumiem ir vienāds rezultātu formāts.

`challenger_id` vērtības iegūsti no izaicinājuma `results/` kopvērtējuma ar lapošanu. Aktivitāšu ID ir pieejami detalizētās atbildes ligzdotajā sarakstā `activities.results`.

## Rezultātu iestatījumi

`GET /api/v1/gamification/challenge/{code}/result-settings/`

Atbilde apraksta pašreizējo izaicinājuma rezultātu attēlojumu:

- `primary_column` un `ordered_by` norāda ranga aprēķina rādītāju un noklusējuma secību.
- `columns` un `team_columns` ir sakārtoti attēlošanas apraksti; to atslēgas atbilst laukiem dalībnieku un komandu kopvērtējuma rindās.
- `totals`, `progress`, `sections`, `distances` un `participant_data` nodrošina neobligātu visa izaicinājuma kontekstu.
- `show_map` un `show_heatmap` norāda klientam, kurus kartes skatus piedāvāt. `show_analytics` norāda, vai šis pieprasītājs drīkst skatīt cita dalībnieka aktivitātes fizioloģiskos datus; tas neierobežo pieprasītāja paša pieejamo analītiku.
- `results_limited` ir `null`, ja rezultāti nav ierobežoti. Skaitlis nozīmē, ka pieprasītājs var skatīt tikai tik daudz augstāko rezultātu rindu, un rezultātu filtrēšanas, kārtošanas un lapošanas vadīklas ir jāpaslēpj.

Šīs vērtības ir pielāgotas pieprasītājam. Piemēram, vienam un tam pašam izaicinājumam dalībnieks var saņemt neierobežotus iestatījumus, bet pieteicies lietotājs, kurš nav dalībnieks, — ierobežotus iestatījumus.

## Treniņu blīvuma karte

`GET /api/v1/gamification/challenge/{code}/heatmap/`

Blīvuma kartē pieņemtās GPS aktivitātes tiek apkopotas aptuveni 150 metru režģa šūnās. Katra šūna ir `[longitude, latitude, weight]`, kur svars ir to atšķirīgo aktivitāšu skaits, kas šķērsojušas attiecīgo šūnu. Viena aktivitāte katrā šūnā tiek ieskaitīta ne vairāk kā vienu reizi, un treniņi, kas avota lietotnē atzīmēti kā privāti, netiek iekļauti.

Blīvuma kartes tiek ģenerētas pēc pieprasījuma. Ja saglabātas kartes nav, pirmais pieprasījums sāk ģenerēšanu fonā un atgriež:

```json
{"status": "pending"}
```

Pēc dažām sekundēm pieprasi datus atkārtoti. Gatavā atbilde ietver `generated_at`, `cell_size`, `activity_count`, `max_weight`, `truncated` un `cells`. Saglabātos datus var turpināt rādīt, kamēr novecojusi blīvuma karte tiek atjaunināta fonā.

Izmanto `max_weight`, lai normalizētu svērtā blīvuma slāni. Ja `truncated` ir `true`, atbildē ir ietvertas blīvākās šūnas, nevis visas ģenerētās šūnas.

Galapunkts atgriež `404`, ja organizators nav iespējojis `show_heatmap`, ja ir aktīvs rezultātu slēpšanas periods vai ja publiskie rezultāti ir ierobežoti un pieprasītājs nav dalībnieks.

## Detalizēts dalībnieka rezultāts

`GET /api/v1/gamification/challenge/{code}/results/{challenger_id}/detailed/`

Atbilde apvieno:

- Dalībnieka kopvērtējuma rindu, izvēlēto distanci, vietu un `result_rank_total`.
- `statistics` datus, piemēram, distanci, ilgumu, tempu vai ātrumu, enerģiju, soļus, aktivitāšu skaitu, aktīvās dienas, garāko secīgo aktīvo dienu sēriju un vidējo pulsu, ja tas ir pieejams.
- `is_own_result`, kas norāda, vai rinda pieder autentificētajam dalībniekam.
- `head_to_head`, kas ir pieejams tikai dalībniekam, skatot savu rezultātu. Tas ietver vietu un procentili, ranga aprēķina rādītāju, atšķirību līdz tuvākajiem konkurentiem un līderim, visu dalībnieku vidējo rādītāju un godalgoto vietu rindas.
- `activities` — ligzdotu sarakstu ar lapošanu, kurā iekļautas rezultātā ieskaitītās, pieņemtās un redzamās aktivitātes. Katrā rindā ir treniņa pamatdati, vidējais temps, maršruta forma, ja tā pieejama, un `has_analytics`.

Fiksētas distances rezultātam aktivitāšu saraksts beidzas ar aktivitāti, kurā pabeigta izvēlētā distance. Vēlākas aktivitātes netiek rādītas, jo tās nav devušas ieguldījumu šajā rezultātā.

### Ligzdotā aktivitāšu lapošana

Aktivitāšu sarakstam ir ierastie lauki `count`, `next`, `previous` un `results`, bet tas izmanto atsevišķus vaicājuma parametrus, lai nerastos konflikts ar augstākā līmeņa lapošanu:

| Parametrs | Nozīme |
|-----------|---------|
| `activities_page` | Lapas numurs, sākot ar 1 |
| `activities_per_page` | Vienumu skaits lapā; pēc noklusējuma 25, ievērojot API maksimālo ierobežojumu |

### Atrašanās vietai nepiesaistītas maršruta formas

Aktivitāšu laika joslā redzamie maršruti nav ģeogrāfiskās koordinātas. Serveris pārbīda un mērogo katru GPS ierakstu fiksētā `158 × 108` SVG koordinātu telpā un atgriež tikai:

- `path` — SVG ceļa datus
- `start` un `end` — punktus normalizētajā koordinātu telpā
- `point_count` — punktu skaitu atgrieztajā formā

Absolūtais ģeogrāfiskais platums un garums, robežas un centrs netiek iekļauti. Tas pats maršruts, kas pārvietots uz citu atrašanās vietu, veido tādu pašu formu, tāpēc to var izmantot sīktēlam, bet nevar attēlot ģeogrāfiskā kartē.

## Atsevišķas aktivitātes analītika

`GET /api/v1/gamification/challenge/{code}/results/{challenger_id}/activities/{activity_id}/analytics/`

Aktivitātei jābūt pieņemtai, redzamai un piesaistītai tieši šī dalībnieka rezultātam. Atbildē ir distances, ilguma, tempa un ātruma pamatdati, kā arī visa analītika, ko iespējams iegūt no saglabātajām datu plūsmām:

| Bloks | Saturs |
|-------|----------|
| `route` | Tā pati atrašanās vietai nepiesaistītā maršruta forma, ko izmanto aktivitāšu laika joslā |
| `km_splits` | Pilnu kilometru starplaiki un neobligāts pēdējais nepilnais posms, tostarp ātrākā un lēnākā posma atzīmes |
| `elevation` | Samazinātas izšķirtspējas augstuma profils, kāpums, kritums, minimālā un maksimālā vērtība |
| `heart_rate` un `hr_zones` | Samazinātas izšķirtspējas pulsa datu virkne, vidējais un maksimālais pulss, atsauces maksimālais pulss un laiks piecās zonās |
| `cadence` | Samazinātas izšķirtspējas kadences datu virkne un vidējā vērtība |
| `effort_score` | Pēc pulsa aprēķināts slodzes novērtējums |

Katram blokam atsevišķi var nebūt vērtības, jo dažādi pakalpojumu sniedzēji un ierīces nodrošina atšķirīgas datu plūsmas. `has_streams` norāda, vai ir pieejama izmantojama datu plūsmu analītika. `x_kind` norāda, vai diagrammas x vērtības apzīmē kopējo distanci vai pagājušo laiku.

Zema jutīguma bloki — maršruta forma, starplaiki, temps un augstums — ir pieejami ikvienam pieprasītājam, kurš var piekļūt rezultātam. Fizioloģiskie bloki — pulss, pulsa zonas, kadence un slodze — vienmēr ir pieejami pieprasītāja paša rezultātam, ja šim rezultātam var piekļūt. Cita dalībnieka aktivitātei tie tiek atgriezti tikai tad, ja organizators ir iespējojis `show_analytics` un pieprasītājs atbilst rezultātu redzamības noteikumiem. Pretējā gadījumā šie bloki ir `null`, bet `physio_restricted` ir `true`.

## Redzamības un privātuma noteikumi

| Iestatījums vai stāvoklis | Ietekme |
|------------------|--------|
| `show_heatmap` izslēgts | Blīvuma karte atgriež `404`; `result-settings` ziņo `show_heatmap: false` |
| `show_analytics` izslēgts | Citu dalībnieku fizioloģisko aktivitāšu bloki tiek noņemti; paša pieejamā analītika netiek ietekmēta |
| Aktīvs rezultātu slēpšanas periods | Dalībnieku detalizētie rezultāti tiek slēpti; blīvuma karte atgriež `404`; `show_heatmap` un `show_analytics` ir false |
| `hide_results_public` ieslēgts | Pieteikušies lietotāji, kuri nav dalībnieki, var redzēt tikai konfigurēto labāko rezultātu skaitu, nevar ielādēt blīvuma karti un nevar skatīt citu dalībnieku fizioloģisko analītiku |
| Treniņš nav pieņemts vai nav redzams | Tas netiek iekļauts laika joslā, un to nevar atvērt analītikas galapunktā |

Ārpus rezultātu slēpšanas perioda izaicinājuma dalībniekiem ir pieejami visi rezultāti. Organizācijas darbinieku piekļuve var atšķirties no dalībnieku piekļuves, tomēr klientiem vienmēr jāievēro konkrētajam pieprasītājam paredzētās vērtības, ko atgriež `result-settings/`.

## Saistītie raksti

- [Publiskā API pārskats](public-api-overview.md)
- [White-label un uzņēmumu iestatīšana](../running-events/whitelabel-and-enterprise-setup.md)
