{"openapi":"3.1.0","info":{"title":"Ninon public & integration API","version":"1.0.0","description":"Documented surfaces for agents and integrators. Marketing estimate and Pilot request are public (rate-limited). Ledger import and reconciliation run require an authenticated org session or the internal run secret.","contact":{"url":"https://www.ninonai.com/guides/rest-api-integration.md"}},"servers":[{"url":"https://www.ninonai.com"}],"paths":{"/api/pricing/estimate":{"post":{"operationId":"estimatePublicPrice","summary":"Indicative Essentiel / Workspace quote","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["entityCount","seatCount","monthlyGlLines"],"properties":{"entityCount":{"type":"number","minimum":0,"maximum":50000},"seatCount":{"type":"number","minimum":0,"maximum":50000},"monthlyGlLines":{"type":"number","minimum":0}}}}}},"responses":{"200":{"description":"Priced band or scale-contact result"},"400":{"description":"Invalid body"},"429":{"description":"Rate limited"}}}},"/api/pilot/request":{"post":{"operationId":"requestClosePilot","summary":"Submit a Close Pilot request","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","email","company","entityCount","closePeriod"],"properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"},"company":{"type":"string"},"entityCount":{"type":"number","minimum":1,"maximum":500},"closePeriod":{"type":"string"},"message":{"type":"string"},"locale":{"type":"string","enum":["fr","en"]}}}}}},"responses":{"200":{"description":"Request accepted"},"400":{"description":"Invalid body"},"429":{"description":"Rate limited"}}}},"/api/reconciliation/{sessionId}/run":{"post":{"operationId":"runReconciliation","summary":"Trigger an intercompany matching run","security":[{"bearerAuth":[]},{"sessionCookie":[]}],"parameters":[{"name":"sessionId","in":"path","required":true,"schema":{"type":"string"}},{"name":"sync","in":"query","schema":{"type":"string","enum":["1","true"]}}],"responses":{"200":{"description":"Synchronous fallback result"},"202":{"description":"Queued via Inngest when configured"},"401":{"description":"Auth or run secret required"},"403":{"description":"Forbidden"}}}},"/api/integrations/ledger-import":{"post":{"operationId":"importLedgerFile","summary":"Import GL CSV/Excel into the organisation","security":[{"sessionCookie":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Import diagnostics"},"400":{"description":"Invalid multipart or file"},"401":{"description":"Authentication required"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"RECONCILIATION_MATCH_RUN_SECRET for unattended runs"},"sessionCookie":{"type":"apiKey","in":"cookie","name":"next-auth.session-token"}}},"externalDocs":{"description":"REST integration guide (markdown)","url":"https://www.ninonai.com/guides/rest-api-integration.md"}}