This section documents the HTTP API that the Cluster ERP server exposes under /api/v1, derived from the routers in src/cluster_erp/modules/*/ and src/cluster_erp/server/. It has four cross-cutting pages, two pages for routes outside the modules, and one page per backend module. Business meaning lives in the business modules section; this section covers paths, permissions, schemas, status codes, and error codes.
Cross-cutting pages¶
| Page | Type | Scope |
|---|---|---|
| API overview | explanation | Base paths, module prefixes, OpenAPI availability, content types, and the path of one request |
| Authentication and headers | reference | Credentials, cookies, tenant selection, language, deactivation, and audit headers |
| API conventions | reference | Pagination, filtering, money, ids, soft delete, bulk operations, actions, and status codes |
| Errors | reference | Error body, exception handlers, and every error code |
| Business error codes | reference | Error codes of the business sections of the core error module |
Routes outside the modules¶
| Page | Endpoints | Scope |
|---|---|---|
| System endpoints | 28 | Health, readiness, security.txt, metadata, module list, display switches, signup, and the operator console |
| Shared server routes | 40 | Notes, attachments, e-mail, chat, composite party creation, party roles, and tenant fields |
Module pages¶
One page per package in src/cluster_erp/modules/ that has a module.py. The endpoint count includes every route that the module's register_routes mounts. The rows of the nine procurement sub-module pages follow the procurement row; their counts add up to the module count.
| Module | Base path | Endpoints | Page |
|---|---|---|---|
analytics |
/api/v1/analytics |
47 | Analytics API |
app_store |
/api/v1/app_store |
13 | App store API |
auth |
/api/v1/auth |
56 | Auth API |
bom |
/api/v1/bom |
39 | BOM API |
calendars |
/api/v1/calendars |
23 | Calendars API |
costing |
/api/v1/costing |
30 | Costing API |
crm |
/api/v1/crm |
57 | CRM API |
currencies |
/api/v1/currencies |
20 | Currencies API |
design_engineering |
/api/v1/design_engineering |
20 | Design engineering API |
documents |
/api/v1/documents |
23 | Documents API |
fleet |
/api/v1/fleet |
116 | Fleet API |
intranet |
/api/v1/intranet |
117 | Intranet API |
inventory |
/api/v1/inventory |
51 | Inventory API |
logs |
/api/v1/logs |
9 | Logs API |
mail |
/api/v1/mail |
28 | Mail API |
nesting |
/api/v1/nesting |
27 | Nesting API |
owned_organisations |
/api/v1/owned_organisations |
28 | Owned organisations API |
parties |
/api/v1/parties |
53 | Parties API |
privacy |
/api/v1/privacy |
11 | Privacy API |
procurement |
/api/v1/procurement |
155 | Procurement API |
procurement (suppliers) |
/api/v1/procurement |
6 | Procurement API: Suppliers endpoints (suppliers) |
procurement (substitution_groups) |
/api/v1/procurement |
10 | Procurement API: Substitution groups endpoints (substitution_groups) |
procurement (critical_materials) |
/api/v1/procurement |
6 | Procurement API: Critical materials endpoints (critical_materials) |
procurement (purchase_requests) |
/api/v1/procurement |
12 | Procurement API: Purchase requests endpoints (purchase_requests) |
procurement (purchase_rfqs) |
/api/v1/procurement |
35 | Procurement API: Purchase RFQs endpoints (purchase_rfqs) |
procurement (purchase_orders) |
/api/v1/procurement |
18 | Procurement API: Purchase orders endpoints (purchase_orders) |
procurement (purchase_contracts) |
/api/v1/procurement |
16 | Procurement API: Purchase contracts endpoints (purchase_contracts) |
procurement (info_records) |
/api/v1/procurement |
8 | Procurement API: Purchasing info records endpoints (info_records) |
procurement (mrp) |
/api/v1/procurement |
44 | Procurement API: MRP endpoints (mrp) |
production |
/api/v1/production |
102 | Production API |
products_and_services |
/api/v1/products_and_services |
55 | Products and services API |
projects |
/api/v1/projects |
64 | Projects API |
purchasing_quotations |
/api/v1/purchasing_quotations |
27 | Purchasing quotations API |
quotations |
/api/v1/quotations |
34 | Quotations API |
records |
/api/v1/records |
10 | Records API |
sales_orders |
/api/v1/sales_orders |
68 | Sales orders API |
subscriptions |
/api/v1/subscriptions |
20 | Subscriptions API |
Route count¶
The server registers 1371 routes, counted from the source files:
| Source | Routes | Counting method |
|---|---|---|
src/cluster_erp/modules/** |
1292 | @<router>.get/post/put/patch/delete( decorators |
src/cluster_erp/modules/subscriptions/customer_subscriptions/routes.py |
4 | router.add_api_route( calls |
src/cluster_erp/server/routes/currencies.py |
7 | decorators; mounted by the currencies module |
src/cluster_erp/server/routes/signup.py, src/cluster_erp/server/routes/vendor.py |
21 | decorators; mounted only when multi_tenant is on |
other files in src/cluster_erp/server/routes/ |
40 | decorators |
src/cluster_erp/server/app.py |
7 | @app.get( decorators; one exists only when multi_tenant is off |
The 1360 route decorators named after a router (modules plus server/routes/) are the figure a plain grep returns. The module pages list 1303 routes in total.
Related pages¶
Verified against commit 92f8051 on 2026-11-13.