<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta http-equiv="Content-Language" content="en" />
        <title>Public API</title>
        <meta name="description" content="Public API to integrate any fitness hardware or software with BikeTube" />
        <meta name="keywords" content="indoor cycling, API, exercise bike API" />

        
        <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
        <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
        <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
        <link rel="manifest" href="/site.webmanifest">
        <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
        <meta name="msapplication-TileColor" content="#ffffff">
        <meta name="theme-color" content="#ffffff">

                <!-- meta name="viewport" content="width=device-width, initial-scale=1.0" -->

                
                <meta name="viewport" content="maximum-scale=10">

                                <link type="text/css" rel="stylesheet" href="/css/779cb9f.css?v102">
                    
        <script>
            var alerts = [];
            var triggers = [];
            var player_ready = false;
            var is_owner = false;
            var geoip_country_code = 'US';
            var lang = 'en';
            var lang_pref = '';
        </script>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
        
        
    </head>
    <body>

        
    
<!-- steady bg -->
<div id="bg"
     style="background:url(/i/bg/thumb_summer-road.jpg) center no-repeat;
		background-size:cover;">
</div>
<script>
    var bg_move_mode = 2;
    var bgimg = "/i/bg/summer-road.jpg";
</script>



<div id="all_wr">
    <div id="container">
        <div id="wdth">

                        
            <div id="top_wr">

                <div class="top_menu_wr">

                    <div id="soc_div">

                                                <div class="top_mitem" onclick="location.href='/signin/'">
                            <span class="desktop-hide pad-hide mobile-show"><img src="/i/icon/lock-icon.svg"></span>
                            <span class="mobile-hide">Sign in</span>
                        </div>
                        
                        
                        <div class="top_mitem_green" id="add_vid_btn" onclick="toggle_modal()">
                            <span class="mobile-hide pad-hide">Add YouTube video</span>
                            <span class="desktop-hide">+Video</span>
                        </div>

                        <!-- div id="top_mitem_allvids" class="top_mitem" onclick="all_videos()">
                            All Videos
                        </div -->

                        <div id="top_mitem_filter" class="top_mitem" onclick="toggle_filter()">
                            <img src="/i/icon/search-icon-2.svg" class="search_btn">
                            <span class="mobile-hide pad-hide ml-05">Filter</span>
                        </div>

                        <div id="top_mitem_rating" class="top_mitem pad-hide" onclick="location.href='/rating/all/'">
                            <!-- img src="/i/icon/search-icon-2.svg" class="search_btn" -->
                            <span class="mobile-hide">World </span>Rankings
                        </div>

                        
                        <div id="top_mitem_lang_sel" class="top_mitem lang_sel" data-shortcode="" onclick="toggle_lang_sel(this)">
                            <span class="mobile-hide pad-hide">
                                                                                                            United States
                                     - English
                                                            </span>
                        </div>

                    </div>

                    <div id="logo_div">
                        <a href="/">
                            <div id="lgo">
                                                                <img src="/i/gethigh-fitness.svg" id="lg" alt="GETHIGH" title="GETHIGH on fitness - indoor cycling videos" />
                                <div class="c3">
                                    <span>indoor cycling, enjoyable</span>
                                    <!-- span class="c2">is</span>
                                    <span>fun</span -->
                                </div>
                                                            </div>
                        </a>
                    </div>

                </div>

                <div class="filter_rel">
                    <div class="filter_wrap filter_panel" id="filter" style="display: none">

                        <div class="panel-content-width">
                            <div class="content_padd">

                                <div id="filter_extra" class="filter_row">
                                    <br>
                                    <form action="/search-videos/" method="get" id="search_form">
                                        <input name="query" class="textinputs" type="text"
                                               value="search query" style="color:#ccc"
                                               onfocus="this.style.color='#000'; if(this.value=='search query') this.value=''"
                                               onblur="if(this.value=='') { this.value=''; this.style.color='#ccc'; }"
                                        />
                                        <img src="/i/icon/search-icon-2.svg" class="search_btn"
                                             onclick="document.getElementById('search_form').submit()">
                                        <input type="submit" class="hidden_1px">
                                    </form>

                                </div>

                                <div class="filter_row">

                                    <div class="quarter_block">
                                        <div class="filter_option_padd">
                                            <div class="filter_option" id="time_0_20" onclick="sel_btn(this.id)"
                                                 style="background: url(/i/tag/1.png) 1rem center no-repeat; background-size: auto 80%; padding: 1rem 1rem 1rem 4rem; text-align: left;">
                                                <span>10-20 min</span>
                                            </div>
                                        </div>
                                    </div>

                                    <div class="quarter_block">
                                        <div class="filter_option_padd">
                                            <div class="filter_option" id="time_20_40" onclick="sel_btn(this.id)"
                                                 style="background: url(/i/tag/2.png) 1rem center no-repeat; background-size: auto 80%; padding: 1rem 1rem 1rem 4rem; text-align: left;">
                                                <span>20-40 min</span>
                                            </div>
                                        </div>
                                    </div>

                                    <div class="quarter_block">
                                        <div class="filter_option_padd">
                                            <div class="filter_option" id="time_40_80" onclick="sel_btn(this.id)"
                                                 style="background: url(/i/tag/3a.png) 1rem center no-repeat; background-size: auto 80%; padding: 1rem 1rem 1rem 4rem; text-align: left;">
                                                <span>40-80 min</span>
                                            </div>
                                        </div>
                                    </div>

                                    <div class="quarter_block">
                                        <div class="filter_option_padd">
                                            <div class="filter_option" id="time_80_1000" onclick="sel_btn(this.id)"
                                                 style="background: url(/i/tag/4.png) 1rem center no-repeat; background-size: auto 80%; padding: 1rem 1rem 1rem 4rem; text-align: left;">
                                                <span>&gt;80 min</span>
                                            </div>
                                        </div>
                                    </div>

                                    <div class="clear"></div>

                                    <div class="filter_genres">

                                        <div class="six_block">
                                            <div class="filter_option_padd">
                                                <div class="filter_option" id="tag_genre_1001" onclick="sel_btn(this.id)"
                                                     style="background: url(/i/tag/tag-sport.svg) 1rem center no-repeat; background-size: auto 80%;">
                                                    <span>Sport</span>
                                                </div>
                                            </div>
                                        </div>

                                        <div class="six_block">
                                            <div class="filter_option_padd">
                                                <div class="filter_option" id="tag_genre_1005" onclick="sel_btn(this.id)"
                                                     style="background: url(/i/tag/tag-road.svg) 1rem center no-repeat; background-size: auto 80%;">
                                                    <span>Road</span>
                                                </div>
                                            </div>
                                        </div>

                                        <div class="six_block">
                                            <div class="filter_option_padd">
                                                <div class="filter_option" id="tag_genre_1002" onclick="sel_btn(this.id)"
                                                     style="background: url(/i/tag/tag-commute.svg) 1rem center no-repeat; background-size: auto 80%;">
                                                    <span>Commute</span>
                                                </div>
                                            </div>
                                        </div>

                                        <div class="six_block">
                                            <div class="filter_option_padd">
                                                <div class="filter_option" id="tag_genre_1003" onclick="sel_btn(this.id)"
                                                     style="background: url(/i/tag/tag-mtb.svg) 1rem center no-repeat; background-size: auto 80%;">
                                                    <span>MTB</span>
                                                </div>
                                            </div>
                                        </div>

                                        <div class="six_block">
                                            <div class="filter_option_padd">
                                                <div class="filter_option" id="tag_genre_1006" onclick="sel_btn(this.id)"
                                                     style="background: url(/i/tag/tag-cross.svg) 1rem center no-repeat; background-size: auto 80%;">
                                                    <span>Cross</span>
                                                </div>
                                            </div>
                                        </div>

                                        <div class="six_block">
                                            <div class="filter_option_padd">
                                                <div class="filter_option" id="tag_genre_1004" onclick="sel_btn(this.id)"
                                                     style="background: url(/i/tag/tag-bmx.svg) 1rem center no-repeat; background-size: auto 80%;">
                                                    <span>BMX</span>
                                                </div>
                                            </div>
                                        </div>

                                    </div>

                                    <div class="clear"></div>


                                    <div class="third_block">
                                        <div class="filter_option_padd">
                                            <div class="filter_option" id="tag_season_2005" onclick="sel_btn(this.id)"
                                                 style="background: url(/i/tag/tag-summer.svg) 1rem center no-repeat; background-size: auto 80%;">
                                                <span>Summer</span>
                                            </div>
                                        </div>
                                    </div>

                                    <div class="third_block">
                                        <div class="filter_option_padd">
                                            <div class="filter_option" id="tag_season_2006" onclick="sel_btn(this.id)"
                                                 style="background: url(/i/tag/tag-winter.svg) 1rem center no-repeat; background-size: auto 80%;">
                                                <span>Winter</span>
                                            </div>
                                        </div>
                                    </div>

                                    <div class="third_block">
                                        <div class="filter_option_padd">
                                            <div class="filter_option" id="tag_season_2007" onclick="sel_btn(this.id)"
                                                 style="background: url(/i/tag/tag-other.svg) 1rem center no-repeat; background-size: auto 80%;">
                                                <span>Other season</span>
                                            </div>
                                        </div>
                                    </div>

                                    <div class="clear"></div>


                                    <div class="half_block">
                                        <div class="filter_option_padd">
                                            <div class="filter_option" id="tag_music_3008" onclick="sel_btn(this.id)"
                                                 style="background: url(/i/tag/tag-music.svg) 1rem center no-repeat; background-size: auto 80%;">
                                                <span>Music</span>
                                            </div>
                                        </div>
                                    </div>

                                    <div class="half_block">
                                        <div class="filter_option_padd">
                                            <div class="filter_option" id="tag_music_3009" onclick="sel_btn(this.id)"
                                                 style="background: url(/i/tag/tag-no_music.svg) 1rem center no-repeat; background-size: auto 80%;">
                                                <span>No music</span>
                                            </div>
                                        </div>
                                    </div>

                                    <div class="clear"></div>


                                    <div class="half_block">
                                        <div class="filter_option_padd">
                                            <div class="filter_option" id="tag_time-of-day_4010" onclick="sel_btn(this.id)"
                                                 style="background: url(/i/tag/tag-day.svg) 1rem center no-repeat; background-size: auto 80%;">
                                                <span>Morning/day</span>
                                            </div>
                                        </div>
                                    </div>

                                    <div class="half_block">
                                        <div class="filter_option_padd">
                                            <div class="filter_option" id="tag_time-of-day_4011" onclick="sel_btn(this.id)"
                                                 style="background: url(/i/tag/tag-night.svg) 1rem center no-repeat; background-size: auto 80%;">
                                                <span>Evening/night</span>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="clear"></div>


                                </div>

                                <div class="filter_row">

                                    <!-- div class="spoiler_link spl_left mobile-hide">
                                        <span class="spl"
                                              id="more_options_link"
                                              onclick="toggle_more_options()"
                                        >more options ▼</span>
                                    </div -->

                                    <div class="top_mitem_green inline_btn" id="filter_btn" onclick="apply_filter()">
                                        Show
                                    </div>

                                    <div class="spoiler_link spl_right" onclick="toggle_filter()">
                                        <span class="spl">hide ▲</span>
                                    </div>

                                </div>



                            </div>
                        </div>

                    </div>
                </div>

                <div class="filter_rel">
    <div class="filter_wrap lang_sel_panel" id="lang_sel">
        <div class="panel-content-width">
            <div class="content_padd">

                <div class="filter_row">

                                          <ul class="quarter_block">
                                                    <li
                                                                    { class="selected" }
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/US.png) 0 center no-repeat;"
                                    data-shortcode="en_US"
                                     onclick="sel_locale('en_US', '/page/api/');">
                                    <span><strong>United States</strong> - English</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/CZ.png) 0 center no-repeat;"
                                    data-shortcode="cs_CZ"
                                     onclick="sel_locale('cs_CZ', '/cs/page/api/');">
                                    <span><strong>Česko</strong> - Čeština</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/DK.png) 0 center no-repeat;"
                                    data-shortcode="da_DK"
                                     onclick="sel_locale('da_DK', '/da/page/api/');">
                                    <span><strong>Danmark</strong> - Dansk</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/DE.png) 0 center no-repeat;"
                                    data-shortcode="de_DE"
                                     onclick="sel_locale('de_DE', '/de/page/api/');">
                                    <span><strong>Deutschland</strong> - Deutsch</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/ES.png) 0 center no-repeat;"
                                    data-shortcode="es_ES"
                                     onclick="sel_locale('es_ES', '/es/page/api/');">
                                    <span><strong>España</strong> - Español</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/FR.png) 0 center no-repeat;"
                                    data-shortcode="fr_FR"
                                     onclick="sel_locale('fr_FR', '/fr/page/api/');">
                                    <span><strong>France</strong> - Français</span>
                                </div>
                            </li>
                                              </ul>

                                          <ul class="quarter_block">
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/ID.png) 0 center no-repeat;"
                                    data-shortcode="id_ID"
                                     onclick="sel_locale('id_ID', '/id/page/api/');">
                                    <span><strong>Indonesia</strong> - Indonesia</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/IT.png) 0 center no-repeat;"
                                    data-shortcode="it_IT"
                                     onclick="sel_locale('it_IT', '/it/page/api/');">
                                    <span><strong>Italia</strong> - Italiano</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/HU.png) 0 center no-repeat;"
                                    data-shortcode="hu_HU"
                                     onclick="sel_locale('hu_HU', '/hu/page/api/');">
                                    <span><strong>Magyarország</strong> - Magyar</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/NO.png) 0 center no-repeat;"
                                    data-shortcode="nb_NO"
                                     onclick="sel_locale('nb_NO', '/nb/page/api/');">
                                    <span><strong>Norge</strong> - Bokmål</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/PL.png) 0 center no-repeat;"
                                    data-shortcode="pl_PL"
                                     onclick="sel_locale('pl_PL', '/pl/page/api/');">
                                    <span><strong>Polska</strong> - Polski</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/BR.png) 0 center no-repeat;"
                                    data-shortcode="pt_BR"
                                     onclick="sel_locale('pt_BR', '/pt/page/api/');">
                                    <span><strong>Brasil</strong> - Português</span>
                                </div>
                            </li>
                                              </ul>

                                          <ul class="quarter_block">
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/RO.png) 0 center no-repeat;"
                                    data-shortcode="ro_RO"
                                     onclick="sel_locale('ro_RO', '/ro/page/api/');">
                                    <span><strong>România</strong> - Română</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/FI.png) 0 center no-repeat;"
                                    data-shortcode="fi_FI"
                                     onclick="sel_locale('fi_FI', '/fi/page/api/');">
                                    <span><strong>Suomi</strong> - Suomi</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/SE.png) 0 center no-repeat;"
                                    data-shortcode="sv_SE"
                                     onclick="sel_locale('sv_SE', '/sv/page/api/');">
                                    <span><strong>Sverige</strong> - Svenska</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/TR.png) 0 center no-repeat;"
                                    data-shortcode="tr_TR"
                                     onclick="sel_locale('tr_TR', '/tr/page/api/');">
                                    <span><strong>Türkiye</strong> - Türkçe</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/CN.png) 0 center no-repeat;"
                                    data-shortcode="zh_CN"
                                     onclick="sel_locale('zh_CN', '/zh/page/api/');">
                                    <span><strong>中国</strong> - 中文</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/JP.png) 0 center no-repeat;"
                                    data-shortcode="ja_JP"
                                     onclick="sel_locale('ja_JP', '/ja/page/api/');">
                                    <span><strong>日本</strong> - 日本語</span>
                                </div>
                            </li>
                                              </ul>

                                          <ul class="quarter_block">
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/AE.png) 0 center no-repeat;"
                                    data-shortcode="ar_AE"
                                     onclick="sel_locale('ar_AE', '/ar/page/api/');">
                                    <span><strong>الإمارات العربية المتحدة</strong> - العربية</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/KR.png) 0 center no-repeat;"
                                    data-shortcode="ko_KR"
                                     onclick="sel_locale('ko_KR', '/ko/page/api/');">
                                    <span><strong>대한민국</strong> - 한국어</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/RU.png) 0 center no-repeat;"
                                    data-shortcode="ru_RU"
                                     onclick="sel_locale('ru_RU', '/ru/page/api/');">
                                    <span><strong>Россия</strong> - Русский</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/RS.png) 0 center no-repeat;"
                                    data-shortcode="sr_RS"
                                     onclick="sel_locale('sr_RS', '/sr/page/api/');">
                                    <span><strong>Србија</strong> - Српски</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/IN.png) 0 center no-repeat;"
                                    data-shortcode="hi_IN"
                                     onclick="sel_locale('hi_IN', '/hi/page/api/');">
                                    <span><strong>भारत</strong> - हिन्दी</span>
                                </div>
                            </li>
                                                    <li
                                                            >
                                                                <div rel="nofollow" style="background: url(/i/rating/flags16/TH.png) 0 center no-repeat;"
                                    data-shortcode="th_TH"
                                     onclick="sel_locale('th_TH', '/th/page/api/');">
                                    <span><strong>ไทย</strong> - ไทย</span>
                                </div>
                            </li>
                                              </ul>

                    
                    <div class="clear"></div>

                </div>

            </div>
        </div>
    </div>
