CINXE.COM

KNOT SVaaS docs

<!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="canonical" href="https://doc.knotcity.io/svaas/"> <link rel="shortcut icon" href="images/favicon.png"> <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-6.1.6"> <title>KNOT SVaaS docs</title> <link rel="stylesheet" href="assets/stylesheets/main.19753c6b.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.196e0c26.min.css"> <meta name="theme-color" content="#2094f3"> <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback"> <style>body,input{font-family:"Roboto",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono",SFMono-Regular,Consolas,Menlo,monospace}</style> <link rel="stylesheet" href="css/extra.css"> </head> <body dir="ltr" data-md-color-scheme="" data-md-color-primary="blue" data-md-color-accent="blue"> <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> <label class="md-overlay" for="__drawer"></label> <div data-md-component="skip"> <a href="#welcome-to-knot-svaas" class="md-skip"> Skip to content </a> </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header-nav md-grid" aria-label="Header"> <a href="https://doc.knotcity.io/svaas/" title="KNOT SVaaS docs" class="md-header-nav__button md-logo" aria-label="KNOT SVaaS docs"> <img src="images/logo.png" alt="logo"> </a> <label class="md-header-nav__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header-nav__title" data-md-component="header-title"> <div class="md-header-nav__ellipsis"> <span class="md-header-nav__topic md-ellipsis"> KNOT SVaaS docs </span> <span class="md-header-nav__topic md-ellipsis"> Home </span> </div> </div> </nav> </header> <div class="md-container" data-md-component="container"> <main class="md-main" data-md-component="main"> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component="navigation"> <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="https://doc.knotcity.io/svaas/" title="KNOT SVaaS docs" class="md-nav__button md-logo" aria-label="KNOT SVaaS docs"> <img src="images/logo.png" alt="logo"> </a> KNOT SVaaS docs </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc"> <label class="md-nav__link md-nav__link--active" for="__toc"> Home <span class="md-nav__icon md-icon"></span> </label> <a href="." class="md-nav__link md-nav__link--active"> Home </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="#introduction" class="md-nav__link"> Introduction </a> </li> <li class="md-nav__item"> <a href="#get-started" class="md-nav__link"> Get started </a> </li> <li class="md-nav__item"> <a href="#available-apis" class="md-nav__link"> Available APIs </a> </li> <li class="md-nav__item"> <a href="#sdks" class="md-nav__link"> SDKs </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="api-overview/" class="md-nav__link"> API overview </a> </li> <li class="md-nav__item"> <a href="http-signature/" class="md-nav__link"> HTTP signature </a> </li> <li class="md-nav__item"> <a href="handling-events/" class="md-nav__link"> Handling events </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5" > <label class="md-nav__link" for="nav-5"> Station API <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Station API" data-md-level="1"> <label class="md-nav__title" for="nav-5"> <span class="md-nav__icon md-icon"></span> Station API </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="station/" class="md-nav__link"> Overview </a> </li> <li class="md-nav__item"> <a href="station/integration-levels/" class="md-nav__link"> Integration levels </a> </li> <li class="md-nav__item"> <a href="station/free-floating-integration/" class="md-nav__link"> Free-floating integration </a> </li> <li class="md-nav__item"> <a href="station/request/" class="md-nav__link"> Request </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5-5" type="checkbox" id="nav-5-5" > <label class="md-nav__link" for="nav-5-5"> Events <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Events" data-md-level="2"> <label class="md-nav__title" for="nav-5-5"> <span class="md-nav__icon md-icon"></span> Events </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="station/events/unlocked/" class="md-nav__link"> Unlocked </a> </li> <li class="md-nav__item"> <a href="station/events/locked/" class="md-nav__link"> Locked </a> </li> <li class="md-nav__item"> <a href="station/events/boot/" class="md-nav__link"> Boot </a> </li> <li class="md-nav__item"> <a href="station/events/state/" class="md-nav__link"> State </a> </li> <li class="md-nav__item"> <a href="station/events/connected/" class="md-nav__link"> Connected </a> </li> <li class="md-nav__item"> <a href="station/events/disconnected/" class="md-nav__link"> Disconnected </a> </li> <li class="md-nav__item"> <a href="station/events/badge-rfid/" class="md-nav__link"> Badge RFID </a> </li> <li class="md-nav__item"> <a href="station/events/unexpected-unlock/" class="md-nav__link"> Unexpected unlock </a> </li> <li class="md-nav__item"> <a href="station/events/unlock-failed/" class="md-nav__link"> Unlock failed </a> </li> <li class="md-nav__item"> <a href="station/events/alert/" class="md-nav__link"> Alert </a> </li> <li class="md-nav__item"> <a href="station/events/fault/" class="md-nav__link"> Fault </a> </li> <li class="md-nav__item"> <a href="station/events/configured/" class="md-nav__link"> Configured </a> </li> <li class="md-nav__item"> <a href="station/events/config-failed/" class="md-nav__link"> Config failed </a> </li> <li class="md-nav__item"> <a href="station/events/shake/" class="md-nav__link"> Shake (deprecated) </a> </li> <li class="md-nav__item"> <a href="station/events/critical-energy/" class="md-nav__link"> Critical energy (deprecated) </a> </li> <li class="md-nav__item"> <a href="station/events/spot-defect/" class="md-nav__link"> Spot defect (deprecated) </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6" > <label class="md-nav__link" for="nav-6"> Vehicle API <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Vehicle API" data-md-level="1"> <label class="md-nav__title" for="nav-6"> <span class="md-nav__icon md-icon"></span> Vehicle API </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="vehicle/" class="md-nav__link"> Overview </a> </li> <li class="md-nav__item"> <a href="vehicle/request/" class="md-nav__link"> Request </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6-3" type="checkbox" id="nav-6-3" > <label class="md-nav__link" for="nav-6-3"> Events <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Events" data-md-level="2"> <label class="md-nav__title" for="nav-6-3"> <span class="md-nav__icon md-icon"></span> Events </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="vehicle/events/unlocked/" class="md-nav__link"> Unlocked </a> </li> <li class="md-nav__item"> <a href="vehicle/events/locked/" class="md-nav__link"> Locked </a> </li> <li class="md-nav__item"> <a href="vehicle/events/location/" class="md-nav__link"> Location </a> </li> <li class="md-nav__item"> <a href="vehicle/events/status/" class="md-nav__link"> Status </a> </li> <li class="md-nav__item"> <a href="vehicle/events/alert/" class="md-nav__link"> Alert </a> </li> <li class="md-nav__item"> <a href="vehicle/events/fault/" class="md-nav__link"> Fault </a> </li> <li class="md-nav__item"> <a href="vehicle/events/lock-fail/" class="md-nav__link"> Lock fail </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7" > <label class="md-nav__link" for="nav-7"> Simulator <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Simulator" data-md-level="1"> <label class="md-nav__title" for="nav-7"> <span class="md-nav__icon md-icon"></span> Simulator </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="simulator/station/" class="md-nav__link"> Station </a> </li> <li class="md-nav__item"> <a href="simulator/vehicle/" class="md-nav__link"> Vehicle </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="/" class="md-nav__link"> Back to the portal </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component="toc"> <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="#introduction" class="md-nav__link"> Introduction </a> </li> <li class="md-nav__item"> <a href="#get-started" class="md-nav__link"> Get started </a> </li> <li class="md-nav__item"> <a href="#available-apis" class="md-nav__link"> Available APIs </a> </li> <li class="md-nav__item"> <a href="#sdks" class="md-nav__link"> SDKs </a> </li> </ul> </nav> </div> </div> </div> <div class="md-content"> <article class="md-content__inner md-typeset"> <h1 id="welcome-to-knot-svaas">Welcome to KNOT SVaaS</h1> <h2 id="introduction">Introduction</h2> <p>Knot SVaaS (Vehicle and Station as a Service) is a collection of API to control hardware, like KNOT docking stations or e-scooters with IoT modules. This documentation explains how to integrate your mobility product with our API.</p> <h2 id="get-started">Get started</h2> <p>To begin, we recommend to read first the <a href="api-overview/">API overview</a>, then jump on an explanation why and how to <a href="http-signature/">sign HTTP request</a> and finally implement the APIs you want.</p> <h2 id="available-apis">Available APIs</h2> <ul> <li><a href="station/">Station API v1</a> (Control Knot docking station)</li> <li><a href="vehicle/">Vehicle API v1</a> (Control various e-scooter with IoT)</li> </ul> <h2 id="sdks">SDKs</h2> <p>For simpler and faster integration, we provide SDKs for the following stacks:</p> <ul> <li>NodeJS: <a href="https://github.com/knotcity/svaas-sdk">@knotcity/svaas-sdk</a></li> </ul> <p>Mail us at dev@knot.city if you want us to support other environments.</p> </article> </div> </div> </main> <footer class="md-footer"> <div class="md-footer-nav"> <nav class="md-footer-nav__inner md-grid" aria-label="Footer"> <a href="api-overview/" class="md-footer-nav__link md-footer-nav__link--next" rel="next"> <div class="md-footer-nav__title"> <div class="md-ellipsis"> <span class="md-footer-nav__direction"> Next </span> API overview </div> </div> <div class="md-footer-nav__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg> </div> </a> </nav> </div> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> </div> </div> </div> </footer> </div> <script src="assets/javascripts/vendor.fd16492e.min.js"></script> <script src="assets/javascripts/bundle.7836ba4d.min.js"></script><script id="__lang" type="application/json">{"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}</script> <script> app = initialize({ base: ".", features: [], search: Object.assign({ worker: "assets/javascripts/worker/search.4ac00218.min.js" }, typeof search !== "undefined" && search) }) </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10