# ScaiLabs Corporate Site documentation > Machine-readable index of every documentation page on ScaiLabs Corporate Site, following the [llmstxt.org](https://llmstxt.org/) convention. Each link below points at the rendered page. Append `.md` to any URL to get the raw markdown source (YAML frontmatter + body). The full text of all pages is available at `https://www.scailabs.ai/docs/llms-full.txt`. ## How to use this file - **Browse** — top-level `##` headings are products. `###` headings are sub-products. Pages appear as a bulleted list under each. - **Read one page** — fetch the URL or append `.md` for the source. - **Write/update** — see the REST API at `/api/v1/docs/...` (authenticated; agents use a scoped API key). The single MCP tool is `manage_documentation` with `action`-dispatched commands. ## ScaiCMS _Headless, AI-first content management — the system you're using now._ - [Concepts](https://www.scailabs.ai/docs/scaicms/concepts): The mental model: sites, content types, template packs, RBAC, search, MCP, and the docs subsystem. - [API keys](https://www.scailabs.ai/docs/scaicms/concepts/api-keys): Programmatic access for agents and services. Bound to a user OR a group; permissions flow through RBAC. - [Assets](https://www.scailabs.ai/docs/scaicms/concepts/assets): S3-compatible storage with API-proxied URLs and image variants. - [Content types & fields](https://www.scailabs.ai/docs/scaicms/concepts/content-types-and-fields): Define your data shape with content types; field types determine validation and editor UI. - [Docs subsystem (this!)](https://www.scailabs.ai/docs/scaicms/concepts/docs-subsystem): First-class documentation: global namespaces, versioned, markdown-native, hybrid-searchable, AI-native. - [MCP integration](https://www.scailabs.ai/docs/scaicms/concepts/mcp): ScaiCMS ships a Model Context Protocol server so AI agents are first-class clients. - [RBAC](https://www.scailabs.ai/docs/scaicms/concepts/rbac): Users have direct roles + roles inherited via group membership. Permissions are checked against site or content scope. - [Search](https://www.scailabs.ai/docs/scaicms/concepts/search): Hybrid BM25 + semantic search backed by Weaviate, with anchored snippets and per-namespace filters for docs. - [Sites & multi-tenancy](https://www.scailabs.ai/docs/scaicms/concepts/sites-and-multi-tenancy): Every piece of content belongs to a site. Sites are isolated; agents pass `X-Site-ID` on each request. - [Template packs](https://www.scailabs.ai/docs/scaicms/concepts/template-packs): Jinja2 themes packaged into S3, hot-swappable per site, declarative block types. - [ScaiCMS — AI-first Content Management](https://www.scailabs.ai/docs/scaicms/overview): An AI-first headless CMS with three services: backend API, admin UI, and a read-only delivery renderer. - [Reference](https://www.scailabs.ai/docs/scaicms/reference): Field types, REST API, CLI commands, configuration, and the full permission list. - [API endpoints](https://www.scailabs.ai/docs/scaicms/reference/api-endpoints): The full REST surface. The auto-generated Swagger is at /docs (the FastAPI one, not these docs). - [CLI reference](https://www.scailabs.ai/docs/scaicms/reference/cli): Every command-line tool that ships with ScaiCMS. - [Configuration](https://www.scailabs.ai/docs/scaicms/reference/configuration): Environment variables, defaults, and what each one tunes. - [Field types reference](https://www.scailabs.ai/docs/scaicms/reference/field-types): Every built-in field type with validation and editor UI. - [Permissions reference](https://www.scailabs.ai/docs/scaicms/reference/permissions): The full list of seeded permission slugs. - [Troubleshooting](https://www.scailabs.ai/docs/scaicms/troubleshooting): Common symptoms and their fixes. If your problem isn't here, file an issue with logs. - [Auth & API keys](https://www.scailabs.ai/docs/scaicms/troubleshooting/auth-and-api-keys): 401/403 errors and how to read them. - [Cache invalidation](https://www.scailabs.ai/docs/scaicms/troubleshooting/cache-invalidation): When the site shows stale content after a change. - [Search index issues](https://www.scailabs.ai/docs/scaicms/troubleshooting/search-index-issues): Pages not appearing in search, or stale snippets. - [Template rendering](https://www.scailabs.ai/docs/scaicms/troubleshooting/template-rendering): TemplateNotFound, missing variables, dict.items() gotcha. - [Tutorials](https://www.scailabs.ai/docs/scaicms/tutorials): End-to-end walkthroughs from a blank dev environment to a working integration. - [Connecting an agent](https://www.scailabs.ai/docs/scaicms/tutorials/connecting-an-agent): Hand an API key to an LLM agent over MCP or REST and let it author content. - [Your first content type](https://www.scailabs.ai/docs/scaicms/tutorials/first-content-type): Model a Blog Post, create an instance, and consume it through the API. - [First template pack](https://www.scailabs.ai/docs/scaicms/tutorials/first-template-pack): Build, package, and deploy a complete theme. - [Writing docs with an agent (Python SDK)](https://www.scailabs.ai/docs/scaicms/tutorials/writing-docs-with-an-agent): Use scaicms-docs to push documentation from a script or CI pipeline. ## ScaiControl _Unified control plane for managing ScaiLabs services, infrastructure, and tenants._ - [Changelog](https://www.scailabs.ai/docs/scaicontrol/changelog): Notable changes by milestone. ScaiControl uses migration numbers (`001`–`022+`) as its versioning anchor; release tags follow the migration that bumped the schema. - [Concepts](https://www.scailabs.ai/docs/scaicontrol/concepts): Background and mental models for ScaiControl. Read these to understand WHY the system is shaped this way — the reference pages will then make sense as a description of the result rather than a list of facts. - [Architecture](https://www.scailabs.ai/docs/scaicontrol/concepts/architecture): ScaiControl is the operator-grade control plane that ties the ScaiLabs service ecosystem together. It owns the billing and subscription relationships, maintains a registry of installed services, and exposes a single admi - [Authentication & RBAC](https://www.scailabs.ai/docs/scaicontrol/concepts/authentication-and-rbac): ScaiControl trusts ScaiKey for identity. Every request to a protected endpoint carries a JWT issued by ScaiKey; ScaiControl validates the signature, extracts claims, merges in local roles, and dispatches the request with - [Billing profiles](https://www.scailabs.ai/docs/scaicontrol/concepts/billing-profiles): Two distinct objects hold the billing-side identity of every invoice: - [Invoice lifecycle](https://www.scailabs.ai/docs/scaicontrol/concepts/invoice-lifecycle): Invoices in ScaiControl follow a strict state machine designed to satisfy EU invoicing rules: once finalised, an invoice is immutable. Corrections happen via credit notes, not edits. - [Multi-tenancy](https://www.scailabs.ai/docs/scaicontrol/concepts/multi-tenancy): ScaiControl is a three-level hierarchy: **Platform → Partner → Tenant**. Every billable resource hangs off one of those levels. Understanding the model is the prerequisite to everything else here. - [Plans and pricing](https://www.scailabs.ai/docs/scaicontrol/concepts/plans-and-pricing): A plan is the smallest billable unit: a price + a billing period + a set of quotas + a tier. Every active service has one or more plans; subscriptions reference plans by ID. - [Service packs](https://www.scailabs.ai/docs/scaicontrol/concepts/service-packs): A service pack is a curated bundle: one billable line that includes several `(service, plan)` pairs. Useful for "everything you need to evaluate ScaiLabs" (a trial bundle), regional add-on combos, or seat-priced enterpri - [Subscriptions](https://www.scailabs.ai/docs/scaicontrol/concepts/subscriptions): A subscription is the active link between a tenant (the buyer) and a `(service, plan)` (what they're paying for). It carries the billing period, the trial date, the current state, and any pending cancellation. This page - [Templates](https://www.scailabs.ai/docs/scaicontrol/concepts/templates): ScaiControl ships a visual template designer for invoices and emails. Templates are stored in the `invoice_templates` table, edited via a GrapesJS-based canvas in the admin UI, rendered with Jinja2 + WeasyPrint (PDFs) or - [VAT and reverse charge](https://www.scailabs.ai/docs/scaicontrol/concepts/vat-and-reverse-charge): ScaiControl ships with EU-compliant VAT determination. At invoice finalisation, the system looks at the seller's country, the buyer's country, the buyer's VAT number, and whether the buyer is a business, and picks the ri - [Webhooks (outbound)](https://www.scailabs.ai/docs/scaicontrol/concepts/webhooks): ScaiControl emits webhook events for every billing- and subscription-related state change. External systems (CRM, accounting bridges, dashboards) subscribe to topic patterns and receive signed HTTP POSTs. - [Overview](https://www.scailabs.ai/docs/scaicontrol/overview): ScaiControl is the centralised management, provisioning, and billing platform for the ScaiLabs ecosystem. It is the single point of entry for customers to discover, subscribe to, provision, use, and pay for ScaiLabs serv - [Quickstart](https://www.scailabs.ai/docs/scaicontrol/quickstart): Get a local ScaiControl running end-to-end in about 15 minutes. By the end you'll have: - [Reference](https://www.scailabs.ai/docs/scaicontrol/reference): Look up specific endpoints, schemas, configuration values, and state transitions. These pages are the source of truth for ScaiControl's external surface. - [API reference](https://www.scailabs.ai/docs/scaicontrol/reference/api): The full HTTP API surface, organised by OpenAPI tag. Each page below is auto-generated from the live OpenAPI spec served at `GET /openapi.json` — so it always reflects the deployed version, including the exact JSON schem - [Admin — general](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin): **9 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Admin — accounting integrations](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin-accounting): **9 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Admin — billing & invoices](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin-billing): **26 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Admin — service entrypoints](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin-entrypoints): **4 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Admin — groups & roles](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin-groups): **4 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Admin — lookup endpoints](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin-lookups): **3 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Admin — service packs](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin-packs): **5 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Admin — partners](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin-partners): **6 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Admin — platform settings](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin-platform): **2 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Admin — provisioning workflows](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin-provisioning): **4 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Admin — subscriptions](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin-subscriptions): **7 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Admin — tenants](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin-tenants): **3 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Admin — usage](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin-usage): **2 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Admin — users](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin-users): **6 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Admin — webhook subscribers](https://www.scailabs.ai/docs/scaicontrol/reference/api/admin-webhook-subscriptions): **4 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Authentication](https://www.scailabs.ai/docs/scaicontrol/reference/api/auth): **3 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Billing (tenant)](https://www.scailabs.ai/docs/scaicontrol/reference/api/billing): **17 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Catalog](https://www.scailabs.ai/docs/scaicontrol/reference/api/catalog): **4 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Service entrypoints](https://www.scailabs.ai/docs/scaicontrol/reference/api/entrypoints): **1 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Metering](https://www.scailabs.ai/docs/scaicontrol/reference/api/metering): **6 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Notifications](https://www.scailabs.ai/docs/scaicontrol/reference/api/notifications): **3 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Organization](https://www.scailabs.ai/docs/scaicontrol/reference/api/organization): **4 endpoints** in this group. All paths are prefixed with `/api/v1`. - [API overview](https://www.scailabs.ai/docs/scaicontrol/reference/api/overview): ScaiControl exposes a single REST API at `/api/v1`. All endpoints take and return JSON unless explicitly noted. - [Provisioning](https://www.scailabs.ai/docs/scaicontrol/reference/api/provisioning): **4 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Service registry](https://www.scailabs.ai/docs/scaicontrol/reference/api/registry): **4 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Service-to-platform billing](https://www.scailabs.ai/docs/scaicontrol/reference/api/service-billing): **7 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Service packs (tenant)](https://www.scailabs.ai/docs/scaicontrol/reference/api/service-packs): **5 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Subscriptions (tenant)](https://www.scailabs.ai/docs/scaicontrol/reference/api/subscriptions): **6 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Untagged](https://www.scailabs.ai/docs/scaicontrol/reference/api/untagged): **2 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Uploads](https://www.scailabs.ai/docs/scaicontrol/reference/api/uploads): **3 endpoints** in this group. All paths are prefixed with `/api/v1`. - [Inbound webhooks (payment providers)](https://www.scailabs.ai/docs/scaicontrol/reference/api/webhooks): **4 endpoints** in this group. All paths are prefixed with `/api/v1`. - [CLI reference](https://www.scailabs.ai/docs/scaicontrol/reference/cli): The `scaicontrol` CLI is installed alongside the backend Python package (`pip install -e .` inside `backend/` exposes it as a console script). It wraps three command groups: `setup`, `sync`, and `admin`. - [Configuration](https://www.scailabs.ai/docs/scaicontrol/reference/configuration): ScaiControl reads its configuration from environment variables via `backend/src/scaicontrol/config.py` (Pydantic `BaseSettings`). The complete set: - [Events](https://www.scailabs.ai/docs/scaicontrol/reference/events): ScaiControl emits 14 lifecycle webhook topics, all under v1.0 today. Two pages cover them: - [Event catalog](https://www.scailabs.ai/docs/scaicontrol/reference/events/catalog): The full topic catalog in the launch (v1.0) emission. See [Overview](./overview) for the envelope and signing. - [Events reference — overview](https://www.scailabs.ai/docs/scaicontrol/reference/events/overview): ScaiControl emits a defined set of webhook events for every billing- and subscription-related state change. This page covers the envelope, signing, and delivery semantics. The full topic catalog with payload schemas is i - [State machines](https://www.scailabs.ai/docs/scaicontrol/reference/state-machines): Quick reference for every formal state machine in ScaiControl, with allowed transitions, the actor that drives each transition, and the side effects that fire on entry. - [Webhooks reference](https://www.scailabs.ai/docs/scaicontrol/reference/webhooks): Operational details on ScaiControl's outbound webhook dispatcher. For the topic catalog see [Events](./events/catalog); for the conceptual overview see [Concepts: webhooks](../concepts/webhooks). - [Troubleshooting](https://www.scailabs.ai/docs/scaicontrol/troubleshooting): Targeted diagnostic guides for the most common production issues. Each page walks through what the system actually does, where it logs, and the SQL queries to run. - [Invoice won't finalise](https://www.scailabs.ai/docs/scaicontrol/troubleshooting/invoice-not-finalising): A draft invoice refuses to transition to `finalized`. Use this page to diagnose. - [Service marked unreachable](https://www.scailabs.ai/docs/scaicontrol/troubleshooting/service-marked-unreachable): A registered ScaiLabs service shows `health_status='unreachable'` in `/admin/registry`, and the operations team sees alerts. Use this page to diagnose why ScaiControl can't see its heartbeats. - [Webhook not delivered](https://www.scailabs.ai/docs/scaicontrol/troubleshooting/webhook-not-delivered): A subscriber isn't receiving (or isn't processing) a webhook you expect. Diagnose top-down: was the event emitted? was the subscriber matched? was the request sent? did the subscriber accept it? ## ScaiCore _Core compute runtime — language, console, deployment._ - [Changelog](https://www.scailabs.ai/docs/scaicore/changelog): User-visible changes per ScaiCore release. - [Concepts](https://www.scailabs.ai/docs/scaicore/concepts): Mental model, terminology, and the design decisions a ScaiCore author should keep in mind. - [Blocks](https://www.scailabs.ai/docs/scaicore/concepts/blocks): The fourteen block kinds in ScaiCore, grouped by purpose — computation, control flow, external calls, and lifecycle. - [Instance modes](https://www.scailabs.ai/docs/scaicore/concepts/instance-modes): How a Core's instance declaration controls memory partitioning and invocation routing — stateless, entity, singleton. - [Overview](https://www.scailabs.ai/docs/scaicore/overview): ScaiCore is a small DSL and runtime for AI agent workflows — declarative blocks, deterministic control flow, pluggable model and plugin backends. - [Quickstart](https://www.scailabs.ai/docs/scaicore/quickstart): Five steps from zero to a running ScaiCore flow. - [Reference](https://www.scailabs.ai/docs/scaicore/reference): Authoritative reference material — CLI commands, flags, exit codes. - [CLI](https://www.scailabs.ai/docs/scaicore/reference/cli): Every scaicore subcommand — compile, check, run, inspect — with flags, output, and exit codes. - [IR specification](https://www.scailabs.ai/docs/scaicore/reference/ir): The compiler's intermediate representation — IRModule shape, type system, block kinds, serialization format, runtime contract. - [Language reference](https://www.scailabs.ai/docs/scaicore/reference/language): The canonical ScaiCore language reference, organized as twelve chapters covering lexical rules through canonical examples. - [Core declaration blocks](https://www.scailabs.ai/docs/scaicore/reference/language/core-declaration-blocks): Configuration blocks inside a @core: @config, @memory, @reference, @constraints, @triggers, @llm, @plugins, @instance, @identity. - [Canonical examples](https://www.scailabs.ai/docs/scaicore/reference/language/examples): Three worked ScaiCore flows from end to end — invoice processor, customer support agent, content pipeline. - [Example: content pipeline](https://www.scailabs.ai/docs/scaicore/reference/language/examples/content-pipeline): End-to-end ScaiCore example — a multi-stage content generation and review pipeline using the pipeline operators. - [Example: customer support agent](https://www.scailabs.ai/docs/scaicore/reference/language/examples/customer-support-agent): End-to-end ScaiCore example — a stateful (entity-mode) customer support agent with memory, plugins, and escalation. - [Example: invoice processor](https://www.scailabs.ai/docs/scaicore/reference/language/examples/invoice-processor): End-to-end ScaiCore example — an invoice-extraction flow over PDFs, with structured outputs, validation, and a HITL approval step. - [Execution blocks](https://www.scailabs.ai/docs/scaicore/reference/language/execution-blocks): The fourteen execution block kinds — @rigid, @flexible, @guarded, @parallel, @foreach, @match, @while, @checkpoint, @core_call, @await_responses, @try/@catch, @budget, @debug, @model_call. - [Lexical rules](https://www.scailabs.ai/docs/scaicore/reference/language/lexical-rules): Characters, tokens, identifiers, literals, comments, and the rules the lexer enforces. - [Memory and reference APIs](https://www.scailabs.ai/docs/scaicore/reference/language/memory-and-reference-api): The memory.* runtime API for entity state and the reference.* API for read-only host-provided data. - [Module system](https://www.scailabs.ai/docs/scaicore/reference/language/module-system): How imports work, name visibility, and multi-file ScaiCore source organization. - [Pipeline operators](https://www.scailabs.ai/docs/scaicore/reference/language/pipeline-operators): The |>, |?>, |*>, |~> pipeline operators and how they compose flows, transformers, and evaluators. - [Standard library](https://www.scailabs.ai/docs/scaicore/reference/language/standard-library): Built-in functions, types, and methods available to every flow. - [Statements](https://www.scailabs.ai/docs/scaicore/reference/language/statements): Statements available inside @rigid and @debug blocks: assignment, return, yield, emit, log, conditional, calls, memory ops. - [Syntax fundamentals](https://www.scailabs.ai/docs/scaicore/reference/language/syntax-fundamentals): Block structure, expression vs statement, operator precedence, and the common shape every ScaiCore construct shares. - [Top-level constructs](https://www.scailabs.ai/docs/scaicore/reference/language/top-level-constructs): The declarations that appear at module scope: @core, @flow, @transformer, @evaluator, @pipeline, @test, type aliases, imports. - [Type system](https://www.scailabs.ai/docs/scaicore/reference/language/type-system): Primitive types, compound types, enums, unions, named types, and how the type-checker reasons about them. - [Troubleshooting](https://www.scailabs.ai/docs/scaicore/troubleshooting): Common ScaiCore problems and their fixes, indexed by symptom. - [Compile errors](https://www.scailabs.ai/docs/scaicore/troubleshooting/compile-errors): The Exxx diagnostic codes the ScaiCore compiler emits, grouped by phase, with the most common fixes. - [Tutorials](https://www.scailabs.ai/docs/scaicore/tutorials): End-to-end walkthroughs that grow the quickstart's greet flow into something realistic. - [Add an LLM call](https://www.scailabs.ai/docs/scaicore/tutorials/add-an-llm-call): Extend the quickstart's greet flow with a @flexible block that calls an LLM with a structured output. - [Embed the runtime](https://www.scailabs.ai/docs/scaicore/tutorials/embed-the-runtime): Wire ScaiCore into a Python host — load a compiled bundle, build the host environment, invoke a flow, and resume from a checkpoint. - [Add a human approval step](https://www.scailabs.ai/docs/scaicore/tutorials/human-approval): Drop a @checkpoint into a flow, observe the runtime suspend, and learn how a host resumes execution with a human decision. ## ScaiCRM _Customer-relationship data integrated with the ScaiLabs platform._ - [Concepts](https://www.scailabs.ai/docs/scaicrm/concepts): Key ideas and vocabulary you need to use the product effectively. - [Overview](https://www.scailabs.ai/docs/scaicrm/overview): What this product does, who it's for, and how it fits into the platform. - [Quickstart](https://www.scailabs.ai/docs/scaicrm/quickstart): Minimal working example in under five minutes. - [Reference](https://www.scailabs.ai/docs/scaicrm/reference): API surface, configuration options, and exhaustive details. - [Troubleshooting](https://www.scailabs.ai/docs/scaicrm/troubleshooting): Common issues, error messages, and how to recover. - [Tutorials](https://www.scailabs.ai/docs/scaicrm/tutorials): Guided, end-to-end walkthroughs. ## ScaiDesk _Help-desk and ticketing on top of ScaiCRM._ - [Concepts](https://www.scailabs.ai/docs/scaidesk/concepts): Key ideas and vocabulary you need to use the product effectively. - [Overview](https://www.scailabs.ai/docs/scaidesk/overview): What this product does, who it's for, and how it fits into the platform. - [Quickstart](https://www.scailabs.ai/docs/scaidesk/quickstart): Minimal working example in under five minutes. - [Reference](https://www.scailabs.ai/docs/scaidesk/reference): API surface, configuration options, and exhaustive details. - [Troubleshooting](https://www.scailabs.ai/docs/scaidesk/troubleshooting): Common issues, error messages, and how to recover. - [Tutorials](https://www.scailabs.ai/docs/scaidesk/tutorials): Guided, end-to-end walkthroughs. ## ScaiDNS _Programmable, AI-integrated DNS platform._ - [Concepts](https://www.scailabs.ai/docs/scaidns/concepts): The mental model behind ScaiDNS. Read these once before you write code against the API — the rest of the documentation assumes the vocabulary defined here. - [Architecture](https://www.scailabs.ai/docs/scaidns/concepts/architecture): ScaiDNS is a control-plane API that sits in front of PowerDNS. This page describes how the pieces fit together and what you're actually talking to when you make an API call. - [Authentication](https://www.scailabs.ai/docs/scaidns/concepts/authentication): ScaiDNS supports two authentication methods: **JWT tokens** issued by [ScaiKey](https://scaikey.scailabs.ai) for interactive users, and **API keys** for machine clients. Every API request uses one or the other. - [DNSSEC](https://www.scailabs.ai/docs/scaidns/concepts/dnssec): DNS Security Extensions (DNSSEC) add cryptographic signatures to DNS responses so resolvers can verify answers are authentic and unmodified. ScaiDNS delegates signing to PowerDNS and adds key lifecycle management on top. - [Errors](https://www.scailabs.ai/docs/scaidns/concepts/errors): Standard conventions for ScaiDNS error responses. This page covers the shape, the status codes, and how to interpret the most common cases. See [Error Codes](../reference/error-codes.md) for the exhaustive reference. - [Permissions and Access](https://www.scailabs.ai/docs/scaidns/concepts/permissions-and-access): ScaiDNS uses a role-based access control model, scoped by platform / tenant / domain, with optional access grants for per-domain delegation. This page explains how authorization resolves when a request arrives. - [Tenants and Users](https://www.scailabs.ai/docs/scaidns/concepts/tenants-and-users): ScaiDNS is multi-tenant from the ground up. Every zone belongs to a tenant, every user belongs to a tenant, and most API calls operate within a tenant context. - [Domain Validation](https://www.scailabs.ai/docs/scaidns/concepts/validation): Before ScaiDNS will serve DNS for a zone, you must prove you control that domain. This prevents anyone from creating `example.com` and immediately stealing traffic if delegation is later pointed at the ScaiDNS nameserver - [Zones and Records](https://www.scailabs.ai/docs/scaidns/concepts/zones-and-records): The foundational concepts. Everything else in the API is about creating, managing, or delegating access to these two resources. - [Operations](https://www.scailabs.ai/docs/scaidns/operations): Documentation for running a ScaiDNS instance: deployment, configuration, health, and the signals to watch in production. Audience is operators, not API integrators — the rest of these docs cover the API surface. - [Deployment](https://www.scailabs.ai/docs/scaidns/operations/deployment): Operational guide for deploying ScaiDNS. Covers required services, configuration, and the first-time setup flow. - [Health and Monitoring](https://www.scailabs.ai/docs/scaidns/operations/health-and-monitoring): Endpoints and signals for keeping ScaiDNS healthy in production. - [Overview](https://www.scailabs.ai/docs/scaidns/overview): ScaiDNS is an authoritative DNS management platform built on PowerDNS. It exposes a stable HTTP API that lets you provision zones, manage DNS records, sign zones with DNSSEC, and delegate fine-grained access to users and - [Quickstart](https://www.scailabs.ai/docs/scaidns/quickstart): Your first ScaiDNS zone in under ten minutes. Assumes you have a ScaiDNS instance, a ScaiKey account, and control over the domain you're going to add. - [API Reference](https://www.scailabs.ai/docs/scaidns/reference): Authoritative endpoint-by-endpoint documentation. Each page covers one resource family with request/response shapes, query parameters, and error codes. - [Administration Reference](https://www.scailabs.ai/docs/scaidns/reference/admin): Platform-admin-only endpoints for managing tenants, nameserver configuration, and cross-tenant state. For the audit log, see [Audit Log](./audit-log.md). For user and role management (tenant admin), see [Users, Groups, a - [API Keys Reference](https://www.scailabs.ai/docs/scaidns/reference/api-keys): API keys are the authentication method for machine clients. For the guide, see [Authentication](../concepts/authentication.md). - [Audit Log Reference](https://www.scailabs.ai/docs/scaidns/reference/audit-log): Audit log tracks every state-changing action across the platform. Tenant admins see their tenant's logs; platform admins see all logs across tenants. - [Authentication Reference](https://www.scailabs.ai/docs/scaidns/reference/authentication): All authentication-related endpoints. For conceptual background, see [Authentication](../concepts/authentication.md). - [DNSSEC Reference](https://www.scailabs.ai/docs/scaidns/reference/dnssec): DNSSEC lifecycle and key management endpoints. For concepts, see [DNSSEC](../concepts/dnssec.md). For a step-by-step guide, see [Enabling DNSSEC](../tutorials/enable-dnssec.md). - [Domains Reference](https://www.scailabs.ai/docs/scaidns/reference/domains): All endpoints for managing forward and reverse zones. For the conceptual model, see [Zones and Records](../concepts/zones-and-records.md). For task walkthroughs, see [Managing Domains](../tutorials/managing-domains.md). - [Error Codes](https://www.scailabs.ai/docs/scaidns/reference/error-codes): Complete reference of error status codes and common error shapes. For error handling patterns, see [Errors](../concepts/errors.md). - [Records Reference](https://www.scailabs.ai/docs/scaidns/reference/records): DNS record endpoints. All are nested under a specific domain ID. For the conceptual model, see [Zones and Records](../concepts/zones-and-records.md). For task walkthroughs, see [Managing Records](../tutorials/managing-re - [Reverse Zones Reference](https://www.scailabs.ai/docs/scaidns/reference/reverse-zones): Endpoints for IPv4 and IPv6 reverse zones and their PTR records. For the conceptual model, see [Reverse Zones](../tutorials/reverse-zones.md). - [Templates Reference](https://www.scailabs.ai/docs/scaidns/reference/templates): Reusable record sets that can be applied to zones. For the guide, see [Templates](../tutorials/templates.md). - [Users, Groups, and Roles Reference](https://www.scailabs.ai/docs/scaidns/reference/users-and-access): Endpoints for managing users, groups, and role assignments. For the conceptual model, see [Tenants and Users](../concepts/tenants-and-users.md) and [Permissions and Access](../concepts/permissions-and-access.md). - [Domain Validation Reference](https://www.scailabs.ai/docs/scaidns/reference/validation): Validation endpoints for proving domain ownership before a zone goes active. For the concept, see [Domain Validation](../concepts/validation.md). - [Webhooks Reference](https://www.scailabs.ai/docs/scaidns/reference/webhooks): Inbound webhook endpoints for receiving events from external services. For a deep dive into signature verification and event handling, see [Webhooks Deep Dive](../tutorials/webhook-integration.md). - [Troubleshooting](https://www.scailabs.ai/docs/scaidns/troubleshooting): Symptoms and fixes for the things that actually go wrong. New pages get added here as the team accumulates real reports. - [Tutorials](https://www.scailabs.ai/docs/scaidns/tutorials): Task-oriented walkthroughs. Pick the one that matches what you're trying to do — each page is self-contained and ends with code you can copy. - [Access Grants](https://www.scailabs.ai/docs/scaidns/tutorials/access-grants): Access grants are per-domain delegation with optional record-level restrictions. Use them when role assignments are too coarse — you want to give a specific team access to a specific zone, limited to certain record types - [Bulk Operations](https://www.scailabs.ai/docs/scaidns/tutorials/bulk-operations): Create, update, or delete many records in a single request. Atomic by default — all succeed or nothing changes. - [Enabling DNSSEC](https://www.scailabs.ai/docs/scaidns/tutorials/enable-dnssec): A step-by-step guide to signing a zone with DNSSEC. For the concepts and cryptographic background, see [DNSSEC](../concepts/dnssec.md). - [Import and Export](https://www.scailabs.ai/docs/scaidns/tutorials/import-export): Move zones in and out of ScaiDNS using BIND zone files, JSON, or CSV. Useful for migrations, backups, and bulk edits. - [Managing Domains](https://www.scailabs.ai/docs/scaidns/tutorials/managing-domains): Everything about creating, reading, updating, and deleting zones. For the underlying concepts, see [Zones and Records](../concepts/zones-and-records.md). - [Managing Records](https://www.scailabs.ai/docs/scaidns/tutorials/managing-records): Create, read, update, and delete DNS records within an active zone. For bulk imports and bulk deletes, see [Bulk Operations](./bulk-operations.md). - [Reverse Zones](https://www.scailabs.ai/docs/scaidns/tutorials/reverse-zones): Reverse DNS maps IP addresses to names via zones named after the reversed IP. ScaiDNS has a dedicated API that accepts CIDR input and manages PTR records by IP instead of by reversed octets. - [Templates](https://www.scailabs.ai/docs/scaidns/tutorials/templates): Templates are reusable record sets that you can apply to new or existing zones. Use them to bootstrap common patterns — mail records (MX + SPF + DKIM + DMARC), Google Workspace setup, load-balanced web frontends — withou - [Webhooks Deep Dive](https://www.scailabs.ai/docs/scaidns/tutorials/webhook-integration): Implementation-level details for the ScaiKey webhook integration: signature verification, event handling, idempotency, and debugging. For the event type catalog and basic shape, see [Webhooks](../reference/webhooks.md). - [Your First Zone](https://www.scailabs.ai/docs/scaidns/tutorials/your-first-zone): A complete walk-through from zero to a signed, production-ready zone. Takes about 20 minutes of API calls, plus waiting for DNS propagation. ## ScaiDrive _Object storage and file-sync layer for AI workloads._ - [Administration](https://www.scailabs.ai/docs/scaidrive/administration): Provisioning, identity, compliance, connectors setup, integrations — the sysadmin's playbook. - [Admin UI tour](https://www.scailabs.ai/docs/scaidrive/administration/admin-ui-tour): The ScaiDrive admin console is a separate web app at your organization's admin URL (typically `https://drive.example.com/admin/`). It needs an account with the `admin` role on at least one tenant. From here you provision - [Audit and activity logs](https://www.scailabs.ai/docs/scaidrive/administration/audit-and-activity): Every meaningful action in ScaiDrive — sign-ins, file accesses, share changes, admin actions — produces an audit event. The Compliance section of the admin console has two views into this stream: the **Activity Log** (op - [Compliance policies](https://www.scailabs.ai/docs/scaidrive/administration/compliance-policies): The Compliance section of the admin console covers four overlapping capabilities: **legal holds**, **retention policies**, **data loss prevention (DLP)**, and **eDiscovery**. Plus **sensitivity labels** as a foundation a - [Connectors setup (SMB and SharePoint)](https://www.scailabs.ai/docs/scaidrive/administration/connectors-setup): Connectors keep an external storage source and a ScaiDrive share in step — files appear in ScaiDrive without being moved out of their original home. Useful when you have existing SMB shares or SharePoint Online libraries - [External link policy](https://www.scailabs.ai/docs/scaidrive/administration/external-link-policy): External links let users share files with people who don't have ScaiDrive accounts. Useful — and a common source of compliance pain. The admin console gives you global controls to keep external sharing in check. - [Identity providers (SSO)](https://www.scailabs.ai/docs/scaidrive/administration/identity-providers): ScaiDrive doesn't manage passwords. Users authenticate against your existing identity provider; ScaiDrive consumes the OIDC token. The supported transport is **OpenID Connect (OIDC)**, which works with every modern IdP — - [SCIM provisioning](https://www.scailabs.ai/docs/scaidrive/administration/scim-provisioning): SCIM (System for Cross-domain Identity Management) lets your identity provider push user and group changes into ScaiDrive automatically. New hire → IdP creates the account → SCIM pushes to ScaiDrive → user is ready to si - [Shares and quotas](https://www.scailabs.ai/docs/scaidrive/administration/shares-and-quotas): Shares are the unit of collaboration. Every file lives in exactly one share. Members of a share see the share in their sidebar with the role they've been granted. Quotas cap how much storage a share, user, or tenant can - [SIEM integration](https://www.scailabs.ai/docs/scaidrive/administration/siem-integration): ScaiDrive can push audit events to your SIEM (Splunk, Sentinel, Elastic, Datadog, Sumo Logic, etc.) in near-real-time. Events arrive seconds after they're generated, in your SIEM's preferred format, with the same fields - [Users and groups](https://www.scailabs.ai/docs/scaidrive/administration/users-and-groups): ScaiDrive accounts represent people; groups are bundles of accounts you can grant access in bulk. Both live under **People** in the admin console. - [Vectorization providers and policies](https://www.scailabs.ai/docs/scaidrive/administration/vectorization-providers): Semantic search lets users find files by meaning, not just keywords. "Q4 revenue forecast" can match a document titled `2026 Annual Plan.xlsx` if the contents are about revenue. It's powered by a vector embedding model t - [Webhooks and applications](https://www.scailabs.ai/docs/scaidrive/administration/webhooks-and-applications): Two related admin features for letting external systems integrate with ScaiDrive: **webhooks** push notifications out when things happen, and **applications** issue OAuth credentials for code that needs to call ScaiDrive - [Advanced](https://www.scailabs.ai/docs/scaidrive/advanced): WebSocket events, MCP server, resumable uploads, rate limiting, enterprise compliance APIs. - [Enterprise Compliance](https://www.scailabs.ai/docs/scaidrive/advanced/enterprise-compliance): Legal hold, retention policies, DLP, eDiscovery, and audit. The features that matter when your data is subject to regulation — financial services, healthcare, government — or when you need to preserve content for litigat - [MCP Server](https://www.scailabs.ai/docs/scaidrive/advanced/mcp-server): ScaiDrive ships an MCP (Model Context Protocol) server that exposes shares, files, and search as tools Claude and other MCP-compatible LLMs can call. Point Claude Desktop at it and your AI assistant can list files, read - [Rate Limiting](https://www.scailabs.ai/docs/scaidrive/advanced/rate-limiting): ScaiDrive applies rate limits at three layers: per-token, per-user, and per-tenant. Limits are enforced in Redis with a sliding-window algorithm and surface as `429 RATE_LIMITED` with `Retry-After`. - [Real-time WebSocket](https://www.scailabs.ai/docs/scaidrive/advanced/realtime-websocket): Two WebSocket endpoints stream real-time updates: one scoped to a sync device, one general-purpose for UIs. This page covers both in detail. - [Resumable Uploads](https://www.scailabs.ai/docs/scaidrive/advanced/resumable-uploads): The upload session protocol. Use it for large files, flaky networks, or any scenario where a multipart POST is too fragile. Clients split the file into fixed-size chunks, upload them in parallel and out of order, then fi - [API Guides](https://www.scailabs.ai/docs/scaidrive/api-guides): Task-oriented walkthroughs: files, folders, uploads, sharing, sync, search. - [External Links](https://www.scailabs.ai/docs/scaidrive/api-guides/external-links): Share content with people who don't have a ScaiDrive account. External links are public URLs with optional password, expiry, IP allow-list, email allow-list, download cap, and access notifications. - [Files](https://www.scailabs.ai/docs/scaidrive/api-guides/files): File CRUD plus versioning, copy, move, and restore. Every file lives inside a share and (optionally) inside a folder. - [Folders](https://www.scailabs.ai/docs/scaidrive/api-guides/folders): Folder CRUD plus hierarchical listing and move. Folders group files and subfolders inside a share. - [Search](https://www.scailabs.ai/docs/scaidrive/api-guides/search): Three search modes in ScaiDrive: **keyword** (BM25 over filenames and content), **semantic** (vector similarity over embeddings), and **hybrid** (blend the two). Plus a **RAG context** endpoint that packages results for - [Sharing](https://www.scailabs.ai/docs/scaidrive/api-guides/sharing): Internal sharing: shares, members, and invitations. Everything that happens inside your tenant with people who have (or will have) accounts. - [Sync](https://www.scailabs.ai/docs/scaidrive/api-guides/sync): Build a sync client: device registration, cursor-based change fetching, applying changes, conflict resolution. This page shows complete worked examples. For the conceptual model, read [Sync Model](/docs/scaidrive/core-co - [Uploads and Downloads](https://www.scailabs.ai/docs/scaidrive/api-guides/uploads-and-downloads): Strategies for moving content in and out of ScaiDrive. The right approach depends on file size, your network, and whether you need resumability. - [Connectors](https://www.scailabs.ai/docs/scaidrive/connectors): Bridge ScaiDrive to existing storage — SMB shares and SharePoint Online libraries. - [SharePoint Connector](https://www.scailabs.ai/docs/scaidrive/connectors/sharepoint-connector): Sync content from a SharePoint Online document library into ScaiDrive. The connector uses the Microsoft Graph API with an Azure AD app registration, mirrors a SharePoint site's drive/library into a ScaiDrive share, and s - [SMB Connector](https://www.scailabs.ai/docs/scaidrive/connectors/smb-connector): Keep a ScaiDrive share in step with an SMB (Windows / Samba) file share. The connector logs in with a service account, walks the SMB tree, mirrors the structure into ScaiDrive, and schedules recurring syncs. Changes on e - [Core Concepts](https://www.scailabs.ai/docs/scaidrive/core-concepts): The mental model behind the API — shares, ACLs, sync, versioning, events, errors. - [Errors](https://www.scailabs.ai/docs/scaidrive/core-concepts/errors): The HTTP status code carries the primary signal. The response body shape depends on the kind of failure: regular errors return `{"detail": ""}`, request-validation failures return FastAPI's structured `detail` a - [Events and Real-time Updates](https://www.scailabs.ai/docs/scaidrive/core-concepts/events-and-realtime): ScaiDrive exposes change events two ways: a persistent per-tenant **change log** that drives the cursor-based sync protocol, and a **WebSocket** stream for low-latency notifications. They share the same underlying data — - [Multi-tenancy](https://www.scailabs.ai/docs/scaidrive/core-concepts/multi-tenancy): ScaiDrive is multi-tenant. Every resource — user, group, share, file, folder, ACL, quota, audit event — belongs to a tenant, and tenants cannot see each other. This page covers the tenancy model, how it shows up in the A - [Permissions and ACLs](https://www.scailabs.ai/docs/scaidrive/core-concepts/permissions-and-acls): ScaiDrive's permission model is Discretionary Access Control with inheritance — the same shape as Windows NTFS. Every file and folder can have its own ACL with allow/deny entries granting specific permissions to users an - [Shares and Ownership](https://www.scailabs.ai/docs/scaidrive/core-concepts/shares-and-ownership): A **share** is the collaboration unit in ScaiDrive — a namespace that holds files and folders and has a defined set of members. Every file and every folder lives inside exactly one share. - [Sync Model](https://www.scailabs.ai/docs/scaidrive/core-concepts/sync-model): ScaiDrive's sync protocol is cursor-based. The server maintains a per-tenant change log, and each client tracks an opaque position (the cursor) in that log. Syncing is replaying every change after the cursor. No scanning - [Versioning and Deduplication](https://www.scailabs.ai/docs/scaidrive/core-concepts/versioning-and-deduplication): Files in ScaiDrive are **versioned** — every save creates a new version, prior versions are retained, and you can roll back. The blob content is **chunked** and **deduplicated** — identical chunks are stored exactly once - [Getting Started](https://www.scailabs.ai/docs/scaidrive/getting-started): Get from zero to a working API integration in under fifteen minutes. - [Authentication](https://www.scailabs.ai/docs/scaidrive/getting-started/authentication): Every ScaiDrive request (except `/health` and public share-link endpoints) needs a Bearer token issued by ScaiKey. This page covers how to get one and how to keep using it. - [Quickstart](https://www.scailabs.ai/docs/scaidrive/getting-started/quickstart): Upload your first file in five minutes. Assumes you have a ScaiDrive instance (managed or self-hosted) and a ScaiKey account on that instance. - [Your First Integration](https://www.scailabs.ai/docs/scaidrive/getting-started/your-first-integration): A complete, runnable walk-through. We'll build a small script that uploads a local folder to a ScaiDrive share, generates a password-protected external link for the root folder, and prints the URL. Along the way we'll co - [Introduction](https://www.scailabs.ai/docs/scaidrive/introduction): What ScaiDrive is, the design philosophy behind it, and how the pieces fit together. - [Architecture](https://www.scailabs.ai/docs/scaidrive/introduction/architecture): ScaiDrive is a FastAPI application backed by MariaDB, Redis, and S3. A request enters through middleware, authenticates against ScaiKey, dispatches to a service layer, and mutates database state or streams content from o - [Philosophy](https://www.scailabs.ai/docs/scaidrive/introduction/philosophy): The design principles behind the ScaiDrive API. Read this if you want to know why the API looks the way it does before you start integrating. - [What is ScaiDrive](https://www.scailabs.ai/docs/scaidrive/introduction/what-is-scaidrive): ScaiDrive is an enterprise file synchronization and sharing platform. A central server stores the authoritative copy of every file; desktop, mobile, and web clients keep local copies in sync. Users collaborate in shared - [Operations](https://www.scailabs.ai/docs/scaidrive/operations): Deployment, health monitoring, troubleshooting. - [Deployment](https://www.scailabs.ai/docs/scaidrive/operations/deployment): Running ScaiDrive in production. Container-based with external dependencies for persistence. - [Health and Monitoring](https://www.scailabs.ai/docs/scaidrive/operations/health-and-monitoring): Liveness, readiness, metrics, and the signals that actually matter when something breaks. - [Troubleshooting](https://www.scailabs.ai/docs/scaidrive/operations/troubleshooting): Common failure modes and what to check. Grouped by symptom, not by subsystem. - [ScaiDrive](https://www.scailabs.ai/docs/scaidrive/overview): ScaiDrive is an enterprise file sync and share platform. A central server keeps the authoritative copy of every file; desktop, mobile, web, and CLI clients keep local copies in step. Teams collaborate in shared folders w - [API Reference](https://www.scailabs.ai/docs/scaidrive/reference): Every endpoint, every parameter, every error code. Authoritative. - [Admin Reference](https://www.scailabs.ai/docs/scaidrive/reference/admin): Tenant administration endpoints not covered in other reference pages. - [Authentication Reference](https://www.scailabs.ai/docs/scaidrive/reference/authentication): All authentication endpoints. For the conceptual guide, see [Authentication](/docs/scaidrive/getting-started/authentication). - [Connectors Reference](https://www.scailabs.ai/docs/scaidrive/reference/connectors): SMB and SharePoint connector endpoints. For conceptual guides, see [SMB Connector](/docs/scaidrive/connectors/smb-connector) and [SharePoint Connector](/docs/scaidrive/connectors/sharepoint-connector). - [Enterprise Reference](https://www.scailabs.ai/docs/scaidrive/reference/enterprise): Legal hold, retention policies, DLP, eDiscovery, audit, and vectorization policies. - [Error Codes](https://www.scailabs.ai/docs/scaidrive/reference/error-codes): ScaiDrive does not currently emit a machine-readable `error.code` field. Error responses look like: - [External Links Reference](https://www.scailabs.ai/docs/scaidrive/reference/external-links): Public sharing via link tokens. - [Files and Folders Reference](https://www.scailabs.ai/docs/scaidrive/reference/files-and-folders): File and folder CRUD, versioning, copy, move. - [Permissions Reference](https://www.scailabs.ai/docs/scaidrive/reference/permissions): Permission checks, effective permissions, ACL management, and ownership transfer. - [Quotas Reference](https://www.scailabs.ai/docs/scaidrive/reference/quotas): Quota configuration and usage tracking across the partner / tenant / user / group / share hierarchy. - [Search Reference](https://www.scailabs.ai/docs/scaidrive/reference/search): Keyword, semantic, hybrid search, and RAG context endpoints. - [Shares Reference](https://www.scailabs.ai/docs/scaidrive/reference/shares): All share endpoints including members and invitations. - [Sync Reference](https://www.scailabs.ai/docs/scaidrive/reference/sync): Change tracking, cursor management, devices, preferences, and conflicts. - [Users and Groups Reference](https://www.scailabs.ai/docs/scaidrive/reference/users-and-groups): User profile, settings, shares, invitations, and admin user/group management. - [User Guide](https://www.scailabs.ai/docs/scaidrive/user-guide): Using ScaiDrive from a browser, desktop, mobile, or the command line. - [Command-line client](https://www.scailabs.ai/docs/scaidrive/user-guide/command-line): The `scaidrive` CLI is for scripting, automation, and people who prefer a terminal. It exposes the full set of file operations, sharing, sync, and search — every API endpoint that makes sense from a shell. - [Desktop sync app](https://www.scailabs.ai/docs/scaidrive/user-guide/desktop-app): The ScaiDrive desktop app keeps a folder on your computer in two-way sync with a share on the server. Edit a file locally, it appears on the server seconds later — and vice versa. It runs on Windows, macOS, and Linux. - [Sharing with people outside the organization](https://www.scailabs.ai/docs/scaidrive/user-guide/external-sharing): To send a file, folder, or whole share to someone who doesn't have a ScaiDrive account, create an **external link**. The recipient gets a URL they can open in a browser — no sign-up, no account. - [File versions and recovery](https://www.scailabs.ai/docs/scaidrive/user-guide/file-versions): ScaiDrive keeps prior versions of every file. If you overwrite something by mistake, or want to compare with last week's draft, the previous version is one click away. - [Mobile apps](https://www.scailabs.ai/docs/scaidrive/user-guide/mobile-apps): ScaiDrive has native apps for iOS (16.0+) and Android (8.0+). Both let you browse shares, upload from your camera roll, keep files available offline, and act as a file source for other apps on the device. - [Sharing with your team](https://www.scailabs.ai/docs/scaidrive/user-guide/sharing-with-your-team): ScaiDrive shares are how teams collaborate. A share is a top-level container — like a "team drive" — and people are added to it as members with a role. - [Using ScaiDrive in your browser](https://www.scailabs.ai/docs/scaidrive/user-guide/web-client): The web client at your organization's ScaiDrive URL (for example `https://drive.example.com/`) is the fastest way to get to your files from any device. There's nothing to install — sign in and you're in. ## ScaiFlow _Workflow orchestration and automation across ScaiLabs services._ - [Changelog](https://www.scailabs.ai/docs/scaiflow/changelog): User-visible changes to ScaiFlow, newest first. - [Concepts](https://www.scailabs.ai/docs/scaiflow/concepts): The mental model behind ScaiFlow. - [Architecture](https://www.scailabs.ai/docs/scaiflow/concepts/architecture): flowchart TB Canvas["Canvas (SolidJS + SVG)
apps/canvas
drag/drop, property panels, live preview,
CRDT real-time editing, debugger overlay"] API["ScaiFlow API (FastAPI)
apps/api< - [The flow graph](https://www.scailabs.ai/docs/scaiflow/concepts/flow-graph-model): A ScaiFlow flow is a JSON document conforming to the [v2 flow schema](../reference/flow-schema). Conceptually it's a directed graph of nodes connected by edges, with some flow-level metadata. - [Human-in-the-loop and checkpoints](https://www.scailabs.ai/docs/scaiflow/concepts/hitl-and-checkpoints): A `@checkpoint` in ScaiCore pauses the invocation, persists its state, and waits for an external signal to resume. ScaiFlow exposes checkpoints in three flavors, all of which compile to the same underlying IR block kind. - [Compilation targets](https://www.scailabs.ai/docs/scaiflow/concepts/ir-and-compilation-targets): The compiler can emit three formats from the same flow JSON. The right format depends on what's downstream. - [Models and the registry](https://www.scailabs.ai/docs/scaiflow/concepts/models-and-registry): A flow declares its **model registry** at the flow level. Each entry is keyed by a **role alias** — `primary`, `fast`, `voice`, `critic`, etc. — that LLM blocks reference by name via `llm_role`. - [Multi-tenancy and auth](https://www.scailabs.ai/docs/scaiflow/concepts/multi-tenancy-and-auth): ScaiFlow is multi-tenant from the ground up. Every flow, every catalog package, every credential, every event is scoped to a tenant. Auth flows through [ScaiKey](/docs/scaikey). - [Node kinds](https://www.scailabs.ai/docs/scaiflow/concepts/node-kinds): ScaiFlow has 24 node kinds across 9 categories. Each kind maps to a specific ScaiCore construct — the compiler refuses to invent anything that doesn't exist upstream. - [Publish as model](https://www.scailabs.ai/docs/scaiflow/concepts/publish-as-model): A deployed Core can be **registered as a chat model** that any OpenAI-compatible client can reach. This is how a ScaiFlow agent becomes addressable from ScaiBot, custom apps, third-party integrations, or just `curl`. - [Queues (ScaiQueue)](https://www.scailabs.ai/docs/scaiflow/concepts/queues): ScaiQueue is the async message bus that powers HITL workflows + general inter-flow messaging. ScaiFlow surfaces it as first-class node kinds (`queue_publish`, `queue_consume`, `queue_escalation`) plus a flow-level topolo - [The rigidity spectrum](https://www.scailabs.ai/docs/scaiflow/concepts/rigidity-spectrum): ScaiCore — and ScaiFlow by extension — defines exactly **three** block types for steps that involve an LLM: - [Sandboxes (ScaiBunker)](https://www.scailabs.ai/docs/scaiflow/concepts/sandboxes-and-bunkers): ScaiBunker is the sandboxed-compute integration. When a flow needs to execute untrusted-ish code (running a user's Python snippet, sandboxing a tool plugin's side effects, materializing files), it provisions a Bunker, do - [Sub-flows](https://www.scailabs.ai/docs/scaiflow/concepts/sub-flows): A flow can invoke another deployed Core via the `subflow_call` node. The compiler emits an `IRCoreCallBlock` (`kind: "core_call"`) per the ScaiCore IR spec. - [Triggers (entry points)](https://www.scailabs.ai/docs/scaiflow/concepts/triggers): How an invocation begins. The three entry node kinds (`entry_api`, `entry_webhook`, `entry_schedule`) compile to top-level `IRTrigger` declarations on `IRModule.triggers`, NOT to blocks inside `flow.body`. The runtime wa - [Overview](https://www.scailabs.ai/docs/scaiflow/overview): **ScaiFlow is a visual designer that compiles flowcharts into deployable ScaiCore agents.** - [Quickstart](https://www.scailabs.ai/docs/scaiflow/quickstart): From zero to a deployed Echo agent in five minutes. - [Reference](https://www.scailabs.ai/docs/scaiflow/reference): Authoritative lists. - [CLI reference](https://www.scailabs.ai/docs/scaiflow/reference/cli): The `scaiflow` CLI is a thin wrapper over the compiler and ScaiGrid client. Install it from `apps/cli` (each app has its own `.venv`): - [Configuration](https://www.scailabs.ai/docs/scaiflow/reference/configuration): Environment variables read by the ScaiFlow API backend. Loaded via `pydantic-settings` from (in increasing-precedence order): - [Edge kinds reference](https://www.scailabs.ai/docs/scaiflow/reference/edge-kinds): Three edge kinds. Differ in semantics, not in field shape. - [Flow schema](https://www.scailabs.ai/docs/scaiflow/reference/flow-schema): ScaiFlow flows conform to **JSON Schema draft 2020-12** at `https://scailabs.com/schemas/scaiflow/v2.json`. - [Node kinds reference](https://www.scailabs.ai/docs/scaiflow/reference/node-kinds): Per-kind configuration shape, default ports, and IR mapping. - [REST API](https://www.scailabs.ai/docs/scaiflow/reference/rest-api): The ScaiFlow backend exposes a tenant-scoped REST API at `/api/v1/*` on whatever hostname your tenant deploys it under. - [REST API: Admin](https://www.scailabs.ai/docs/scaiflow/reference/rest-api/admin): ScaiKey-driven user/group sync, super_admin role management, tenant admin views. - [REST API: Auth](https://www.scailabs.ai/docs/scaiflow/reference/rest-api/auth): Runtime ScaiKey config, BFF token exchange, refresh, and the caller-identity endpoint. - [REST API: Catalog](https://www.scailabs.ai/docs/scaiflow/reference/rest-api/catalog): Per-tenant private flow packages. List, publish, install, change visibility, delete. - [REST API: Deploy](https://www.scailabs.ai/docs/scaiflow/reference/rest-api/deploy): The canonical deploy endpoint lives under [Flows](./flows#post-v1flowsflow_iddeploy) — `POST /v1/flows/{flow_id}/deploy`. This page covers the legacy and supporting paths. - [REST API: Flow ACLs](https://www.scailabs.ai/docs/scaiflow/reference/rest-api/flow-acls): Per-flow access control. List, grant, revoke. - [REST API: Flows](https://www.scailabs.ai/docs/scaiflow/reference/rest-api/flows): Flow CRUD, deploy, tests, versions, presence, deployment history. - [REST API: Lookups](https://www.scailabs.ai/docs/scaiflow/reference/rest-api/lookups): Read-only proxies into ScaiQueue, ScaiBunker, and ScaiGrid. Used by the canvas so the browser never holds tenant credentials and CORS stays out of the way. - [REST API: Preview](https://www.scailabs.ai/docs/scaiflow/reference/rest-api/preview): Live compile + validate endpoints. Both stateless — no persistence, no deploy. - [REST API: ScaiCore](https://www.scailabs.ai/docs/scaiflow/reference/rest-api/scaicore): Live event stream, checkpoint listing + resolution, and an invoke proxy. All proxied to ScaiGrid using the same auth precedence as the [lookups](./lookups). - [REST API: Tenants](https://www.scailabs.ai/docs/scaiflow/reference/rest-api/tenants): Per-tenant ScaiGrid credential management. One status endpoint, one mutator. - [REST API: Webhooks](https://www.scailabs.ai/docs/scaiflow/reference/rest-api/webhooks): ScaiKey-signed webhook receiver. Updates the local user/group mirror in near-real-time on join/leave events. - [Troubleshooting](https://www.scailabs.ai/docs/scaiflow/troubleshooting): Common symptoms with their usual causes and fixes. - [Troubleshooting: Auth and credentials](https://www.scailabs.ai/docs/scaiflow/troubleshooting/auth-and-credentials): The browser stored a PKCE verifier in `sessionStorage` under one tab, the ScaiKey redirect landed in another tab (or after a refresh that lost session storage). - [Troubleshooting: Compile errors](https://www.scailabs.ai/docs/scaiflow/troubleshooting/compile-errors): The compiler refuses bad flows with a `CompileError` carrying a list of human-readable diagnostics. Each one points at the specific node/edge/field that's wrong. - [Troubleshooting: Deploy failures](https://www.scailabs.ai/docs/scaiflow/troubleshooting/deploy-failures): The deploy endpoint returns a structured `detail.error` for every failure. Match yours below. - [Troubleshooting: Draft restore](https://www.scailabs.ai/docs/scaiflow/troubleshooting/draft-restore): The canvas autosaves every change to `localStorage` (debounced 500 ms) and restores on boot. If you refresh and your work is gone: - [Troubleshooting: HITL or checkpoint stuck](https://www.scailabs.ai/docs/scaiflow/troubleshooting/hitl-stuck): The flow's HITL Review compiled to a `@checkpoint` with `hitl_target: {scope, queue, hitl_spec}`. ScaiCore's runtime should detect the field, auto-publish to ScaiQueue, and the message should appear in the review UI. - [Troubleshooting: ScaiKey sync issues](https://www.scailabs.ai/docs/scaiflow/troubleshooting/scaikey-sync): The credentials the backend is using don't have admin scope on ScaiKey, so it can't reach `applications.get_effective_users`. - [Tutorials](https://www.scailabs.ai/docs/scaiflow/tutorials): End-to-end recipes for common patterns. Each tutorial is independent — pick whichever fits the goal at hand. - [Tutorial: Customer support flow](https://www.scailabs.ai/docs/scaiflow/tutorials/customer-support-flow): Build a flow that classifies an inbound customer message, retrieves relevant knowledge-base docs, generates a response, and routes low-confidence responses to a human reviewer. - [Tutorial: Expense approval with HITL](https://www.scailabs.ai/docs/scaiflow/tutorials/expense-approval-with-hitl): Combine LLM classification, a sandboxed (ScaiBunker) policy check, and a human review queue to approve expenses end-to-end. - [Tutorial: Hello World](https://www.scailabs.ai/docs/scaiflow/tutorials/hello-world): Build, deploy, and call the simplest possible ScaiFlow flow — an API trigger that echoes its input back via a flexible LLM step. - [Tutorial: Import an existing YAML manifest](https://www.scailabs.ai/docs/scaiflow/tutorials/import-yaml): Turn a hand-written ScaiCore YAML manifest (or one ScaiFlow emitted previously) into a flow you can edit visually. - [Tutorial: Multi-model flow](https://www.scailabs.ai/docs/scaiflow/tutorials/multi-model-flow): Use a cheap model for triage/classification and a smart model for response generation, all in one flow. - [Tutorial: Publish a flow as a chat model](https://www.scailabs.ai/docs/scaiflow/tutorials/publish-as-chat-model): Take any deployed Core and register it as a chat model that OpenAI-compatible clients can address by name. - [Tutorial: Publish to your tenant catalog](https://www.scailabs.ai/docs/scaiflow/tutorials/publish-to-tenant-catalog): Package a flow as a `.scaipkg`, publish it to your tenant's private catalog, and install it on another flow's seat. ## ScaiFlux _Agentic coding assistant — generates, edits, and refactors code across your repos._ - [Changelog](https://www.scailabs.ai/docs/scaiflux/changelog): The initial public ship. ScaiFlux launches as a self-contained Linux binary (no Python, no pip, no virtualenv on the target machine) plus a standard wheel for `pip` / `pipx` users. - [Concepts](https://www.scailabs.ai/docs/scaiflux/concepts): **ScaiFlux is an agentic coding tool, first and foremost** — a model that reaches into your workspace and acts (reads, writes, runs, searches), not a chat interface that describes what you could do. The pages below are t - [Philosophy](https://www.scailabs.ai/docs/scaiflux/concepts/philosophy): **ScaiFlux is an agentic coding tool first.** Everything else — the REPL, the slash commands, the serve-mode protocol — is the distribution wrapper around that one product idea: a coding agent that reaches into your work - [Guides](https://www.scailabs.ai/docs/scaiflux/guides): Longer-form walkthroughs. - [Build from source](https://www.scailabs.ai/docs/scaiflux/guides/build-from-source): ScaiFlux ships as a single PyInstaller-bundled executable so end users don't need Python, pip, or a virtualenv on their machine — just a compatible libc and they can run `./scaiflux`. This document describes the toolchai - [REPL walkthrough](https://www.scailabs.ai/docs/scaiflux/guides/repl): A narrative tour of the interactive REPL — what happens end-to-end from `scaiflux` at the prompt to a turn completing, plus the knobs you'll reach for most often. Aimed at someone who's just installed ScaiFlux and wants - [Install (standalone binary)](https://www.scailabs.ai/docs/scaiflux/install): ScaiFlux ships as a single self-contained Linux binary — no Python, no pip, no virtualenv on the target machine. Download, decompress, verify, drop on `$PATH`, run. - [Overview](https://www.scailabs.ai/docs/scaiflux/overview): **ScaiFlux is an agentic coding tool, first and foremost.** Not a chat client that happens to have tools — a tool-using coding agent that talks via chat. You point it at a project on your machine, and it *acts*: reads fi - [Quickstart](https://www.scailabs.ai/docs/scaiflux/quickstart): Zero-to-first-prompt in about five minutes. Assumes a **ScaiGrid** endpoint and either a **ScaiKey** account or a ScaiGrid `sgk_live_...` **API key**. - [Reference](https://www.scailabs.ai/docs/scaiflux/reference): Authoritative lists for working with ScaiFlux. - [CLI reference](https://www.scailabs.ai/docs/scaiflux/reference/cli): pip install -e ".[dev]" # dev + test stack pip install -e ".[mcp]" # include MCP client support - [Serve mode protocol](https://www.scailabs.ai/docs/scaiflux/reference/serve-protocol): `scaiflux serve` runs ScaiFlux as a long-lived process driven by an external controller (e.g. [ScaiForge](#)) over **NDJSON on stdio**. One process == one session. The controller speaks commands on stdin and reads events - [Troubleshooting](https://www.scailabs.ai/docs/scaiflux/troubleshooting): Symptom-first fixes for common snags. - [Missing credentials](https://www.scailabs.ai/docs/scaiflux/troubleshooting/missing-credentials): You run `scaiflux`, `scaiflux repl`, or `scaiflux prompt "..."` and see one of: - [Tutorials](https://www.scailabs.ai/docs/scaiflux/tutorials): End-to-end walkthroughs you can follow along with. Each one starts in an empty workspace and ends with something that runs. - [Build a small CLI with ScaiFlux](https://www.scailabs.ai/docs/scaiflux/tutorials/build-a-cli): A 15-minute walkthrough that uses ScaiFlux to scaffold a real, working Python CLI — from empty directory to passing tests — by asking the agent to do the work instead of writing the code yourself. The point isn't the CLI ## ScaiForge _Continuous build and delivery for ScaiLabs services._ - [Concepts](https://www.scailabs.ai/docs/scaiforge/concepts): Key ideas and vocabulary you need to use the product effectively. - [Overview](https://www.scailabs.ai/docs/scaiforge/overview): What this product does, who it's for, and how it fits into the platform. - [Quickstart](https://www.scailabs.ai/docs/scaiforge/quickstart): Minimal working example in under five minutes. - [Reference](https://www.scailabs.ai/docs/scaiforge/reference): API surface, configuration options, and exhaustive details. - [Troubleshooting](https://www.scailabs.ai/docs/scaiforge/troubleshooting): Common issues, error messages, and how to recover. - [Tutorials](https://www.scailabs.ai/docs/scaiforge/tutorials): Guided, end-to-end walkthroughs. ## ScaiGrid _Distributed inference grid — routing, accounting, OpenAI compatibility._ - [Advanced](https://www.scailabs.ai/docs/scaigrid/advanced): Deeper topics for production deployments — gRPC, MCP, webhooks, custom roles, rate limiting. - [Custom Roles](https://www.scailabs.ai/docs/scaigrid/advanced/custom-roles): The six built-in roles cover 80% of needs. For the remaining 20% — cross-cutting access patterns, module-specific personas, tenant-specific hierarchies — use **custom roles**. Compose exactly the permissions you want fro - [gRPC API](https://www.scailabs.ai/docs/scaigrid/advanced/grpc-api): ScaiGrid exposes a gRPC API alongside its HTTP surface. It's used for internal integrations — ScaiInfer nodes report heartbeats, ScaiMind coordinates training jobs, high-throughput streaming scenarios — and is available - [MCP Server (Advanced)](https://www.scailabs.ai/docs/scaigrid/advanced/mcp-server): Deep dive into the ScaiGrid MCP server. For the basics, see [ScaiMCP](/docs/scaigrid/scaimcp). - [Rate Limiting](https://www.scailabs.ai/docs/scaigrid/advanced/rate-limiting): ScaiGrid enforces rate limits at four independent levels. This page covers how they work, how to interpret 429 responses, and how to design around them. - [Webhooks Deep Dive](https://www.scailabs.ai/docs/scaigrid/advanced/webhooks-deep-dive): Advanced patterns for production webhook consumers. For basics, see [Events and Webhooks](../03-core-concepts/06-events-and-webhooks.md) and [Webhooks Reference](../06-reference/08-webhooks.md). - [API Guides](https://www.scailabs.ai/docs/scaigrid/api-guides): Task-oriented walk-throughs of the primary API surfaces — chat completions, embeddings, audio, batch, sessions. - [Audio](https://www.scailabs.ai/docs/scaigrid/api-guides/audio): Two audio capabilities, two endpoints: **transcription** (audio → text) and **synthesis** (text → audio). - [Batch Inference](https://www.scailabs.ai/docs/scaigrid/api-guides/batch-inference): Batch inference runs thousands of requests asynchronously at reduced cost. Submit a file of prompts, walk away, come back for the results. - [Chat Completions](https://www.scailabs.ai/docs/scaigrid/api-guides/chat-completions): The chat completions API is ScaiGrid's flagship inference endpoint. Send a conversation, get an assistant response back. Supports streaming, tool calls, multimodal input (text + images + audio), and all the parameters yo - [Embeddings](https://www.scailabs.ai/docs/scaigrid/api-guides/embeddings): Convert text into dense vectors for semantic search, clustering, recommendation, and anything else that benefits from distance-based similarity. - [Images](https://www.scailabs.ai/docs/scaigrid/api-guides/images): Generate images from text prompts. Supports multiple providers (DALL-E 3, Stable Diffusion, Imagen) through a single endpoint. - [OpenAI Compatibility](https://www.scailabs.ai/docs/scaigrid/api-guides/openai-compatibility): ScaiGrid exposes an OpenAI-compatible API surface at `/oai/v1/`. Point any OpenAI SDK at ScaiGrid by changing the base URL — no code changes required. - [Sessions and Rooms](https://www.scailabs.ai/docs/scaigrid/api-guides/sessions-and-rooms): Two abstractions for conversations, solving different problems. - [Core Concepts](https://www.scailabs.ai/docs/scaigrid/core-concepts): The platform's mental model — multi-tenancy, roles, modules, accounting, error envelopes. Read these once; the rest of the docs assume you have. - [Accounting and Budgets](https://www.scailabs.ai/docs/scaigrid/core-concepts/accounting-and-budgets): ScaiGrid counts every completion. Usage rolls up the tenancy hierarchy. Budgets enforce at the gateway, before upstream spend. - [Errors](https://www.scailabs.ai/docs/scaigrid/core-concepts/errors): ScaiGrid error responses are structured and stable. Your code branches on `code`, never on HTTP status alone or string matching. - [Events and Webhooks](https://www.scailabs.ai/docs/scaigrid/core-concepts/events-and-webhooks): ScaiGrid emits events. You can subscribe to them via outbound webhooks — ScaiGrid posts to your HTTP endpoint when something interesting happens. - [Models and Routing](https://www.scailabs.ai/docs/scaigrid/core-concepts/models-and-routing): ScaiGrid separates three concerns: - [Multi-tenancy](https://www.scailabs.ai/docs/scaigrid/core-concepts/multi-tenancy): ScaiGrid is multi-tenant from the ground up. Every request runs inside a three-level hierarchy: - [Roles and Permissions](https://www.scailabs.ai/docs/scaigrid/core-concepts/roles-and-permissions): ScaiGrid authorization is permission-based. Roles are bundles of permissions. Users get roles; endpoints check permissions. - [Getting Started](https://www.scailabs.ai/docs/scaigrid/getting-started): From zero to a working integration. Three short pages cover authentication and your first request. - [Authentication](https://www.scailabs.ai/docs/scaigrid/getting-started/authentication): Every ScaiGrid request (except `/health` and `/metrics`) must authenticate. Two methods are supported. - [Quickstart](https://www.scailabs.ai/docs/scaigrid/getting-started/quickstart): Your first ScaiGrid chat completion in five minutes. Assumes you already have a ScaiGrid instance (managed or self-hosted) and a user account. - [Your First Integration](https://www.scailabs.ai/docs/scaigrid/getting-started/your-first-integration): The quickstart showed you how to fire a single request. This walks through a real integration: structured error handling, retries, streaming, and usage tracking. - [Introduction](https://www.scailabs.ai/docs/scaigrid/introduction): Start here. What ScaiGrid is, what it isn't, and how the moving parts fit together. - [Architecture](https://www.scailabs.ai/docs/scaigrid/introduction/architecture): ScaiGrid is a FastAPI application with a pluggable module system. A request enters through middleware, gets routed to a handler, authenticates against ScaiKey, consults the routing policy, dispatches to an upstream provi - [Philosophy](https://www.scailabs.ai/docs/scaigrid/introduction/philosophy): ScaiGrid is shaped by a few opinions. Understanding them makes the API feel coherent instead of arbitrary. - [What is ScaiGrid](https://www.scailabs.ai/docs/scaigrid/introduction/what-is-scaigrid): ScaiGrid is a unified AI gateway. It sits between your application and every large language model provider you might want to call — OpenAI, Anthropic, Azure, Mistral, Google, Qwen, your own self-hosted models, anything e - [Modules](https://www.scailabs.ai/docs/scaigrid/modules): Every ScaiGrid module — what they are, how to enable and configure them, and the full catalogue with links to each module's documentation. - [ScaiCore Runtime](https://www.scailabs.ai/docs/scaigrid/modules/scaicore): ScaiGrid's runtime-environment wrapper for ScaiCore programs — provisioning, lifecycle, checkpoints, plugin install, publish-as-model. - [Changelog](https://www.scailabs.ai/docs/scaigrid/modules/scaicore/changelog): User-visible changes to the ScaiGrid ScaiCore wrapper module. - [Concepts](https://www.scailabs.ai/docs/scaigrid/modules/scaicore/concepts): Core ideas worth modelling before you write code. Each topic is self-contained — skim the one you need. - [Architecture](https://www.scailabs.ai/docs/scaigrid/modules/scaicore/concepts/architecture): How the ScaiGrid wrapper sits over the ScaiCore language runtime — what the wrapper owns, what the language owns, where the seam is. - [Checkpoints](https://www.scailabs.ai/docs/scaigrid/modules/scaicore/concepts/checkpoints): The data model behind ScaiCore's human-in-the-loop pauses — what a checkpoint is, who it's assigned to, how it expires, and how it resolves. - [Quickstart](https://www.scailabs.ai/docs/scaigrid/modules/scaicore/quickstart): Parse a .scaicore-ir bundle, create a Core, start it, and resolve a checkpoint — ten minutes end-to-end. - [Reference](https://www.scailabs.ai/docs/scaigrid/modules/scaicore/reference): Authoritative API, permissions, and configuration listings. The place to look up the exact shape of a request, response, or scope. - [API reference](https://www.scailabs.ai/docs/scaigrid/modules/scaicore/reference/api): Every endpoint exposed by the ScaiCore wrapper module — Cores, checkpoints, plugins, debug, events, delegation, API exposure. - [Permissions](https://www.scailabs.ai/docs/scaigrid/modules/scaicore/reference/permissions): The six ScaiCore module permission keys and which built-in roles auto-grant them. - [Troubleshooting](https://www.scailabs.ai/docs/scaigrid/modules/scaicore/troubleshooting): Common symptoms in the ScaiCore wrapper and what they usually mean. - [Tutorials](https://www.scailabs.ai/docs/scaigrid/modules/scaicore/tutorials): Step-by-step recipes for common tasks. Pick the one closest to what you're building. - [Approval flow](https://www.scailabs.ai/docs/scaigrid/modules/scaicore/tutorials/approval-flow): End-to-end recipe — write a Core that pauses for human approval, route the checkpoint to a reviewer, resolve it, and watch the program resume. - [Publish as model](https://www.scailabs.ai/docs/scaigrid/modules/scaicore/tutorials/publish-as-model): Turn a running Core into a chat model in ScaiGrid's catalogue — slug, group exposure, sync, unpublish. - [Operations](https://www.scailabs.ai/docs/scaigrid/operations): Running ScaiGrid in production — deployment modes, health, monitoring, troubleshooting. - [Deployment](https://www.scailabs.ai/docs/scaigrid/operations/deployment): How to deploy ScaiGrid — managed, self-hosted, or hybrid. For the architecture overview, see [Architecture](../01-introduction/03-architecture.md). - [Health and Monitoring](https://www.scailabs.ai/docs/scaigrid/operations/health-and-monitoring): Health checks, Prometheus metrics, log format, and what to alert on. - [Troubleshooting](https://www.scailabs.ai/docs/scaigrid/operations/troubleshooting): Common ScaiGrid issues and how to diagnose them. For production monitoring, see [Health and Monitoring](./02-health-and-monitoring.md). - [Reference](https://www.scailabs.ai/docs/scaigrid/reference): Authoritative API, permissions, and configuration listings. The place to look up the exact shape of a request, response, or scope. - [Accounting Reference](https://www.scailabs.ai/docs/scaigrid/reference/accounting): Usage queries, budgets, and exports. For concepts, see [Accounting and Budgets](../03-core-concepts/04-accounting-and-budgets.md). - [Audit Log Reference](https://www.scailabs.ai/docs/scaigrid/reference/audit-log): Every mutating request against ScaiGrid is recorded in the audit log. This reference describes how to query and export it. - [Authentication Reference](https://www.scailabs.ai/docs/scaigrid/reference/authentication): All authentication endpoints. For the conceptual overview, see [Authentication](../02-getting-started/02-authentication.md). - [Error Codes Reference](https://www.scailabs.ai/docs/scaigrid/reference/error-codes): Complete taxonomy of error codes ScaiGrid returns. For the envelope shape and retry classification, see [Errors](../03-core-concepts/07-errors.md). - [Inference Reference](https://www.scailabs.ai/docs/scaigrid/reference/inference): All inference endpoints. For task-oriented guides, see [API Guides](../04-api-guides/). - [Models and Routing Reference](https://www.scailabs.ai/docs/scaigrid/reference/models-and-routing): Frontend models, backend models, providers, routing policies, model access, and model groups. For concepts, see [Models and Routing](../03-core-concepts/03-models-and-routing.md). - [Modules Administration Reference](https://www.scailabs.ai/docs/scaigrid/reference/modules-admin): Enable, disable, and configure modules for your tenant. For the module concept, see [Modules](/docs/scaigrid/modules). - [ScaiBunker Quota Reference](https://www.scailabs.ai/docs/scaigrid/reference/scaibunker-quotas): Profile-based resource quotas for bunker creation. Profiles bundle caps; assignments link them to users or groups; the resolver enforces the most-restrictive cap when multiple profiles apply. - [Sessions and Rooms Reference](https://www.scailabs.ai/docs/scaigrid/reference/sessions-and-rooms): All session and room endpoints. For usage patterns, see [Sessions and Rooms](../04-api-guides/05-sessions-and-rooms.md). - [Tenants and Partners Reference](https://www.scailabs.ai/docs/scaigrid/reference/tenants-and-partners): Admin endpoints for managing the tenancy hierarchy. For the concept overview, see [Multi-tenancy](../03-core-concepts/01-multi-tenancy.md). - [Users and Access Reference](https://www.scailabs.ai/docs/scaigrid/reference/users-and-access): User management, API keys, groups, custom roles, and group-to-role mappings. For concepts, see [Roles and Permissions](../03-core-concepts/02-roles-and-permissions.md). - [Webhooks Reference](https://www.scailabs.ai/docs/scaigrid/reference/webhooks): Outbound webhook management. For the concept overview, see [Events and Webhooks](../03-core-concepts/06-events-and-webhooks.md). For advanced deployment patterns, see [Webhooks Deep Dive](../07-advanced/03-webhooks-deep- ### ScaiBot _Conversational agent layer on top of ScaiGrid._ - [Changelog](https://www.scailabs.ai/docs/scaigrid/scaibot/changelog): User-visible changes to ScaiBot. - [Concepts](https://www.scailabs.ai/docs/scaigrid/scaibot/concepts): Core ideas worth modelling before you write code. Each topic is self-contained — skim the one you need. - [Architecture](https://www.scailabs.ai/docs/scaigrid/scaibot/concepts/architecture): How the widget, the ScaiBot API, the inference layer, and the knowledge index fit together. - [Escalation](https://www.scailabs.ai/docs/scaigrid/scaibot/concepts/escalation): When and how the bot hands off — triggers (keyword, intent, sentiment, confidence, explicit), actions (email, webhook, Slack, queue). - [Knowledge and RAG](https://www.scailabs.ai/docs/scaigrid/scaibot/concepts/knowledge-and-rag): How documents become grounded answers — managed knowledge, linked ScaiMatrix collections, indexing, retrieval, citations. - [Tone](https://www.scailabs.ai/docs/scaigrid/scaibot/concepts/tone): Configure how the bot talks — formality, verbosity, empathy, vocabulary, scope — without writing a system prompt. - [ScaiBot](https://www.scailabs.ai/docs/scaigrid/scaibot/overview): Embeddable chatbot platform — configure a bot in the admin UI, drop a script tag on your site, manage conversations and escalations. - [Quickstart](https://www.scailabs.ai/docs/scaigrid/scaibot/quickstart): Create a bot, upload knowledge, generate an embed token, paste a script tag — five minutes end-to-end. - [Reference](https://www.scailabs.ai/docs/scaigrid/scaibot/reference): Authoritative API, permissions, and configuration listings. The place to look up the exact shape of a request, response, or scope. - [API reference](https://www.scailabs.ai/docs/scaigrid/scaibot/reference/api): Every ScaiBot endpoint — bots, chat, knowledge, escalation, tone, conversations, embed tokens. - [Permissions](https://www.scailabs.ai/docs/scaigrid/scaibot/reference/permissions): ScaiBot module permissions and which roles get them by default. - [Troubleshooting](https://www.scailabs.ai/docs/scaigrid/scaibot/troubleshooting): Common symptoms and what they usually mean. - [Tutorials](https://www.scailabs.ai/docs/scaigrid/scaibot/tutorials): Step-by-step recipes for common tasks. Pick the one closest to what you're building. - [Advanced: build a support bot via the API](https://www.scailabs.ai/docs/scaigrid/scaibot/tutorials/build-a-support-bot): End-to-end developer recipe — bot config, knowledge ingestion, tone, escalation rules, embed, analytics, all driven from curl/Python. - [Build a bot with the admin UI](https://www.scailabs.ai/docs/scaigrid/scaibot/tutorials/build-with-the-admin-ui): A no-code walkthrough — create a bot, upload knowledge, set tone, test in the playground, copy the embed snippet onto your site. Everything from the ScaiGrid admin UI; no API calls needed. - [Advanced: embed a bot on your site](https://www.scailabs.ai/docs/scaigrid/scaibot/tutorials/embed-on-your-site): Production embed walkthrough for developers — server-side token issuance, custom positioning, authenticated visitors, CSP considerations. ### ScaiBunker - [Changelog](https://www.scailabs.ai/docs/scaigrid/scaibunker/changelog): User-visible changes to ScaiBunker. - [Concepts](https://www.scailabs.ai/docs/scaigrid/scaibunker/concepts): Core ideas worth modelling before you write code. Each topic is self-contained — skim the one you need. - [Architecture](https://www.scailabs.ai/docs/scaigrid/scaibunker/concepts/architecture): How the ScaiGrid controller, ScaiBunker workers, the storage proxy, and the Firecracker microVMs fit together. - [Network profiles](https://www.scailabs.ai/docs/scaigrid/scaibunker/concepts/network-profiles): The five network profiles a bunker can run under — isolated, registry, allowlisted, unrestricted, transit — what they allow, who can use them, how to pick. - [ScaiBunker](https://www.scailabs.ai/docs/scaigrid/scaibunker/overview): Sandboxed compute inside ScaiGrid — Firecracker microVMs where agents and code can run, write files, hit the network, and snapshot state, all under tenant quotas. - [Quickstart](https://www.scailabs.ai/docs/scaigrid/scaibunker/quickstart): Create a bunker, run a command, read back a file, terminate it — five minutes end-to-end. - [Reference](https://www.scailabs.ai/docs/scaigrid/scaibunker/reference): Authoritative API, permissions, and configuration listings. The place to look up the exact shape of a request, response, or scope. - [API reference](https://www.scailabs.ai/docs/scaigrid/scaibunker/reference/api): Every ScaiBunker endpoint — bunkers, exec, files, snapshots, images, workers, bridges, availability groups, quotas, audit, storage. - [Permissions](https://www.scailabs.ai/docs/scaigrid/scaibunker/reference/permissions): ScaiBunker module permissions, what each one grants, and which roles get them by default. - [Troubleshooting](https://www.scailabs.ai/docs/scaigrid/scaibunker/troubleshooting): Common symptoms and what they usually mean. - [Tutorials](https://www.scailabs.ai/docs/scaigrid/scaibunker/tutorials): Step-by-step recipes for common tasks. Pick the one closest to what you're building. - [Build a data analysis sandbox](https://www.scailabs.ai/docs/scaigrid/scaibunker/tutorials/data-analysis-sandbox): End-to-end recipe — provision a Python bunker, upload a CSV, run pandas analysis, capture the result, snapshot it for later. - [Register a custom image](https://www.scailabs.ai/docs/scaigrid/scaibunker/tutorials/register-custom-image): Register an OCI-sourced image, watch it fan out to workers via availability groups, and use it for new bunkers. ### ScaiEcho - [Changelog](https://www.scailabs.ai/docs/scaigrid/scaiecho/changelog): User-visible changes to ScaiEcho. - [Concepts](https://www.scailabs.ai/docs/scaigrid/scaiecho/concepts): Core ideas worth modelling before you write code. Each topic is self-contained — skim the one you need. - [Architecture](https://www.scailabs.ai/docs/scaigrid/scaiecho/concepts/architecture): How the routes, transcribe and stream services, dispatchers, and the two backends fit together. - [Streaming transports](https://www.scailabs.ai/docs/scaigrid/scaiecho/concepts/streaming-transports): Picking between WebSocket and WebRTC for live transcription — control frames, audio plane, auth, and the trade-offs. - [ScaiEcho](https://www.scailabs.ai/docs/scaigrid/scaiecho/overview): Speech-to-text on ScaiGrid — batch transcription, real-time streaming over WebSocket and WebRTC, optional speaker diarization with enrolled profiles. - [Quickstart](https://www.scailabs.ai/docs/scaigrid/scaiecho/quickstart): Transcribe a short audio file with one curl, then open a WebSocket stream for live captioning — five minutes end-to-end. - [Reference](https://www.scailabs.ai/docs/scaigrid/scaiecho/reference): Authoritative API, permissions, and configuration listings. The place to look up the exact shape of a request, response, or scope. - [API reference](https://www.scailabs.ai/docs/scaigrid/scaiecho/reference/api): Every ScaiEcho endpoint — transcribe, streaming, WebRTC, speaker library, tenant policy. - [Permissions](https://www.scailabs.ai/docs/scaigrid/scaiecho/reference/permissions): ScaiEcho module permissions and which roles get them by default. - [Troubleshooting](https://www.scailabs.ai/docs/scaigrid/scaiecho/troubleshooting): Common symptoms and what they usually mean. - [Tutorials](https://www.scailabs.ai/docs/scaigrid/scaiecho/tutorials): Step-by-step recipes for common tasks. Pick the one closest to what you're building. - [Enroll a speaker for diarization](https://www.scailabs.ai/docs/scaigrid/scaiecho/tutorials/enroll-a-speaker): Upload reference + consent recordings, watch the enrollment fan out across pyannote nodes, request a diarized transcript. - [Transcribe long audio with async jobs](https://www.scailabs.ai/docs/scaigrid/scaiecho/tutorials/transcribe-long-audio): Upload a long recording, get a 202 + job_id, poll until the transcript is ready, handle failures. ### ScaiLink - [Changelog](https://www.scailabs.ai/docs/scaigrid/scailink/changelog): User-visible changes to ScaiLink. - [Concepts](https://www.scailabs.ai/docs/scaigrid/scailink/concepts): Core ideas worth modelling before you write code. Each topic is self-contained — skim the one you need. - [Architecture](https://www.scailabs.ai/docs/scaigrid/scailink/concepts/architecture): How the desktop bridge, the cloud MCP registry, and ScaiGrid's MCP aggregation fit together inside one module. - [Cloud MCP registry](https://www.scailabs.ai/docs/scaigrid/scailink/concepts/cloud-mcp-registry): How registered hosted MCP servers are scoped, named, credentialed, health-checked, and pooled — the user-facing model for the v1.1+ registry. - [ScaiLink](https://www.scailabs.ai/docs/scaigrid/scailink/overview): Desktop MCP gateway and cloud MCP registry — bridge local tools on a user's machine and hosted third-party MCP servers into the ScaiGrid agent runtime. - [Quickstart](https://www.scailabs.ai/docs/scaigrid/scailink/quickstart): Register a hosted MCP server, watch its tools appear in the catalog, invoke one — five minutes end-to-end. - [Reference](https://www.scailabs.ai/docs/scaigrid/scailink/reference): Authoritative API, permissions, and configuration listings. The place to look up the exact shape of a request, response, or scope. - [API reference](https://www.scailabs.ai/docs/scaigrid/scailink/reference/api): Every ScaiLink endpoint — auth discovery, the desktop WebSocket, sessions, capabilities, invocations, consent, audit, cloud MCP registry. - [Permissions](https://www.scailabs.ai/docs/scaigrid/scailink/reference/permissions): ScaiLink module permissions, default role mapping, and how tenant admins enable the cloud registry per group. - [Troubleshooting](https://www.scailabs.ai/docs/scaigrid/scailink/troubleshooting): Common ScaiLink symptoms and what they usually mean — desktop bridge and cloud MCP registry. - [Tutorials](https://www.scailabs.ai/docs/scaigrid/scailink/tutorials): Step-by-step recipes for common tasks. Pick the one closest to what you're building. - [Register a cloud MCP server](https://www.scailabs.ai/docs/scaigrid/scailink/tutorials/register-a-cloud-mcp-server): End-to-end recipe — register a hosted MCP server, set credentials, manage tenant-shared scope, rotate, and confirm tools surface in /mcp. - [Run a desktop session](https://www.scailabs.ai/docs/scaigrid/scailink/tutorials/run-a-desktop-session): Bridge a local MCP server to ScaiGrid through a WebSocket — handshake, capability registration, consent, invocation, audit. ### ScaiMatrix - [Changelog](https://www.scailabs.ai/docs/scaigrid/scaimatrix/changelog): User-visible changes to ScaiMatrix. - [Concepts](https://www.scailabs.ai/docs/scaigrid/scaimatrix/concepts): Core ideas worth modelling before you write code. Each topic is self-contained — skim the one you need. - [ACLs](https://www.scailabs.ai/docs/scaigrid/scaimatrix/concepts/acls): The v2 NTFS-style permission model — bitmask verbs, allow/deny ACEs, inheritance, transitive groups, single chokepoint. - [Architecture](https://www.scailabs.ai/docs/scaigrid/scaimatrix/concepts/architecture): How collections, the ingestion pipeline, the vector and graph stores, and the ACL chokepoint fit together. - [ScaiMatrix](https://www.scailabs.ai/docs/scaigrid/scaimatrix/overview): Vector + graph knowledge engine — collections of indexed documents, hybrid search, automatic graph extraction, NTFS-style per-resource ACLs. - [Quickstart](https://www.scailabs.ai/docs/scaigrid/scaimatrix/quickstart): Create a collection, upload a document, run a search, inspect the result — five minutes end-to-end. - [Reference](https://www.scailabs.ai/docs/scaigrid/scaimatrix/reference): Authoritative API, permissions, and configuration listings. The place to look up the exact shape of a request, response, or scope. - [API reference](https://www.scailabs.ai/docs/scaigrid/scaimatrix/reference/api): Every ScaiMatrix endpoint — collections, documents, ingestion, search, graph, crawls, ACLs, saved views. - [Permissions](https://www.scailabs.ai/docs/scaigrid/scaimatrix/reference/permissions): ScaiMatrix module permissions, default role mapping, and how they compose with per-resource ACLs. - [Troubleshooting](https://www.scailabs.ai/docs/scaigrid/scaimatrix/troubleshooting): Common symptoms and what they usually mean. - [Tutorials](https://www.scailabs.ai/docs/scaigrid/scaimatrix/tutorials): Step-by-step recipes for common tasks. Pick the one closest to what you're building. - [Build a searchable knowledge base](https://www.scailabs.ai/docs/scaigrid/scaimatrix/tutorials/build-a-knowledge-base): End-to-end recipe — collection, bulk ingest, graph extraction, per-document carve-out, hybrid search. - [Crawl a docs site on a schedule](https://www.scailabs.ai/docs/scaigrid/scaimatrix/tutorials/crawl-on-a-schedule): Crawl configs — define a seed, depth, schedule, and webhook trigger so a collection stays in sync with a website. ### ScaiMcp - [Changelog](https://www.scailabs.ai/docs/scaigrid/scaimcp/changelog): User-visible changes to ScaiMCP. - [Concepts](https://www.scailabs.ai/docs/scaigrid/scaimcp/concepts): Core ideas worth modelling before you write code. Each topic is self-contained — skim the one you need. - [Architecture](https://www.scailabs.ai/docs/scaigrid/scaimcp/concepts/architecture): How the MCP transport, the tool registry, the permission filter, and the cloud-MCP aggregator fit together inside ScaiGrid. - [Tool naming](https://www.scailabs.ai/docs/scaigrid/scaimcp/concepts/tool-naming): How ScaiMCP names tools — core domains, module-contributed namespaces, and the `remote.` prefix for ScaiLink-aggregated cloud MCP servers. - [ScaiMCP](https://www.scailabs.ai/docs/scaigrid/scaimcp/overview): MCP server for ScaiGrid — exposes inference, sessions, rooms, accounting, IAM, and module operations as Model Context Protocol tools. - [Quickstart](https://www.scailabs.ai/docs/scaigrid/scaimcp/quickstart): Point an MCP client at /mcp with a ScaiGrid bearer token — list tools, call one, see it metered. Five minutes end-to-end. - [Reference](https://www.scailabs.ai/docs/scaigrid/scaimcp/reference): Authoritative API, permissions, and configuration listings. The place to look up the exact shape of a request, response, or scope. - [API reference](https://www.scailabs.ai/docs/scaigrid/scaimcp/reference/api): Every ScaiMCP endpoint and built-in tool — transport mount, admin routes, and the full core tool catalog grouped by domain. - [Permissions](https://www.scailabs.ai/docs/scaigrid/scaimcp/reference/permissions): ScaiMCP module permissions and how per-tool permissions inherit from the underlying REST endpoints. - [Troubleshooting](https://www.scailabs.ai/docs/scaigrid/scaimcp/troubleshooting): Common symptoms with MCP clients connecting to ScaiGrid, and what they usually mean. - [Tutorials](https://www.scailabs.ai/docs/scaigrid/scaimcp/tutorials): Step-by-step recipes for common tasks. Pick the one closest to what you're building. - [Build a custom MCP client](https://www.scailabs.ai/docs/scaigrid/scaimcp/tutorials/build-custom-client): End-to-end recipe — connect, list tools, route an LLM-driven loop through ScaiMCP, and consume registered cloud MCP tools alongside core ones. - [Connect Claude Desktop to ScaiGrid](https://www.scailabs.ai/docs/scaigrid/scaimcp/tutorials/connect-claude-desktop): Wire Claude Desktop (or any MCP-capable client) at /mcp with a ScaiGrid bearer token, then invoke tools from a conversation. ### ScaiMind - [Changelog](https://www.scailabs.ai/docs/scaigrid/scaimind/changelog): User-visible changes to ScaiMind. - [Concepts](https://www.scailabs.ai/docs/scaigrid/scaimind/concepts): Core ideas worth modelling before you write code. Each topic is self-contained — skim the one you need. - [Architecture](https://www.scailabs.ai/docs/scaigrid/scaimind/concepts/architecture): How the REST endpoint, the gRPC bridge, the local cache, and the external MindCoordinator fit together. - [Training jobs](https://www.scailabs.ai/docs/scaigrid/scaimind/concepts/training-jobs): The five-config submission shape, the lifecycle of a job, lifecycle controls (cancel, pause, resume, retry), and where checkpoints fit. - [ScaiMind](https://www.scailabs.ai/docs/scaigrid/scaimind/overview): Training orchestration bridge — submit fine-tuning jobs, monitor metrics and logs, evaluate models, and manage GPU clusters through a single REST API over MindCoordinator. - [Quickstart](https://www.scailabs.ai/docs/scaigrid/scaimind/quickstart): Submit a LoRA fine-tune, watch its metrics, fetch the result — five minutes end-to-end against a running cluster. - [Reference](https://www.scailabs.ai/docs/scaigrid/scaimind/reference): Authoritative API, permissions, and configuration listings. The place to look up the exact shape of a request, response, or scope. - [API reference](https://www.scailabs.ai/docs/scaigrid/scaimind/reference/api): Every ScaiMind endpoint — jobs, monitoring, cluster, nodes, queue, evaluations, data. - [Permissions](https://www.scailabs.ai/docs/scaigrid/scaimind/reference/permissions): ScaiMind module permissions and which roles get them by default. - [Troubleshooting](https://www.scailabs.ai/docs/scaigrid/scaimind/troubleshooting): Common symptoms when ScaiMind requests fail or jobs misbehave, and what they usually mean. - [Tutorials](https://www.scailabs.ai/docs/scaigrid/scaimind/tutorials): Step-by-step recipes for common tasks. Pick the one closest to what you're building. - [Run an evaluation](https://www.scailabs.ai/docs/scaigrid/scaimind/tutorials/run-an-evaluation): Submit a benchmark run against a completed job, poll for results, list past evaluations. - [Submit a LoRA fine-tune](https://www.scailabs.ai/docs/scaigrid/scaimind/tutorials/submit-a-lora-finetune): End-to-end recipe — validate data, submit a LoRA job, watch metrics and logs, fetch the trained artefact. ### ScaiPersona - [Changelog](https://www.scailabs.ai/docs/scaigrid/scaipersona/changelog): User-visible changes to ScaiPersona. - [Concepts](https://www.scailabs.ai/docs/scaigrid/scaipersona/concepts): Core ideas worth modelling before you write code. Each topic is self-contained — skim the one you need. - [Architecture](https://www.scailabs.ai/docs/scaigrid/scaipersona/concepts/architecture): How the persona, the request enricher, ScaiMatrix, ScaiDrive, and the inference pipeline fit together. - [RAG strategies](https://www.scailabs.ai/docs/scaigrid/scaipersona/concepts/rag-strategies): Three retrieval strategies — single_step, multi_step, agentic — when to use each, and how source weights, top-k, and min-score interact. - [ScaiPersona](https://www.scailabs.ai/docs/scaigrid/scaipersona/overview): Publishable AI personas — wrap a base model in a system prompt and optional RAG sources, then publish it as a tenant-scoped model usable from any ScaiGrid endpoint. - [Quickstart](https://www.scailabs.ai/docs/scaigrid/scaipersona/quickstart): Create a persona, attach a knowledge source, publish it, and call it through the standard inference endpoint — five minutes end-to-end. - [Reference](https://www.scailabs.ai/docs/scaigrid/scaipersona/reference): Authoritative API, permissions, and configuration listings. The place to look up the exact shape of a request, response, or scope. - [API reference](https://www.scailabs.ai/docs/scaigrid/scaipersona/reference/api): Every ScaiPersona endpoint — personas, sources, publishing, avatars, ScaiDrive shares. - [Permissions](https://www.scailabs.ai/docs/scaigrid/scaipersona/reference/permissions): ScaiPersona module permissions and which roles get them by default. - [Troubleshooting](https://www.scailabs.ai/docs/scaigrid/scaipersona/troubleshooting): Common symptoms and what they usually mean. - [Tutorials](https://www.scailabs.ai/docs/scaigrid/scaipersona/tutorials): Step-by-step recipes for common tasks. Pick the one closest to what you're building. - [Attach a ScaiDrive share](https://www.scailabs.ai/docs/scaigrid/scaipersona/tutorials/attach-a-scaidrive-share): Wire a ScaiDrive share as a knowledge source — listing accessible shares, token exchange, search behaviour, common pitfalls. - [Build a knowledge-grounded persona](https://www.scailabs.ai/docs/scaigrid/scaipersona/tutorials/build-a-knowledge-persona): End-to-end recipe — persona config, multiple weighted sources, an avatar, publishing, group assignment, and invocation. ### ScaiQueue - [Changelog](https://www.scailabs.ai/docs/scaigrid/scaiqueue/changelog): User-visible changes to ScaiQueue. - [Concepts](https://www.scailabs.ai/docs/scaigrid/scaiqueue/concepts): Core ideas worth modelling before you write code. Each topic is self-contained — skim the one you need. - [Architecture](https://www.scailabs.ai/docs/scaigrid/scaiqueue/concepts/architecture): How publish, claim, complete, and reclaim fit together — MariaDB rows, Redis sorted sets, system agents. - [Topics, types, and HITL specs](https://www.scailabs.ai/docs/scaigrid/scaiqueue/concepts/topics-and-types): What makes a queue a typed channel — message_type, schemas, labels, priority tiers, HITL rendering specs. - [ScaiQueue](https://www.scailabs.ai/docs/scaigrid/scaiqueue/overview): Typed message channels with at-least-once delivery — scopes, queues, routing rules, streams, and HITL specs inside ScaiGrid. - [Quickstart](https://www.scailabs.ai/docs/scaigrid/scaiqueue/quickstart): Create a scope, create a queue, publish a message, claim it, complete it — five minutes end-to-end. - [Reference](https://www.scailabs.ai/docs/scaigrid/scaiqueue/reference): Authoritative API, permissions, and configuration listings. The place to look up the exact shape of a request, response, or scope. - [API reference](https://www.scailabs.ai/docs/scaigrid/scaiqueue/reference/api): Every ScaiQueue endpoint — scopes, queues, messages, routing, streams, subscriptions, ACLs, schemas, HITL patterns, audit, API keys, GDPR. - [Permissions](https://www.scailabs.ai/docs/scaigrid/scaiqueue/reference/permissions): ScaiQueue module permissions and which roles get them by default. - [Troubleshooting](https://www.scailabs.ai/docs/scaigrid/scaiqueue/troubleshooting): Common symptoms and what they usually mean. - [Tutorials](https://www.scailabs.ai/docs/scaigrid/scaiqueue/tutorials): Step-by-step recipes for common tasks. Pick the one closest to what you're building. - [Build a routed pipeline](https://www.scailabs.ai/docs/scaigrid/scaiqueue/tutorials/build-a-pipeline): Multi-stage flow — scope, two queues, a routing rule that moves matched messages between them, end-to-end producer and consumer. - [Add a human review step](https://www.scailabs.ai/docs/scaigrid/scaiqueue/tutorials/human-review): HITL recipe — publish a message with a hitl_spec, render it in the admin UI, complete it with a reviewer's decision. ### ScaiSkills - [Changelog](https://www.scailabs.ai/docs/scaigrid/scaiskills/changelog): User-visible changes to ScaiSkills. - [Concepts](https://www.scailabs.ai/docs/scaigrid/scaiskills/concepts): Core ideas worth modelling before you write code. Each topic is self-contained — skim the one you need. - [Architecture](https://www.scailabs.ai/docs/scaigrid/scaiskills/concepts/architecture): How the publish path, the bind path, the per-turn resolve, and the progressive-disclosure MCP surface fit together. - [Bindings and resolution](https://www.scailabs.ai/docs/scaigrid/scaiskills/concepts/bindings-and-resolution): How a binding becomes the install record — scope precedence, the lockfile, pending grants, and the per-turn resolve. - [ScaiSkills](https://www.scailabs.ai/docs/scaigrid/scaiskills/overview): Skill catalog and bindings — publish content-addressed skill bundles, bind them to scopes, resolve them per turn, expose them to the LLM via progressive disclosure. - [Quickstart](https://www.scailabs.ai/docs/scaigrid/scaiskills/quickstart): Register a skill, publish a bundle, bind it to a scope, and resolve it — five minutes end-to-end. - [Reference](https://www.scailabs.ai/docs/scaigrid/scaiskills/reference): Authoritative API, permissions, and configuration listings. The place to look up the exact shape of a request, response, or scope. - [API reference](https://www.scailabs.ai/docs/scaigrid/scaiskills/reference/api): Every ScaiSkills endpoint — skills, versions, bindings, grants, resolve, and the progressive-disclosure MCP surface. - [Permissions](https://www.scailabs.ai/docs/scaigrid/scaiskills/reference/permissions): ScaiSkills module permissions and which roles get them by default. - [Troubleshooting](https://www.scailabs.ai/docs/scaigrid/scaiskills/troubleshooting): Common symptoms and what they usually mean. - [Tutorials](https://www.scailabs.ai/docs/scaigrid/scaiskills/tutorials): Step-by-step recipes for common tasks. Pick the one closest to what you're building. - [Bind a skill with grants](https://www.scailabs.ai/docs/scaigrid/scaiskills/tutorials/bind-with-grants): Walk a binding through the pending-grants gate — declared permissions, required secret mappings, and the admin approval flow. - [Publish a skill](https://www.scailabs.ai/docs/scaigrid/scaiskills/tutorials/publish-a-skill): Bundle layout, manifest fields, the references directory, semver monotonicity, and what the publish endpoint validates. ### ScaiSpeak - [Changelog](https://www.scailabs.ai/docs/scaigrid/scaispeak/changelog): User-visible changes to ScaiSpeak. - [Concepts](https://www.scailabs.ai/docs/scaigrid/scaispeak/concepts): Core ideas worth modelling before you write code. Each topic is self-contained — skim the one you need. - [Architecture](https://www.scailabs.ai/docs/scaigrid/scaispeak/concepts/architecture): How the speak endpoints, the two backends, the voice-warm registry, and the streaming transports fit together. - [Voice library and consent](https://www.scailabs.ai/docs/scaigrid/scaispeak/concepts/voice-library): How voices are scoped (global, tenant, user), how cloning works, what consent vs license means, and how erasure flows through the system. - [ScaiSpeak](https://www.scailabs.ai/docs/scaigrid/scaispeak/overview): Speech synthesis with voice cloning — batch TTS, real-time streaming, a multi-tier voice library, and consent-managed custom voices. - [Quickstart](https://www.scailabs.ai/docs/scaigrid/scaispeak/quickstart): List voices, render audio in your shell, save it to a file — five minutes end-to-end. - [Reference](https://www.scailabs.ai/docs/scaigrid/scaispeak/reference): Authoritative API, permissions, and configuration listings. The place to look up the exact shape of a request, response, or scope. - [API reference](https://www.scailabs.ai/docs/scaigrid/scaispeak/reference/api): Every ScaiSpeak endpoint — voices, speak, streaming, WebRTC, voice warming, tenant policy, admin, blocklist, global voices. - [Permissions](https://www.scailabs.ai/docs/scaigrid/scaispeak/reference/permissions): ScaiSpeak module permissions and which roles get them by default. - [Troubleshooting](https://www.scailabs.ai/docs/scaigrid/scaispeak/troubleshooting): Common symptoms and what they usually mean. - [Tutorials](https://www.scailabs.ai/docs/scaigrid/scaispeak/tutorials): Step-by-step recipes for common tasks. Pick the one closest to what you're building. - [Clone a voice and synthesise](https://www.scailabs.ai/docs/scaigrid/scaispeak/tutorials/clone-and-synthesise): Upload a reference clip plus a consent recording, then synthesise in your custom voice — zero-shot, no training wait. - [Stream TTS over WebSocket](https://www.scailabs.ai/docs/scaigrid/scaispeak/tutorials/stream-with-websocket): Open a streaming session, push text in chunks, drain audio frames in real time, and barge-in with interrupt. ## ScaiKey _Identity, authentication, federation, multi-tenancy._ - [Changelog](https://www.scailabs.ai/docs/scaikey/changelog): User-visible changes to ScaiKey. Latest first. - [Concepts](https://www.scailabs.ai/docs/scaikey/concepts): The vocabulary and mental model you need to use ScaiKey effectively. Read these in order if you're new; jump around if you're not. - [Applications](https://www.scailabs.ai/docs/scaikey/concepts/applications): An *application* in ScaiKey is an OAuth/OIDC client — anything that obtains tokens. Every external system that integrates with ScaiKey is registered as an application. - [Architecture](https://www.scailabs.ai/docs/scaikey/concepts/architecture): ScaiKey is multi-tenant from the ground up. There are five entity types you need to know. - [OAuth and OIDC](https://www.scailabs.ai/docs/scaikey/concepts/oauth-and-oidc): ScaiKey is a standard OpenID Connect provider. If your client library handles OIDC correctly, you mostly need to know two things: which discovery URL to point at, and which grant type fits your use case. - [Tokens and scopes](https://www.scailabs.ai/docs/scaikey/concepts/tokens-and-scopes): Every token ScaiKey issues is a signed JWT. Signing algorithm is `RS256` by default; the platform can be configured for `ES256`. Public keys are published at the JWKS endpoint and rotated on a schedule. - [Overview](https://www.scailabs.ai/docs/scaikey/overview): ScaiKey is the identity platform underneath the ScaiLabs ecosystem. It's a multi-tenant OpenID Connect provider with directory services, federated SSO, multi-factor authentication, SCIM provisioning, and machine-to-machi - [Quickstart](https://www.scailabs.ai/docs/scaikey/quickstart): Five steps from zero to a working ScaiKey access token. We'll use the `client_credentials` grant because it's the shortest path: no user, no browser, two `curl` calls. - [Reference](https://www.scailabs.ai/docs/scaikey/reference): Authoritative listings for everything you can hit, send, or expect. - [Admin API](https://www.scailabs.ai/docs/scaikey/reference/admin-api): Everything you can manage in ScaiKey is exposed at `/api/v1/admin/...`. Authentication is Bearer JWT; the token must carry an admin role (`super_admin`, `partner_admin`, `tenant_admin`) **or** be a platform `client_crede - [API reference](https://www.scailabs.ai/docs/scaikey/reference/api): Comprehensive reference for every ScaiKey API endpoint, organized by resource area. Each page is self-contained — endpoint signatures, parameters, request and response shapes, and the full schema definitions referenced. - [Admin Auth API](https://www.scailabs.ai/docs/scaikey/reference/api/admin-auth): Reference for the `Admin Auth` endpoint group — 4 endpoints. - [Admin Roles API](https://www.scailabs.ai/docs/scaikey/reference/api/admin-roles): Reference for the `Admin Roles` endpoint group — 6 endpoints. - [App Assignments API](https://www.scailabs.ai/docs/scaikey/reference/api/app-assignments): Reference for the `App Assignments` endpoint group — 9 endpoints. - [Applications API](https://www.scailabs.ai/docs/scaikey/reference/api/applications): Reference for the `Applications` endpoint group — 7 endpoints. - [Audit API](https://www.scailabs.ai/docs/scaikey/reference/api/audit): Reference for the `Audit` endpoint group — 5 endpoints. - [Authentication API](https://www.scailabs.ai/docs/scaikey/reference/api/authentication): Reference for the `Authentication` endpoint group — 9 endpoints. - [Authorized Apps API](https://www.scailabs.ai/docs/scaikey/reference/api/authorized-apps): Reference for the `Authorized Apps` endpoint group — 2 endpoints. - [Custom Attributes API](https://www.scailabs.ai/docs/scaikey/reference/api/custom-attributes): Reference for the `Custom Attributes` endpoint group — 5 endpoints. - [Dashboard API](https://www.scailabs.ai/docs/scaikey/reference/api/dashboard): Reference for the `Dashboard` endpoint group — 2 endpoints. - [Federation API](https://www.scailabs.ai/docs/scaikey/reference/api/federation): Reference for the `Federation` endpoint group — 12 endpoints. - [Groups API](https://www.scailabs.ai/docs/scaikey/reference/api/groups): Reference for the `Groups` endpoint group — 19 endpoints. - [Identity Providers API](https://www.scailabs.ai/docs/scaikey/reference/api/identity-providers): Reference for the `Identity Providers` endpoint group — 18 endpoints. - [MCP Agents API](https://www.scailabs.ai/docs/scaikey/reference/api/mcp-agents): Reference for the `MCP Agents` endpoint group — 7 endpoints. - [MFA API](https://www.scailabs.ai/docs/scaikey/reference/api/mfa): Reference for the `MFA` endpoint group — 11 endpoints. - [OIDC API](https://www.scailabs.ai/docs/scaikey/reference/api/oidc): Reference for the `OIDC` endpoint group — 11 endpoints. - [Organizational Units API](https://www.scailabs.ai/docs/scaikey/reference/api/organizational-units): Reference for the `Organizational Units` endpoint group — 7 endpoints. - [Partners API](https://www.scailabs.ai/docs/scaikey/reference/api/partners): Reference for the `Partners` endpoint group — 5 endpoints. - [Platform OAuth API](https://www.scailabs.ai/docs/scaikey/reference/api/platform-oauth): Reference for the `Platform OAuth` endpoint group — 10 endpoints. - [Platform Settings API](https://www.scailabs.ai/docs/scaikey/reference/api/platform-settings): Reference for the `Platform Settings` endpoint group — 4 endpoints. - [Portal Auth API](https://www.scailabs.ai/docs/scaikey/reference/api/portal-auth): Reference for the `Portal Auth` endpoint group — 6 endpoints. - [Profile API](https://www.scailabs.ai/docs/scaikey/reference/api/profile): Reference for the `Profile` endpoint group — 4 endpoints. - [public API](https://www.scailabs.ai/docs/scaikey/reference/api/public): Reference for the `public` endpoint group — 4 endpoints. - [registration API](https://www.scailabs.ai/docs/scaikey/reference/api/registration): Reference for the `registration` endpoint group — 4 endpoints. - [Registration Requests API](https://www.scailabs.ai/docs/scaikey/reference/api/registration-requests): Reference for the `Registration Requests` endpoint group — 6 endpoints. - [SCIM 2.0 API](https://www.scailabs.ai/docs/scaikey/reference/api/scim): Reference for the `SCIM 2.0` endpoint group — 18 endpoints. - [SCIM Bulk API](https://www.scailabs.ai/docs/scaikey/reference/api/scim-bulk): Reference for the `SCIM Bulk` endpoint group — 1 endpoints. - [SCIM Groups API](https://www.scailabs.ai/docs/scaikey/reference/api/scim-groups): Reference for the `SCIM Groups` endpoint group — 6 endpoints. - [SCIM Tokens API](https://www.scailabs.ai/docs/scaikey/reference/api/scim-tokens): Reference for the `SCIM Tokens` endpoint group — 6 endpoints. - [SCIM Users API](https://www.scailabs.ai/docs/scaikey/reference/api/scim-users): Reference for the `SCIM Users` endpoint group — 6 endpoints. - [Sessions API](https://www.scailabs.ai/docs/scaikey/reference/api/sessions): Reference for the `Sessions` endpoint group — 14 endpoints. - [Tenants API](https://www.scailabs.ai/docs/scaikey/reference/api/tenants): Reference for the `Tenants` endpoint group — 5 endpoints. - [Users API](https://www.scailabs.ai/docs/scaikey/reference/api/users): Reference for the `Users` endpoint group — 17 endpoints. - [Webhooks API](https://www.scailabs.ai/docs/scaikey/reference/api/webhooks): Reference for the `Webhooks` endpoint group — 12 endpoints. - [OAuth endpoints](https://www.scailabs.ai/docs/scaikey/reference/oauth-endpoints): ScaiKey exposes a full OIDC provider surface in two flavors: **platform** (for `GLOBAL`-scoped apps) and **tenant-scoped** (for apps that belong to one tenant). - [Webhooks](https://www.scailabs.ai/docs/scaikey/reference/webhooks): ScaiKey emits webhooks for partner, tenant, user, group, application, session, registration, and authentication events. Webhooks are delivered with retry, signed with HMAC-SHA256, and queued through a background worker. - [Troubleshooting](https://www.scailabs.ai/docs/scaikey/troubleshooting): Pages here are organized by **symptom** — paste the error message you saw into search and the right page should come up. - [OIDC logout returns 404 for GLOBAL apps](https://www.scailabs.ai/docs/scaikey/troubleshooting/oidc-logout-for-global-apps): A `GLOBAL`-scoped application tries to log a user out via something like: - [Platform token returns 403 with "requires admin:read or admin:write scope"](https://www.scailabs.ai/docs/scaikey/troubleshooting/platform-token-403): Your service obtains a token via `client_credentials` at `/api/v1/platform/oauth/token` and the call succeeds. But when the service uses the token to call an admin endpoint (`/api/v1/admin/...`), it gets: - [Tutorials](https://www.scailabs.ai/docs/scaikey/tutorials): End-to-end walkthroughs of the most common integrations. - [Service-to-service integration](https://www.scailabs.ai/docs/scaikey/tutorials/service-to-service): A complete walkthrough for the case where a backend service needs to call ScaiKey's admin API on its own behalf — no user involvement. End state: your service has a token-acquiring loop, calls a protected endpoint succes ## ScaiLabs Platform _Cross-product platform docs — getting started, API, guides, changelog._ _No published pages yet. Landing page: https://www.scailabs.ai/docs_ ## ScaiScribe _Transcription and speech-to-text pipelines._ - [Concepts](https://www.scailabs.ai/docs/scaiscribe/concepts): Key ideas and vocabulary you need to use the product effectively. - [Overview](https://www.scailabs.ai/docs/scaiscribe/overview): What this product does, who it's for, and how it fits into the platform. - [Quickstart](https://www.scailabs.ai/docs/scaiscribe/quickstart): Minimal working example in under five minutes. - [Reference](https://www.scailabs.ai/docs/scaiscribe/reference): API surface, configuration options, and exhaustive details. - [Troubleshooting](https://www.scailabs.ai/docs/scaiscribe/troubleshooting): Common issues, error messages, and how to recover. - [Tutorials](https://www.scailabs.ai/docs/scaiscribe/tutorials): Guided, end-to-end walkthroughs. ## ScaiSend _Transactional email & messaging — SendGrid-compatible API for ScaiLabs services._ - [Concepts](https://www.scailabs.ai/docs/scaisend/concepts): Mental model, terminology, and design ideas behind ScaiSend. - [Architecture](https://www.scailabs.ai/docs/scaisend/concepts/architecture): ScaiSend is three independently scalable services behind a shared MySQL database and a shared Redis queue. The surface area the HTTP API exposes comes from one of them; the other two do the work that happens after you ge - [Authentication](https://www.scailabs.ai/docs/scaisend/concepts/authentication): ScaiSend accepts two kinds of credentials: **API keys** (for servers and applications) and **JWTs** (for humans in the admin UI). Both go in the `Authorization: Bearer ` header. The server works out which one it i - [Bounce Handling](https://www.scailabs.ai/docs/scaisend/concepts/bounce-handling): A bounce is a delivery failure. ScaiSend classifies bounces, records them on the message timeline, fans out `bounce` events to webhooks, and adds the recipient to the suppression list so you don't repeat the failure. Thi - [DKIM, SPF, DMARC](https://www.scailabs.ai/docs/scaisend/concepts/dkim-spf-dmarc): Email authentication is three protocols working together. DKIM signs your messages so recipients know they came from you. SPF tells recipients which servers are allowed to send for your domain. DMARC tells recipients wha - [Errors](https://www.scailabs.ai/docs/scaisend/concepts/errors): ScaiSend returns structured error responses. The HTTP status code classifies the error broadly; the response body gives you the specifics. This page describes the shapes you'll see, when each is used, and how to handle t - [Events and Webhooks](https://www.scailabs.ai/docs/scaisend/concepts/events-and-webhooks): ScaiSend emits **events** for everything that happens to a message after it's queued. Events land on the message timeline (pull), and they also fan out to any webhook endpoints you've configured (push). This page describ - [Feedback Loops](https://www.scailabs.ai/docs/scaisend/concepts/feedback-loops): When a recipient marks your email as spam in Gmail, Yahoo, Outlook, or AOL, those providers don't tell you directly — they use feedback loops (FBLs). An FBL is an out-of-band mechanism where ISPs forward spam complaints - [Multi-tenancy](https://www.scailabs.ai/docs/scaisend/concepts/multi-tenancy): ScaiSend is multi-tenant by default. Every object — API key, template, message, suppression, webhook endpoint, sender domain — belongs to a tenant, and every request resolves to exactly one tenant before any business log - [Philosophy](https://www.scailabs.ai/docs/scaisend/concepts/philosophy): A few design principles shape the ScaiSend API. Knowing them helps you predict how an unfamiliar endpoint will behave. - [Rate Limiting](https://www.scailabs.ai/docs/scaisend/concepts/rate-limiting): ScaiSend rate-limits requests to protect the service from floods and to keep individual tenants from starving each other. This page describes the limits, the response format, and how to design a client that stays under t - [Roles and Permissions](https://www.scailabs.ai/docs/scaisend/concepts/roles-and-permissions): ScaiSend uses role-based access control. Users are assigned roles; roles carry permissions; permissions gate endpoints. API keys bypass the user layer — they carry scopes directly — but are gated by the same permission s - [Sandbox vs Live](https://www.scailabs.ai/docs/scaisend/concepts/sandbox-vs-live): Every ScaiSend send runs in one of two modes: **live** (actually delivered) or **sandbox** (validated, recorded, but not delivered). This page describes when each applies, how to force sandbox, and how to verify what hap - [Sender Domains](https://www.scailabs.ai/docs/scaisend/concepts/sender-domains): Every live `From:` address has to use a verified sender domain. Verification proves you control the domain and lets ScaiSend sign your mail with DKIM. Without it, modern mail providers (Gmail, Outlook, Yahoo) will at bes - [Suppressions](https://www.scailabs.ai/docs/scaisend/concepts/suppressions): A suppression is a "don't send to this address" marker. ScaiSend maintains three kinds automatically — bounces, spam reports, unsubscribes — and also supports **suppression groups** for per-topic opt-outs. This page desc - [Tracking](https://www.scailabs.ai/docs/scaisend/concepts/tracking): ScaiSend tracks four things: opens, clicks, unsubscribes, and (optionally) Google Analytics UTM parameters. Each one has a tenant-level default and a per-request override. This page covers what's tracked, how it's instru - [What is ScaiSend](https://www.scailabs.ai/docs/scaisend/overview): ScaiSend is a self-hosted transactional email service. It exposes a SendGrid v3-compatible HTTP API on top of a direct-delivery SMTP engine — no external MTA, no provider relay, no third-party account. You point your app - [Quickstart](https://www.scailabs.ai/docs/scaisend/quickstart): Your first ScaiSend email in five minutes. Assumes you already have a ScaiSend instance (managed or self-hosted) and a user account with `mail.send` permission. - [Reference](https://www.scailabs.ai/docs/scaisend/reference): Exhaustive endpoint reference for the ScaiSend API. - [Admin Reference](https://www.scailabs.ai/docs/scaisend/reference/admin): Admin endpoints — tenants, partners, roles, permissions, group mappings, sender domains, and tracking settings. These are ScaiSend-native surfaces, not SendGrid-compatible. - [API Keys Reference](https://www.scailabs.ai/docs/scaisend/reference/api-keys): Endpoints for managing tenant API keys. For the conceptual overview, see [Authentication](../concepts/authentication). - [Authentication Reference](https://www.scailabs.ai/docs/scaisend/reference/authentication): All authentication and session endpoints. For the conceptual overview, see [Authentication](../concepts/authentication). - [Error Codes](https://www.scailabs.ai/docs/scaisend/reference/error-codes): Complete reference of HTTP status codes and error-response shapes across every ScaiSend endpoint. For the conceptual overview and retry guidance, see [Errors](../concepts/errors). - [Images Reference](https://www.scailabs.ai/docs/scaisend/reference/images): Endpoints for the tenant image library. For the guide-level walk-through, see [Attachments and Images](../tutorials/attachments-and-images). - [Mail Send Reference](https://www.scailabs.ai/docs/scaisend/reference/mail-send): The `/v3/mail/send` endpoint and related batch endpoints. For the guide-level walk-through, see [Sending Mail](../tutorials/sending-mail). - [Messages Reference](https://www.scailabs.ai/docs/scaisend/reference/messages): Endpoints for querying and managing sent messages. For the guide-level walk-through, see [Messages and Events](../tutorials/messages-and-events). - [Statistics Reference](https://www.scailabs.ai/docs/scaisend/reference/stats): Endpoints for daily, category-level, and summary statistics. Stats are aggregated nightly from message events; live sends are reflected the next day (or immediately, if you manually rebuild). - [Suppressions Reference](https://www.scailabs.ai/docs/scaisend/reference/suppressions): Every endpoint for bounces, spam reports, global unsubscribes, and suppression groups. For the guide-level walk-through, see [Suppressions](../tutorials/suppressions); for the conceptual overview, [Suppressions (concept) - [Templates Reference](https://www.scailabs.ai/docs/scaisend/reference/templates): Endpoints for managing templates and their versions. For the guide-level walk-through, see [Templates](../tutorials/templates). - [Tracking Endpoints Reference](https://www.scailabs.ai/docs/scaisend/reference/tracking-endpoints): Public endpoints invoked by recipients' email clients — tracking pixels, click redirects, unsubscribe pages, and the image proxy. These are not called by your application directly; they're referenced from the HTML of ema - [Webhooks Reference](https://www.scailabs.ai/docs/scaisend/reference/webhooks): Endpoints for managing webhook endpoints and the Event Webhook settings. For the guide, see [Webhooks](../tutorials/webhooks). - [Troubleshooting](https://www.scailabs.ai/docs/scaisend/troubleshooting): Deployment, health monitoring, and diagnosing common issues. - [Deployment](https://www.scailabs.ai/docs/scaisend/troubleshooting/deployment): Running ScaiSend in production. Three services, three datastores, and a handful of DNS records. This page covers the moving parts; see the standalone deployment guide shipped with the repository (`docs/deployment-standal - [Health and Monitoring](https://www.scailabs.ai/docs/scaisend/troubleshooting/health-and-monitoring): What to observe in a running ScaiSend deployment, and how to tell when something's wrong. The short version: three process families to watch, four metric families to alert on, and a handful of health endpoints. - [Troubleshooting](https://www.scailabs.ai/docs/scaisend/troubleshooting/index): Common failure modes and the fastest way to diagnose them. Symptoms in bold; likely causes and fixes underneath. - [Tutorials](https://www.scailabs.ai/docs/scaisend/tutorials): Task-oriented walk-throughs for common goals — sending mail, managing templates, wiring up webhooks. - [Attachments and Images](https://www.scailabs.ai/docs/scaisend/tutorials/attachments-and-images): ScaiSend handles binary content in two ways: **attachments** (file downloads included with the message) and **images** (visual content rendered inside the email). This page covers both, including the image library that l - [Your First Integration](https://www.scailabs.ai/docs/scaisend/tutorials/first-integration): A complete walk-through: from zero to a sending service that validates requests, sends through a template, handles errors, and reacts to delivery events. This is the integration you'd put in production. - [Messages and Events](https://www.scailabs.ai/docs/scaisend/tutorials/messages-and-events): Once a message is accepted by `/v3/mail/send`, every delivery action against it — rendering, queueing, sending, bouncing, being opened — is recorded as an event on the message timeline. This page covers querying messages - [Scheduling and Batches](https://www.scailabs.ai/docs/scaisend/tutorials/scheduling-and-batches): Two related features for coordinating multi-message sends: **scheduled delivery** (send later) and **batches** (group many messages under a single ID for aggregate reporting and collective cancellation). - [SendGrid Compatibility](https://www.scailabs.ai/docs/scaisend/tutorials/sendgrid-compatibility): ScaiSend's `/v3/` surface is a SendGrid v3 API clone. If you have existing code written against `api.sendgrid.com/v3/mail/send`, you can point it at `https://scaisend.scailabs.ai/v3/mail/send` and most of it will work wi - [Sending Mail](https://www.scailabs.ai/docs/scaisend/tutorials/sending-mail): The `POST /v3/mail/send` endpoint is ScaiSend's send API. It takes the same request shape SendGrid's `/v3/mail/send` takes — personalizations, from, subject, content, attachments, templates, tracking settings, suppressio - [Suppressions](https://www.scailabs.ai/docs/scaisend/tutorials/suppressions): Managing the bounce, spam-report, unsubscribe, and suppression-group lists through the API. For the conceptual overview — what each list means and when addresses are added automatically — read [Suppressions](../concepts/ - [Templates](https://www.scailabs.ai/docs/scaisend/tutorials/templates): Templates let you define the HTML, plain text, and subject of an email once, then send it with different data each time. ScaiSend templates are Handlebars/Mustache-compatible — the same syntax SendGrid dynamic templates - [Webhooks](https://www.scailabs.ai/docs/scaisend/tutorials/webhooks): Webhooks push delivery events to your service in real time. Register a URL, subscribe to event types, handle signed requests. This guide covers endpoint management and the signature-verification recipe. For event semanti - [Webhooks Deep Dive](https://www.scailabs.ai/docs/scaisend/tutorials/webhooks-deep-dive): Webhook delivery internals — retry policy, signature verification edge cases, auto-disable behavior, and scaling guidance. For the basic setup and signature-verification recipe, see [Webhooks (guide)](webhooks). ## ScaiVault _Secrets, keys, and policy-managed credentials — plus local PKI and ACME certificate automation._ - [Advanced](https://www.scailabs.ai/docs/scaivault/advanced): Federation deep-dive, rate limiting, webhook signatures. - [Federation Deep Dive](https://www.scailabs.ai/docs/scaivault/advanced/federation): Federation lets ScaiVault front an existing secret store: HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, or GCP Secret Manager. You get the ScaiVault API, audit trail, and policy model while the secret data stays - [Rate Limiting](https://www.scailabs.ai/docs/scaivault/advanced/rate-limiting): ScaiVault applies rate limits per identity across several endpoint categories. Limits protect the service from runaway clients and stop a compromised token from doing maximum damage before detection. - [Webhook Signatures](https://www.scailabs.ai/docs/scaivault/advanced/webhook-signatures): Every outbound webhook from ScaiVault is signed with HMAC-SHA256. Your endpoint **must** verify the signature before trusting the payload. Without verification, anyone who knows your URL can forge events. - [API Guides](https://www.scailabs.ai/docs/scaivault/api-guides): Task-oriented walkthroughs for every major API surface, plus a cookbook of common recipes. - [ACME (Let's Encrypt)](https://www.scailabs.ai/docs/scaivault/api-guides/acme): Issue and auto-renew public TLS certificates via any RFC 8555 ACME provider: Let's Encrypt, ZeroSSL, BuyPass, Google Trust Services, or an enterprise ACME server. ScaiVault is the ACME client — you configure it once and - [Audit Logs](https://www.scailabs.ai/docs/scaivault/api-guides/audit-logs): Query, summarize, and export the audit log. Every action in ScaiVault — reads, writes, rotations, policy changes, certificate issuance, dynamic leases — has an audit entry. - [Batch Operations](https://www.scailabs.ai/docs/scaivault/api-guides/batch-operations): Read or update many secrets in a single request. Useful when an application needs several credentials at startup, or when a config loader wants a whole subtree at once. - [Cookbook](https://www.scailabs.ai/docs/scaivault/api-guides/cookbook): Short, copy-pasteable recipes for things you'll do often. Each entry has a one-line scenario and the code that does it. For deeper explanations, follow the cross-links. - [Dynamic Secrets](https://www.scailabs.ai/docs/scaivault/api-guides/dynamic-secrets): End-to-end walkthrough: configure a PostgreSQL engine, define a role, generate a lease, use it, let it expire. For the conceptual model, see [Dynamic Secrets](../core-concepts/dynamic-secrets). - [PKI Certificates](https://www.scailabs.ai/docs/scaivault/api-guides/pki-certificates): Run an internal CA, issue certificates, manage CSRs and trust anchors. For ACME and public cert issuance, see [ACME](./acme). For the conceptual model, see [PKI](../core-concepts/pki). - [Policies](https://www.scailabs.ai/docs/scaivault/api-guides/policies): Create, bind, and test access policies. For the conceptual model, see [Policies and Permissions](../core-concepts/policies-and-permissions). - [Rotation Policies](https://www.scailabs.ai/docs/scaivault/api-guides/rotation): Define schedules for automated rotation, attach secrets, subscribe to events, trigger immediate rotations. For the conceptual model, see [Rotation](../core-concepts/rotation). - [Managing Secrets](https://www.scailabs.ai/docs/scaivault/api-guides/secrets): Read, write, version, delete, and list secrets. The day-to-day work of using ScaiVault. - [Changelog](https://www.scailabs.ai/docs/scaivault/changelog): User-visible changes to ScaiVault, newest first. Versioning is API-path based — breaking changes ship under a new path version (`v2`) and don't disturb `v1` callers. - [Concepts](https://www.scailabs.ai/docs/scaivault/concepts): Key ideas and vocabulary you need to use the product effectively. - [Core Concepts](https://www.scailabs.ai/docs/scaivault/core-concepts): The mental model behind secrets, policies, rotation, PKI, dynamic credentials, and events. - [Dynamic Secrets](https://www.scailabs.ai/docs/scaivault/core-concepts/dynamic-secrets): A dynamic secret is a credential that ScaiVault generates on demand, for a specific caller, with a short lifetime. When the lifetime expires, ScaiVault automatically revokes it at the source. Compared to static credentia - [Errors](https://www.scailabs.ai/docs/scaivault/core-concepts/errors): ScaiVault error responses are structured and stable. Your code branches on `error.code`, not on HTTP status alone or string-matching the `message`. - [Events and Webhooks](https://www.scailabs.ai/docs/scaivault/core-concepts/events-and-webhooks): ScaiVault emits events for everything important that happens — secrets written, rotated, accessed; policies changed; certificates issued or expiring; dynamic leases granted or revoked. You consume them via webhooks (HTTP - [Multi-tenancy](https://www.scailabs.ai/docs/scaivault/core-concepts/multi-tenancy): ScaiVault has a three-level tenancy model inherited from the ScaiLabs platform: **partners**, **tenants**, **identities**. Every secret, every policy, every audit entry is scoped to a tenant. Every tenant belongs to one - [PKI](https://www.scailabs.ai/docs/scaivault/core-concepts/pki): ScaiVault ships a full X.509 PKI: you can run an internal Certificate Authority, integrate ACME providers (Let's Encrypt and friends) for public certificates, sign external CSRs, and manage a trust store — all through th - [Policies and Permissions](https://www.scailabs.ai/docs/scaivault/core-concepts/policies-and-permissions): Access control in ScaiVault is policy-based. A **policy** is a list of **rules** that match paths and grant permissions. Policies are **bound** to **identities** — users, service accounts, groups. When a request comes in - [Rotation](https://www.scailabs.ai/docs/scaivault/core-concepts/rotation): Static credentials age into liabilities. ScaiVault has first-class rotation: define a policy once, attach it to a set of secrets, and ScaiVault drives the schedule, keeps an old version readable during cutover, and emits - [Secrets](https://www.scailabs.ai/docs/scaivault/core-concepts/secrets): The secret is the primary object in ScaiVault. Everything else — policies, rotation, audit — exists in service of reading and writing secrets safely. - [Getting Started](https://www.scailabs.ai/docs/scaivault/getting-started): Five-minute quickstart, authentication setup, and a complete first integration. - [Authentication](https://www.scailabs.ai/docs/scaivault/getting-started/authentication): ScaiVault accepts bearer tokens issued by [ScaiKey](https://scaikey.scailabs.ai). Every request except `/v1/health` and `/v1/health/ready` requires one. There are three token flavors, for three different use cases. - [Quickstart](https://www.scailabs.ai/docs/scaivault/getting-started/quickstart): Read and write your first secret in five minutes. Assumes you already have a ScaiVault instance (managed or self-hosted) and a user account. - [Your First Integration](https://www.scailabs.ai/docs/scaivault/getting-started/your-first-integration): A complete walk-through: take a service that reads a Salesforce credential from an environment variable and migrate it to ScaiVault — including error handling, retries, and rotation subscription. - [Integrations](https://www.scailabs.ai/docs/scaivault/integrations): Wiring ScaiVault into Kubernetes, Terraform, GitHub Actions, and Docker Compose. - [Docker Compose](https://www.scailabs.ai/docs/scaivault/integrations/docker-compose): For local development and small single-host deployments. The simplest pattern: a small entry-point script that reads from ScaiVault, exports env vars, then exec's the real process. - [GitHub Actions](https://www.scailabs.ai/docs/scaivault/integrations/github-actions): Replace GitHub repository / organization Secrets with ScaiVault reads at job start. Lets you rotate credentials without re-editing GitHub Secrets, keep a unified audit trail (who-read-what including CI), and apply path-p - [Kubernetes](https://www.scailabs.ai/docs/scaivault/integrations/kubernetes): Three patterns for pulling ScaiVault secrets into Kubernetes pods, from simplest to most flexible. - [Terraform](https://www.scailabs.ai/docs/scaivault/integrations/terraform): Provision ScaiVault resources — secrets, policies, rotation policies, PKI roles, dynamic engines — declaratively. The Terraform provider wraps the same REST API the SDKs use, so what you can do via curl you can do via `t - [Introduction](https://www.scailabs.ai/docs/scaivault/introduction): What ScaiVault is, the principles behind its design, how the pieces fit together, and its security model. - [Architecture](https://www.scailabs.ai/docs/scaivault/introduction/architecture): ScaiVault is a stateless API service in front of a PostgreSQL database, Redis cache, and an object store for large artifacts. It depends on ScaiKey for identity, optionally on a KMS/HSM for root key protection, and optio - [Philosophy](https://www.scailabs.ai/docs/scaivault/introduction/philosophy): ScaiVault makes a handful of opinionated choices. Most of them follow from one observation: secret management goes wrong when it's treated as a storage problem. It's a lifecycle problem. - [Security and Compliance](https://www.scailabs.ai/docs/scaivault/introduction/security-and-compliance): How ScaiVault protects the credentials you store in it. The short version: every secret is encrypted at rest with a per-row data key, wrapped by a root key that lives in a KMS or HSM. Plaintext exists in process memory f - [What is ScaiVault](https://www.scailabs.ai/docs/scaivault/introduction/what-is-scaivault): ScaiVault is a secrets and certificate management platform. It stores, versions, rotates, and distributes credentials — API keys, database passwords, TLS certificates, OAuth tokens — for every service across your tenancy - [Migrations](https://www.scailabs.ai/docs/scaivault/migrations): Move into ScaiVault from HashiCorp Vault, AWS Secrets Manager, or .env files — incrementally, with rollback paths. - [From AWS Secrets Manager](https://www.scailabs.ai/docs/scaivault/migrations/from-aws-secrets-manager): Move from AWS Secrets Manager (ASM) to ScaiVault. Like the HashiCorp Vault migration, the recommended path is incremental: federate first, migrate per-namespace, retire the ASM secrets when nothing reads them. - [From .env Files](https://www.scailabs.ai/docs/scaivault/migrations/from-env-files): This is a stub pointing at the full tutorial. The migration walkthrough lives in [tutorials](../tutorials/migrate-from-env-files) because it's hands-on rather than narrative. - [From HashiCorp Vault](https://www.scailabs.ai/docs/scaivault/migrations/from-hashicorp-vault): Move from HashiCorp Vault to ScaiVault. The recommended path: federate first (ScaiVault fronts your Vault), migrate per-path subtrees, retire Vault when nothing reads from it. - [Operations](https://www.scailabs.ai/docs/scaivault/operations): Deploying ScaiVault, monitoring it, and troubleshooting when it misbehaves. - [Deployment](https://www.scailabs.ai/docs/scaivault/operations/deployment): ScaiVault is a stateless container plus a PostgreSQL database, a Redis cache, and a KMS. Everything else — object storage, DNS providers, federated backends — is optional. - [Health and Monitoring](https://www.scailabs.ai/docs/scaivault/operations/health-and-monitoring): How to know ScaiVault is working, and what to watch for when it isn't. - [Troubleshooting](https://www.scailabs.ai/docs/scaivault/operations/troubleshooting): Common failures and how to diagnose them. Reach for the audit log, structured logs, and `/v1/health/detailed` before anything else. - [ScaiVault Documentation](https://www.scailabs.ai/docs/scaivault/overview): ScaiVault is the ScaiLabs secrets and certificate management platform. It stores, versions, rotates, and distributes credentials, issues X.509 certificates from an internal CA or ACME, and generates short-lived dynamic c - [Quickstart](https://www.scailabs.ai/docs/scaivault/quickstart): Minimal working example in under five minutes. - [API Reference](https://www.scailabs.ai/docs/scaivault/reference): Endpoint-level reference for every operation. - [Audit Logs](https://www.scailabs.ai/docs/scaivault/reference/audit): Endpoint reference for audit log queries and exports. For the guide, see [Audit Logs](../api-guides/audit-logs). - [Authentication](https://www.scailabs.ai/docs/scaivault/reference/authentication): Token exchange, introspection, and identity lookup. For conceptual overview see [Authentication](../getting-started/authentication). - [DNS Providers](https://www.scailabs.ai/docs/scaivault/reference/dns-providers): Endpoint reference for the DNS provider integrations used by [ACME DNS-01 challenges](../api-guides/acme). ScaiVault writes and cleans up `_acme-challenge` TXT records on your behalf; you configure once which providers m - [Dynamic Secrets](https://www.scailabs.ai/docs/scaivault/reference/dynamic): Endpoint reference for dynamic secrets engines, roles, and leases. For the guide, see [Dynamic Secrets](../api-guides/dynamic-secrets). For the model, see [Dynamic Secrets](../core-concepts/dynamic-secrets). - [Error Codes](https://www.scailabs.ai/docs/scaivault/reference/error-codes): Complete stable vocabulary of error codes. Branch on `error.code`, not on HTTP status. - [Federation](https://www.scailabs.ai/docs/scaivault/reference/federation): Endpoint reference for federated backends (HashiCorp Vault, AWS SM, Azure KV, GCP SM). For deep dive, see [Federation Deep Dive](../advanced/federation). - [Identity](https://www.scailabs.ai/docs/scaivault/reference/identity): Endpoint reference for the identity cache (partners, tenants, users, groups) mirrored from ScaiKey. - [PKI](https://www.scailabs.ai/docs/scaivault/reference/pki): Endpoint reference for PKI, CSRs, trust anchors, ACME. For guides, see [PKI Certificates](../api-guides/pki-certificates) and [ACME](../api-guides/acme). For the model, see [PKI](../core-concepts/pki). - [Policies](https://www.scailabs.ai/docs/scaivault/reference/policies): Endpoint reference for access policies. For the guide, see [Policies](../api-guides/policies). For the model, see [Policies and Permissions](../core-concepts/policies-and-permissions). - [Rotation](https://www.scailabs.ai/docs/scaivault/reference/rotation): Endpoint reference for rotation policies and schedules. For the guide, see [Rotation Policies](../api-guides/rotation). For the model, see [Rotation](../core-concepts/rotation). - [Secret Policies](https://www.scailabs.ai/docs/scaivault/reference/secret-policies): Endpoint reference for **value-generation policies** — recipes ScaiVault uses to mint new secret values during rotation, signup, or on-demand preview. (Not to be confused with [access policies](./policies), which control - [Secrets](https://www.scailabs.ai/docs/scaivault/reference/secrets): Endpoint reference for secrets. For the guide, see [Managing Secrets](../api-guides/secrets). For the model, see [Secrets](../core-concepts/secrets). - [Subscriptions](https://www.scailabs.ai/docs/scaivault/reference/subscriptions): Endpoint reference for path-scoped event subscriptions. For the concept, see [Events and Webhooks](../core-concepts/events-and-webhooks). - [System](https://www.scailabs.ai/docs/scaivault/reference/system): Health checks, readiness, and operational endpoints. - [Webhook Events](https://www.scailabs.ai/docs/scaivault/reference/webhook-events): Every event ScaiVault can emit, with the exact JSON shape of the `data` field. Use this when building a webhook receiver — your handler should branch on `event_type` and parse `data` accordingly. - [Webhooks](https://www.scailabs.ai/docs/scaivault/reference/webhooks): Endpoint reference for webhook management. For the guide, see [Events and Webhooks](../core-concepts/events-and-webhooks). For signature verification, see [Webhook Signatures](../advanced/webhook-signatures). - [Clients](https://www.scailabs.ai/docs/scaivault/sdks): Idiomatic clients for Python, JavaScript, and .NET, plus the CLI and the MCP server for agents. - [CLI](https://www.scailabs.ai/docs/scaivault/sdks/cli): `scaivault` is the command-line client. Same API as the SDKs, designed for interactive use, scripts, CI/CD pipelines, and operator workflows. - [.NET SDK](https://www.scailabs.ai/docs/scaivault/sdks/dotnet): Idiomatic C# client using `HttpClient`. Async-only (no sync wrappers — `await` it). Typed models with `System.Text.Json` source-generated converters. - [JavaScript SDK](https://www.scailabs.ai/docs/scaivault/sdks/javascript): Modern TypeScript/JavaScript client using native `fetch`. Typed with full type inference, zero runtime deps on browsers, minimal deps on Node. - [MCP Server](https://www.scailabs.ai/docs/scaivault/sdks/mcp): ScaiVault ships an MCP (Model Context Protocol) server exposing 67 typed tools — every major API operation, available to any MCP-aware LLM agent. Agents can read secrets, issue certificates, manage policies, query audit - [Python SDK](https://www.scailabs.ai/docs/scaivault/sdks/python): Async-first Python client with a sync wrapper. Typed models, automatic token refresh, retry with exponential backoff, connection pooling. - [Troubleshooting](https://www.scailabs.ai/docs/scaivault/troubleshooting): Common issues, error messages, and how to recover. - [Tutorials](https://www.scailabs.ai/docs/scaivault/tutorials): End-to-end scenarios: rotate an OAuth credential, build an mTLS mesh, dynamic Postgres in production, migrate from .env, issue an ACME wildcard. - [Issue an ACME Wildcard Certificate](https://www.scailabs.ai/docs/scaivault/tutorials/acme-wildcard-cert): Get a Let's Encrypt wildcard certificate (`*.acme.example`) using DNS-01 challenges. Wildcards require DNS-01 — Let's Encrypt won't sign one via HTTP-01. ScaiVault handles the DNS dance automatically once you've connecte - [Dynamic Postgres Credentials](https://www.scailabs.ai/docs/scaivault/tutorials/dynamic-postgres-credentials): Replace your service's long-lived `DB_PASSWORD` with short-lived credentials minted on demand. Each service instance gets its own DB user, valid for hours. If a key leaks, the blast radius is one user and one hour, not t - [Migrate from .env Files](https://www.scailabs.ai/docs/scaivault/tutorials/migrate-from-env-files): You have a fleet of services reading credentials from `.env` files or environment variables, set by your deployment pipeline. This tutorial walks through moving them into ScaiVault with no downtime and a path back if any - [Build an mTLS Service Mesh](https://www.scailabs.ai/docs/scaivault/tutorials/mtls-service-mesh): Stand up internal mTLS between services using a ScaiVault-issued CA hierarchy. By the end you'll have a root CA, an intermediate, a PKI role that constrains issuance, and certificates being issued to running services wit - [Rotate an OAuth Credential](https://www.scailabs.ai/docs/scaivault/tutorials/rotate-oauth-credentials): A complete walkthrough: take a Salesforce OAuth credential, put it under a 90-day rotation policy with a webhook-driven new-value handler, verify the cycle works, and let it run. ## ScaiWave _Realtime collaboration with AI participants._ - [Changelog](https://www.scailabs.ai/docs/scaiwave/changelog): User-visible changes per release. - [Concepts](https://www.scailabs.ai/docs/scaiwave/concepts): Mental model: workspaces, rooms, notes, AI participants, plans, federation, bridges. - [AI engagement](https://www.scailabs.ai/docs/scaiwave/concepts/ai-engagement): How AI participants join rooms, when they respond, and what knobs you can turn. - [Bridges](https://www.scailabs.ai/docs/scaiwave/concepts/bridges): Relay messages between a ScaiWave room and an external chat platform (Slack, Discord, Teams, or a remote ScaiWave). - [Calls](https://www.scailabs.ai/docs/scaiwave/concepts/calls): Audio, video, screen share, recording, and live transcription — inside any room. - [Federation](https://www.scailabs.ai/docs/scaiwave/concepts/federation): Cross-tenant rooms via a signed server-to-server protocol. Foreign participants are first-class members. - [Incognito and restricted rooms](https://www.scailabs.ai/docs/scaiwave/concepts/incognito-and-restricted): When you want a conversation that doesn't leak into search, summaries, training data, or future AI context. - [Multi-tenancy](https://www.scailabs.ai/docs/scaiwave/concepts/multi-tenancy): Every entity in ScaiWave is scoped to a tenant. What that means in practice for isolation, billing, and operations. - [Notifications](https://www.scailabs.ai/docs/scaiwave/concepts/notifications): Presence, per-room modes, mute, quiet hours, snooze, keyword alerts, priority inbox, AI catch-up. - [Participants](https://www.scailabs.ai/docs/scaiwave/concepts/participants): Humans, AI models, helpers, sidekicks, federation peers, and shadow accounts — all participate in rooms the same way. - [Planner](https://www.scailabs.ai/docs/scaiwave/concepts/planner): Stateful multi-step plans an AI commits to, works through, and recovers from — with you as the supervisor. - [Plugins and tools](https://www.scailabs.ai/docs/scaiwave/concepts/plugins-and-tools): What the AI can call. The standard plugin set; how the AI picks; how to add your own. - [Presence and availability](https://www.scailabs.ai/docs/scaiwave/concepts/presence): Online, idle, busy, appear offline — and how ScaiWave tracks it. - [Rooms and workspaces](https://www.scailabs.ai/docs/scaiwave/concepts/rooms-and-workspaces): Workspaces hold rooms; rooms hold participants and conversations. - [Rooms vs. notes](https://www.scailabs.ai/docs/scaiwave/concepts/rooms-vs-notes): Rooms are conversations; notes are documents. ScaiWave gives both first-class treatment so you don't have to context-switch tools. - [Search](https://www.scailabs.ai/docs/scaiwave/concepts/search): Hybrid BM25 + vector retrieval over messages, notes, and file content. - [Sidekicks](https://www.scailabs.ai/docs/scaiwave/concepts/sidekicks): Delegated AIs that run a single task in the background and report back when done. - [Overview](https://www.scailabs.ai/docs/scaiwave/overview): ScaiWave is a multi-tenant messaging and collaboration platform with first-class AI participants, structured notes, and an open protocol. - [Quickstart](https://www.scailabs.ai/docs/scaiwave/quickstart): From zero to your first AI chat in under five minutes. - [Reference](https://www.scailabs.ai/docs/scaiwave/reference): API endpoints, WebSocket events, CLI, configuration, error codes, slash commands, plugin protocol. - [API reference](https://www.scailabs.ai/docs/scaiwave/reference/api): 278 endpoints, grouped by domain. - [Admin API](https://www.scailabs.ai/docs/scaiwave/reference/api/admin): Tenants, partners, plugins, model catalog, audit, statistics, AI config. - [AI API](https://www.scailabs.ai/docs/scaiwave/reference/api/ai): Engagement, response mode, system prompts, plugins, sampling, search, memory, ScaiLink consent, agents, approvals. - [Artifacts API](https://www.scailabs.ai/docs/scaiwave/reference/api/artifacts): Canvas — collaborative documents inside a chat room. - [Auth API](https://www.scailabs.ai/docs/scaiwave/reference/api/auth): Sign-in, registration, refresh, OIDC config. - [Bridges API](https://www.scailabs.ai/docs/scaiwave/reference/api/bridges): Room bridges + workspace bridges. - [Calls API](https://www.scailabs.ai/docs/scaiwave/reference/api/calls): Initiate, join, leave, record, end. Backed by LiveKit. - [Comments API](https://www.scailabs.ai/docs/scaiwave/reference/api/comments): Comment threads scoped to a note. - [Federation API](https://www.scailabs.ai/docs/scaiwave/reference/api/federation): Server-to-server protocol + admin surface. - [GDPR API](https://www.scailabs.ai/docs/scaiwave/reference/api/gdpr): Data export, erasure, AI-training consent. - [Health and metrics API](https://www.scailabs.ai/docs/scaiwave/reference/api/health-and-metrics): Liveness, readiness, Prometheus metrics. - [Helpers and skills API](https://www.scailabs.ai/docs/scaiwave/reference/api/helpers-and-skills): Specialist AI configurations and the skills library. - [Inbox and notifications API](https://www.scailabs.ai/docs/scaiwave/reference/api/inbox-and-notifications): Priority inbox, snooze, catch-up. - [Media and files API](https://www.scailabs.ai/docs/scaiwave/reference/api/media-and-files): Upload, download, transcribe, and browse files attached in a room. - [Members and directory API](https://www.scailabs.ai/docs/scaiwave/reference/api/members-and-directory): Browse, search, look up by alias. - [Messages and reactions API](https://www.scailabs.ai/docs/scaiwave/reference/api/messages-and-reactions): Send, edit, redact, react. The atomic actions in a room. - [Notes API](https://www.scailabs.ai/docs/scaiwave/reference/api/notes): Full notes surface: CRUD, AI assist, todos, audio, aliases, graph, embed expansion, suggested links. - [Presence and state API](https://www.scailabs.ai/docs/scaiwave/reference/api/presence-and-state): Presence batch fetch + room state snapshot. - [Profiles and preferences API](https://www.scailabs.ai/docs/scaiwave/reference/api/profiles): Your profile, presence, preferences. - [Prompt Studio API](https://www.scailabs.ai/docs/scaiwave/reference/api/prompt-studio): Inspect, preview, and override prompt assembly. - [Queue and scheduled tasks API](https://www.scailabs.ai/docs/scaiwave/reference/api/queue-and-scheduled-tasks): ARQ job submission, status, observability, scheduled tasks (cron). - [Rooms API](https://www.scailabs.ai/docs/scaiwave/reference/api/rooms): Create, list, archive, close, export, import, rename, federate, move between workspaces. - [Sidekicks and plans API](https://www.scailabs.ai/docs/scaiwave/reference/api/sidekicks-and-plans): Spawn, list, cancel sidekicks; supervise plans. - [Sync API](https://www.scailabs.ai/docs/scaiwave/reference/api/sync): Long-poll endpoint for missed events. Used by clients on reconnect. - [Workspaces API](https://www.scailabs.ai/docs/scaiwave/reference/api/workspaces): Workspaces, members, settings, and the workspace-bridge surface. - [CLI reference](https://www.scailabs.ai/docs/scaiwave/reference/cli): The `scaiwave` command-line tool. - [Configuration](https://www.scailabs.ai/docs/scaiwave/reference/configuration): Every `SCAIWAVE_*` environment variable. The truth lives in `app/config.py`. - [Error codes](https://www.scailabs.ai/docs/scaiwave/reference/error-codes): The `SW_*` codes used in every error response. - [Plugin protocol](https://www.scailabs.ai/docs/scaiwave/reference/plugin-protocol): BasePlugin, PluginManifest, ToolDefinition, PluginContext, PluginPermission. - [Slash commands](https://www.scailabs.ai/docs/scaiwave/reference/slash-commands): Machine-readable catalog of every slash command. - [WebSocket events](https://www.scailabs.ai/docs/scaiwave/reference/websocket-events): Every event type ScaiWave streams over WebSocket, with payload schemas. - [Troubleshooting](https://www.scailabs.ai/docs/scaiwave/troubleshooting): Common symptoms with diagnosis and fix. - [AI isn't responding](https://www.scailabs.ai/docs/scaiwave/troubleshooting/ai-not-responding): You send a message and the AI never replies — or replies and then nothing. - [Call quality issues](https://www.scailabs.ai/docs/scaiwave/troubleshooting/call-quality-issues): Audio dropouts, video freezing, echo, can't hear, can't join. - [Can't sign in](https://www.scailabs.ai/docs/scaiwave/troubleshooting/cant-sign-in): Sign-in redirects don't work, you get bounced back, or the app says the token is invalid. - [Federation handshake fails](https://www.scailabs.ai/docs/scaiwave/troubleshooting/federation-handshake-fails): Invites to / from another server don't go through. Events return signature errors. - [Notifications aren't firing](https://www.scailabs.ai/docs/scaiwave/troubleshooting/notifications-not-firing): You expected a desktop ping or a badge, didn't get one. - [Search returns nothing](https://www.scailabs.ai/docs/scaiwave/troubleshooting/search-returns-nothing): You search for something you know is there, and get zero hits. - [WebSocket keeps disconnecting](https://www.scailabs.ai/docs/scaiwave/troubleshooting/websocket-disconnects): Your client connects, then drops; or messages stop appearing live. - [Note content out of sync](https://www.scailabs.ai/docs/scaiwave/troubleshooting/yjs-note-divergence): A note shows different content in the editor vs. the rendered view, or stale content on reload. - [Tutorials](https://www.scailabs.ai/docs/scaiwave/tutorials): Three tracks: first steps for new users, power-user recipes, and developer guides. - [Developer](https://www.scailabs.ai/docs/scaiwave/tutorials/developer): Building on ScaiWave: local setup, auth, REST + WebSocket, plugins, bridges, deployment, federation. - [Authenticate with ScaiKey](https://www.scailabs.ai/docs/scaiwave/tutorials/developer/authenticate-with-scaikey): OIDC sign-in, RFC 8693 token exchange, refresh tokens, and the mock-mode escape hatch. - [Build an integration bridge](https://www.scailabs.ai/docs/scaiwave/tutorials/developer/build-an-integration-bridge): Wire an external chat system (Slack, Discord, your own) so its messages flow into a ScaiWave room. - [Deploy ScaiWave](https://www.scailabs.ai/docs/scaiwave/tutorials/developer/deploy-scaiwave): Production deployment topology, environment, and operational checklist. - [Enable federation with a peer](https://www.scailabs.ai/docs/scaiwave/tutorials/developer/enable-federation-with-a-peer): Admin setup to peer your ScaiWave server with another. - [Your first REST API call](https://www.scailabs.ai/docs/scaiwave/tutorials/developer/first-rest-api-call): Get a token, hit the API, parse the response. Eight lines of curl. - [Local development setup](https://www.scailabs.ai/docs/scaiwave/tutorials/developer/local-development): Run a ScaiWave server locally for development, with all dependencies. - [Send a message via the API](https://www.scailabs.ai/docs/scaiwave/tutorials/developer/send-a-message-via-api): The event model in detail: content types, mentions, attachments, threading, edits, redactions. - [Subscribe to WebSocket events](https://www.scailabs.ai/docs/scaiwave/tutorials/developer/subscribe-to-websocket-events): Listen for messages, presence, typing, AI status, and plan updates over a single WS connection. - [Write a plugin](https://www.scailabs.ai/docs/scaiwave/tutorials/developer/write-a-plugin): Add a new tool the AI can call. End-to-end, including the manifest, the tool definition, and the executor. - [First steps](https://www.scailabs.ai/docs/scaiwave/tutorials/first-steps): Five tutorials for users who've just signed in. - [Chat with AI](https://www.scailabs.ai/docs/scaiwave/tutorials/first-steps/chat-with-ai): Open a DM with an AI assistant and have your first conversation. - [Create and organise notes](https://www.scailabs.ai/docs/scaiwave/tutorials/first-steps/create-and-organize-notes): From your first note to a workspace knowledge graph. - [Manage your availability](https://www.scailabs.ai/docs/scaiwave/tutorials/first-steps/manage-your-availability): Presence, notifications, mute, quiet hours, and snooze. - [Send your first message](https://www.scailabs.ai/docs/scaiwave/tutorials/first-steps/send-your-first-message): From signed-in to first message in a group room. - [Start a direct message](https://www.scailabs.ai/docs/scaiwave/tutorials/first-steps/start-a-direct-message): 1:1 conversations with another participant. - [Power user](https://www.scailabs.ai/docs/scaiwave/tutorials/power-user): Recipes for users comfortable with the basics. Slash commands, planner, sidekicks, advanced workflows. - [Catch up on busy rooms](https://www.scailabs.ai/docs/scaiwave/tutorials/power-user/catch-up-on-busy-rooms): Come back to a hundred unread messages; get a structured summary of what mattered. - [Export and import rooms](https://www.scailabs.ai/docs/scaiwave/tutorials/power-user/export-and-import-rooms): Move entire conversations between workspaces, tenants, or instances as portable ZIP bundles. - [Join a federated room](https://www.scailabs.ai/docs/scaiwave/tutorials/power-user/join-a-federated-room): Have a room with someone on another ScaiWave server. They appear as a real member. - [Master slash commands](https://www.scailabs.ai/docs/scaiwave/tutorials/power-user/master-slash-commands): The full menu of commands you can type into the composer. - [Math rendering](https://www.scailabs.ai/docs/scaiwave/tutorials/power-user/math-rendering): KaTeX in chat, notes, and live in-editor preview. Inline and display. - [Multi-window and popouts](https://www.scailabs.ai/docs/scaiwave/tutorials/power-user/multi-window-and-popouts): Pop a chat or a note into its own window. Keep a call in PiP. Run multiple ScaiWave windows side-by-side. - [Spawn and monitor sidekicks](https://www.scailabs.ai/docs/scaiwave/tutorials/power-user/spawn-and-monitor-sidekicks): Delegate a task to a background AI room and watch it run. - [Todos from notes](https://www.scailabs.ai/docs/scaiwave/tutorials/power-user/todos-from-notes): Any checkbox line in any note is a real todo with due dates, assignees, tags, and a cross-workspace view. - [Tune AI response mode](https://www.scailabs.ai/docs/scaiwave/tutorials/power-user/tune-ai-response-mode): Streaming vs. conversational — and the per-(room×AI) override. - [Use the prompt studio](https://www.scailabs.ai/docs/scaiwave/tutorials/power-user/use-prompt-studio): Inspect and tune the prompt assembly before turns. See what the AI sees. - [Use the planner](https://www.scailabs.ai/docs/scaiwave/tutorials/power-user/use-the-planner): Get an AI to commit to a multi-step plan, then supervise it as it executes. - [Voice-dictate into notes](https://www.scailabs.ai/docs/scaiwave/tutorials/power-user/voice-dictate-into-notes): Talk; ScaiWave transcribes and lets you insert into the active note.