</div>




                                <div class="cat-menu">
                    <div class="cat-menu-pad">

                        <a class="cat-menu-howto" href="/blog/1-minute-indoor-cycling-game-setup/">
                            <span>?</span> How To
                        </a>

                                                <a class="cat-menu-item" href="/cat/crazy/">Crazy</a>
                                                <a class="cat-menu-item" href="/cat/motivation/">Motivation</a>
                        
                        <a class="cat-menu-item" href="/indoor-cycling/15-min/">~15min</a>
                        <a class="cat-menu-item" href="/indoor-cycling/45-min/">~45min</a>
                        <a class="cat-menu-item" href="/indoor-cycling/60-min/">&gt;60min</a>
                        <a class="cat-menu-item" href="/geo/">Travel the World</a>
                        <a class="cat-menu-item" href="/search-videos/?query=latest">Latest videos</a>

                        <a class="cat-menu-item" href="/all-categories/">All categories</a>

                    </div>
                </div>
                
            </div>

            
            <table id="main"><tr><td>

                        <div class="main_wrap">

    <div class="content_width">
        <div class="content_padd">


            <div class="content ">

                
                                <h1>Public API</h1>
                
                
                <style type="text/css">

    .apidoc { margin-top: -1.9rem; }

    .left_col {
        float: left;
        width: 32%;
    }

    .left_col_padd {
        padding: 0 10% 0 0;
    }

    .left_col_padd img {
        max-width: 100%;
    }

    .right_col {
        float: left;
        width: 66%;
    }

    .apidoc td {
        padding-bottom: 0.8rem;
        vertical-align: top !important;
    }

    .apidoc_tbl_hdr {
        padding: 1.8rem 0 0.8rem 0;
        padding-bottom: 0.8rem;
        font-size: 1.2rem;
        font-weight: bold;
    }

    /* plgr */

    .playgr_tbl {
        width: 100%;
    }

    .playgr_tbl td {
        width: 50%;
        vertical-align: top !important;
    }

    .req td {
        padding: 0 0 0.5rem 0;
    }




