The complete reference is generated from the running API rather than written by hand, so it cannot describe something the software does not do.
Where it is
- Interactive reference — app.jaicrm.ai/docs. Every endpoint with its parameters and responses, grouped by module, and callable from the page.
- OpenAPI document — /docs/json. Feed it to Postman, Insomnia, or a client generator.
Generating a client
The document is OpenAPI 3, so the usual generators work:
npx @openapitools/openapi-generator-cli generate
-i https://app.jaicrm.ai/docs/json
-g typescript-fetch
-o ./jai-client
How it is organised
- Sales — leads, customers, companies, deals, tasks.
- Sales documents — quotations, orders, invoices, credit notes, receipts.
- Procurement — vendors, purchase orders, receipts, bills, payments.
- Inventory — items, warehouses, stock, movements.
- Accounting & finance — expenses, banking, GST, TDS, payroll.
- Projects, Documents, Reports, Notifications and Settings.
The app is a client of this API. There is no privileged back channel — if a screen can do it, a request can do it, which is the simplest guarantee that the API stays complete.
Something missing or wrong here? Tell us — a question that needed asking usually means a page that needed writing.