{"service":"ascoyo-backend","status":"ok","webhook_url":"https://a-back.sestoflow.com/api/webhooks/intelligence","endpoints":{"auth":{"register":"POST /api/auth/register { email, password, name? }","login":"POST /api/auth/login { email, password }","refresh":"POST /api/auth/refresh","logout":"POST /api/auth/logout","logout_all":"POST /api/auth/logout-all","me":"GET /api/auth/me","sessions":"GET /api/auth/sessions"},"sso":{"issue":"POST /api/auth/sso/issue  (website → API, X-SSO-Secret header)","callback":"GET /api/auth/sso/callback?ticket=…  (browser lands here, then 302s into the app)","start":"GET /api/auth/sso/start?redirect_to=…  (bounces to the website login)"},"accounts":{"create":"POST /api/accounts","bulk":"POST /api/accounts/bulk (JSON {accounts:[...]} or multipart CSV field \"file\")","list":"GET /api/accounts","get":"GET /api/accounts/:id","update":"PATCH /api/accounts/:id","delete":"DELETE /api/accounts/:id","signals":"GET /api/accounts/:id/signals"},"intelligence":{"run_baseline":"POST /api/accounts/:id/intelligence","reevaluate":"POST /api/accounts/reevaluate { accountIds?:[...] }"},"meetings":{"upload":"POST /api/accounts/:id/meetings (multipart field \"file\" + \"kind\" [meeting_notes|mail_chain] + optional \"deal_id\", .pdf/.docx ≤ 15 MB)","list":"GET /api/accounts/:id/meetings","list_for_deal":"GET /api/deals/:dealId/meetings","get":"GET /api/meetings/:id","hitl_get":"GET /api/meetings/:id/hitl","hitl_review":"PATCH /api/meetings/:id/hitl/:section { state?, value? }","apply":"POST /api/meetings/:id/apply","discard":"POST /api/meetings/:id/discard","applied_log":"GET /api/accounts/:id/applied-updates"},"deals":{"list":"GET /api/deals?account_id=","create":"POST /api/deals { account_id, name, stage?, value?, currency?, expected_close_date?, next_meeting_at?, last_meeting_at?, status? }","get":"GET /api/deals/:id  (deal + Overview counts)","update":"PATCH /api/deals/:id","delete":"DELETE /api/deals/:id","doc_upload":"POST /api/deals/:id/documents (multipart \"file\" + kind [meeting|mail_chain] + source? + occurred_at?, or JSON with extracted)","doc_list":"GET /api/deals/:id/documents?kind=","doc_get":"GET /api/deals/:id/documents/:docId","doc_patch":"PATCH /api/deals/:id/documents/:docId  (Meeting Agent pushes extraction)","doc_review":"POST /api/deals/:id/documents/:docId/review { decision: \"approve\", extracted? }"},"deal_coach":{"readiness":"GET /api/deals/:id/coach/readiness  (post-call gate)","brief":"GET /api/deals/:id/coach/brief  (last approved pre_call)","analysis":"GET /api/deals/:id/coach/analysis  (last approved post_call)","pre_call":"POST /api/deals/:id/coach/pre-call { goal? }","post_call":"POST /api/deals/:id/coach/post-call { acknowledge_stale?, goal? }  (gated)","run":"POST /api/deals/:id/coach/run { mode, goal }  (gated if post_call)","runs":"GET /api/deals/:id/coach/runs","run_get":"GET /api/deals/:id/coach/runs/:runId  (incl. output + context_snapshot)","review":"POST /api/deals/:id/coach/runs/:runId/review { decision: approve|regenerate, edited_output?, note? }"},"leads":{"create":"POST /api/leads { name, company?, account_id?, …qualification }","list":"GET /api/leads (sorted by score desc; ?band=&status=&q=)","priorities":"GET /api/leads/priorities  (\"My Priorities Today\")","get":"GET /api/leads/:id  (lead + score breakdown + history)","update":"PATCH /api/leads/:id  (qualification edits rescore with reason)","activity":"POST /api/leads/:id/activity { type: email|call|meeting|reply }","override":"POST /api/leads/:id/override { score, reason }","history":"GET /api/leads/:id/history","rescore_stale":"POST /api/leads/rescore-stale  (7-day inactivity sweep)"},"webhook_in":"POST /api/webhooks/intelligence  (register this with the intelligence layer)","sse":"GET /api/events  (session cookie, or ?access_token=)"}}