</style>


<div class="third_block mobile_fullwidth">
    <div class="left_col_padd">
        <p>The API is free and open: you can build and sell any apps you want. Also, there’s no restrictions on the logo and style usage. By using this API you accept the <a href="/page/terms/#api">terms of use</a>.</p>
        <br>
        <img src="/files/blog/800/indoor-cycling-entertainment-public-api.jpeg">
        <!-- p><a href="">Offers to excercise bikes manufacturers &raquo;</a></p -->

    </div>
</div>
<div class="right_col mobile-hide">
    <!-- h2>Auth</h2>--------Please generate the API access token and save it in your app:loginpass---Your authorisation token:kwcucncljcawkjhckajcweybckwaucygwkuycgYour app is suppоsed to send this token in a post parameter with every API request.-->


    <table class="apidoc">
        <tbody><tr>
            <td colspan="2" class="apidoc_tbl_hdr">
                Cadence data receiving endpoint
            </td>
        </tr>

        <tr>
            <td style="width:32%;/*! font-weight: bold; */">URL</td>
            <td>http://ambalco.com/sensor/</td>
        </tr>
        <tr>
            <td style="/*! font-weight: bold; */">request method</td>
            <td>POST</td>
        </tr>
        <tr>
            <td colspan="2" class="apidoc_tbl_hdr">
                Required parameters
            </td>
        </tr>
        <tr>
            <td>nick</td>
            <td>The Nickname is used to sync cadence data only, it is not an authorization.</td>
        </tr>
		<tr>
            <td>club</td>
            <td>Used to sync cadence data when in club mode (multiplayer).</td>
        </tr>
        <tr>
            <td>cadence</td>
            <td>Integer from 0 to 200, cranks rotations per minute. The full 360<sup>O</sup> rotation counts. Normally, this value is used by the BikeTube to calculate power and speed.</td>
        </tr>
        <tr>
            <td>salt</td>
            <td>Random 8 chars string, generated upon the installation, on the first app run. This string is persistent and it is used to track the device: if one user uses nick "Foobar" right now, the user with another salt will be requested to enter another nick</td>
        </tr>
        <tr>
            <td colspan="2" class="apidoc_tbl_hdr">
                Optional parameters
            </td>
        </tr>
        <tr>
            <td>power</td>
            <td>If your app is advanced enough to measure the power the cyclist generates, you can submit this parameter. This param overrides the value calculated by Ambalco game engine. IMPORTANT: if your app or device doesn't measure the power, send <span style="color:red">-1</span> as a dummy value. Do not send 0.</td>
        </tr>
        <tr>
            <td>heart_rate</td>
            <td>If your app measures the heart rate with bluetooth or ant sensors, you can submit this data too, and it will be displayed on the big screen on the video overlay gauges.</td>
        </tr>

        <tr>
            <td colspan="2" class="apidoc_tbl_hdr">
                Response
            </td>
        </tr>

        <tr>
            <td style="width:32%;">power</td>
            <td>Status message, showing estimated power for the given cadence or syncronization failure human-readable explanation</td>
        </tr>
        <tr>
            <td>comment</td>
            <td>More detailed status message, containing some debug data</td>
        </tr>
        <tr>
            <td>need_nick</td>
            <td>returns 0 if nick is ok or 1 if nick is in use and another nick needed</td>
        </tr>

        </tbody></table>


    <!-- br><p>token</p><p>Your auth token</p><br-->

    <h2>Playground</h2>

    <table class="playgr_tbl">
        <tbody><tr>
            <td>
                <p><b>Request</b></p>

                <div class="req">
                    <div>nick<br> <input name="nick" id="api_nick" class="textinputs" type="text"></div>
					
					<div>club<br> <input name="club" id="api_club" class="textinputs" type="text"></div>

                    <div>cadence<span style="color:red">*</span><br> <input name="cadence" id="api_cadence" class="textinputs" type="text" value="0"></div>

                    <div>salt<span style="color:red">*</span><br> <input name="salt" id="api_salt" class="textinputs" type="text" value="arbitrary"></div>

                    <div>power<br> <input name="power" id="api_power" class="textinputs" type="text" value="-1"></div>

                    <div>heart rate<br> <input name="heart_rate" id="api_heart_rate" class="textinputs" type="text" value=""></div>

                </div>
                <br>
                <button class="btn" onclick="apiTest('tick')">Send once</button>   
                <button class="btn" onclick="apiTest('constant')">Send every second</button> 
                <button class="btn" onclick="apiTest('growing')">Every second, growing</button>
                <button class="btn" onclick="apiTest('variable')">Every second, variable</button>
                <button class="btn" onclick="stopTest()">Stop test</button>
            </td>

            <td>
                <p><b>Response</b></p>
                <div id="resp_div">
                </div>
            </td>
        </tr>
        </tbody></table>

