{"message":"Document Text Extraction API with Adaptive Spaced Repetition","version":"2.1.0","authentication":"All endpoints except /api/auth/* require Bearer token authentication","changes":["All endpoints now use SQLite database instead of JSON files","Document upload endpoints run in background and return task_id","Poll /api/tasks/{task_id} to check extraction/generation status","User authentication required - all resources are user-scoped","NEW: Support for large documents (up to 1000+ pages)","NEW: Document analysis for structure detection","NEW: Advanced quiz generation with multiple strategies"],"endpoints":{"auth":{"register":"POST /api/auth/register","login":"POST /api/auth/login","get_current_user":"GET /api/auth/me","update_onboarding":"PATCH /api/auth/onboarding","forgot_password":"POST /api/auth/forgot-password","reset_password":"POST /api/auth/reset-password","change_password":"POST /api/auth/change-password"},"extraction":{"extract_from_url":"POST /api/extract/url - Returns task_id","extract_from_text":"POST /api/extract/text - Returns task_id"},"documents":{"upload_documents":"POST /api/documents/upload - Multi-file ingest (folder + DB chunks + Milvus); returns task_id","list_chunks":"GET /api/documents/chunks - List chunks by folder (optional document_name, size query param)","semantic_search":"POST /api/documents/search - Query ingested chunks by folder"},"folders":{"get_all_folders":"GET /api/folders","get_folder_contents":"GET /api/folders/{folder_name}"},"analysis":{"analyze_document":"POST /api/analyze/document - Analyze large document structure","get_analysis":"GET /api/analyze/document/{folder_name} - Get saved analysis","quick_analyze":"GET /api/analyze/document/{folder_name}/quick - Fast token estimation"},"quiz":{"generate_quiz":"POST /api/generate/quiz - Standard quiz generation","generate_quiz_advanced":"POST /api/generate/quiz/advanced - With strategy options","generate_quiz_sections":"POST /api/generate/quiz/sections - From specific sections","generate_quiz_hierarchical":"POST /api/generate/quiz/hierarchical - With summarization","get_generated_quiz":"GET /api/quiz/{folder_name}","answer_quiz":"POST /api/answer/quiz"},"review":{"submit_review":"POST /api/review/submit","get_due_reviews":"GET /api/review/due/{folder_name}","get_upcoming_reviews":"GET /api/review/upcoming/{folder_name}","get_review_stats":"GET /api/review/stats/{folder_name}","get_question_state":"GET /api/review/state/{folder_name}/{question_id}","get_question_history":"GET /api/review/history/{folder_name}/{question_id}","get_forgetting_curve":"GET /api/review/forgetting-curve/{folder_name}"},"tasks":{"get_task_status":"GET /api/tasks/{task_id}","cancel_task":"DELETE /api/tasks/{task_id}"},"stats":{"get_account_overview":"GET /api/stats/overview - All account stats in one call"},"explore":{"list_bundles":"GET /api/explore/bundles - List all marketplace bundles (public)","get_bundle":"GET /api/explore/bundles/{bundle_id} - Bundle details with folders/quizzes","create_bundle":"POST /api/explore/bundles - Create a new bundle (auth required)","update_bundle":"PATCH /api/explore/bundles/{bundle_id} - Update bundle metadata","delete_bundle":"DELETE /api/explore/bundles/{bundle_id} - Delete a bundle","add_folder":"POST /api/explore/bundles/{bundle_id}/folders - Add a folder to a bundle","update_folder":"PATCH /api/explore/bundles/{bundle_id}/folders/{folder_id}","delete_folder":"DELETE /api/explore/bundles/{bundle_id}/folders/{folder_id}","add_quiz":"POST /api/explore/bundles/{bundle_id}/folders/{folder_id}/quizzes","delete_quiz":"DELETE /api/explore/bundles/{bundle_id}/folders/{folder_id}/quizzes/{quiz_id}","add_questions":"POST /api/explore/bundles/{bundle_id}/folders/{folder_id}/quizzes/{quiz_id}/questions","delete_question":"DELETE /api/explore/bundles/{bundle_id}/folders/{folder_id}/quizzes/{quiz_id}/questions/{question_id}","purchase_bundle":"POST /api/explore/bundles/{bundle_id}/purchase - Buy a bundle (copies to user folders)","my_purchases":"GET /api/explore/purchases - List your purchased bundles"}},"large_document_workflow":{"description":"Workflow for documents with 50+ pages","steps":["1. Upload document: POST /api/documents/upload","2. Quick check size: GET /api/analyze/document/{folder}/quick","3. If needs_chunking=true: POST /api/analyze/document (full analysis)","4. Review sections: GET /api/analyze/document/{folder}","5. Generate quiz: POST /api/generate/quiz/advanced or /api/generate/quiz/sections"]}}