{"openapi":"3.1.0","info":{"title":"Aretify API","description":"AI output verification and ethics auditing platform","version":"1.0.0"},"paths":{"/api/v1/auth/register":{"post":{"tags":["auth"],"summary":"Register","operationId":"register_api_v1_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterPendingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/login":{"post":{"tags":["auth"],"summary":"Login","operationId":"login_api_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserLogin"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/logout":{"post":{"tags":["auth"],"summary":"Logout","operationId":"logout_api_v1_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/auth/me":{"get":{"tags":["auth"],"summary":"Get Me","operationId":"get_me_api_v1_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["auth"],"summary":"Update Me","operationId":"update_me_api_v1_auth_me_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]},"delete":{"tags":["auth"],"summary":"Delete Account","description":"Permanently delete the current user's account and all associated data (GDPR right to erasure).","operationId":"delete_account_api_v1_auth_me_delete","responses":{"204":{"description":"Successful Response"}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/settings":{"put":{"tags":["auth"],"summary":"Update Settings","operationId":"update_settings_api_v1_auth_settings_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSettings"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/password":{"put":{"tags":["auth"],"summary":"Set Password","operationId":"set_password_api_v1_auth_password_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/consent/status":{"get":{"tags":["auth"],"summary":"Get Consent Status","description":"Get current consent status and region.","operationId":"get_consent_status_api_v1_auth_consent_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsentStatusResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/consent/accept":{"post":{"tags":["auth"],"summary":"Accept Training Consent","description":"Accept training data consent and record event.","operationId":"accept_training_consent_api_v1_auth_consent_accept_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsentUpdateResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/consent/revoke":{"post":{"tags":["auth"],"summary":"Revoke Training Consent","description":"Revoke training data consent and record event.","operationId":"revoke_training_consent_api_v1_auth_consent_revoke_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsentUpdateResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/oauth/google":{"get":{"tags":["oauth"],"summary":"Google Login","operationId":"google_login_api_v1_auth_oauth_google_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/auth/oauth/google/callback":{"get":{"tags":["oauth"],"summary":"Google Callback","operationId":"google_callback_api_v1_auth_oauth_google_callback_get","parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/forgot-password":{"post":{"tags":["auth"],"summary":"Forgot Password","description":"Request a password reset email.\n\nReturns 404 if no account is found with that email so the UI can show\na clear message instead of silently doing nothing.","operationId":"forgot_password_api_v1_auth_forgot_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__routes__password_reset__MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/reset-password":{"post":{"tags":["auth"],"summary":"Reset Password","description":"Reset password using a valid reset token.","operationId":"reset_password_api_v1_auth_reset_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__routes__password_reset__MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/verify-email":{"post":{"tags":["auth"],"summary":"Verify Email","description":"Verify a user's email address using a verification token.","operationId":"verify_email_api_v1_auth_verify_email_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyEmailRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyEmailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/resend-verification":{"post":{"tags":["auth"],"summary":"Resend Verification","description":"Resend signup verification email.\n\nReturns clear errors so the frontend can guide the user:\n- 404  no_account        — email not registered at all\n- 400  already_verified  — account exists but is already verified\n- 400  oauth_account     — account exists but was created via OAuth (no password)","operationId":"resend_verification_api_v1_auth_resend_verification_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__routes__password_reset__MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify/extension/turnstile-config":{"get":{"tags":["verification"],"summary":"Get Extension Turnstile Config","description":"Hints for the extension: anon Turnstile is enforced only when a secret is configured (see precheck).","operationId":"get_extension_turnstile_config_api_v1_verify_extension_turnstile_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Extension Turnstile Config Api V1 Verify Extension Turnstile Config Get"}}}}}}},"/api/v1/verify/extension/dev-flags":{"get":{"tags":["verification"],"summary":"Get Extension Dev Flags","description":"Chrome extension: full guest-testing chrome only when client IP is allowlisted.","operationId":"get_extension_dev_flags_api_v1_verify_extension_dev_flags_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Extension Dev Flags Api V1 Verify Extension Dev Flags Get"}}}}}}},"/api/v1/verify/anonymous/remaining":{"get":{"tags":["verification"],"summary":"Get Anonymous Verification Remaining","description":"Guest quota: 3 per IP/FP, then email gate, then up to 8; extension id caps at 5 pre-account (3+2). ``X-Visitor-ID`` optional.","operationId":"get_anonymous_verification_remaining_api_v1_verify_anonymous_remaining_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Anonymous Verification Remaining Api V1 Verify Anonymous Remaining Get"}}}}}},"post":{"tags":["verification"],"summary":"Post Anonymous Verification Remaining","description":"Same as GET but accepts ``extension_anon_id`` in JSON when intermediaries drop headers or query strings.","operationId":"post_anonymous_verification_remaining_api_v1_verify_anonymous_remaining_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnonymousRemainingBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Anonymous Verification Remaining Api V1 Verify Anonymous Remaining Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify/anonymous/email-gate":{"post":{"tags":["verification"],"summary":"Post Anon Email Gate","description":"After 3 free guest verifications, submit an email; extension guests unlock 2 more (5 pre-account). Web: 5 more (8 / window).","operationId":"post_anon_email_gate_api_v1_verify_anonymous_email_gate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnonEmailGateCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Anon Email Gate Api V1 Verify Anonymous Email Gate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify/anonymous":{"post":{"tags":["verification"],"summary":"Post Anonymous Verification","description":"Guest verify: honeypot, Turnstile, IP+FP+email-gate limits, then pipeline.","operationId":"post_anonymous_verification_api_v1_verify_anonymous_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnonymousVerifyCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify/anonymous/stream":{"post":{"tags":["verification"],"summary":"Post Anonymous Verification Stream","description":"Guest verify over SSE — same result as ``POST /anonymous`` but keeps the HTTP connection busy so\nedge proxies (e.g. 30s idle limits) do not return 503 while claims are scored.","operationId":"post_anonymous_verification_stream_api_v1_verify_anonymous_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnonymousVerifyCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify/extract-text":{"post":{"tags":["verification"],"summary":"Extract Text Upload","description":"Extract text from an uploaded PDF or image. File size limit depends on plan (10MB free, 25MB Pro, 50MB Team/Enterprise).","operationId":"extract_text_upload_api_v1_verify_extract_text_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_extract_text_upload_api_v1_verify_extract_text_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/verify":{"post":{"tags":["verification"],"summary":"Create Verification","operationId":"create_verification_api_v1_verify_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["verification"],"summary":"List Verifications","operationId":"list_verifications_api_v1_verify_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/VerificationStatus"},{"type":"null"}],"title":"Status"}},{"name":"classification","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Classification"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"min_score","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":100,"minimum":0},{"type":"null"}],"title":"Min Score"}},{"name":"max_score","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":100,"minimum":0},{"type":"null"}],"title":"Max Score"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify/{verification_id}/status":{"get":{"tags":["verification"],"summary":"Verification Status","description":"Poll the status of an async verification job.\n\nReturns:\n- status: \"queued\" | \"processing\" | \"completed\" | \"failed\"\n- result: Full verification object if completed\n- error: Error message if failed\n\nWith ENABLE_INSTRUMENTATION_RESPONSE=True (staging-only):\n- result includes instrumentation fields: claims, evidence_metadata, rerank_metadata, scoring_metadata","operationId":"verification_status_api_v1_verify__verification_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"verification_id","in":"path","required":true,"schema":{"type":"string","title":"Verification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify/cache/invalidate":{"post":{"tags":["verification"],"summary":"Invalidate Verification Cache","description":"Invalidate cached verification results for a specific claim text.\n\nThis is intentionally narrow: it deletes only the cache entries for the\nauthenticated user's ethics mode and the supplied claim, so test harnesses\ncan clear stale results without flushing unrelated cache entries.","operationId":"invalidate_verification_cache_api_v1_verify_cache_invalidate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationCacheInvalidateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationCacheInvalidateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/verify/stream":{"post":{"tags":["verification"],"summary":"Stream Verification","operationId":"stream_verification_api_v1_verify_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/verify/stats":{"get":{"tags":["verification"],"summary":"Get Verification Stats","operationId":"get_verification_stats_api_v1_verify_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/verify/{verification_id}/academic-analysis":{"post":{"tags":["verification"],"summary":"Run Academic Analysis","description":"On-demand academic analysis for Team/Enterprise. Cached on the verification row.","operationId":"run_academic_analysis_api_v1_verify__verification_id__academic_analysis_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"verification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Verification Id"}},{"name":"force","in":"query","required":false,"schema":{"type":"boolean","description":"Re-run even if academic analysis is already cached.","default":false,"title":"Force"},"description":"Re-run even if academic analysis is already cached."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify/{verification_id}/run-ethics":{"post":{"tags":["verification"],"summary":"Run Ethics","description":"Run full ethics analysis when it was skipped (e.g. for purely factual content).","operationId":"run_ethics_api_v1_verify__verification_id__run_ethics_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"verification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Verification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify/{verification_id}/run-all-ethics":{"post":{"tags":["verification"],"summary":"Run All Ethics","description":"Run all 8 frameworks and merge with existing assessments (for users who want full analysis).","operationId":"run_all_ethics_api_v1_verify__verification_id__run_all_ethics_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"verification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Verification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify/public/{verification_id}":{"get":{"tags":["verification"],"summary":"Get Verification Public","description":"Public guest verification only (``user_id`` is NULL). Authenticated user-owned rows are not exposed here.","operationId":"get_verification_public_api_v1_verify_public__verification_id__get","parameters":[{"name":"verification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Verification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify/{verification_id}/cancel":{"post":{"tags":["verification"],"summary":"Cancel Verification In Progress","description":"Request cancellation of an in-flight verification (SSE). The stream may take a few seconds to stop.","operationId":"cancel_verification_in_progress_api_v1_verify__verification_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"verification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Verification Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify/{verification_id}":{"get":{"tags":["verification"],"summary":"Get Verification","description":"Return a verification.\n\nAnonymous (``user_id`` NULL) verifications are public. User-owned verifications require auth;\nthe caller must be the owner (403 if another user) or be unauthenticated (401) — never 404 for\na missing/foreign owner so IDs cannot be enumerated.","operationId":"get_verification_api_v1_verify__verification_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"verification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Verification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify/{verification_id}/feedback":{"post":{"tags":["feedback"],"summary":"Submit Verification Feedback","description":"Record user feedback on a verification for training signal collection.","operationId":"submit_verification_feedback_api_v1_verify__verification_id__feedback_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"verification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Verification Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/documents/compare":{"post":{"tags":["documents"],"summary":"Compare Documents","operationId":"compare_documents_api_v1_documents_compare_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentComparisonRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentComparisonResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/documents/upload":{"post":{"tags":["documents"],"summary":"Upload Document","operationId":"upload_document_api_v1_documents_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_document_api_v1_documents_upload_post"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentUploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/documents/{document_id}":{"get":{"tags":["documents"],"summary":"Get Document","operationId":"get_document_api_v1_documents__document_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"document_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Document Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentUploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["documents"],"summary":"Delete Document","operationId":"delete_document_api_v1_documents__document_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"document_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Document Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/documents/{document_id}/verify":{"post":{"tags":["documents"],"summary":"Verify Document","operationId":"verify_document_api_v1_documents__document_id__verify_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"document_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Document Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentVerificationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentVerificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/brief-jobs/from-upload":{"post":{"tags":["brief-jobs"],"summary":"Create Brief Job From Upload","description":"Create a brief job from PDF, DOCX, or image (same extraction stack as /verify/extract-text).","operationId":"create_brief_job_from_upload_api_v1_brief_jobs_from_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_brief_job_from_upload_api_v1_brief_jobs_from_upload_post"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefJobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/brief-jobs":{"post":{"tags":["brief-jobs"],"summary":"Create Brief Job","operationId":"create_brief_job_api_v1_brief_jobs_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefJobCreate"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefJobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["brief-jobs"],"summary":"List Brief Jobs","operationId":"list_brief_jobs_api_v1_brief_jobs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefJobListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/brief-jobs/by-merge/{verification_id}":{"get":{"tags":["brief-jobs"],"summary":"Get Brief Job By Merged Verification","operationId":"get_brief_job_by_merged_verification_api_v1_brief_jobs_by_merge__verification_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"verification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Verification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefJobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/brief-jobs/{brief_job_id}/retry-failed":{"post":{"tags":["brief-jobs"],"summary":"Retry Failed Brief Job","description":"Clear merged report (if any), reset failed segments, and re-run pipeline.","operationId":"retry_failed_brief_job_api_v1_brief_jobs__brief_job_id__retry_failed_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"brief_job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brief Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefJobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/brief-jobs/{brief_job_id}":{"get":{"tags":["brief-jobs"],"summary":"Get Brief Job","operationId":"get_brief_job_api_v1_brief_jobs__brief_job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"brief_job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brief Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefJobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/brief-jobs/{brief_job_id}/artifact-url":{"get":{"tags":["brief-jobs"],"summary":"Get Brief Job Artifact Url","operationId":"get_brief_job_artifact_url_api_v1_brief_jobs__brief_job_id__artifact_url_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"brief_job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brief Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/brief-jobs/{brief_job_id}/segments/{segment_id}":{"patch":{"tags":["brief-jobs"],"summary":"Patch Brief Segment","operationId":"patch_brief_segment_api_v1_brief_jobs__brief_job_id__segments__segment_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"brief_job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brief Job Id"}},{"name":"segment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Segment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefSegmentPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefJobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/conversations/{verification_id}/messages":{"post":{"tags":["conversations"],"summary":"Send Message","operationId":"send_message_api_v1_conversations__verification_id__messages_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"verification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Verification Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/conversations/{verification_id}":{"get":{"tags":["conversations"],"summary":"Get Conversation","operationId":"get_conversation_api_v1_conversations__verification_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"verification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Verification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["conversations"],"summary":"Clear Conversation","operationId":"clear_conversation_api_v1_conversations__verification_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"verification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Verification Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/conversations":{"get":{"tags":["conversations"],"summary":"List Conversations","operationId":"list_conversations_api_v1_conversations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConversationResponse"},"title":"Response List Conversations Api V1 Conversations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payments/plans":{"get":{"tags":["payments"],"summary":"Get Plans","operationId":"get_plans_api_v1_payments_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/payments/checkout":{"post":{"tags":["payments"],"summary":"Create Checkout Session","operationId":"create_checkout_session_api_v1_payments_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/payments/webhook":{"post":{"tags":["payments"],"summary":"Stripe Webhook","operationId":"stripe_webhook_api_v1_payments_webhook_post","parameters":[{"name":"stripe-signature","in":"header","required":true,"schema":{"type":"string","title":"Stripe-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payments/sync":{"post":{"tags":["payments"],"summary":"Sync Subscription","description":"Check Stripe for active subscriptions and sync the user's tier.\nUseful as a fallback when the webhook hasn't fired yet.","operationId":"sync_subscription_api_v1_payments_sync_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/payments/downgrade":{"post":{"tags":["payments"],"summary":"Schedule Downgrade To Free","description":"Schedule cancellation at period end for all active subscriptions (downgrade to Free at next cycle).","operationId":"schedule_downgrade_to_free_api_v1_payments_downgrade_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/payments/schedule-team-to-pro-at-renewal":{"post":{"tags":["payments"],"summary":"Schedule Team To Pro At Renewal","description":"Schedule switch from Agency (Team) to Pro at the end of the current Stripe billing period.\n\nUses Stripe Subscription Schedules (Team price through ``current_period_end``, then Pro price).\nTier sync uses the schedule's current phase when present so the app stays on Team until renewal.\n\nPrefer this over changing plan in the **Stripe Customer Portal** for Team→Pro: the portal\nusually swaps the subscription price immediately, which removes the Team line item and\nmakes a deferred schedule impossible until Stripe is corrected manually.","operationId":"schedule_team_to_pro_at_renewal_api_v1_payments_schedule_team_to_pro_at_renewal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/payments/cancel-scheduled-plan-change":{"post":{"tags":["payments"],"summary":"Cancel Scheduled Plan Change","description":"Release the Stripe subscription schedule so the subscription stays on the current phase (e.g. undo Team→Pro at renewal).","operationId":"cancel_scheduled_plan_change_api_v1_payments_cancel_scheduled_plan_change_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/payments/consolidate":{"post":{"tags":["payments"],"summary":"Consolidate Subscriptions","description":"Remove duplicate subscriptions: keep one (highest tier), cancel the rest. Call this before opening the billing portal if you see multiple subscriptions.","operationId":"consolidate_subscriptions_api_v1_payments_consolidate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/payments/portal":{"post":{"tags":["payments"],"summary":"Create Billing Portal","description":"Create a Stripe billing portal session for managing subscriptions.\nConsolidates to a single subscription first if the customer has multiple.\n\nQuery ``portal_flow=payment_methods`` (Agency / Team only) opens Stripe's payment-method flow only.\n\nQuery ``portal_flow=plan_change`` (Professional or Agency / Team) opens the **default** Customer Portal\nsession (no ``flow_data``). That landing shows **Update subscription** and **Cancel subscription**\ntogether when enabled in the Dashboard. We intentionally avoid deep-linking\n``subscription_update`` here: that flow hides cancel on the hosted subscription-update screen.\n\nProration and whether changes apply immediately or at period end follow your Stripe portal\nconfiguration and prices.","operationId":"create_billing_portal_api_v1_payments_portal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/payments/subscription":{"get":{"tags":["payments"],"summary":"Get Subscription","operationId":"get_subscription_api_v1_payments_subscription_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/payments/resume":{"post":{"tags":["payments"],"summary":"Resume Subscription","description":"Remove scheduled cancellation so the subscription continues (Don't cancel).","operationId":"resume_subscription_api_v1_payments_resume_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/users/set-tier":{"patch":{"tags":["admin"],"summary":"Set User Tier","description":"Set a user's subscription tier (e.g. team = unlimited). Admin only.","operationId":"set_user_tier_api_v1_admin_users_set_tier_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetTierRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/stats":{"get":{"tags":["admin"],"summary":"Get Platform Stats","operationId":"get_platform_stats_api_v1_admin_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformStats"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/users":{"get":{"tags":["admin"],"summary":"List Users","operationId":"list_users_api_v1_admin_users_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedUsers"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/verifications":{"get":{"tags":["admin"],"summary":"List Verifications","operationId":"list_verifications_api_v1_admin_verifications_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedVerifications"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/accuracy":{"get":{"tags":["admin"],"summary":"Get Accuracy Metrics","operationId":"get_accuracy_metrics_api_v1_admin_accuracy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccuracyMetrics"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/costs":{"get":{"tags":["admin"],"summary":"Get Cost Summary","operationId":"get_cost_summary_api_v1_admin_costs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CostSummary"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/health-check":{"post":{"tags":["admin"],"summary":"Trigger Health Check","description":"Run daily health check and send cost summary email to ADMIN_EMAIL. Admin or ADMIN_EMAIL only.","operationId":"trigger_health_check_api_v1_admin_health_check_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/verification-cache/clear":{"post":{"tags":["admin"],"summary":"Clear Verification Cache","description":"Delete all ``verify:cache:*`` keys in Redis (24h verification result cache). Admin only.","operationId":"clear_verification_cache_api_v1_admin_verification_cache_clear_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClearVerificationCacheResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/dev/set-tier":{"patch":{"tags":["dev"],"summary":"Set User Tier","description":"Set a user's subscription tier. Requires header X-Dev-Secret = DEV_SET_TIER_SECRET.","operationId":"set_user_tier_api_v1_dev_set_tier_patch","parameters":[{"name":"x-dev-secret","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Dev-Secret"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetTierBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/dev/reset-guest-quota":{"post":{"tags":["dev"],"summary":"Reset Guest Quota","description":"DEV ONLY — wipe all Redis quota keys for a guest identity across all axes (ext, fp, ip).\nRequires header: X-Dev-Secret = DEV_SET_TIER_SECRET","operationId":"reset_guest_quota_api_v1_dev_reset_guest_quota_post","parameters":[{"name":"x-dev-secret","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Dev-Secret"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetGuestQuotaBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/api-keys":{"get":{"tags":["api-keys"],"summary":"List Api Keys","operationId":"list_api_keys_api_v1_api_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyListResponse"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["api-keys"],"summary":"Create Api Key","operationId":"create_api_key_api_v1_api_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyCreatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/api-keys/{key_id}":{"delete":{"tags":["api-keys"],"summary":"Revoke Api Key","operationId":"revoke_api_key_api_v1_api_keys__key_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__routes__api_keys__MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/signals/behavioral":{"post":{"tags":["signals"],"summary":"Record Behavioral Signal","description":"Record behavioral signal (viewport time, scroll depth, resubmission count) for a result.","operationId":"record_behavioral_signal_api_v1_signals_behavioral_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BehavioralSignalRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BehavioralSignalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/verify/{result_id}/appeal":{"post":{"tags":["signals"],"summary":"Submit Result Appeal","description":"Submit an appeal against a verification result.\n\nEnforces:\n- Minimum 50 character explanation\n- Maximum 3 appeals per day per user\n- HTML sanitization\n\nReturns 422 if explanation too short, 429 if rate limit exceeded.","operationId":"submit_result_appeal_api_v1_verify__result_id__appeal_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"result_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Result Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppealRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppealResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["signals"],"summary":"Get Result Appeal","description":"Fetch the current appeal for a verification result (if user is the appellant).","operationId":"get_result_appeal_api_v1_verify__result_id__appeal_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"result_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Result Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AppealResponse"},{"type":"null"}],"title":"Response Get Result Appeal Api V1 Verify  Result Id  Appeal Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/notes/{claim_id}":{"post":{"tags":["community"],"summary":"Create Note","operationId":"create_note_api_v1_notes__claim_id__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Claim Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["community"],"summary":"Get Notes For Claim","operationId":"get_notes_for_claim_api_v1_notes__claim_id__get","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Claim Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/notes/{note_id}":{"delete":{"tags":["community"],"summary":"Delete Note","description":"Delete a note. Allowed for the note author or any admin.","operationId":"delete_note_api_v1_notes__note_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"note_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Note Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/notes/{note_id}/vote":{"post":{"tags":["community"],"summary":"Vote On Note","operationId":"vote_on_note_api_v1_notes__note_id__vote_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"note_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Note Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteVoteCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/notes/queue":{"get":{"tags":["community"],"summary":"Get Moderation Queue","operationId":"get_moderation_queue_api_v1_admin_notes_queue_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"note_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerationQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/notes/history":{"get":{"tags":["community"],"summary":"Get Admin Notes History","description":"List approved or rejected notes so admin can review or delete them.","operationId":"get_admin_notes_history_api_v1_admin_notes_history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerationQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/notes/{note_id}/moderate":{"put":{"tags":["community"],"summary":"Moderate Note","operationId":"moderate_note_api_v1_admin_notes__note_id__moderate_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"note_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Note Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerationAction"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/community/reputation":{"get":{"tags":["community"],"summary":"Get My Reputation","operationId":"get_my_reputation_api_v1_community_reputation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserReputationResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/community/leaderboard":{"get":{"tags":["community"],"summary":"Get Leaderboard","operationId":"get_leaderboard_api_v1_community_leaderboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/LeaderboardEntry"},"type":"array","title":"Response Get Leaderboard Api V1 Community Leaderboard Get"}}}}}}},"/api/v1/contact":{"post":{"tags":["contact"],"summary":"Submit Contact","description":"General contact (CONTACT_EMAIL) or enterprise sales (ENTERPRISE_EMAIL). No auth required.","operationId":"submit_contact_api_v1_contact_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactPayload"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/feedback":{"post":{"tags":["feedback"],"summary":"Submit Feedback","description":"Send feedback to ADMIN_EMAIL via Resend. No auth required.","operationId":"submit_feedback_api_v1_feedback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackPayload"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/support":{"post":{"tags":["support"],"summary":"Submit Support","description":"Send dashboard support request to SUPPORT_EMAIL. Authenticated only.","operationId":"submit_support_api_v1_support_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportPayload"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/health":{"get":{"tags":["system"],"summary":"Health Check","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/preflight":{"get":{"tags":["system"],"summary":"Preflight Check","description":"Check evidence API configuration and reachability (Crossref, Europe PMC, Wikipedia, Wikidata, ClaimBuster, GDELT, DataCommons).","operationId":"preflight_check_preflight_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"APIKeyCreatedResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"key":{"type":"string","title":"Key"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","key_prefix","key","created_at"],"title":"APIKeyCreatedResponse"},"APIKeyListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/APIKeyResponse"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"APIKeyListResponse"},"APIKeyResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"usage_count":{"type":"integer","title":"Usage Count"}},"type":"object","required":["id","name","key_prefix","is_active","created_at","last_used_at","usage_count"],"title":"APIKeyResponse"},"AccuracyMetrics":{"properties":{"total_completed":{"type":"integer","title":"Total Completed"},"average_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Score"},"score_distribution":{"additionalProperties":{"type":"integer"},"type":"object","title":"Score Distribution"},"high_confidence_count":{"type":"integer","title":"High Confidence Count"},"medium_confidence_count":{"type":"integer","title":"Medium Confidence Count"},"low_confidence_count":{"type":"integer","title":"Low Confidence Count"},"completion_rate":{"type":"number","title":"Completion Rate"}},"type":"object","required":["total_completed","average_score","score_distribution","high_confidence_count","medium_confidence_count","low_confidence_count","completion_rate"],"title":"AccuracyMetrics"},"AdminUserResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"full_name":{"type":"string","title":"Full Name"},"is_active":{"type":"boolean","title":"Is Active"},"is_verified":{"type":"boolean","title":"Is Verified"},"is_admin":{"type":"boolean","title":"Is Admin"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"subscription_tier":{"type":"string","title":"Subscription Tier"},"verification_count":{"type":"integer","title":"Verification Count"}},"type":"object","required":["id","email","full_name","is_active","is_verified","is_admin","created_at","subscription_tier","verification_count"],"title":"AdminUserResponse"},"AdminVerificationResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"},"user_email":{"type":"string","title":"User Email"},"input_text":{"type":"string","title":"Input Text"},"aretify_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Aretify Score"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","user_id","user_email","input_text","aretify_score","status","created_at","completed_at"],"title":"AdminVerificationResponse"},"AnonEmailGateCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"fingerprint":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Fingerprint"},"anon_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Anon Id"}},"type":"object","required":["email"],"title":"AnonEmailGateCreate"},"AnonymousRemainingBody":{"properties":{"extension_anon_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Extension Anon Id"},"visitor_id":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Visitor Id"}},"type":"object","title":"AnonymousRemainingBody","description":"POST ``/verify/anonymous/remaining``: install UUID when headers/query are stripped by proxies."},"AnonymousVerifyCreate":{"properties":{"input_text":{"type":"string","maxLength":10000,"minLength":1,"title":"Input Text"},"content_domain":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Content Domain"},"hp_field":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Hp Field"},"cf_turnstile_token":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}],"title":"Cf Turnstile Token"},"anon_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Anon Id"},"visitor_id":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Visitor Id"}},"type":"object","required":["input_text"],"title":"AnonymousVerifyCreate","description":"Unauthenticated try flow: same text limits as free tier, no account."},"AppealRequest":{"properties":{"explanation":{"type":"string","title":"Explanation"},"desired_verdict":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Desired Verdict"}},"type":"object","required":["explanation"],"title":"AppealRequest"},"AppealResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","status","created_at"],"title":"AppealResponse"},"BehavioralSignalRequest":{"properties":{"result_id":{"type":"string","format":"uuid","title":"Result Id"},"viewport_time_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Viewport Time Ms"},"scroll_depth_pct":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Scroll Depth Pct"},"resubmission_count":{"type":"integer","minimum":0.0,"title":"Resubmission Count","default":0}},"type":"object","required":["result_id"],"title":"BehavioralSignalRequest"},"BehavioralSignalResponse":{"properties":{"status":{"type":"string","title":"Status","default":"signal recorded"}},"type":"object","title":"BehavioralSignalResponse"},"Body_create_brief_job_from_upload_api_v1_brief_jobs_from_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"content_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Domain"},"prefer_headline_splits":{"type":"boolean","title":"Prefer Headline Splits","default":false},"segment_size_preset":{"type":"string","title":"Segment Size Preset","default":"standard"}},"type":"object","required":["file"],"title":"Body_create_brief_job_from_upload_api_v1_brief_jobs_from_upload_post"},"Body_extract_text_upload_api_v1_verify_extract_text_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_extract_text_upload_api_v1_verify_extract_text_post"},"Body_upload_document_api_v1_documents_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_document_api_v1_documents_upload_post"},"BriefJobCreate":{"properties":{"input_text":{"type":"string","maxLength":500000,"minLength":1,"title":"Input Text"},"content_domain":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Content Domain"},"prefer_headline_splits":{"type":"boolean","title":"Prefer Headline Splits","default":false},"segment_size_preset":{"type":"string","enum":["standard","large"],"title":"Segment Size Preset","default":"standard"}},"type":"object","required":["input_text"],"title":"BriefJobCreate"},"BriefJobListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BriefJobResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"BriefJobListResponse"},"BriefJobResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"status":{"type":"string","title":"Status"},"segments_total":{"type":"integer","title":"Segments Total"},"segments_completed":{"type":"integer","title":"Segments Completed"},"segments_failed":{"type":"integer","title":"Segments Failed"},"coverage_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Coverage Percent"},"merged_verification_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Merged Verification Id"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"normalization_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Normalization Notes"},"text_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Preview"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"artifact_meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Artifact Meta"},"segments":{"items":{"$ref":"#/components/schemas/BriefSegmentResponse"},"type":"array","title":"Segments"},"claims_found_so_far":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Claims Found So Far"},"segmentation_strategy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segmentation Strategy"},"structure_inferred":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Structure Inferred"}},"type":"object","required":["id","user_id","status","segments_total","segments_completed","segments_failed","created_at"],"title":"BriefJobResponse"},"BriefSegmentPatch":{"properties":{"reviewer_note":{"anyOf":[{"type":"string","maxLength":32000},{"type":"null"}],"title":"Reviewer Note"},"assigned_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assigned User Id"}},"additionalProperties":false,"type":"object","title":"BriefSegmentPatch"},"BriefSegmentResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"segment_index":{"type":"integer","title":"Segment Index"},"char_start":{"type":"integer","title":"Char Start"},"char_end":{"type":"integer","title":"Char End"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"status":{"type":"string","title":"Status"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"verification_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Verification Id"},"reviewer_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewer Note"},"assigned_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assigned User Id"}},"type":"object","required":["id","segment_index","char_start","char_end","status"],"title":"BriefSegmentResponse"},"CheckoutRequest":{"properties":{"tier":{"type":"string","title":"Tier"}},"type":"object","required":["tier"],"title":"CheckoutRequest"},"ClaimResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"claim_text":{"type":"string","title":"Claim Text"},"claim_index":{"type":"integer","title":"Claim Index"},"verification_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Verification Score"},"classification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Classification"},"evidence_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Summary"},"sources":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Sources"},"is_verifiable":{"type":"boolean","title":"Is Verifiable"},"is_baseline_fact":{"type":"boolean","title":"Is Baseline Fact","default":false},"claim_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim Role"},"is_subjective":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Subjective","default":false},"academic_source_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Academic Source Count"},"needs_citation":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Needs Citation"},"is_common_knowledge":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Common Knowledge"},"paraphrase_similarity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paraphrase Similarity"},"paraphrase_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paraphrase Note"},"citation_suggestions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Citation Suggestions"},"source_quality_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Quality Tier"},"academic_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Academic Score"},"quality_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quality Label"},"regulatory_status_warning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regulatory Status Warning"},"is_future_dated":{"type":"boolean","title":"Is Future Dated","default":false},"scoring_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scoring Status"},"is_contradicted_by_evidence":{"type":"boolean","title":"Is Contradicted By Evidence","default":false},"score_from_title_fallback":{"type":"boolean","title":"Score From Title Fallback","default":false},"claim_type":{"type":"string","title":"Claim Type","default":"affirmative"},"citation_not_found":{"type":"boolean","title":"Citation Not Found","default":false},"regulatory_record_not_found":{"type":"boolean","title":"Regulatory Record Not Found","default":false},"organization_not_found":{"type":"boolean","title":"Organization Not Found","default":false},"explanation_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Explanation Summary"},"supporting_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Supporting Count"},"related_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Related Count"},"empty_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Empty Count"},"verdict":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verdict"}},"type":"object","required":["id","claim_text","claim_index","is_verifiable"],"title":"ClaimResponse"},"ClearVerificationCacheResponse":{"properties":{"keys_deleted":{"type":"integer","title":"Keys Deleted"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["keys_deleted"],"title":"ClearVerificationCacheResponse"},"ConsentStatusResponse":{"properties":{"training_consent":{"type":"boolean","title":"Training Consent"},"user_region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Region"},"training_consent_snapshot":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Training Consent Snapshot"}},"type":"object","required":["training_consent","user_region","training_consent_snapshot"],"title":"ConsentStatusResponse"},"ConsentUpdateResponse":{"properties":{"training_consent":{"type":"boolean","title":"Training Consent"},"event_id":{"type":"integer","title":"Event Id"}},"type":"object","required":["training_consent","event_id"],"title":"ConsentUpdateResponse"},"ContactPayload":{"properties":{"fullName":{"type":"string","title":"Fullname","default":""},"email":{"type":"string","title":"Email","default":""},"message":{"type":"string","title":"Message","default":""},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"companySize":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Companysize"},"useCases":{"items":{"type":"string"},"type":"array","title":"Usecases"},"source":{"type":"string","title":"Source","default":"contact_page"},"inquiryType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inquirytype"},"teamSize":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Teamsize"},"primaryUseCase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primaryusecase"},"pilotWorkflowNotes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pilotworkflownotes"}},"type":"object","title":"ContactPayload"},"ConversationResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"verification_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Verification Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"messages":{"items":{"$ref":"#/components/schemas/app__schemas__conversation__MessageResponse"},"type":"array","title":"Messages","default":[]},"chat_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chat Remaining"},"chat_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chat Limit"},"chat_used":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chat Used"}},"type":"object","required":["id","created_at","updated_at"],"title":"ConversationResponse"},"CostSummary":{"properties":{"total_today":{"type":"number","title":"Total Today"},"total_week":{"type":"number","title":"Total Week"},"total_month":{"type":"number","title":"Total Month"},"breakdown_by_service":{"additionalProperties":{"type":"number"},"type":"object","title":"Breakdown By Service"},"avg_cost_per_verification":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Cost Per Verification"},"top_10_expensive":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Top 10 Expensive"}},"type":"object","required":["total_today","total_week","total_month","breakdown_by_service","avg_cost_per_verification","top_10_expensive"],"title":"CostSummary"},"CreateAPIKeyRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"}},"type":"object","required":["name"],"title":"CreateAPIKeyRequest"},"DocumentComparisonRequest":{"properties":{"source_document_id":{"type":"string","format":"uuid","title":"Source Document Id"},"comparison_document_id":{"type":"string","format":"uuid","title":"Comparison Document Id"}},"type":"object","required":["source_document_id","comparison_document_id"],"title":"DocumentComparisonRequest"},"DocumentComparisonResponse":{"properties":{"source_document_id":{"type":"string","format":"uuid","title":"Source Document Id"},"comparison_document_id":{"type":"string","format":"uuid","title":"Comparison Document Id"},"source_document_filename":{"type":"string","title":"Source Document Filename"},"comparison_document_filename":{"type":"string","title":"Comparison Document Filename"},"similarity":{"type":"number","title":"Similarity"},"low_similarity_warning":{"type":"boolean","title":"Low Similarity Warning","default":false},"results":{"items":{"$ref":"#/components/schemas/DocumentSentenceVerificationResult"},"type":"array","title":"Results"}},"type":"object","required":["source_document_id","comparison_document_id","source_document_filename","comparison_document_filename","similarity"],"title":"DocumentComparisonResponse"},"DocumentSentenceVerificationResult":{"properties":{"sentence":{"type":"string","title":"Sentence"},"confidence":{"type":"string","enum":["supported","partially_consistent","unverified"],"title":"Confidence"},"overlap_score":{"type":"number","title":"Overlap Score"},"matched_passage":{"type":"string","title":"Matched Passage"},"diff":{"type":"string","title":"Diff"},"page_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page Number"}},"type":"object","required":["sentence","confidence","overlap_score","matched_passage","diff"],"title":"DocumentSentenceVerificationResult"},"DocumentUploadResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"filename":{"type":"string","title":"Filename"},"mime_type":{"type":"string","title":"Mime Type"},"size_bytes":{"type":"integer","title":"Size Bytes"},"storage_path":{"type":"string","title":"Storage Path"},"document_hash":{"type":"string","title":"Document Hash"},"status":{"type":"string","title":"Status"},"uploaded_at":{"type":"string","format":"date-time","title":"Uploaded At"},"duplicate":{"type":"boolean","title":"Duplicate","default":false}},"type":"object","required":["id","user_id","filename","mime_type","size_bytes","storage_path","document_hash","status","uploaded_at"],"title":"DocumentUploadResponse"},"DocumentVerificationRequest":{"properties":{"answer_text":{"type":"string","maxLength":100000,"minLength":1,"title":"Answer Text"}},"type":"object","required":["answer_text"],"title":"DocumentVerificationRequest"},"DocumentVerificationResponse":{"properties":{"document_id":{"type":"string","format":"uuid","title":"Document Id"},"document_hash":{"type":"string","title":"Document Hash"},"document_filename":{"type":"string","title":"Document Filename"},"results":{"items":{"$ref":"#/components/schemas/DocumentSentenceVerificationResult"},"type":"array","title":"Results"}},"type":"object","required":["document_id","document_hash","document_filename"],"title":"DocumentVerificationResponse"},"EthicsAssessmentResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"framework":{"$ref":"#/components/schemas/EthicsFramework"},"assessment":{"$ref":"#/components/schemas/EthicsAssessmentResult"},"explanation":{"type":"string","title":"Explanation"},"severity":{"$ref":"#/components/schemas/Severity"},"rules_triggered":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Rules Triggered","default":[]},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence"}},"type":"object","required":["id","framework","assessment","explanation","severity"],"title":"EthicsAssessmentResponse"},"EthicsAssessmentResult":{"type":"string","enum":["pass","flag","fail"],"title":"EthicsAssessmentResult"},"EthicsFramework":{"type":"string","enum":["utilitarian","deontological","virtue","care","rights_based","professional","info_cyber","social_contract","safety_risk"],"title":"EthicsFramework"},"EthicsMode":{"type":"string","enum":["strict","advisory","transparent","custom"],"title":"EthicsMode"},"FeedbackCreate":{"properties":{"verdict_accepted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Verdict Accepted","description":"Is the verdict correct?"},"reason_code":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Reason Code","description":"Why is it wrong (over-scored, under-scored, etc.)"},"free_text":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Free Text","description":"User comment"},"correction_type":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Correction Type","description":"Type of correction (claim_correction, verdict_flip, etc.)"},"corrected_claim_ids":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Corrected Claim Ids","description":"Claims marked as incorrect with corrected scores"},"dwell_time_seconds":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Dwell Time Seconds","description":"Seconds user spent on result"}},"type":"object","title":"FeedbackCreate","description":"Feedback on verification accuracy and signal strength."},"FeedbackPayload":{"properties":{"rating":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Rating"},"comment":{"type":"string","title":"Comment","default":""},"page_url":{"type":"string","title":"Page Url","default":""},"user_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"}},"type":"object","required":["rating"],"title":"FeedbackPayload"},"FeedbackResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"engagement_weight":{"type":"number","title":"Engagement Weight"}},"type":"object","required":["id","engagement_weight"],"title":"FeedbackResponse","description":"Response after recording feedback."},"ForgotPasswordRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"ForgotPasswordRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LeaderboardEntry":{"properties":{"user_id":{"type":"string","format":"uuid","title":"User Id"},"user_name":{"type":"string","title":"User Name"},"score":{"type":"number","title":"Score"},"approved_notes":{"type":"integer","title":"Approved Notes"},"helpful_votes_received":{"type":"integer","title":"Helpful Votes Received"}},"type":"object","required":["user_id","user_name","score","approved_notes","helpful_votes_received"],"title":"LeaderboardEntry"},"MessageCreate":{"properties":{"content":{"type":"string","maxLength":10000,"minLength":1,"title":"Content"}},"type":"object","required":["content"],"title":"MessageCreate"},"MessageRole":{"type":"string","enum":["user","assistant"],"title":"MessageRole"},"ModerationAction":{"properties":{"status":{"type":"string","enum":["approved","rejected"],"title":"Status"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["status"],"title":"ModerationAction"},"ModerationQueueItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"claim_id":{"type":"string","format":"uuid","title":"Claim Id"},"claim_text":{"type":"string","title":"Claim Text"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"user_name":{"type":"string","title":"User Name"},"user_email":{"type":"string","title":"User Email"},"user_reputation_score":{"type":"number","title":"User Reputation Score"},"content":{"type":"string","title":"Content"},"source_urls":{"items":{"type":"string"},"type":"array","title":"Source Urls"},"note_type":{"type":"string","title":"Note Type"},"vote_score":{"type":"integer","title":"Vote Score"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","required":["id","claim_id","claim_text","user_id","user_name","user_email","user_reputation_score","content","source_urls","note_type","vote_score","created_at"],"title":"ModerationQueueItem"},"ModerationQueueResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ModerationQueueItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"pages":{"type":"integer","title":"Pages"}},"type":"object","required":["items","total","page","page_size","pages"],"title":"ModerationQueueResponse"},"NoteCreate":{"properties":{"content":{"type":"string","maxLength":5000,"minLength":10,"title":"Content"},"source_urls":{"items":{"type":"string"},"type":"array","maxItems":10,"title":"Source Urls"},"note_type":{"type":"string","enum":["supporting","contradicting"],"title":"Note Type"}},"type":"object","required":["content","note_type"],"title":"NoteCreate"},"NoteListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/NoteResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"pages":{"type":"integer","title":"Pages"}},"type":"object","required":["items","total","page","page_size","pages"],"title":"NoteListResponse"},"NoteResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"claim_id":{"type":"string","format":"uuid","title":"Claim Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"content":{"type":"string","title":"Content"},"source_urls":{"items":{"type":"string"},"type":"array","title":"Source Urls"},"note_type":{"type":"string","title":"Note Type"},"status":{"type":"string","title":"Status"},"vote_score":{"type":"integer","title":"Vote Score"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"user_name":{"type":"string","title":"User Name"},"user_reputation_score":{"type":"number","title":"User Reputation Score"}},"type":"object","required":["id","claim_id","user_id","content","source_urls","note_type","status","vote_score","created_at","updated_at","user_name","user_reputation_score"],"title":"NoteResponse"},"NoteVoteCreate":{"properties":{"vote_type":{"type":"string","enum":["up","down"],"title":"Vote Type"}},"type":"object","required":["vote_type"],"title":"NoteVoteCreate"},"PaginatedUsers":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdminUserResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"per_page":{"type":"integer","title":"Per Page"}},"type":"object","required":["items","total","page","per_page"],"title":"PaginatedUsers"},"PaginatedVerifications":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdminVerificationResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"per_page":{"type":"integer","title":"Per Page"}},"type":"object","required":["items","total","page","per_page"],"title":"PaginatedVerifications"},"PasswordUpdateRequest":{"properties":{"current_password":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Current Password"},"new_password":{"type":"string","maxLength":128,"minLength":8,"title":"New Password"}},"type":"object","required":["new_password"],"title":"PasswordUpdateRequest"},"PlatformStats":{"properties":{"total_users":{"type":"integer","title":"Total Users"},"active_users":{"type":"integer","title":"Active Users"},"verified_users":{"type":"integer","title":"Verified Users"},"total_verifications":{"type":"integer","title":"Total Verifications"},"completed_verifications":{"type":"integer","title":"Completed Verifications"},"average_aretify_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Aretify Score"},"users_by_tier":{"additionalProperties":{"type":"integer"},"type":"object","title":"Users By Tier"}},"type":"object","required":["total_users","active_users","verified_users","total_verifications","completed_verifications","average_aretify_score","users_by_tier"],"title":"PlatformStats"},"RegisterPendingResponse":{"properties":{"message":{"type":"string","title":"Message"},"email":{"type":"string","title":"Email"}},"type":"object","required":["message","email"],"title":"RegisterPendingResponse","description":"Email/password signup: user must verify email before receiving a session JWT."},"ResetGuestQuotaBody":{"properties":{"anon_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anon Id"},"visitor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visitor Id"},"client_ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Ip"}},"type":"object","title":"ResetGuestQuotaBody"},"ResetPasswordRequest":{"properties":{"token":{"type":"string","title":"Token"},"new_password":{"type":"string","maxLength":128,"minLength":8,"title":"New Password"}},"type":"object","required":["token","new_password"],"title":"ResetPasswordRequest"},"SendMessageResponse":{"properties":{"user_message":{"$ref":"#/components/schemas/app__schemas__conversation__MessageResponse"},"assistant_message":{"$ref":"#/components/schemas/app__schemas__conversation__MessageResponse"},"chat_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chat Remaining"},"chat_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chat Limit"},"chat_used":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chat Used"}},"type":"object","required":["user_message","assistant_message"],"title":"SendMessageResponse"},"SetTierBody":{"properties":{"email":{"type":"string","title":"Email"},"tier":{"type":"string","title":"Tier"}},"type":"object","required":["email","tier"],"title":"SetTierBody"},"SetTierRequest":{"properties":{"email":{"type":"string","title":"Email"},"tier":{"type":"string","title":"Tier"}},"type":"object","required":["email","tier"],"title":"SetTierRequest"},"Severity":{"type":"string","enum":["low","medium","high"],"title":"Severity"},"SubscriptionTier":{"type":"string","enum":["free","pro","team","enterprise"],"title":"SubscriptionTier"},"SupportPayload":{"properties":{"category":{"type":"string","minLength":1,"title":"Category"},"message":{"type":"string","minLength":1,"title":"Message"}},"type":"object","required":["category","message"],"title":"SupportPayload"},"Token":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"}},"type":"object","required":["access_token"],"title":"Token"},"UserCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","maxLength":128,"minLength":8,"title":"Password"},"full_name":{"type":"string","maxLength":255,"minLength":1,"title":"Full Name"}},"type":"object","required":["email","password","full_name"],"title":"UserCreate"},"UserLogin":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","maxLength":128,"minLength":1,"title":"Password"}},"type":"object","required":["email","password"],"title":"UserLogin"},"UserReputationResponse":{"properties":{"user_id":{"type":"string","format":"uuid","title":"User Id"},"score":{"type":"number","title":"Score"},"total_notes":{"type":"integer","title":"Total Notes"},"approved_notes":{"type":"integer","title":"Approved Notes"},"rejected_notes":{"type":"integer","title":"Rejected Notes"},"total_votes_received":{"type":"integer","title":"Total Votes Received"},"helpful_votes_received":{"type":"integer","title":"Helpful Votes Received"}},"type":"object","required":["user_id","score","total_notes","approved_notes","rejected_notes","total_votes_received","helpful_votes_received"],"title":"UserReputationResponse"},"UserResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"full_name":{"type":"string","title":"Full Name"},"is_active":{"type":"boolean","title":"Is Active"},"is_verified":{"type":"boolean","title":"Is Verified"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"subscription_tier":{"$ref":"#/components/schemas/SubscriptionTier"},"ethics_mode":{"$ref":"#/components/schemas/EthicsMode"},"ethics_frameworks":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Ethics Frameworks"},"verification_count":{"type":"integer","title":"Verification Count"},"daily_verification_limit":{"type":"integer","title":"Daily Verification Limit"},"has_password":{"type":"boolean","title":"Has Password","default":false},"daily_verification_reset_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Daily Verification Reset At","description":"UTC instant when the daily verification counter resets (08:00 America/Los_Angeles)."},"free_trial_used":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Free Trial Used"},"returning_user":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Returning User"},"original_signup_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Original Signup At"},"had_pro_before":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Had Pro Before"},"had_team_before":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Had Team Before"},"last_lapsed_paid_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Lapsed Paid Tier"},"max_concurrent_verifications":{"type":"integer","title":"Max Concurrent Verifications","default":1},"daily_verifications_used":{"type":"integer","title":"Daily Verifications Used","description":"Capped count for UI (never above limit for finite tiers).","readOnly":true}},"type":"object","required":["id","email","full_name","is_active","is_verified","created_at","updated_at","subscription_tier","ethics_mode","verification_count","daily_verification_limit","daily_verifications_used"],"title":"UserResponse"},"UserSettings":{"properties":{"ethics_mode":{"anyOf":[{"$ref":"#/components/schemas/EthicsMode"},{"type":"null"}]},"ethics_frameworks":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Ethics Frameworks"}},"type":"object","title":"UserSettings"},"UserUpdate":{"properties":{"full_name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Full Name"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"}},"type":"object","title":"UserUpdate"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerificationCacheInvalidateRequest":{"properties":{"claim":{"type":"string","maxLength":50000,"minLength":1,"title":"Claim"},"content_domain":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Content Domain"},"brief":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Brief"}},"type":"object","required":["claim"],"title":"VerificationCacheInvalidateRequest"},"VerificationCacheInvalidateResponse":{"properties":{"claims_processed":{"type":"integer","title":"Claims Processed"},"keys_deleted":{"type":"integer","title":"Keys Deleted"}},"type":"object","required":["claims_processed","keys_deleted"],"title":"VerificationCacheInvalidateResponse"},"VerificationCreate":{"properties":{"input_text":{"type":"string","maxLength":50000,"minLength":1,"title":"Input Text"},"source_platform":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Source Platform"},"content_domain":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Content Domain"},"verification_mode":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Verification Mode"},"brief":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Brief","description":"Domain context and evidence for scoring"},"idempotency_key":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Idempotency Key","description":"Idempotency key for safe retry"},"force_recompute":{"type":"boolean","title":"Force Recompute","description":"Staging/eval only: bypass verification cache for eval runs","default":false}},"type":"object","required":["input_text"],"title":"VerificationCreate"},"VerificationListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VerificationResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"pages":{"type":"integer","title":"Pages"},"total_pages":{"type":"integer","title":"Total Pages","default":0}},"type":"object","required":["items","total","page","page_size","pages"],"title":"VerificationListResponse"},"VerificationResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"},"input_text":{"type":"string","title":"Input Text"},"source_platform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Platform"},"aretify_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Aretify Score"},"raw_aretify_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Raw Aretify Score"},"score_classification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Score Classification"},"factual_report_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Factual Report Summary"},"safety_misinformation_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Safety Misinformation Message"},"ethics_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ethics Summary"},"ethics_penalty_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ethics Penalty Note"},"ethics_quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ethics Quality"},"ethics_skipped":{"type":"boolean","title":"Ethics Skipped","default":false},"ethics_skipped_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ethics Skipped Reason"},"status":{"$ref":"#/components/schemas/VerificationStatus"},"ethics_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ethics Mode"},"verification_quality_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Quality Tier"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"claims":{"items":{"$ref":"#/components/schemas/ClaimResponse"},"type":"array","title":"Claims","default":[]},"ethics_assessments":{"items":{"$ref":"#/components/schemas/EthicsAssessmentResponse"},"type":"array","title":"Ethics Assessments","default":[]},"subjective_claims_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subjective Claims Count"},"total_claims_extracted":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Claims Extracted"},"claims_limit_applied":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Claims Limit Applied"},"verification_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Mode"},"academic_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Academic Score"},"source_quality_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Source Quality Summary"},"citation_suggestions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Citation Suggestions"},"academic_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Academic Summary"},"fatal_flaw_triggered":{"type":"boolean","title":"Fatal Flaw Triggered","default":false},"fatal_flaw_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fatal Flaw Message"},"has_fatal_flaw":{"type":"boolean","title":"Has Fatal Flaw","default":false},"fatal_composite_penalty_applied":{"type":"boolean","title":"Fatal Composite Penalty Applied","default":false},"fatal_high_stakes_composite_note":{"type":"boolean","title":"Fatal High Stakes Composite Note","default":false},"is_total_fabrication":{"type":"boolean","title":"Is Total Fabrication","default":false},"is_total_hoax":{"type":"boolean","title":"Is Total Hoax","default":false},"is_satire_hoax":{"type":"boolean","title":"Is Satire Hoax","default":false},"ethics_treat_as_hypothetical_context":{"type":"boolean","title":"Ethics Treat As Hypothetical Context","default":false},"content_verification_nature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Verification Nature"},"contradicted_claim_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contradicted Claim Count"},"is_medical_content":{"type":"boolean","title":"Is Medical Content","default":false},"is_public_health_content":{"type":"boolean","title":"Is Public Health Content","default":false},"involves_child_population":{"type":"boolean","title":"Involves Child Population","default":false},"ethics_adversarial_marker":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ethics Adversarial Marker"},"manual_review_claim_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Manual Review Claim Count"},"score_provisional_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Score Provisional Message"},"completed_claims_average_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Completed Claims Average Score"},"completed_claims_scored_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed Claims Scored Count"},"completed_claims_pool_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed Claims Pool Count"},"document_verdict":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Verdict"},"document_verdict_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Verdict Description"},"composite_cap_applied":{"type":"boolean","title":"Composite Cap Applied","default":false},"composite_pre_cap_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Composite Pre Cap Score"},"scoring_extras":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Scoring Extras"},"brief_job_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brief Job Id"},"is_brief_segment":{"type":"boolean","title":"Is Brief Segment","default":false},"routing_trace":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Routing Trace"},"traceability":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Traceability"},"verified_for_client":{"type":"boolean","title":"Verified For Client","default":false},"verification_status":{"type":"string","title":"Verification Status","default":"unknown"},"guardrail_reasons":{"items":{"type":"string"},"type":"array","title":"Guardrail Reasons","default":[]},"verdict":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verdict","readOnly":true},"verdict_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verdict Description","readOnly":true},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score","description":"Alias for aretify_score for backward compatibility with harness extraction.","readOnly":true},"ethics":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Ethics","description":"Nested booleans for clients that read ``ethics.is_medical_content``-style paths.","readOnly":true}},"type":"object","required":["id","input_text","status","created_at","verdict","verdict_description","score","ethics"],"title":"VerificationResponse"},"VerificationStatus":{"type":"string","enum":["pending","processing","completed","failed"],"title":"VerificationStatus"},"VerifyEmailRequest":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"VerifyEmailRequest"},"VerifyEmailResponse":{"properties":{"message":{"type":"string","title":"Message"},"access_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"}},"type":"object","required":["message"],"title":"VerifyEmailResponse"},"app__api__routes__api_keys__MessageResponse":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MessageResponse"},"app__api__routes__password_reset__MessageResponse":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MessageResponse"},"app__schemas__conversation__MessageResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"role":{"$ref":"#/components/schemas/MessageRole"},"content":{"type":"string","title":"Content"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","role","content","created_at"],"title":"MessageResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}