</div>

<div class="clear"></div>

<script>
    var testInt = false;

    function apiTest(mode) {
        console.log("test started in [" + mode + "] mode");
        if (mode == 'tick') sendTestData(false, false, false);
        if (mode == 'constant' && testInt === false) testInt = window.setInterval("sendTestData(false, false, false)", 1000);
        if (mode == 'growing' && testInt === false) {
             cadence = $("#api_cadence").val();
             power = $("#api_power").val();
             heartRate = $("#api_heart_rate").val();
             if (cadence == '') cadence = 0;
             if (power == '') power = 0;
             if (heartRate == '') heartRate = 0;
             testInt = window.setInterval("sendGrowingData("+cadence+", "+power+", "+heartRate+")", 1000);
        }
        if (mode == 'variable' && testInt === false) {
             cadence = $("#api_cadence").val();
             power = $("#api_power").val();
             heartRate = $("#api_heart_rate").val();
             if (cadence == '') cadence = 0;
             if (power == '') power = 0;
             if (heartRate == '') heartRate = 0;
             testInt = window.setInterval("sendVariableData("+cadence+", "+power+", "+heartRate+")", 1000);
        }
    }

    function sendVariableData(cadence, power, heartRate) {
        cadence = Math.round(cadence - cadence*0.15 + cadence*(0.3*Math.random()));
        power = Math.round(power - power*0.15 + power*(0.3*Math.random()));
        heartRate = Math.round(heartRate - heartRate*0.5 + heartRate*(0.1*Math.random()));
        console.log("cadence", cadence);
        console.log("power", power);
        console.log("heartRate", heartRate);
        sendTestData(cadence, power, heartRate);
    }

    var grow_time = 5;
    var start_cadence = 0;
    var start_power = 0;    
    var start_heartRate = 80;    
    var curr_cadence = 0;
    var curr_power = 0;    
    var curr_heartRate = 80;

    function sendGrowingData(cadence, power, heartRate) {
          if (curr_cadence>=cadence && curr_power>=power && curr_heartRate>=heartRate ) {
             cadence = Math.round(cadence - cadence*0.15 + cadence*(0.3*Math.random()));
             power = Math.round(power - power*0.15 + power*(0.3*Math.random()));
             heartRate = Math.round(heartRate - heartRate*0.5 + heartRate*(0.1*Math.random()));
        } else {
             if (curr_cadence < cadence) {
                  curr_cadence = curr_cadence + Math.round((cadence - start_cadence)/grow_time);
                  cadence = curr_cadence;
             }
             if (curr_power < power) {
                  curr_power = curr_power + Math.round((power - start_power)/grow_time);
                  power = curr_power;
             }
             if (curr_heartRate < heartRate) {
                  curr_heartRate = curr_heartRate + Math.round((heartRate - start_heartRate)/grow_time);
                  heartRate = curr_heartRate;
             }
        } 

        console.log("cadence", cadence);
        console.log("power", power);
        console.log("heartRate", heartRate);
        sendTestData(cadence, power, heartRate);
    }


    function stopTest() {
        window.clearInterval(testInt);
        testInt = false;
    }

    function sendTestData(cadence, power, heartRate) {
        if (cadence === false) cadence = $("#api_cadence").val();
        if (power === false) power = $("#api_power").val();
        if (heartRate === false) heartRate = $("#api_heart_rate").val();
        $.ajax({
                    type: "POST",
                    url: "/sensor/",
                    data: {
                        "nick": $("#api_nick").val(),
						"club": $("#api_club").val(),
                        "salt": $("#api_salt").val(),
                        "cadence": cadence,
                        "power": power,
                        "hr": heartRate
                    }
                })
                .done(function( res ) {
                    $("#resp_div").html("<pre>" + JSON.stringify(res, null, 2) + "<pre>");
                });
    }

