=== app/api/routers/__init__.py === === app/api/routers/accounts.py === @router.get("/accounts" @router.post("/accounts/connect" @router.post("/accounts/{account_id}/test" @router.post("/accounts/{account_id}/reauthorize" @router.post("/accounts/{account_id}/revoke" @router.delete("/accounts/{account_id}" @router.post("/accounts/clear-all" @router.post("/accounts/import-config" @router.patch("/accounts/{account_id}" === app/api/routers/attachments.py === @router.get("/list" @router.post("/upload" @router.post("/convert-pdf" @router.get("/{att_id}" @router.get("/{att_id}/download" @router.get("/{att_id}/preview" @router.post("/{att_id}/delete" @router.post("/clear-all" === app/api/routers/auth.py === @router.post("/register" @router.post("/login" @router.post("/logout" @router.get("/me" @router.get("/google/start" @router.get("/google/callback" === app/api/routers/campaigns.py === @router.get("/list" @router.post("/create" @router.get("/{cid}" @router.post("/{cid}/patch" @router.post("/{cid}/delete" @router.post("/clear-all" @router.post("/{cid}/preview" @router.post("/{cid}/start" @router.post("/{cid}/pause" @router.post("/{cid}/resume" @router.post("/{cid}/cancel" @router.get("/{cid}/progress" @router.get("/{cid}/stream" @router.get("/{cid}/recipients" @router.get("/{cid}/export" @router.get("/wizard/options" @router.post("/validate-step" === app/api/routers/dashboard.py === @router.get("/overview" @router.get("/status" === app/api/routers/logs.py === @router.get("/list" @router.get("/events" @router.get("/audit" @router.get("/dlq" @router.get("/export" @router.get("/recipient/{cr_id}/history" === app/api/routers/phones.py === @router.get("/list" @router.post("/add" @router.post("/import" @router.post("/{pid}/patch" @router.post("/{pid}/delete" @router.post("/clear-all" === app/api/routers/recipients.py === @router.get("/lists" @router.post("/lists" @router.post("/import-preview" @router.post("/import" @router.post("/manual" @router.get("/list" @router.delete("/{recipient_id}" @router.delete("/lists/{list_id}" @router.post("/lists/{list_id}/clear" === app/api/routers/settings_router.py === @router.get("/list" @router.post("/save" @router.post("/save-batch" @router.post("/reset" @router.post("/reset-all" === app/api/routers/subjects.py === @router.get("/list" @router.post("" @router.post("/bulk" @router.post("/import" @router.get("/export" @router.put("/{subject_id}" @router.delete("/{subject_id}" @router.post("/clear-all" === app/api/routers/suppression.py === @router.get("/list" @router.post("/add" @router.post("/import" @router.post("/bulk" @router.post("/check" @router.post("/{sid}/delete" @router.post("/clear-all" === app/api/routers/templates.py === @router.get("/list" @router.post("" @router.post("/upload" @router.post("/upload-multiple" @router.get("/{template_id}" @router.put("/{template_id}" @router.post("/{template_id}/duplicate" @router.delete("/{template_id}" @router.post("/clear-all" @router.post("/{template_id}/preview" @router.post("/{template_id}/test-pdf" === app/api/routers/test_send.py === @router.post("/send" @router.get("/accounts" @router.get("/templates" === app/api/routers/unsubscribe.py === @router.get("/unsubscribe/{token}" @router.post("/unsubscribe/{token}" @router.get("/unsubscribe-status/{token}"