Guides
SDKs
One published Flutter widget SDK, plus a REST API and OpenAPI spec you can call from any language.
AskAIs is protocol-first: one OpenAPI 3.1 spec, one WebSocket protocol, and HMAC-signed webhooks. You can call the API from any language and render your own UI. Today we publish one packaged UI SDK, the native Flutter widget.
The published SDK: Flutter widget
The one SDK we ship today lives in sdks/flutter-widget/. It is a full, themeable chat UI that talks to the REST API and WebSocket for you. Add it to yourpubspec.yaml as a local package:
# pubspec.yaml
dependencies:
singchat_widget:
path: ../sdks/flutter-widgetiOS and Android
There is no separate native SDK for iOS or Android. Two supported paths:
- WebView (recommended), load the web widget from
/api/widget-embed. It is the full-feature widget and auto-updates, so you never ship an app release just to get new chat features. - REST API, call the API directly and render your own native UI.
There are no ready-made SwiftUI or Jetpack Compose chat views. You either embed the WebView or build the UI yourself on top of the API.
Any other language: call the REST API
We do not ship pre-built clients for Python, Go, Rust, C#, Java, PHP, Ruby, or similar, and there are no official React Native, Unity, or Unreal SDKs. Instead there is a public REST API with an OpenAPI 3.1 spec, so you can call it over plain HTTP or generate your own client:
- OpenAPI:
GET /api/v1/openapi.json - WebSocket: see Web widget docs for event JSON
Generate a client for the language you want with openapi-generator:
# generate a client from the public spec
npx @openapitools/openapi-generator-cli generate \
-i https://singchat.org/api/v1/openapi.json \
-g python \
-o ./singchat-clientWhat AskAIs ships
Beyond the widget, these product capabilities are live today:
- Unified inbox across the web widget, Telegram, and WhatsApp, with an X (Twitter) slot ready.
- Platform-hosted AI: no API key required, token-metered with auto-topup and human fallback, or bring your own key.
- AI Training Center: crawl your site, upload PDF, Word, or DOCX files, add Q&A pairs from a CSV, and rehearse in a pre-launch Playground.
- 50-language help center for self-serve articles and FAQ.
- Full white-label branding across every customer-facing surface.
- Anti-blocking multi-domain delivery for the widget.
Quick examples
Flutter widget
import 'package:singchat_widget/singchat_widget.dart';
// mount the themeable chat UI
SingChatWidget(
appId: 'ws_abc123',
user: SingChatUser(
externalId: 'user_42',
email: 'ada@example.com',
),
)iOS WebView
import WebKit
let webView = WKWebView(frame: view.bounds)
let url = URL(string: "https://singchat.org/api/widget-embed?appId=ws_abc123")!
webView.load(URLRequest(url: url))
view.addSubview(webView)Android WebView
val webView = WebView(this)
webView.settings.javaScriptEnabled = true
webView.loadUrl("https://singchat.org/api/widget-embed?appId=ws_abc123")
setContentView(webView)Raw curl
# identify against the REST API (any language, no library)
curl https://singchat.org/api/v1/auth/identify \
-H "Content-Type: application/json" \
-d '{ "appId": "ws_abc123", "email": "ada@example.com" }'