</script>
            </div>

        </div>
    </div>

    
                    </div> <!-- main wrap end -->


                <div id="foot_wr">

                    <div id="foot_left">
                        <a class="foot_padd" href="/page/team/">Cast <span class="mobile-hide pad-hide">&amp; credits</span></a>
                        <a class="foot_padd" href="/blog/">Blog</a>
                        <!-- a class="foot_padd mobile-hide" href="/page/api/">API</a -->
                        <a class="foot_padd" href="/page/contacts/">Contacts</a>
                    </div>

                    <div id="foot_right">
                        <a rel="nofollow" target="_blank" href="https://www.tiktok.com/@gethigh.fit"><img src="/i/icon/tiktok-icon.svg"></a>
                        <a rel="nofollow" target="_blank" href="https://instagram.com/gethigh.fitness"><img src="/i/icon/insta-icon.svg" style="width:1.5rem"></a>
                        <a rel="nofollow" target="_blank" href="https://www.youtube.com/channel/UCykfD3dPetIsRsRxxjgmaGQ"><img src="/i/icon/youtube-icon.svg"></a>
                        <a rel="nofollow" target="_blank" href="https://twitter.com/ambalco"><img src="/i/icon/twitter-icon.svg"></a>
                        <a rel="nofollow" target="_blank" href="https://www.linkedin.com/company/gethigh-fitness/"><img src="/i/icon/li-icon.svg"></a>
                        <a rel="nofollow" target="_blank" href="https://www.facebook.com/ambalco"><img src="/i/icon/facebook-icon.svg"></a>
                    </div>

                    <div class="clear"></div>
                    <div id="fb-root"></div>

                </div>


            </td></tr></table>

        <!-- foot was here -->

        </div><!-- wdth end -->

    </div>
