Für EntwicklerFor developers

Sprache in Ihrem Produkt.
Drei Schritte, kein SDK-Zwang.

Sie tauschen einen Agent-Key gegen eine kurzlebige Realtime-Session und verbinden sich damit. Das ist die ganze Schnittstelle. Alles Weitere — Wissen, Stimme, Verhalten des Agenten — konfigurieren Sie in der Konsole, nicht im Code.

Voice inside your product.
Three steps, no SDK required.

You exchange an agent key for a short-lived realtime session and connect to it. That is the whole interface. Everything else — the agent's knowledge, voice and behaviour — you configure in the console, not in code.

Basis-URLBase URL
https://aioos.ai
AuthentifizierungAuthentication
Key im Bodykey in body
FormatFormat
application/json
CORS
offenopen
Limit
30 Anfragen/min30 requests/min

In drei Schritten live

Die Reihenfolge ist bindend: ohne Key keine Session, ohne Session keine Verbindung.

Live in three steps

The order is binding: no key, no session — no session, no connection.

Agent-Key holen

Den Key finden Sie in der Konsole unter Ihrem Agenten. Er beginnt mit wk_ und ist veröffentlichbar — er ist dafür gebaut, im Browser-Code zu stehen. Beschränken Sie ihn dort auf Ihre Domains, dann ist er auch nur von dort nutzbar.

Zur Konsole →

Get an agent key

You find the key in the console, under your agent. It starts with wk_ and is publishable — it is built to sit in browser code. Restrict it to your own domains there, and it only works from those.

Open the console →

Session anlegen

Ein POST gegen /v1/session. Kein Auth-Header — der Key reist im Body. Die Antwort gilt für genau eine Sitzung.

Create a session

A POST to /v1/session. No auth header — the key travels in the body. The response is good for exactly one session.

Session anlegenCreate session
# -> token, server_url, ice_servers
curl -X POST https://aioos.ai/v1/session \
  -H "Content-Type: application/json" \
  -d '{"key":"wk_YOUR_KEY","page_origin":"https://your-domain.com"}'

Verbinden und sprechen

Verbinden Sie sich mit dem zurückgegebenen server_url — immer mit dem Wert aus der Antwort, nie mit einer fest eingetragenen Adresse. Ist ice_servers gefüllt, reichen Sie es durch; steht dort null, verbinden Sie ohne.

Connect and talk

Connect using the returned server_url — always the value from the response, never a hardcoded address. If ice_servers is filled, pass it through; if it is null, connect without it.

VerbindenConnect
import { Room } from "livekit-client";

const room = new Room(ice_servers ? { rtcConfig: { iceServers: ice_servers } } : {});
await room.connect(server_url, token);
await room.localParticipant.setMicrophoneEnabled(true);

Chatbot auf Ihrer Website

Wenn Sie nichts selbst bauen wollen: eine Zeile im HTML, und der Chatbot sitzt auf der Seite. Der Loader übernimmt Session-Aufbau und Mikrofon selbst.

Chatbot on your website

If you would rather not build anything: one line of HTML and the chatbot sits on the page. The loader handles the session and the microphone by itself.

Vor </body> einfügenPaste before </body>
<script src="https://aioos.ai/embed.js" async></script>
<aioos-widget agent-id="wk_YOUR_KEY"
              launcher="orb"
              position="right"></aioos-widget>

Das ist genau das Snippet, das dir das Widget-Studio in der Konsole erzeugt — kopiere es am besten von dort, dann sind Farbe, Begrüßung und Name schon eingetragen.This is exactly the snippet the Widget Studio in the console generates for you — copy it from there and your colour, greeting and name are already filled in.

AttributAttribute StandardDefault BedeutungMeaning
agent-idPflichtrequired Ihr Agent-Key (wk_…).Your agent key (wk_…).
launcheroptionalpill pill, icon oderor orb.
positionoptionalright right oderor left.
accent, theme, greeting, nameoptional Aussehen und Begrüßung — am einfachsten aus dem Widget-Studio übernehmen.Appearance and greeting — easiest taken from the Widget Studio.

