Appearance
Tenants, URLs & environments
Concepts
One tenant per company
Every company runs in its own isolated AIOTIC tenant: its own base URL, data, mailbox configuration, keys and master data. Nothing is shared between tenants. There is no "account id" to pass — the base URL is the tenant.
https://<tenant>.aiotic.ai ← API base URL (all paths in this guide are relative to it)The AIOTIC app operators use is a separate web application that talks to the same tenant.
Environments
Test and production are simply two tenants with two sets of keys. Keep them apart in configuration, never share a receive-endpoint key between them, and point each tenant to a matching environment of your ERP.
For development without a tenant, use the mock server (aiotic mock) — it speaks the same API on http://localhost:8080.
Base URL rules
- Always HTTPS in production. HTTP is only for the local mock.
- No trailing slash; paths start with
/. - Paths are case-sensitive and exactly as listed in the API reference.
- Path parameters such as customer numbers or article numbers must be URL-encoded (
620206/01→620206%2F01). The SDK does this for you.
Versioning
The API has no version prefix in the path. Changes are additive: new fields, new endpoints, new status values. Your code must therefore:
- ignore unknown JSON fields,
- treat unknown
statusvalues as "not one I act on" rather than failing, - tolerate
detailbeing either a string or an object in error responses.
This guide states which API version it was verified against in the footer; the changelog lists what changed.
Limits worth knowing
| Topic | Today |
|---|---|
| Rate limiting | None enforced server-side. Be a good neighbour: the SDK defaults to 10 requests/s. |
| Upload size | Keep files under ~10 MB; the app enforces 10 MB, the API accepts larger but processing time grows. |
| Page size on list endpoints | size ≤ 1000 |
| ERP call timeout | AIOTIC waits up to 30 s (tenant-configurable) for your receive endpoint. |