</div>



        <div id="add_vid_form">
            <form id="msform">
                <!-- fieldsets -->
                <fieldset id="add_vid_fieldset">
                    <div id="add_vid_fields">
                        <h2 class="fs-title">Add YouTube video</h2>
                        <h3 class="fs-subtitle">to make it into the game</h3>
                        <input type="text" id="add_yt_code" placeholder="YouTube link" />
                        <input type="text" id="add_title" placeholder="Video title (optional)" />
                        <input type="text" id="add_nick" placeholder="Your nick" />
                        <!-- input type="text" name="add_description" placeholder="Description (optional)" / -->
                        <br><br>
                        <a onclick="toggle_modal()" class="add_vid_cancel">cancel</a>
                        <input type="submit" name="submit" class="submit action-button wel_green_btn" value="Add Video" />
                    </div>
                </fieldset>
                <div id="add_vid_form_errors"></div>
            </form>

        </div>

        <link href='//fonts.googleapis.com/css?family=Maven+Pro:400,700' rel='stylesheet' type='text/css'>

                        <link type="text/css" rel="stylesheet" href="/css/4d841cd.css?v102" />
                
                            <script src="/js/c71a356.js?v102"></script>
                
        
        
        
        <!-- script src="https://unpkg.com/vue/dist/vue.js"></script -->
                    <!-- Global site tag (gtag.js) - Google Analytics -->
                        <!-- Google Analytics -->
            <script>
                window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
                ga('create', 'UA-23790048-1', 'auto');
                ga('send', 'pageview');
            </script>
            <script async src='https://www.google-analytics.com/analytics.js'></script>
            <!-- End Google Analytics -->

            <!-- Yandex.Metrika counter -->
            <!-- script type="text/javascript" > (function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter47462014 = new Ya.Metrika2({ id:47462014, clickmap:true, trackLinks:true, accurateTrackBounce:true }); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/tag.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks2"); </script>
            <noscript><div><img src="https://mc.yandex.ru/watch/47462014" style="position:absolute; left:-9999px;" alt="" /></div></noscript -->
            <!-- /Yandex.Metrika counter -->
        
        
        <div id="modal" class="none"><div id="modal-body"></div></div>

    </body>
</html>