Referenz — POST /v1/session

Die einzige öffentliche Schnittstelle. Sie ist bewusst klein gehalten.

Anfrage

Reference — POST /v1/session

The only public endpoint. It is deliberately small.

Request

FeldField TypType BeschreibungDescription
keyPflichtrequiredstring Ihr Agent-Key (wk_…).Your agent key (wk_…).
page_originoptionalstring Aus dem Browser location.origin senden. Pflicht, sobald der Key eine Domain-Liste trägt; serverseitige Aufrufe dürfen es weglassen, solange keine Liste hinterlegt ist.Send location.origin from browsers. Required once the key carries an origin allowlist; server-side callers may omit it while the key has no allowlist.

Antwort · 200Response · 200

FeldField TypType BeschreibungDescription
tokenstring Einmal-Credential für genau eine Sitzung. Nicht zwischenspeichern, nicht weitergeben.Single-use credential for exactly one session. Do not cache or share it.
server_urlstring WebSocket-Adresse. Immer den zurückgegebenen Wert verwenden.WebSocket address. Always use the returned value.
ice_serversarray | null Kurzlebige TURN-Zugangsdaten für restriktive Firmennetze. Bei null ohne verbinden.Short-lived TURN credentials for restrictive corporate networks. On null, connect without them.

FehlerErrors

Fehler kommen als {"error": "…"} zurück.Errors come back as {"error": "…"}.

Statuserror BedeutungMeaning
400bad_body / bad_key Ungültiges JSON, oder der Key ist kein gültiger wk_…-String.Malformed JSON, or the key is not a valid wk_… string.
402no_minutes Das Minutenkontingent Ihres Tarifs ist leer.Your plan's minute pool is empty.
403unknown_key Der Key existiert nicht oder wurde widerrufen.The key does not exist or was revoked.
403origin_not_allowed Der Key beschränkt Domains und page_origin steht nicht auf der Liste.The key restricts origins and page_origin is not on the list.
429rate_limited 10 Anfragen/min pro IP, 30 pro Key. Zurücknehmen und erneut versuchen.10 requests/min per IP, 30 per key. Back off and retry.
5xxinternal Vorübergehendes Serverproblem. Mit Backoff wiederholen.Transient server problem. Retry with backoff.

Mobile Apps & Backends

Dieselbe Schnittstelle, derselbe Ablauf — nur die Client-Bibliothek ist eine andere.

Legen Sie die Session serverseitig an, wenn Sie den Key nicht in die App ausliefern wollen: Ihr Backend ruft /v1/session auf und reicht token und server_url an die App weiter. Auf dem Gerät verbinden Sie damit über die Realtime-Bibliothek Ihrer Plattform (iOS, Android oder React Native). Der schnellste Weg zu einem funktionierenden Prototyp bleibt ein WebView auf eine Seite mit dem Chatbot-Snippet — die Schritt-für-Schritt-WebView-Anleitung (Mikrofon-Freigabe fuer iOS und Android) steht in der Dokumentation.

Ehrlich gesagt: ein eigenes, installierbares AIOOS-SDK für iOS oder Android gibt es heute nicht. Was es gibt, ist diese REST-Schnittstelle plus die Realtime-Bibliotheken, die ohnehin für jede Plattform existieren. Wenn Sie ein natives Paket brauchen, sagen Sie uns, für welche Plattform — das entscheidet die Reihenfolge.

Mobile apps & backends

Same interface, same flow — only the client library differs.

Create the session server-side if you would rather not ship the key inside the app: your backend calls /v1/session and hands token and server_url to the app. On the device you connect with the realtime library for your platform (iOS, Android or React Native). The fastest route to a working prototype is still a WebView pointed at a page carrying the chatbot snippet — the step-by-step WebView guide (microphone permission for iOS and Android) is in the documentation.

To be straight with you: there is no installable AIOOS SDK for iOS or Android today. What exists is this REST endpoint plus the realtime libraries that ship for every platform anyway. If you need a native package, tell us which platform — that is what decides the order of work.