Skip to main content

Introduction

naturali.ai is agents that operate for you, with autonomy you can prove. It is one product built on one shared platform — a single runtime everything compiles to and runs on.

The naturali.ai API is the single public contract for the whole platform. Every surface — the app, the operator inbox, the CLI, the TypeScript SDK — is a thin client over exactly this contract; there are no app-private capabilities. Anything the platform can do, you can do through this API and re-embed in your own product.

How these docs are organized​

  • Docs (this sidebar) — one page per module: what it is, its data model, and the key concepts that aren't obvious from the schema alone. Modules are grouped by the product's features — Agents, Knowledge, Channels, Automation, Control, Evaluations, Models — then Access for who may call the API and Platform for what every feature stands on. Getting started comes first: authentication, rate limits, errors and the conventions every module shares.
  • Tutorials — task-oriented walkthroughs. A module page tells you what something is; a tutorial takes you end to end through doing it, with every call given for the CLI, the SDK and curl. They cut across the feature groups above, which is why they get their own header rather than sitting inside one. Start with Your first agent generation.
  • API Reference — the generated REST reference, one page per operation, grouped by the same features, derived directly from the OpenAPI specs that are the binding wire contract. If a docs page and the API reference ever disagree, the API reference wins — it's generated straight from the spec.
  • Clients — the SDK, the CLI and the MCP server your assistant connects to. They're how you call the product, not part of it, so they live under their own header.

Before your first call​

Four pages hold what every module shares; read them once.

PageWhat it covers
AuthenticationThe three credentials, what each one reaches, and 401 vs 403 vs 404
Rate limitsRequest rate limits, 429 and Retry-After, and the quotas and plan limits that are not about rate
ErrorsThe error envelope and the codes common to every module
ConventionsBase URL, versioning, IDs, pagination and idempotency

Modules​

Agents​

Configure an agent once, version it, and run it from any surface.

ModuleWhat it covers
AgentsConfigure, version, release and run agents
ToolsHTTP, MCP, client and pipeline capabilities an agent can call
SessionsDurable dialogues: messages, forks, expiry
ConversationsThe message thread a session records into
ActorsWho the agent is talking to, and their persona
GenerationsOne model loop each: status, transcript, cost attribution

Knowledge​

What an agent reads before it answers, and what it remembers.

ModuleWhat it covers
FilesThe bytes a project works from
DocumentsA source split into embedded, retrievable chunks
Metadata SchemasWhat a resource's metadata must satisfy
Ingestion RulesHow a file type becomes readable text
KnowledgeOne semantic query across a project's documents
EmbeddingsText in, vectors out
MemoriesThe individual facts inside a memory store
Memory StoresThe named stores an agent remembers into
Memory RulesWhich agent runs a memory store ingests

Channels​

Bind an agent to a channel; the platform runs the conversation.

ModuleWhat it covers
ChannelsConnect an agent to WhatsApp or Discord
Discord channelsThe Discord-specific setup and its Gateway worker
Channel RoutesPer-identifier and per-surface routing rules
AddressesThe identity behind an inbound identifier, and its erasure
Channel KindsWhat each channel kind supports

Automation​

Work that runs when no one is calling.

ModuleWhat it covers
WorkflowsState machines work moves through
TasksUnits of work moving through a workflow
OrchestrationsMulti-step pipelines declared as a graph
TriggersSchedules, webhooks and events that start an automation

Control​

What an agent may do on its own, and the record of what it did.

ModuleWhat it covers
GuardrailsWhether a tool call runs, waits for a person, or is refused
ApprovalsThe human decisions a run is waiting on
DecidersVersioned question sets answered into append-only decisions
ExceptionsWhat went wrong, and what was done about it
Audit LogAn append-only record of every request and its answer

Evaluations​

Measure a change before it ships, and read back what ran.

ModuleWhat it covers
EvaluationsDatasets, scorers and runs
TracesThe execution record of a run
ChainsHow far a continuation has run, and whether it is still spending
ActivityWhat the agents in a project did, newest first

Models​

The models a project generates on, and what they may spend.

ModuleWhat it covers
ModelsThe naturali catalog: what it serves, and what it costs
AI ProvidersThe model vendors a project generates through, their models and prices
Model RoutesOrdered provider+model failover an agent can generate through
QuotasThe ceilings a project runs under

Access​

Who may call the API, and with what.

ModuleWhat it covers
AuthHuman sign-in by emailed code / session refresh
API KeysProgrammatic tokens (nat_sk_…), account- or project-scoped
UsersThe account a credential resolves to

Platform​

What every feature stands on.

ModuleWhat it covers
ProjectsThe isolation and billing boundary every resource lives in
FormationsA whole agent stack in one template, deployed as one unit
SecretsEncrypted, write-only credentials a provider or tool authenticates with
AssistantOperate your account from a chat channel, once linked
MarketplacePublish a tool or agent for other projects to install
WebhooksSigned, retried event delivery to your own endpoints

Clients​

Every client lives under the Clients header and is generated from the same OpenAPI specs as the API reference, so none of them can lag the contract:

ClientUse it for
TypeScript SDK@naturali/sdk — typed calls from an app, a backend, or a worker
CLI@naturali/cli — one naturali command per operation, for shells and CI
MCP ServerConnect Claude, Cursor or another MCP client to your account

Every code example in these docs is shown for the SDK and the CLI, plus raw curl.