{"openapi":"3.1.0","info":{"title":"JarvisSetup.io","version":"0.1.0"},"paths":{"/mobile/{sub_path}":{"get":{"summary":"Serve Mobile Pwa","operationId":"serve_mobile_pwa_mobile__sub_path__get","parameters":[{"name":"sub_path","in":"path","required":true,"schema":{"type":"string","title":"Sub Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mobile":{"get":{"summary":"Serve Mobile Pwa","operationId":"serve_mobile_pwa_mobile_get","parameters":[{"name":"sub_path","in":"query","required":false,"schema":{"type":"string","default":"","title":"Sub Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Landing","operationId":"landing__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/download/direct/{platform}":{"get":{"summary":"Download Direct","operationId":"download_direct_api_download_direct__platform__get","parameters":[{"name":"platform","in":"path","required":true,"schema":{"type":"string","title":"Platform"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/robots.txt":{"get":{"summary":"Robots","operationId":"robots_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/favicon.ico":{"get":{"summary":"Favicon","operationId":"favicon_favicon_ico_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/lp":{"get":{"summary":"Lp Page","operationId":"lp_page_lp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/lp2":{"get":{"summary":"Lp2 Page","operationId":"lp2_page_lp2_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/lp3":{"get":{"summary":"Lp3 Page","operationId":"lp3_page_lp3_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/report-error":{"post":{"summary":"Report Error","operationId":"report_error_api_report_error_post","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/track":{"post":{"summary":"Track","operationId":"track_api_track_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhook/stripe":{"post":{"summary":"Stripe Webhook","operationId":"stripe_webhook_webhook_stripe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/admin/dashboard":{"get":{"summary":"Admin Dashboard","operationId":"admin_dashboard_api_admin_dashboard_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/payments":{"get":{"summary":"Admin Payments","operationId":"admin_payments_api_admin_payments_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/newsletter":{"get":{"summary":"Admin Newsletter List","operationId":"admin_newsletter_list_api_admin_newsletter_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/newsletter/notify":{"post":{"summary":"Admin Newsletter Notify","operationId":"admin_newsletter_notify_api_admin_newsletter_notify_post","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsletterNotifyBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/export/jtl-orders.csv":{"get":{"summary":"Export Jtl Orders","operationId":"export_jtl_orders_api_export_jtl_orders_csv_get","parameters":[{"name":"key","in":"query","required":false,"schema":{"type":"string","default":"","title":"Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/pageviews":{"get":{"summary":"Admin Pageviews","operationId":"admin_pageviews_api_admin_pageviews_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ki-assistent-windows":{"get":{"summary":"Ki Windows","operationId":"ki_windows_ki_assistent_windows_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/jarvis-ki-assistent":{"get":{"summary":"Jarvis Ki","operationId":"jarvis_ki_jarvis_ki_assistent_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ki-morgenroutine":{"get":{"summary":"Ki Morgen","operationId":"ki_morgen_ki_morgenroutine_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/impressum":{"get":{"summary":"Impressum Page","operationId":"impressum_page_impressum_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/datenschutz":{"get":{"summary":"Datenschutz Page","operationId":"datenschutz_page_datenschutz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/agb":{"get":{"summary":"Agb Page","operationId":"agb_page_agb_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widerruf":{"get":{"summary":"Widerruf Page","operationId":"widerruf_page_widerruf_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/login":{"get":{"summary":"Login Page","operationId":"login_page_login_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/forgot-password":{"get":{"summary":"Forgot Password Page","operationId":"forgot_password_page_forgot_password_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/reset-password":{"get":{"summary":"Reset Password Page","operationId":"reset_password_page_reset_password_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/register":{"get":{"summary":"Register Page","operationId":"register_page_register_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/alexa-alternative":{"get":{"summary":"Alexa Alt","operationId":"alexa_alt_alexa_alternative_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/siri-alternative":{"get":{"summary":"Siri Alt","operationId":"siri_alt_siri_alternative_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ki-assistent-offline":{"get":{"summary":"Ki Offline","operationId":"ki_offline_ki_assistent_offline_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ki-assistent-vergleich":{"get":{"summary":"Ki Vergleich","operationId":"ki_vergleich_ki_assistent_vergleich_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/features":{"get":{"summary":"Features Page","operationId":"features_page_features_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/email-vorlesen":{"get":{"summary":"Email Vorlesen Page","operationId":"email_vorlesen_page_email_vorlesen_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/integrationen":{"get":{"summary":"Integrationen Page","operationId":"integrationen_page_integrationen_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/download":{"get":{"summary":"Download Page","operationId":"download_page_download_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ki-assistent-alternativen-alexa":{"get":{"summary":"Ki Alt Alexa","operationId":"ki_alt_alexa_ki_assistent_alternativen_alexa_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/wake-word-erkennung":{"get":{"summary":"Wake Word","operationId":"wake_word_wake_word_erkennung_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/jarvis-bauen":{"get":{"summary":"Jarvis Bauen","operationId":"jarvis_bauen_jarvis_bauen_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/anwendungsfaelle":{"get":{"summary":"Anwendungsfaelle Page","operationId":"anwendungsfaelle_page_anwendungsfaelle_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ki-morgenroutine-produktiv":{"get":{"summary":"Ki Morgenroutine Produktiv","operationId":"ki_morgenroutine_produktiv_ki_morgenroutine_produktiv_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/blog":{"get":{"summary":"Blog Page","operationId":"blog_page_blog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/jarvis-fuer-selbststaendige":{"get":{"summary":"Jarvis Fuer Selbststaendige Page","operationId":"jarvis_fuer_selbststaendige_page_jarvis_fuer_selbststaendige_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/outlook-per-sprache-steuern":{"get":{"summary":"Outlook Per Sprache Page","operationId":"outlook_per_sprache_page_outlook_per_sprache_steuern_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/changelog":{"get":{"summary":"Changelog Page","operationId":"changelog_page_changelog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/app":{"get":{"summary":"App Page","operationId":"app_page_app_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/verify-email":{"get":{"summary":"Verify Email Route","operationId":"verify_email_route_verify_email_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/newsletter/subscribe":{"post":{"summary":"Newsletter Subscribe","operationId":"newsletter_subscribe_api_newsletter_subscribe_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsletterSubscribeBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/newsletter/verify":{"get":{"summary":"Newsletter Verify","operationId":"newsletter_verify_newsletter_verify_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/newsletter/unsubscribe":{"get":{"summary":"Newsletter Unsubscribe","operationId":"newsletter_unsubscribe_newsletter_unsubscribe_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/payment":{"get":{"summary":"Payment Page","operationId":"payment_page_payment_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin":{"get":{"summary":"Admin Page","operationId":"admin_page_admin_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/logout":{"get":{"summary":"Logout","operationId":"logout_logout_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/user/me":{"get":{"summary":"User Me","operationId":"user_me_api_user_me_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/user/change-password":{"post":{"summary":"Change Password","operationId":"change_password_api_user_change_password_post","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/register":{"post":{"summary":"Register","operationId":"register_api_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/main__RegisterBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/login":{"post":{"summary":"Login","operationId":"login_api_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/desktop/login":{"post":{"summary":"Desktop Login","description":"Login fuer den Desktop-Launcher (jarvis_launcher.py). Anders als der\nWeb-Login setzt dies eine neue active_device_session auf dem User-Datensatz -\ndadurch wird jede zuvor aktive Desktop-Sitzung dieses Accounts ungueltig\n(nur eine Instanz gleichzeitig, siehe /api/desktop/heartbeat).","operationId":"desktop_login_api_desktop_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesktopLoginBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/mobile/login":{"post":{"summary":"Mobile Login","description":"Login fuer die GetJarvis-Mobile-App. Bewusst eigene active_mobile_session\nstatt active_device_session (siehe DesktopLoginBody) - Desktop und Handy sollen\ngleichzeitig eingeloggt bleiben duerfen, nur je Geraetetyp max. eine Sitzung.","operationId":"mobile_login_api_mobile_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileLoginBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/desktop/heartbeat":{"post":{"summary":"Desktop Heartbeat","description":"Wird periodisch vom laufenden Jarvis (jarvis_voice.py/jarvis_gui.py)\naufgerufen. Braucht bewusst KEIN Cookie/JWT - die generierten Skripte sind\neinmalig heruntergeladene, langlebige Dateien ohne Session-Verwaltung, die\ndevice_session (192-Bit-Zufallswert, siehe /api/desktop/login) dient hier\nselbst als Credential. Meldet active=false, sobald sich der Account\nzwischenzeitlich an einem anderen Geraet neu eingeloggt hat - der aeltere\nClient soll dann beenden, um Mehrfachnutzung eines Accounts zu verhindern.","operationId":"desktop_heartbeat_api_desktop_heartbeat_post","requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/desktop/version":{"get":{"summary":"Desktop Version","description":"Wird vom Desktop-Launcher (jarvis_launcher.py) beim Start kurz abgefragt, um zu\npruefen, ob eine neuere Version des generierten Setups verfuegbar ist - zeigt dem\nNutzer dann ein Update-Popup statt Aenderungen stillschweigend zu verpassen. Bewusst\nkein Auth noetig (reine Versionsnummer, kein Nutzerbezug) und ohne DB-Zugriff, damit\nder Check schnell/robust ist und den normalen Start nie verzoegert.","operationId":"desktop_version_api_desktop_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/desktop/announcement":{"get":{"summary":"Desktop Announcement","description":"Liefert die aktuell vom Admin aktivierte Ankuendigung (siehe /api/admin/announcement)\noder null. Bewusst kein Auth noetig, wie /api/desktop/version - der Launcher zeigt\ndas jeweils nur EINMAL pro Ankuendigung an (lokal per gesehener ID gemerkt).","operationId":"desktop_announcement_api_desktop_announcement_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/forgot-password":{"post":{"summary":"Forgot Password","operationId":"forgot_password_api_auth_forgot_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotPasswordBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/reset-password":{"post":{"summary":"Reset Password","operationId":"reset_password_api_auth_reset_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/me":{"get":{"summary":"Me","operationId":"me_api_auth_me_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/google":{"get":{"summary":"Google Login","operationId":"google_login_auth_google_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/google/callback":{"get":{"summary":"Google Callback","operationId":"google_callback_auth_google_callback_get","parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/payment/create-checkout":{"post":{"summary":"Create Checkout","operationId":"create_checkout_api_payment_create_checkout_post","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}},{"name":"jarvis_lead_ref","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jarvis Lead Ref"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/payment/guest-checkout":{"post":{"summary":"Guest Checkout","operationId":"guest_checkout_api_payment_guest_checkout_post","parameters":[{"name":"jarvis_lead_ref","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jarvis Lead Ref"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/test":{"get":{"summary":"Test Checkout Page","operationId":"test_checkout_page_test_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/payment/validate-coupon":{"post":{"summary":"Validate Coupon","operationId":"validate_coupon_api_payment_validate_coupon_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/payment/config":{"get":{"summary":"Payment Config","operationId":"payment_config_api_payment_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/payment/create-intent":{"post":{"summary":"Create Payment Intent","operationId":"create_payment_intent_api_payment_create_intent_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/payment/intent-success":{"get":{"summary":"Intent Success","operationId":"intent_success_payment_intent_success_get","parameters":[{"name":"payment_intent","in":"query","required":false,"schema":{"type":"string","default":"","title":"Payment Intent"}},{"name":"redirect_status","in":"query","required":false,"schema":{"type":"string","default":"","title":"Redirect Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/payment/guest-success":{"get":{"summary":"Guest Payment Success","operationId":"guest_payment_success_payment_guest_success_get","parameters":[{"name":"session_id","in":"query","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/payment/success":{"get":{"summary":"Payment Success","operationId":"payment_success_payment_success_get","parameters":[{"name":"session_id","in":"query","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/payment/status":{"get":{"summary":"Payment Status","operationId":"payment_status_api_payment_status_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/config":{"post":{"summary":"Save Config","operationId":"save_config_api_config_post","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/config/my":{"get":{"summary":"Get My Config","operationId":"get_my_config_api_config_my_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/mobile/ask":{"post":{"summary":"Mobile Ask","description":"Serverseitiges Gegenstueck zu ask_ai() aus generators.py (dort nur als\nString-Template fuer das generierte Desktop-Skript vorhanden, hier als\nechte, direkt aufrufbare Funktion fuer die Mobile-App). Gleiche Provider-\nReihenfolge wie am Desktop: Anthropic Claude Haiku (mit Web-Search-Tool),\nsonst Gemini Flash (mit Google-Search-Tool).\n\n`history` erlaubt echte Mehr-Runden-Gespraeche (z.B. Modul-Karte \"Social-Media-\nPost\" oeffnet den Talk-Screen mit einer Startfrage, Jarvis fragt nach dem Thema,\ndie Antwort landet erst in der naechsten Anfrage hier als Teil der history) -\nohne das waere jede Anfrage isoliert und Jarvis haette beim zweiten Turn keine\nErinnerung mehr an die Startfrage.","operationId":"mobile_ask_api_mobile_ask_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileAskBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/mobile/tts":{"post":{"summary":"Mobile Tts","description":"body.prompt wird hier als der vorzulesende Text verwendet (gleiche Body-\nKlasse wie /api/mobile/ask, um kein zusaetzliches Pydantic-Model fuer ein\neinzelnes Textfeld einzufuehren). Gibt MP3-Bytes zurueck oder 424, wenn kein\nElevenLabs-Key hinterlegt ist - die App faellt dann auf geraeteeigene TTS\n(expo-speech) zurueck, spiegelt den Desktop-Fallback auf pyttsx3/`say`.","operationId":"mobile_tts_api_mobile_tts_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileAskBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/mobile/transcribe":{"post":{"summary":"Mobile Transcribe","description":"Transkribiert eine vom Handy aufgenommene Sprachnachricht serverseitig\nper faster-whisper (gleiche Bibliothek wie im lokalen Desktop-Wake-Word-\nModul, main.py:build_voice) - Whisper laeuft hier auf dem Server statt auf\ndem Handy, weil On-Device-STT in Expo ohne natives Prebuild nicht zuverlaessig\nverfuegbar ist. Modell wird beim ersten Aufruf einmalig geladen und im\nProzess gecacht (_whisper_model), damit nicht jede Anfrage neu laedt.","operationId":"mobile_transcribe_api_mobile_transcribe_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_mobile_transcribe_api_mobile_transcribe_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/mobile/entries":{"get":{"summary":"List Module Entries","operationId":"list_module_entries_api_mobile_entries_get","parameters":[{"name":"module","in":"query","required":true,"schema":{"type":"string","title":"Module"}},{"name":"bucket","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bucket"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Create Module Entry","operationId":"create_module_entry_api_mobile_entries_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModuleEntryBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/mobile/entries/{entry_id}":{"patch":{"summary":"Update Module Entry","operationId":"update_module_entry_api_mobile_entries__entry_id__patch","parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModuleEntryPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Module Entry","operationId":"delete_module_entry_api_mobile_entries__entry_id__delete","parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/download/my":{"get":{"summary":"Download My","description":"Fuer den Desktop-Launcher (jarvis_launcher.py / jarvis_launcher_mac.py): laedt die ZIP\nfuer den eingeloggten Nutzer, ohne dass der Client eine config_id kennen muss.\nWenn device_session mitgegeben wird (Desktop-Launcher-Flow ueber\n/api/desktop/login), muss sie mit der aktuell aktiven Geraete-Sitzung\nuebereinstimmen - verhindert, dass ein verdraengtes Geraet trotzdem noch\nein frisches Setup herunterladen kann. platform steuert, ob ein Windows- (setup.bat/\njarvis_gui.py) oder Mac-Paket (setup.sh) generiert wird - der Windows-Launcher schickt\ndas Feld aktuell nicht mit, faellt also bewusst auf \"windows\" zurueck (Abwaertskompatibilitaet).","operationId":"download_my_api_download_my_get","parameters":[{"name":"device_session","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Session"}},{"name":"platform","in":"query","required":false,"schema":{"type":"string","default":"windows","title":"Platform"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/download/{config_id}":{"get":{"summary":"Download","operationId":"download_api_download__config_id__get","parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","title":"Config Id"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/download-mac/{config_id}":{"get":{"summary":"Download Mac","operationId":"download_mac_api_download_mac__config_id__get","parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","title":"Config Id"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/download-docker/{config_id}":{"get":{"summary":"Download Docker","operationId":"download_docker_api_download_docker__config_id__get","parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","title":"Config Id"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/stats":{"get":{"summary":"Admin Stats","operationId":"admin_stats_api_admin_stats_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/users":{"get":{"summary":"Admin Users","operationId":"admin_users_api_admin_users_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/users/{user_id}":{"delete":{"summary":"Delete User","operationId":"delete_user_api_admin_users__user_id__delete","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/direct-downloads":{"get":{"summary":"Admin Direct Downloads","description":"Zaehlt die Events aus download_direct() (siehe dort) pro Datei - fuer die\nDirekt-Download-Buttons im Header/Popup (nicht die personalisierten ZIPs aus\ndem Konfigurator, siehe /api/admin/events fuer 'config_saved' etc.).","operationId":"admin_direct_downloads_api_admin_direct_downloads_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/downloads":{"get":{"summary":"Admin Downloads","description":"Download-Auswertung nach Plattform, App-Version, Quelle und Tag.","operationId":"admin_downloads_api_admin_downloads_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/events":{"get":{"summary":"Admin Events","operationId":"admin_events_api_admin_events_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/abandoned":{"get":{"summary":"Admin Abandoned","operationId":"admin_abandoned_api_admin_abandoned_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/abandoned/{email}":{"delete":{"summary":"Admin Delete Abandoned","operationId":"admin_delete_abandoned_api_admin_abandoned__email__delete","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/registered-not-paid":{"get":{"summary":"Admin Registered Not Paid","operationId":"admin_registered_not_paid_api_admin_registered_not_paid_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/send-recovery":{"post":{"summary":"Admin Send Recovery","operationId":"admin_send_recovery_api_admin_send_recovery_post","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecoveryBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/leads/categories":{"get":{"summary":"Admin Leads Categories","operationId":"admin_leads_categories_api_admin_leads_categories_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/leads/crawl":{"post":{"summary":"Admin Leads Crawl","operationId":"admin_leads_crawl_api_admin_leads_crawl_post","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadCrawlBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/leads":{"get":{"summary":"Admin Leads List","operationId":"admin_leads_list_api_admin_leads_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"industry_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry Type"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/leads/stats":{"get":{"summary":"Admin Leads Stats","operationId":"admin_leads_stats_api_admin_leads_stats_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/leads/{lead_id}/send-outreach":{"post":{"summary":"Admin Leads Send Outreach","operationId":"admin_leads_send_outreach_api_admin_leads__lead_id__send_outreach_post","parameters":[{"name":"lead_id","in":"path","required":true,"schema":{"type":"string","title":"Lead Id"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/leads/track/{lead_id}":{"get":{"summary":"Leads Track Click","operationId":"leads_track_click_api_leads_track__lead_id__get","parameters":[{"name":"lead_id","in":"path","required":true,"schema":{"type":"string","title":"Lead Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/leads/unsubscribe/{lead_id}":{"get":{"summary":"Leads Unsubscribe","operationId":"leads_unsubscribe_api_leads_unsubscribe__lead_id__get","parameters":[{"name":"lead_id","in":"path","required":true,"schema":{"type":"string","title":"Lead Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/cron/lead-followup":{"post":{"summary":"Cron Lead Followup","description":"Automatischer 14-Tage-Follow-up mit Gutscheincode fuer Leads ohne Konversion.","operationId":"cron_lead_followup_api_cron_lead_followup_post","parameters":[{"name":"x-cron-secret","in":"header","required":false,"schema":{"type":"string","title":"X-Cron-Secret"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/telegram/webhook":{"post":{"summary":"Telegram Webhook Handler","operationId":"telegram_webhook_handler_telegram_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/facebook/webhook":{"get":{"summary":"Facebook Webhook Verify","description":"Metas Verifizierungs-Handshake beim Einrichten der Webhook-URL in der App-Konfiguration.","operationId":"facebook_webhook_verify_facebook_webhook_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Facebook Webhook Handler","description":"Empfaengt eingehende Facebook-Messenger- UND Instagram-Direktnachrichten - beide nutzen\ndieselbe entry[].messaging[]-Webhook-Struktur, unterscheidbar ueber data['object']\n('page' = Messenger, 'instagram' = Instagram). Laeuft durch dieselbe KI-Antwortlogik\n(generate_support_reply) und TaskLabs-Anbindung (push_to_tasklabs) wie der Website-Chat -\ndie Antwort geht aber per Send API zurueck statt per WebSocket, da hier keine dauerhafte\nVerbindung zum Client besteht.","operationId":"facebook_webhook_handler_facebook_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/chat/history/{session_id}":{"get":{"summary":"Chat History","operationId":"chat_history_chat_history__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/widget/push":{"post":{"summary":"Widget Push","description":"Receive an agent reply from tasklabs.de and deliver it into the visitor's open chat widget.","operationId":"widget_push_api_widget_push_post","parameters":[{"name":"x-widget-secret","in":"header","required":false,"schema":{"type":"string","title":"X-Widget-Secret"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WidgetPushBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ping":{"post":{"summary":"Device Ping","operationId":"device_ping_api_ping_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PingBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/device-pings":{"get":{"summary":"Admin Device Pings","operationId":"admin_device_pings_api_admin_device_pings_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/partner":{"get":{"summary":"Partner Page","operationId":"partner_page_partner_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/partner/inquiry":{"post":{"summary":"Partner Inquiry","operationId":"partner_inquiry_api_partner_inquiry_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerInquiryBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/partner-login":{"get":{"summary":"Partner Login Page","operationId":"partner_login_page_partner_login_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/partner-dashboard":{"get":{"summary":"Partner Dashboard Page","operationId":"partner_dashboard_page_partner_dashboard_get","parameters":[{"name":"partner_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Partner Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/partner/login":{"post":{"summary":"Partner Login","operationId":"partner_login_api_partner_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerLoginBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/partner/logout":{"post":{"summary":"Partner Logout","operationId":"partner_logout_api_partner_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/partner/data":{"get":{"summary":"Partner Data","operationId":"partner_data_api_partner_data_get","parameters":[{"name":"partner_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Partner Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/license/activate":{"post":{"summary":"Activate License","operationId":"activate_license_api_license_activate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateLicenseBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/license/check/{code}":{"get":{"summary":"Check License","operationId":"check_license_api_license_check__code__get","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/partners":{"get":{"summary":"Admin List Partners","operationId":"admin_list_partners_api_admin_partners_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Admin Create Partner","operationId":"admin_create_partner_api_admin_partners_post","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePartnerBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/licenses/generate":{"post":{"summary":"Admin Generate Licenses","operationId":"admin_generate_licenses_api_admin_licenses_generate_post","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateLicensesBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/alexa/generate-code":{"post":{"summary":"Alexa Generate Code","operationId":"alexa_generate_code_api_alexa_generate_code_post","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/alexa/status":{"get":{"summary":"Alexa Status","operationId":"alexa_status_api_alexa_status_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/alexa/unlink":{"post":{"summary":"Alexa Unlink","operationId":"alexa_unlink_api_alexa_unlink_post","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/alexa":{"post":{"summary":"Alexa Skill","operationId":"alexa_skill_api_alexa_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/admin/licenses":{"get":{"summary":"Admin List Licenses","operationId":"admin_list_licenses_api_admin_licenses_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/api-keys":{"post":{"summary":"Admin Create Api Key","operationId":"admin_create_api_key_api_admin_api_keys_post","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Admin List Api Keys","operationId":"admin_list_api_keys_api_admin_api_keys_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/api-keys/{key_id}":{"delete":{"summary":"Admin Revoke Api Key","operationId":"admin_revoke_api_key_api_admin_api_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/announcement":{"post":{"summary":"Admin Create Announcement","description":"Legt eine neue Ankuendigung an und deaktiviert automatisch jede vorherige aktive -\nes soll immer nur genau eine gleichzeitig im Desktop-Launcher als Popup erscheinen.","operationId":"admin_create_announcement_api_admin_announcement_post","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnnouncementCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Admin List Announcements","operationId":"admin_list_announcements_api_admin_announcement_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/announcement/{ann_id}/deactivate":{"post":{"summary":"Admin Deactivate Announcement","operationId":"admin_deactivate_announcement_api_admin_announcement__ann_id__deactivate_post","parameters":[{"name":"ann_id","in":"path","required":true,"schema":{"type":"string","title":"Ann Id"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/provision":{"post":{"summary":"V1 Provision User","description":"Legt einen Nutzer an (falls nicht vorhanden) und schaltet ihn als bezahlt frei.","operationId":"v1_provision_user_api_v1_users_provision_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionRequest"}}},"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/users/{email}/status":{"get":{"summary":"V1 User Status","operationId":"v1_user_status_api_v1_users__email__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{email}/download-token":{"post":{"summary":"V1 Create Download Token","description":"Erzeugt einen 1h-gültigen Download-Link für die neueste Jarvis-Config des Nutzers.","operationId":"v1_create_download_token_api_v1_users__email__download_token_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadTokenRequest","default":{"platform":"windows"}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/download/{token}":{"get":{"summary":"V1 Download Windows","operationId":"v1_download_windows_api_v1_download__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/download-mac/{token}":{"get":{"summary":"V1 Download Mac","operationId":"v1_download_mac_api_v1_download_mac__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/download-docker/{token}":{"get":{"summary":"V1 Download Docker","operationId":"v1_download_docker_api_v1_download_docker__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/info":{"get":{"summary":"V1 Info","operationId":"v1_info_api_v1_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/cron/social-post":{"post":{"summary":"Cron Social Post","operationId":"cron_social_post_api_cron_social_post_post","parameters":[{"name":"x-cron-secret","in":"header","required":false,"schema":{"type":"string","title":"X-Cron-Secret"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/social/upload-image":{"post":{"summary":"Social Upload Image","description":"Hosts an image (from the Make.com OpenAI image-gen step) as a static file so downstream\nInstagram/LinkedIn modules have the public URL they require. Accepts either a raw binary\nbody or a JSON body {\"image_b64\": \"...\"} (base64, optionally with a data: URL prefix) —\nMake.com's exact binary-vs-text field mapping behaviour wasn't verifiable ahead of time.","operationId":"social_upload_image_api_social_upload_image_post","parameters":[{"name":"x-cron-secret","in":"header","required":false,"schema":{"type":"string","title":"X-Cron-Secret"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/affiliate":{"get":{"summary":"Page Landing","operationId":"page_landing_affiliate_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/affiliate/agb":{"get":{"summary":"Page Terms","operationId":"page_terms_affiliate_agb_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/affiliate/login":{"get":{"summary":"Page Login","operationId":"page_login_affiliate_login_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/affiliate/dashboard":{"get":{"summary":"Page Dashboard","operationId":"page_dashboard_affiliate_dashboard_get","parameters":[{"name":"affiliate_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Affiliate Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/affiliate/admin":{"get":{"summary":"Page Admin","operationId":"page_admin_affiliate_admin_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/go/{code}":{"get":{"summary":"Go","description":"Kurzlink getjarvis.de/go/CODE -> Cookie setzen, Klick zaehlen, weiterleiten.","operationId":"go_go__code__get","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","default":"/","title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/affiliate/register":{"post":{"summary":"Api Register","operationId":"api_register_api_affiliate_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/affiliate__RegisterBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/affiliate/login":{"post":{"summary":"Api Login","operationId":"api_login_api_affiliate_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/affiliate/logout":{"post":{"summary":"Api Logout","operationId":"api_logout_api_affiliate_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/affiliate/forgot-password":{"post":{"summary":"Api Forgot","operationId":"api_forgot_api_affiliate_forgot_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/affiliate/reset-password":{"post":{"summary":"Api Reset","operationId":"api_reset_api_affiliate_reset_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/affiliate/me":{"get":{"summary":"Api Me","operationId":"api_me_api_affiliate_me_get","parameters":[{"name":"affiliate_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Affiliate Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/affiliate/profile":{"post":{"summary":"Api Profile","operationId":"api_profile_api_affiliate_profile_post","parameters":[{"name":"affiliate_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Affiliate Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/affiliate/webhook":{"post":{"summary":"Api Webhook","operationId":"api_webhook_api_affiliate_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/affiliate/admin/overview":{"get":{"summary":"Api Admin Overview","operationId":"api_admin_overview_api_affiliate_admin_overview_get","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/affiliate/admin/affiliate/{aff_id}/status":{"post":{"summary":"Api Admin Affiliate Status","operationId":"api_admin_affiliate_status_api_affiliate_admin_affiliate__aff_id__status_post","parameters":[{"name":"aff_id","in":"path","required":true,"schema":{"type":"string","title":"Aff Id"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/affiliate/admin/commission/{comm_id}/status":{"post":{"summary":"Api Admin Commission Status","operationId":"api_admin_commission_status_api_affiliate_admin_commission__comm_id__status_post","parameters":[{"name":"comm_id","in":"path","required":true,"schema":{"type":"string","title":"Comm Id"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommissionStatusBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/affiliate/admin/payout/create":{"post":{"summary":"Api Admin Payout Create","operationId":"api_admin_payout_create_api_affiliate_admin_payout_create_post","parameters":[{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutCreateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/affiliate/admin/payout/{payout_id}/paid":{"post":{"summary":"Api Admin Payout Paid","operationId":"api_admin_payout_paid_api_affiliate_admin_payout__payout_id__paid_post","parameters":[{"name":"payout_id","in":"path","required":true,"schema":{"type":"string","title":"Payout Id"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/affiliate/gutschrift/{payout_id}":{"get":{"summary":"Page Credit Note","operationId":"page_credit_note_affiliate_gutschrift__payout_id__get","parameters":[{"name":"payout_id","in":"path","required":true,"schema":{"type":"string","title":"Payout Id"}},{"name":"affiliate_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Affiliate Token"}},{"name":"token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ActivateLicenseBody":{"properties":{"code":{"type":"string","title":"Code"},"email":{"type":"string","title":"Email"}},"type":"object","required":["code","email"],"title":"ActivateLicenseBody"},"AnnouncementCreate":{"properties":{"title":{"type":"string","title":"Title"},"body":{"type":"string","title":"Body"}},"type":"object","required":["title","body"],"title":"AnnouncementCreate"},"ApiKeyCreate":{"properties":{"label":{"type":"string","title":"Label"},"owner":{"type":"string","title":"Owner"}},"type":"object","required":["label","owner"],"title":"ApiKeyCreate"},"Body_mobile_transcribe_api_mobile_transcribe_post":{"properties":{"audio":{"type":"string","format":"binary","title":"Audio"}},"type":"object","required":["audio"],"title":"Body_mobile_transcribe_api_mobile_transcribe_post"},"ChangePasswordBody":{"properties":{"current_password":{"type":"string","title":"Current Password","default":""},"new_password":{"type":"string","title":"New Password"}},"type":"object","required":["new_password"],"title":"ChangePasswordBody"},"CommissionStatusBody":{"properties":{"status":{"type":"string","title":"Status"},"note":{"type":"string","title":"Note","default":""}},"type":"object","required":["status"],"title":"CommissionStatusBody"},"CreatePartnerBody":{"properties":{"name":{"type":"string","title":"Name"},"company":{"type":"string","title":"Company"},"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"},"license_price_cents":{"type":"integer","title":"License Price Cents","default":1500},"notes":{"type":"string","title":"Notes","default":""}},"type":"object","required":["name","company","email","password"],"title":"CreatePartnerBody"},"DesktopLoginBody":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"},"device_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Name"}},"type":"object","required":["email","password"],"title":"DesktopLoginBody"},"DownloadTokenRequest":{"properties":{"platform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform","default":"windows"}},"type":"object","title":"DownloadTokenRequest"},"ForgotBody":{"properties":{"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"ForgotBody"},"ForgotPasswordBody":{"properties":{"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"ForgotPasswordBody"},"GenerateLicensesBody":{"properties":{"partner_id":{"type":"string","title":"Partner Id"},"quantity":{"type":"integer","title":"Quantity"}},"type":"object","required":["partner_id","quantity"],"title":"GenerateLicensesBody"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LeadCrawlBody":{"properties":{"industry_type":{"type":"string","title":"Industry Type"},"city":{"type":"string","title":"City"}},"type":"object","required":["industry_type","city"],"title":"LeadCrawlBody"},"LoginBody":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginBody"},"MobileAskBody":{"properties":{"prompt":{"type":"string","title":"Prompt"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/MobileChatTurn"},"type":"array"},{"type":"null"}],"title":"History"}},"type":"object","required":["prompt"],"title":"MobileAskBody"},"MobileChatTurn":{"properties":{"role":{"type":"string","title":"Role"},"content":{"type":"string","title":"Content"}},"type":"object","required":["role","content"],"title":"MobileChatTurn"},"MobileLoginBody":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"},"device_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Name"}},"type":"object","required":["email","password"],"title":"MobileLoginBody"},"ModuleEntryBody":{"properties":{"module":{"type":"string","title":"Module"},"bucket":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bucket"},"payload":{"type":"object","title":"Payload"},"done":{"type":"boolean","title":"Done","default":false}},"type":"object","required":["module","payload"],"title":"ModuleEntryBody"},"ModuleEntryPatchBody":{"properties":{"payload":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Payload"},"done":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Done"}},"type":"object","title":"ModuleEntryPatchBody"},"NewsletterNotifyBody":{"properties":{"subject":{"type":"string","title":"Subject"},"message":{"type":"string","title":"Message"}},"type":"object","required":["subject","message"],"title":"NewsletterNotifyBody"},"NewsletterSubscribeBody":{"properties":{"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"NewsletterSubscribeBody"},"PartnerInquiryBody":{"properties":{"name":{"type":"string","title":"Name"},"company":{"type":"string","title":"Company"},"email":{"type":"string","title":"Email"},"phone":{"type":"string","title":"Phone","default":""},"message":{"type":"string","title":"Message","default":""}},"type":"object","required":["name","company","email"],"title":"PartnerInquiryBody"},"PartnerLoginBody":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"PartnerLoginBody"},"PayoutCreateBody":{"properties":{"affiliate_id":{"type":"string","title":"Affiliate Id"}},"type":"object","required":["affiliate_id"],"title":"PayoutCreateBody"},"PingBody":{"properties":{"email":{"type":"string","title":"Email"},"device_id":{"type":"string","title":"Device Id"},"hostname":{"type":"string","title":"Hostname","default":""}},"type":"object","required":["email","device_id"],"title":"PingBody"},"ProfileBody":{"properties":{"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"account_holder":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Holder"},"iban":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Iban"},"bic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bic"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"vat_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vat Mode"},"vat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vat Id"}},"type":"object","title":"ProfileBody"},"ProvisionRequest":{"properties":{"email":{"type":"string","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"}},"type":"object","required":["email"],"title":"ProvisionRequest"},"RecoveryBody":{"properties":{"emails":{"items":{},"type":"array","title":"Emails"}},"type":"object","required":["emails"],"title":"RecoveryBody"},"ReportBody":{"properties":{"email":{"type":"string","title":"Email"},"message":{"type":"string","title":"Message"},"page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page","default":""}},"type":"object","required":["email","message"],"title":"ReportBody"},"ResetBody":{"properties":{"token":{"type":"string","title":"Token"},"password":{"type":"string","title":"Password"}},"type":"object","required":["token","password"],"title":"ResetBody"},"ResetPasswordBody":{"properties":{"token":{"type":"string","title":"Token"},"password":{"type":"string","title":"Password"}},"type":"object","required":["token","password"],"title":"ResetPasswordBody"},"StatusBody":{"properties":{"status":{"type":"string","title":"Status"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"coupon_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coupon Code"}},"type":"object","required":["status"],"title":"StatusBody"},"TrackBody":{"properties":{"session_id":{"type":"string","title":"Session Id"},"page":{"type":"string","title":"Page"},"referrer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referrer","default":""},"utm_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utm Source","default":""},"utm_medium":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utm Medium","default":""},"utm_campaign":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utm Campaign","default":""},"device":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device","default":"desktop"},"browser":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser","default":""}},"type":"object","required":["session_id","page"],"title":"TrackBody"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WidgetPushBody":{"properties":{"session_id":{"type":"string","title":"Session Id"},"text":{"type":"string","title":"Text"}},"type":"object","required":["session_id","text"],"title":"WidgetPushBody"},"affiliate__RegisterBody":{"properties":{"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"},"company":{"type":"string","title":"Company","default":""},"website":{"type":"string","title":"Website","default":""},"channels":{"type":"string","title":"Channels","default":""},"agb_accepted":{"type":"boolean","title":"Agb Accepted","default":false}},"type":"object","required":["name","email","password"],"title":"RegisterBody"},"main__RegisterBody":{"properties":{"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["name","email","password"],"title":"RegisterBody"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}