neko/webpage/docs/api
2025-03-22 17:52:56 +01:00
..
schemas add API reference. 2025-02-18 22:44:48 +01:00
batch.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
broadcast-start.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
broadcast-status.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
broadcast-stop.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
clipboard-get-image.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
clipboard-get-text.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
clipboard-set-text.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
control-give.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
control-release.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
control-request.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
control-reset.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
control-status.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
control-take.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
current-session.tag.mdx add API reference. 2025-02-18 22:44:48 +01:00
general.tag.mdx add API reference. 2025-02-18 22:44:48 +01:00
healthcheck.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
keyboard-map-get.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
keyboard-map-set.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
keyboard-modifiers-get.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
keyboard-modifiers-set.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
login.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
logout.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
members-bulk-delete.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
members-bulk-update.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
members-create.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
members-get-profile.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
members-list.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
members-remove.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
members-update-password.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
members-update-profile.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
members.tag.mdx add API reference. 2025-02-18 22:44:48 +01:00
metrics.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
profile.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
README.mdx change API index page. 2025-03-22 17:52:56 +01:00
room-broadcast.tag.mdx add API reference. 2025-02-18 22:44:48 +01:00
room-clipboard.tag.mdx add API reference. 2025-02-18 22:44:48 +01:00
room-control.tag.mdx add API reference. 2025-02-18 22:44:48 +01:00
room-keyboard.tag.mdx add API reference. 2025-02-18 22:44:48 +01:00
room-screen.tag.mdx add API reference. 2025-02-18 22:44:48 +01:00
room-settings.tag.mdx add API reference. 2025-02-18 22:44:48 +01:00
room-upload.tag.mdx add API reference. 2025-02-18 22:44:48 +01:00
screen-cast-image.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
screen-configuration-change.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
screen-configuration.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
screen-configurations-list.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
screen-shot-image.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
session-disconnect.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
session-get.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
session-remove.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
sessions-get.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
sessions.tag.mdx add API reference. 2025-02-18 22:44:48 +01:00
settings-get.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
settings-set.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
sidebar.ts add API reference. 2025-02-18 22:44:48 +01:00
stats.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
upload-dialog-close.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
upload-dialog.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
upload-drop.api.mdx change API index page. 2025-03-22 17:52:56 +01:00
whoami.api.mdx change API index page. 2025-03-22 17:52:56 +01:00

---
id: neko-api
title: "Neko API Reference"
description: "Neko uses WebRTC and WebSocket besides REST API to provide real-time video streaming, interactive collaboration, and remote desktop functionality."
sidebar_label: Introduction
sidebar_position: 0
hide_title: true
custom_edit_url: null
---

import ApiLogo from "@theme/ApiLogo";
import Heading from "@theme/Heading";
import SchemaTabs from "@theme/SchemaTabs";
import TabItem from "@theme/TabItem";
import Export from "@theme/ApiExplorer/Export";


<Export
  url={"https://raw.githubusercontent.com/m1k1o/neko/refs/heads/master/server/openapi.yaml"}
  proxy={undefined}
>
  
</Export>

<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Neko API Reference"}
>
</Heading>



Neko uses WebRTC and WebSocket besides REST API to provide real-time video streaming, interactive collaboration, and remote desktop functionality.

### Core Technologies

- **Video Streaming over WebRTC**
  - Neko leverages **WebRTC** for real-time, low-latency, high-quality video and audio streaming.
  - Keyboard and mouse events are transmitted over the same WebRTC connection for seamless interaction.

- **Real-Time Signaling and Communication over WebSocket**
  - **WebSocket** is used for sSignaling in WebRTC (e.g., session establishment, ICE candidate exchange).  
  - Live chat, session updates, and keyboard/mouse fallback are handled over WebSocket.

- **REST API for Everything Else**
  - **Authentication & Session Management** - Secure user authentication and session handling.  
  - **Room and User Management** - Creating, modifying, and controlling user access to rooms.  
  - **Desktop Controls** - Adjusting screen configurations, managing keyboard and mouse events.
  - **System Health & Metrics** - Retrieving system health checks and operational insights.  

### How It All Works Together

1. **WebRTC** handles media streaming for **real-time video, audio and data**.
2. **WebSocket** ensures a **persistent, bidirectional** connection for low-latency interactions.  
3. **REST API** provides **fine-grained control** over user access, and room configuration.

For more details, refer to the full API documentation.


<div
  style={{"marginBottom":"2rem"}}
>
  <Heading
    id={"authentication"}
    as={"h2"}
    className={"openapi-tabs__heading"}
    children={"Authentication"}
  >
  </Heading><SchemaTabs
    className={"openapi-tabs__security-schemes"}
  >
    <TabItem
      label={"API Key: CookieAuth"}
      value={"CookieAuth"}
    >
      
      
      Authentication using a session cookie.
      
      <div>
        <table>
          <tbody>
            <tr>
              <th>
                Security Scheme Type:
              </th><td>
                apiKey
              </td>
            </tr><tr>
              <th>
                Header parameter name:
              </th><td>
                NEKO_SESSION
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </TabItem><TabItem
      label={"HTTP: Bearer Auth"}
      value={"BearerAuth"}
    >
      
      
      Authentication using a Bearer token.
      
      <div>
        <table>
          <tbody>
            <tr>
              <th>
                Security Scheme Type:
              </th><td>
                http
              </td>
            </tr><tr>
              <th>
                HTTP Authorization Scheme:
              </th><td>
                bearer
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </TabItem><TabItem
      label={"API Key: TokenAuth"}
      value={"TokenAuth"}
    >
      
      
      Authentication using a token passed as a query parameter.
      
      <div>
        <table>
          <tbody>
            <tr>
              <th>
                Security Scheme Type:
              </th><td>
                apiKey
              </td>
            </tr><tr>
              <th>
                Header parameter name:
              </th><td>
                token
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </TabItem>
  </SchemaTabs>
</div><div
  style={{"marginBottom":"var(--ifm-paragraph-margin-bottom)"}}
>
  <h3
    style={{"marginBottom":"0.25rem"}}
  >
    License
  </h3><a
    href={"http://www.apache.org/licenses/LICENSE-2.0.html"}
  >
    Apache 2.0
  </a>
</div>