{"openapi":"3.1.0","info":{"title":"AscendKit API","description":"AscendKit hosted SaaS platform API","version":"0.1.0"},"paths":{"/api/platform/accounts":{"get":{"summary":"List Accounts","description":"List all organizations the authenticated user belongs to.","operationId":"list_accounts_api_platform_accounts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitBearerAuth":[]}]}},"/api/platform/accounts/{account_id}/members":{"get":{"summary":"List Members","description":"List all members of an organization.","operationId":"list_members_api_platform_accounts__account_id__members_get","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/accounts/{account_id}/invite":{"post":{"summary":"Invite Member","description":"Invite a user to an organization. Creates user record if email doesn't exist.","operationId":"invite_member_api_platform_accounts__account_id__invite_post","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteMemberRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/accounts/invites/{membership_id}/accept":{"post":{"summary":"Accept Invite","description":"Accept a pending invitation.","operationId":"accept_invite_api_platform_accounts_invites__membership_id__accept_post","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"membership_id","in":"path","required":true,"schema":{"type":"string","title":"Membership Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/collect":{"post":{"summary":"Collect Pageviews","operationId":"collect_pageviews_api_v1_analytics_collect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageviewBatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Collect Pageviews Api V1 Analytics Collect Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/stitch":{"post":{"summary":"Stitch Visitor","description":"Link an anonymous visitor to an authenticated user by email.\n\nUsed by apps that handle auth independently (not via the AscendKit SDK)\nbut still want identity stitching for analytics.","operationId":"stitch_visitor_api_v1_analytics_stitch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StitchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Stitch Visitor Api V1 Analytics Stitch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/v1/analytics/overview":{"get":{"summary":"Get Overview","description":"Combined analytics overview: visitors, pageviews, conversion rate, time series.","operationId":"get_overview_api_v1_analytics_overview_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/visitors":{"get":{"summary":"Get Visitors","description":"Daily visitor counts, total unique visitors, total pageviews.","operationId":"get_visitors_api_v1_analytics_visitors_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/pages":{"get":{"summary":"Get Pages","description":"Top pages by pageview count, plus top entry and exit pages.","operationId":"get_pages_api_v1_analytics_pages_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/page-flow/{page_path}":{"get":{"summary":"Get Page Flow","description":"For a given page, top inbound pages (where visitors came from) and\ntop outbound pages (where they went next).","operationId":"get_page_flow_api_v1_analytics_page_flow__page_path__get","security":[{"AscendKitPublicKey":[]},{"AscendKitSecretKey":[]},{"AscendKitBearerAuth":[]}],"parameters":[{"name":"page_path","in":"path","required":true,"schema":{"type":"string","title":"Page Path"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/acquisition":{"get":{"summary":"Get Acquisition","description":"Top referrers and UTM campaign breakdown.","operationId":"get_acquisition_api_v1_analytics_acquisition_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/geo":{"get":{"summary":"Get Geo","description":"Visitors by country and city.","operationId":"get_geo_api_v1_analytics_geo_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/technology":{"get":{"summary":"Get Technology","description":"Browser, OS, and device type breakdown.","operationId":"get_technology_api_v1_analytics_technology_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/events":{"get":{"summary":"Get Events","description":"Custom event counts (app.* events), top events by count.","operationId":"get_events_api_v1_analytics_events_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/conversion-rate":{"get":{"summary":"Get Conversion Rate","description":"Total visitors, total signups, and conversion rate.","operationId":"get_conversion_rate_api_v1_analytics_conversion_rate_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/conversion-paths":{"get":{"summary":"Get Conversion Paths","description":"Most common page sequences before signup.\n\nFor users who converted (signed up) in the date range, finds their\npre-signup sessions and extracts page URL sequences (truncated to\nfirst 5 pages). Returns top-N most common patterns.","operationId":"get_conversion_paths_api_v1_analytics_conversion_paths_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/users/{user_id}/attribution":{"get":{"summary":"Get User Attribution","description":"Acquisition data from user doc plus pre-signup pageview timeline.","operationId":"get_user_attribution_api_v1_analytics_users__user_id__attribution_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/users/{user_id}/pre-signup":{"get":{"summary":"Get User Pre Signup","description":"Pre-signup pageview timeline for a specific user.","operationId":"get_user_pre_signup_api_v1_analytics_users__user_id__pre_signup_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/rollups/compute":{"post":{"summary":"Trigger Rollup Compute","description":"Manually trigger daily rollup computation for the environment.","operationId":"trigger_rollup_compute_api_v1_analytics_rollups_compute_post","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO date, defaults to yesterday","title":"Date"},"description":"ISO date, defaults to yesterday"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/signup":{"post":{"tags":["Auth - End User"],"summary":"Create end-user account","description":"Creates a new end-user account for the environment identified by the `publicKey` in the request body.","operationId":"signup_api_auth_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/verify-credentials":{"post":{"tags":["Auth - End User"],"summary":"Verify email and password","description":"Checks end-user credentials without creating a session. Used by SDK auth runtimes before session issuance.","operationId":"verify_credentials_endpoint_api_auth_verify_credentials_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyCredentialsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/send-verification":{"post":{"tags":["Auth - End User"],"summary":"Resend verification email","description":"Sends a new email verification message when email verification is enabled for the environment.","operationId":"send_verification_api_auth_send_verification_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendVerificationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/verify-email":{"post":{"tags":["Auth - End User"],"summary":"Verify email token","description":"Consumes a one-time verification token and marks the end-user email as verified.","operationId":"verify_email_api_auth_verify_email_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyEmailRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/forgot-password":{"post":{"tags":["Auth - End User"],"summary":"Request password reset","description":"Sends a password reset email when password reset is enabled for the environment.","operationId":"forgot_password_api_auth_forgot_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/reset-password":{"post":{"tags":["Auth - End User"],"summary":"Reset password","description":"Consumes a password reset token and replaces the end-user password.","operationId":"reset_password_api_auth_reset_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/access-token":{"post":{"tags":["Auth - End User"],"summary":"Issue RS256 access token","description":"Issues a short-lived RS256 JWT for the authenticated end user. Use the JWKS endpoint to verify the token server-side.","operationId":"access_token_api_auth_access_token_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/auth/sessions":{"get":{"tags":["Auth - End User"],"summary":"List active sessions","description":"Lists active sessions for the currently authenticated end user.","operationId":"list_sessions_api_auth_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]},"delete":{"tags":["Auth - End User"],"summary":"Revoke all sessions","description":"Revokes every active session belonging to the authenticated end user.","operationId":"revoke_all_sessions_api_auth_sessions_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/auth/sessions/{session_id}":{"delete":{"tags":["Auth - End User"],"summary":"Revoke one session","description":"Revokes a specific active session belonging to the authenticated end user.","operationId":"revoke_session_api_auth_sessions__session_id__delete","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/db/create":{"post":{"tags":["Auth - Adapter"],"summary":"Create","operationId":"create_api_auth_db_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitSecretKey":[]}]}},"/api/auth/db/find-one":{"post":{"tags":["Auth - Adapter"],"summary":"Find One","operationId":"find_one_api_auth_db_find_one_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindOneRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitSecretKey":[]}]}},"/api/auth/db/find-many":{"post":{"tags":["Auth - Adapter"],"summary":"Find Many","operationId":"find_many_api_auth_db_find_many_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindManyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/auth/db/update":{"post":{"tags":["Auth - Adapter"],"summary":"Update","operationId":"update_api_auth_db_update_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/auth/db/update-many":{"post":{"tags":["Auth - Adapter"],"summary":"Update Many","operationId":"update_many_api_auth_db_update_many_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/auth/db/delete":{"post":{"tags":["Auth - Adapter"],"summary":"Delete","operationId":"delete_api_auth_db_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/auth/db/delete-many":{"post":{"tags":["Auth - Adapter"],"summary":"Delete Many","operationId":"delete_many_api_auth_db_delete_many_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteManyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/auth/db/count":{"post":{"tags":["Auth - Adapter"],"summary":"Count","operationId":"count_api_auth_db_count_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitSecretKey":[]}]}},"/api/auth/email/send":{"post":{"summary":"Send","description":"Send an auth email (verification, password reset) via the content service + SES.","operationId":"send_api_auth_email_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthEmailRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[]}]}},"/api/auth/risk/preflight":{"post":{"tags":["Auth - Risk"],"summary":"Preflight","operationId":"preflight_api_auth_risk_preflight_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthRiskPreflightRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitSecretKey":[]}]}},"/api/auth/risk/report":{"post":{"tags":["Auth - Risk"],"summary":"Report","operationId":"report_api_auth_risk_report_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthRiskReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitSecretKey":[]}]}},"/api/auth/settings":{"get":{"tags":["Auth - Settings"],"summary":"Get auth settings","description":"Returns the effective auth configuration for an environment, including enabled providers, features, branding, and OAuth readiness metadata.","operationId":"get_settings_api_auth_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitPublicKey":[]}]},"put":{"tags":["Auth - Settings"],"summary":"Update auth settings","description":"Updates enabled providers, feature flags, and session duration for an environment.","operationId":"update_settings_api_auth_settings_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthSettingsUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/auth/settings/providers":{"put":{"tags":["Auth - Settings"],"summary":"Replace enabled providers","description":"Replaces the set of enabled auth providers for an environment and normalizes feature flags to match provider constraints.","operationId":"update_providers_api_auth_settings_providers_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvidersUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/auth/settings/oauth/{provider}":{"put":{"tags":["Auth - Settings"],"summary":"Upsert OAuth provider credentials","description":"Stores or updates OAuth credentials for a provider and returns the derived callback URL the developer should register with that provider.","operationId":"update_oauth_config_api_auth_settings_oauth__provider__put","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthConfigUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Auth - Settings"],"summary":"Delete OAuth provider credentials","description":"Removes custom OAuth credentials for a provider so the environment falls back to proxy mode where available.","operationId":"delete_oauth_config_api_auth_settings_oauth__provider__delete","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/settings/sdk-config":{"get":{"tags":["Auth - Settings"],"summary":"Get public SDK auth config","description":"Returns the auth configuration safe for public-key clients. OAuth secrets are never included.","operationId":"sdk_config_api_auth_settings_sdk_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitPublicKey":[]}]}},"/api/auth/settings/server-config":{"get":{"tags":["Auth - Settings"],"summary":"Get server auth config","description":"Returns the full server-side auth configuration, including OAuth client secrets when direct credentials are used.","operationId":"server_config_api_auth_settings_server_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitSecretKey":[]}]}},"/api/auth/settings/rotate-signing-key":{"post":{"tags":["Auth - Settings"],"summary":"Rotate environment signing key","description":"Rotates the RS256 signing key used for access tokens. Existing keys remain valid briefly to cover token and cache overlap.","operationId":"rotate_signing_key_endpoint_api_auth_settings_rotate_signing_key_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/platform/legal/{slug}/current":{"get":{"tags":["Platform - Legal"],"summary":"Get Current","description":"Return the currently published document for a slug.\n\nReturns 404 if no published row exists — callers should treat this\nas \"legal content not yet ready\" and block acceptance paths\naccordingly.\n\nCurrently supports ``terms-of-service``. Other slugs may be added\nover time (privacy-policy, dpa, etc.) without changing the route\nshape.","operationId":"get_current_api_platform_legal__slug__current_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/billing/plans":{"get":{"summary":"List Plans","operationId":"list_plans_api_platform_billing_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitBearerAuth":[]}]}},"/api/platform/billing/summary":{"get":{"summary":"Summary","operationId":"summary_api_platform_billing_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitBearerAuth":[]}]}},"/api/platform/billing/usage":{"get":{"summary":"Usage","operationId":"usage_api_platform_billing_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitBearerAuth":[]}]}},"/api/platform/billing/checkout":{"post":{"summary":"Checkout","operationId":"checkout_api_platform_billing_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitBearerAuth":[]}]}},"/api/platform/billing/portal":{"post":{"summary":"Customer Portal","operationId":"customer_portal_api_platform_billing_portal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitBearerAuth":[]}]}},"/api/platform/billing/plan":{"post":{"summary":"Change Plan","operationId":"change_plan_api_platform_billing_plan_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingPlanChangeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitBearerAuth":[]}]}},"/api/platform/billing/scale-spend-cap":{"post":{"summary":"Set Scale Spend Cap","operationId":"set_scale_spend_cap_api_platform_billing_scale_spend_cap_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpendCapRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitBearerAuth":[]}]}},"/api/platform/billing/mark-notification-read/{notification_id}":{"post":{"summary":"Mark Notification Read","operationId":"mark_notification_read_api_platform_billing_mark_notification_read__notification_id__post","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","title":"Notification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/billing/payment-failed/test":{"post":{"summary":"Simulate Payment Failure","operationId":"simulate_payment_failure_api_platform_billing_payment_failed_test_post","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"exhausted","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Exhausted"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/webhooks/stripe":{"post":{"summary":"Stripe Webhook","operationId":"stripe_webhook_api_webhooks_stripe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}}}},"/api/pricing/catalog":{"get":{"summary":"Pricing Catalog","operationId":"pricing_catalog_api_pricing_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}}}},"/api/v1/campaigns":{"post":{"summary":"Create","operationId":"create_api_v1_campaigns_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List All","operationId":"list_all_api_v1_campaigns_get","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}":{"get":{"summary":"Get One","operationId":"get_one_api_v1_campaigns__campaign_id__get","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Update","operationId":"update_api_v1_campaigns__campaign_id__put","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete","operationId":"delete_api_v1_campaigns__campaign_id__delete","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/preview":{"post":{"summary":"Preview Filter Audience","description":"Preview audience count for an arbitrary filter (no campaign needed).","operationId":"preview_filter_audience_api_v1_campaigns_preview_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignPreviewRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/v1/campaigns/{campaign_id}/analytics":{"get":{"summary":"Analytics","operationId":"analytics_api_v1_campaigns__campaign_id__analytics_get","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/preview":{"post":{"summary":"Preview Campaign Audience","description":"Preview audience count for an existing campaign's filter.","operationId":"preview_campaign_audience_api_v1_campaigns__campaign_id__preview_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/activity":{"get":{"summary":"Activity","operationId":"activity_api_v1_campaigns__campaign_id__activity_get","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":250,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/oauth/authorize/{provider}":{"get":{"summary":"Authorize","operationId":"authorize_api_oauth_authorize__provider__get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}},{"name":"pk","in":"query","required":true,"schema":{"type":"string","description":"Environment public key","title":"Pk"},"description":"Environment public key"},{"name":"callback_url","in":"query","required":true,"schema":{"type":"string","description":"Developer app callback endpoint","title":"Callback Url"},"description":"Developer app callback endpoint"},{"name":"app_callback_url","in":"query","required":false,"schema":{"type":"string","description":"Final app redirect path","default":"/","title":"App Callback Url"},"description":"Final app redirect path"},{"name":"visitor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Anonymous visitor ID for analytics stitching","title":"Visitor Id"},"description":"Anonymous visitor ID for analytics stitching"},{"name":"flow","in":"query","required":false,"schema":{"type":"string","description":"Either 'signup' or 'login' — signup may create a new user, login rejects unknown users.","default":"signup","title":"Flow"},"description":"Either 'signup' or 'login' — signup may create a new user, login rejects unknown users."},{"name":"tos_accepted","in":"query","required":false,"schema":{"type":"boolean","description":"Whether the SDK-rendered ToS checkbox was checked (signup only).","default":false,"title":"Tos Accepted"},"description":"Whether the SDK-rendered ToS checkbox was checked (signup only)."},{"name":"tos_fingerprint","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fingerprint of the tosUrl shown to the user (signup only).","title":"Tos Fingerprint"},"description":"Fingerprint of the tosUrl shown to the user (signup only)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/oauth/callback/{provider}":{"get":{"summary":"Complete OAuth proxy callback (GET)","description":"Handles GET-based OAuth provider callbacks for AscendKit proxy flows.","operationId":"callback_get_api_oauth_callback__provider__get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}},{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Complete OAuth proxy callback (POST)","description":"Handles POST-based OAuth provider callbacks for AscendKit proxy flows.","operationId":"callback_post_api_oauth_callback__provider__post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}},{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/oauth/ticket/exchange":{"post":{"summary":"Exchange Ticket","operationId":"exchange_ticket_api_oauth_ticket_exchange_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketExchangeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[]}]}},"/api/oauth/ticket/exchange-portal":{"post":{"summary":"Exchange Ticket Portal","description":"Exchange OAuth proxy ticket for a portal session token.\n\nConverts env-scoped auth session (authSessions/projectUsers) to\nportal-scoped session (portalSessions/portalUsers) so portal Better Auth\ncan authenticate against platform adapter collections.","operationId":"exchange_ticket_portal_api_oauth_ticket_exchange_portal_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketExchangeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[]}]}},"/api/platform/cli/auth-request":{"post":{"summary":"Auth Request","description":"Create a pending CLI auth request. Called by the CLI.","operationId":"auth_request_api_platform_cli_auth_request_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthRequestBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Auth Request Api Platform Cli Auth Request Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/cli/auth-status":{"get":{"summary":"Auth Status","description":"Poll for CLI auth approval. Called by the CLI.","operationId":"auth_status_api_platform_cli_auth_status_get","parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Auth Status Api Platform Cli Auth Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/cli/auth-approve":{"post":{"summary":"Auth Approve","description":"Approve a CLI auth request. Called from the portal.","operationId":"auth_approve_api_platform_cli_auth_approve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthApproveBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Auth Approve Api Platform Cli Auth Approve Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitBearerAuth":[]}]}},"/api/platform/cli/sessions":{"get":{"summary":"List Sessions","description":"List active CLI sessions for the authenticated user.","operationId":"list_sessions_api_platform_cli_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Sessions Api Platform Cli Sessions Get"}}}}},"security":[{"AscendKitBearerAuth":[]}]}},"/api/platform/cli/sessions/{session_id}":{"delete":{"summary":"Revoke Session","description":"Revoke a CLI session owned by the authenticated user.","operationId":"revoke_session_api_platform_cli_sessions__session_id__delete","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Revoke Session Api Platform Cli Sessions  Session Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/content/templates":{"post":{"summary":"Create","operationId":"create_api_content_templates_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentTemplateCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List All","operationId":"list_all_api_content_templates_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"isSystem","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Issystem"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/content/templates/{template_id}":{"get":{"summary":"Get One","operationId":"get_one_api_content_templates__template_id__get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Update","operationId":"update_api_content_templates__template_id__put","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentTemplateUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete","operationId":"delete_api_content_templates__template_id__delete","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/content/templates/{template_id}/versions":{"get":{"summary":"List Versions","operationId":"list_versions_api_content_templates__template_id__versions_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/content/templates/{template_id}/versions/{version_number}":{"get":{"summary":"Get Specific Version","operationId":"get_specific_version_api_content_templates__template_id__versions__version_number__get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"version_number","in":"path","required":true,"schema":{"type":"integer","title":"Version Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/email/settings":{"get":{"summary":"Get Settings","operationId":"get_settings_api_email_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]},"put":{"summary":"Update Settings","operationId":"update_settings_api_email_settings_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailSettingsUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/email/settings/setup-domain":{"post":{"summary":"Setup Domain","description":"Create SES domain identity and return DNS records for verification.","operationId":"setup_domain_api_email_settings_setup_domain_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupDomainRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/email/settings/domain-status":{"get":{"summary":"Get Domain Status","description":"Poll SES for current domain verification status.","operationId":"get_domain_status_api_email_settings_domain_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/email/settings/identities":{"get":{"summary":"List Identities","operationId":"list_identities_api_email_settings_identities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]},"post":{"summary":"Create Identity","operationId":"create_identity_api_email_settings_identities_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailIdentityCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/email/settings/identities/{identity_email}/resend":{"post":{"summary":"Resend Identity Verification","operationId":"resend_identity_verification_api_email_settings_identities__identity_email__resend_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"identity_email","in":"path","required":true,"schema":{"type":"string","title":"Identity Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/email/settings/identities/{identity_email}/update":{"post":{"summary":"Update Identity","operationId":"update_identity_api_email_settings_identities__identity_email__update_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"identity_email","in":"path","required":true,"schema":{"type":"string","title":"Identity Email"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailIdentityUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/email/settings/identities/{identity_email}/default":{"post":{"summary":"Set Default Identity","operationId":"set_default_identity_api_email_settings_identities__identity_email__default_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"identity_email","in":"path","required":true,"schema":{"type":"string","title":"Identity Email"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailIdentityUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/email/settings/identities/{identity_email}":{"delete":{"summary":"Remove Identity","operationId":"remove_identity_api_email_settings_identities__identity_email__delete","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"identity_email","in":"path","required":true,"schema":{"type":"string","title":"Identity Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/email/settings/check-dns-records":{"get":{"summary":"Check Dns Records Route","description":"Check each stored DKIM CNAME record against public DNS via DoH.","operationId":"check_dns_records_route_api_email_settings_check_dns_records_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/email/settings/dns-provider":{"get":{"summary":"Get Dns Provider","operationId":"get_dns_provider_api_email_settings_dns_provider_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/email/settings/domain":{"delete":{"summary":"Remove Domain","description":"Remove domain and reset to default.","operationId":"remove_domain_api_email_settings_domain_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/email/settings/cloudflare-dns":{"post":{"summary":"Add Cloudflare Dns","description":"Add DKIM DNS records to Cloudflare using the provided API token.\n\nCalled from the portal's browser-based DNS setup page. The developer\nenters their Cloudflare API token in the browser, which is sent here\nto create the required records.","operationId":"add_cloudflare_dns_api_email_settings_cloudflare_dns_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudflareDnsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/email/settings/send-test":{"post":{"summary":"Send Test Email","description":"Send a test email from the configured sender to verify delivery.","operationId":"send_test_email_api_email_settings_send_test_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendTestEmailRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/health":{"get":{"summary":"Health Check","operationId":"health_check_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}}}},"/api/platform/auth/token":{"post":{"summary":"Login","description":"Authenticate with email+password and receive a platform JWT.\n\nUsed by the CLI / MCP server for headless login.","operationId":"login_api_platform_auth_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/waitlist-enabled":{"get":{"summary":"Waitlist Enabled","description":"Check if the platform waitlist is enabled (no auth required).","operationId":"waitlist_enabled_api_platform_waitlist_enabled_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}}}},"/api/platform/projects":{"get":{"summary":"List Projects","operationId":"list_projects_api_platform_projects_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitBearerAuth":[]}]},"post":{"summary":"Create Project Route","description":"Create a new project under the user's active organization.","operationId":"create_project_route_api_platform_projects_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitBearerAuth":[]}]}},"/api/platform/projects/{project_id}":{"patch":{"summary":"Update Project","description":"Update editable project metadata (name, description).","operationId":"update_project_api_platform_projects__project_id__patch","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/onboard":{"post":{"summary":"Onboard","description":"Bootstrap org + project + env for a newly signed-up platform user.\n\nCalled when a user first hits the dashboard and has no org.\nIdempotent: returns existing org if user already has one.\nGated by waitlistStatus when platform waitlist is enabled.","operationId":"onboard_api_platform_onboard_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitBearerAuth":[]}]}},"/api/platform/resolve-key":{"get":{"summary":"Resolve Key","description":"Resolve a public key to project + environment metadata.\n\nVerifies the caller has access to the owning organization.\nUsed by CLI `set-env` command.","operationId":"resolve_key_api_platform_resolve_key_get","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"pk","in":"query","required":true,"schema":{"type":"string","description":"Public key (pk_live_... or pk_dev_...)","title":"Pk"},"description":"Public key (pk_live_... or pk_dev_...)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/projects/{project_id}/environments":{"get":{"summary":"List Environments","operationId":"list_environments_api_platform_projects__project_id__environments_get","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Create Environment","operationId":"create_environment_api_platform_projects__project_id__environments_post","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEnvironmentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/projects/{project_id}/environments/{env_id}/users":{"get":{"summary":"List Environment Users","description":"List end-users (projectUsers) for a specific environment.","operationId":"list_environment_users_api_platform_projects__project_id__environments__env_id__users_get","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"env_id","in":"path","required":true,"schema":{"type":"string","title":"Env Id"}},{"name":"active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/projects/{project_id}/environments/{env_id}":{"patch":{"summary":"Update Environment","description":"Update editable environment metadata (name, description).","operationId":"update_environment_api_platform_projects__project_id__environments__env_id__patch","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"env_id","in":"path","required":true,"schema":{"type":"string","title":"Env Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEnvironmentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/environments/{env_id}/promote":{"post":{"summary":"Promote Environment","description":"Promote an environment's config to a new target tier.\n\nExecution requires explicit dryRun: false; otherwise preview only.","operationId":"promote_environment_api_platform_environments__env_id__promote_post","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"env_id","in":"path","required":true,"schema":{"type":"string","title":"Env Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoteEnvironmentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/users":{"get":{"summary":"List Platform Users","description":"List platform users. Filter by waitlistStatus with ?status=pending|approved|rejected.","operationId":"list_platform_users_api_platform_users_get","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/users/{user_id}/approve":{"post":{"summary":"Approve Platform User","description":"Approve a waitlisted platform user and send waitlist-approved email.","operationId":"approve_platform_user_api_platform_users__user_id__approve_post","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/users/{user_id}/reject":{"post":{"summary":"Reject Platform User","description":"Reject a waitlisted platform user.","operationId":"reject_platform_user_api_platform_users__user_id__reject_post","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platform/auth/db/create":{"post":{"tags":["Auth - Adapter"],"summary":"Create","operationId":"create_api_platform_auth_db_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPlatformSecret":[]}]}},"/api/platform/auth/db/find-one":{"post":{"tags":["Auth - Adapter"],"summary":"Find One","operationId":"find_one_api_platform_auth_db_find_one_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindOneRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPlatformSecret":[]}]}},"/api/platform/auth/db/find-many":{"post":{"tags":["Auth - Adapter"],"summary":"Find Many","operationId":"find_many_api_platform_auth_db_find_many_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindManyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPlatformSecret":[]}]}},"/api/platform/auth/db/update":{"post":{"tags":["Auth - Adapter"],"summary":"Update","operationId":"update_api_platform_auth_db_update_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPlatformSecret":[]}]}},"/api/platform/auth/db/update-many":{"post":{"tags":["Auth - Adapter"],"summary":"Update Many","operationId":"update_many_api_platform_auth_db_update_many_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPlatformSecret":[]}]}},"/api/platform/auth/db/delete":{"post":{"tags":["Auth - Adapter"],"summary":"Delete","operationId":"delete_api_platform_auth_db_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPlatformSecret":[]}]}},"/api/platform/auth/db/delete-many":{"post":{"tags":["Auth - Adapter"],"summary":"Delete Many","operationId":"delete_many_api_platform_auth_db_delete_many_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteManyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPlatformSecret":[]}]}},"/api/platform/auth/db/count":{"post":{"tags":["Auth - Adapter"],"summary":"Count","operationId":"count_api_platform_auth_db_count_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPlatformSecret":[]}]}},"/api/platform/auth/db/email/send":{"post":{"tags":["Auth - Adapter"],"summary":"Send Platform Email","description":"Send a platform auth email using customer-zero environment templates.","operationId":"send_platform_email_api_platform_auth_db_email_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformEmailRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPlatformSecret":[]}]}},"/api/platform/auth/risk/preflight":{"post":{"tags":["Auth - Risk"],"summary":"Preflight","operationId":"preflight_api_platform_auth_risk_preflight_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthRiskPreflightRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPlatformSecret":[]}]}},"/api/platform/auth/risk/report":{"post":{"tags":["Auth - Risk"],"summary":"Report","operationId":"report_api_platform_auth_risk_report_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthRiskReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPlatformSecret":[]}]}},"/api/surveys":{"get":{"summary":"List All","operationId":"list_all_api_surveys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]},"post":{"summary":"Create","operationId":"create_api_surveys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/surveys/{survey_id}":{"get":{"summary":"Get One","operationId":"get_one_api_surveys__survey_id__get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"survey_id","in":"path","required":true,"schema":{"type":"string","title":"Survey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Update","operationId":"update_api_surveys__survey_id__put","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"survey_id","in":"path","required":true,"schema":{"type":"string","title":"Survey Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete","operationId":"delete_api_surveys__survey_id__delete","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"survey_id","in":"path","required":true,"schema":{"type":"string","title":"Survey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/surveys/{survey_id}/distribute":{"post":{"summary":"Distribute","operationId":"distribute_api_surveys__survey_id__distribute_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"survey_id","in":"path","required":true,"schema":{"type":"string","title":"Survey Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyDistribute"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/surveys/{survey_id}/invitations":{"get":{"summary":"Get Invitations","operationId":"get_invitations_api_surveys__survey_id__invitations_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"survey_id","in":"path","required":true,"schema":{"type":"string","title":"Survey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/surveys/{survey_id}/analytics":{"get":{"summary":"Analytics","operationId":"analytics_api_surveys__survey_id__analytics_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"survey_id","in":"path","required":true,"schema":{"type":"string","title":"Survey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/surveys/{survey_id}/responses":{"get":{"summary":"Get Responses","operationId":"get_responses_api_surveys__survey_id__responses_get","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"survey_id","in":"path","required":true,"schema":{"type":"string","title":"Survey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/surveys/{survey_id}/questions":{"get":{"summary":"List Survey Questions","operationId":"list_survey_questions_api_surveys__survey_id__questions_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"survey_id","in":"path","required":true,"schema":{"type":"string","title":"Survey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Add Survey Question","operationId":"add_survey_question_api_surveys__survey_id__questions_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"survey_id","in":"path","required":true,"schema":{"type":"string","title":"Survey Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionAdd"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/surveys/{survey_id}/questions/reorder":{"put":{"summary":"Reorder Survey Questions","operationId":"reorder_survey_questions_api_surveys__survey_id__questions_reorder_put","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"survey_id","in":"path","required":true,"schema":{"type":"string","title":"Survey Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionReorder"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/surveys/{survey_id}/questions/{question_name}":{"put":{"summary":"Edit Survey Question","operationId":"edit_survey_question_api_surveys__survey_id__questions__question_name__put","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"survey_id","in":"path","required":true,"schema":{"type":"string","title":"Survey Id"}},{"name":"question_name","in":"path","required":true,"schema":{"type":"string","title":"Question Name"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Remove Survey Question","operationId":"remove_survey_question_api_surveys__survey_id__questions__question_name__delete","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"survey_id","in":"path","required":true,"schema":{"type":"string","title":"Survey Id"}},{"name":"question_name","in":"path","required":true,"schema":{"type":"string","title":"Question Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/surveys/respond/{token}":{"get":{"summary":"Respond Get","operationId":"respond_get_api_surveys_respond__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Respond Post","operationId":"respond_post_api_surveys_respond__token__post","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveySubmission"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/users/me":{"get":{"tags":["Auth - Users"],"summary":"Get Me","operationId":"get_me_api_users_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]},"delete":{"tags":["Auth - Users"],"summary":"Delete Me","operationId":"delete_me_api_users_me_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]},"patch":{"tags":["Auth - Users"],"summary":"Patch Me","operationId":"patch_me_api_users_me_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/users":{"get":{"tags":["Auth - Users"],"summary":"List Users","description":"List end-users for an environment.","operationId":"list_users_api_users_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"userId","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Userid"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},{"name":"unsubscribed","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Unsubscribed"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/users/{user_id}":{"get":{"tags":["Auth - Users"],"summary":"Get User","operationId":"get_user_api_users__user_id__get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Auth - Users"],"summary":"Patch User","description":"Admin update of a project user. Accepts secret key or platform JWT.","operationId":"patch_user_api_users__user_id__patch","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUpdateUserRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Auth - Users"],"summary":"Admin Deactivate User","operationId":"admin_deactivate_user_api_users__user_id__delete","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/users/{user_id}/metadata":{"patch":{"tags":["Auth - Users"],"summary":"Patch User Metadata","description":"Merge metadata into a project user's existing metadata.","operationId":"patch_user_metadata_api_users__user_id__metadata_patch","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/users/{user_id}/approve":{"post":{"tags":["Auth - Users"],"summary":"Approve User","description":"Approve a waitlisted project user and send waitlist-approved email.","operationId":"approve_user_api_users__user_id__approve_post","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/users/{user_id}/reject":{"post":{"tags":["Auth - Users"],"summary":"Reject User","description":"Reject a waitlisted project user.","operationId":"reject_user_api_users__user_id__reject_post","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/users/bulk-deactivate":{"post":{"tags":["Auth - Users"],"summary":"Bulk Deactivate Users","operationId":"bulk_deactivate_users_api_users_bulk_deactivate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeactivateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/users/{user_id}/reactivate":{"post":{"tags":["Auth - Users"],"summary":"Admin Reactivate User","operationId":"admin_reactivate_user_api_users__user_id__reactivate_post","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/events":{"post":{"summary":"Ingest Events","operationId":"ingest_events_api_v1_events_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventBatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Ingest Events Api V1 Events Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/internal/support/search":{"get":{"summary":"Search","operationId":"search_api_internal_support_search_get","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/internal/support/accounts/{account_id}":{"get":{"summary":"Account Detail","operationId":"account_detail_api_internal_support_accounts__account_id__get","security":[{"AscendKitBearerAuth":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/journeys":{"post":{"summary":"Create","operationId":"create_api_v1_journeys_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JourneyCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List All","operationId":"list_all_api_v1_journeys_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/journeys/{journey_id}":{"get":{"summary":"Get One","operationId":"get_one_api_v1_journeys__journey_id__get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update","operationId":"update_api_v1_journeys__journey_id__patch","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JourneyUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete","operationId":"delete_api_v1_journeys__journey_id__delete","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/journeys/{journey_id}/analytics":{"get":{"summary":"Analytics","operationId":"analytics_api_v1_journeys__journey_id__analytics_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/journeys/{journey_id}/visualization":{"get":{"summary":"Visualization","operationId":"visualization_api_v1_journeys__journey_id__visualization_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/journeys/{journey_id}/activate":{"post":{"summary":"Activate","operationId":"activate_api_v1_journeys__journey_id__activate_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/journeys/{journey_id}/pause":{"post":{"summary":"Pause","operationId":"pause_api_v1_journeys__journey_id__pause_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/journeys/{journey_id}/resume":{"post":{"summary":"Resume","operationId":"resume_api_v1_journeys__journey_id__resume_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/journeys/{journey_id}/archive":{"post":{"summary":"Archive","operationId":"archive_api_v1_journeys__journey_id__archive_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/journeys/{journey_id}/nodes":{"get":{"summary":"Get Nodes","operationId":"get_nodes_api_v1_journeys__journey_id__nodes_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Create Node","operationId":"create_node_api_v1_journeys__journey_id__nodes_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeAdd"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/journeys/{journey_id}/nodes/{node_name}":{"patch":{"summary":"Update Node","operationId":"update_node_api_v1_journeys__journey_id__nodes__node_name__patch","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}},{"name":"node_name","in":"path","required":true,"schema":{"type":"string","title":"Node Name"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeEdit"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Node","operationId":"delete_node_api_v1_journeys__journey_id__nodes__node_name__delete","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}},{"name":"node_name","in":"path","required":true,"schema":{"type":"string","title":"Node Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/journeys/{journey_id}/transitions":{"get":{"summary":"Get Transitions","operationId":"get_transitions_api_v1_journeys__journey_id__transitions_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}},{"name":"from_node","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Node"}},{"name":"to_node","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Node"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Create Transition","operationId":"create_transition_api_v1_journeys__journey_id__transitions_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransitionAdd"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/journeys/{journey_id}/transitions/{transition_name}":{"patch":{"summary":"Update Transition","operationId":"update_transition_api_v1_journeys__journey_id__transitions__transition_name__patch","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}},{"name":"transition_name","in":"path","required":true,"schema":{"type":"string","title":"Transition Name"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransitionEdit"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Transition","operationId":"delete_transition_api_v1_journeys__journey_id__transitions__transition_name__delete","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"journey_id","in":"path","required":true,"schema":{"type":"string","title":"Journey Id"}},{"name":"transition_name","in":"path","required":true,"schema":{"type":"string","title":"Transition Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks":{"get":{"summary":"List All","operationId":"list_all_api_v1_webhooks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]},"post":{"summary":"Create","operationId":"create_api_v1_webhooks_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/v1/webhooks/{config_id}":{"get":{"summary":"Get One","operationId":"get_one_api_v1_webhooks__config_id__get","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","title":"Config Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update","operationId":"update_api_v1_webhooks__config_id__patch","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","title":"Config Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete","operationId":"delete_api_v1_webhooks__config_id__delete","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","title":"Config Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/{config_id}/test":{"post":{"summary":"Test Delivery","operationId":"test_delivery_api_v1_webhooks__config_id__test_post","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","title":"Config Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/WebhookTest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email/sns-webhook":{"post":{"summary":"Sns Webhook","description":"Receive SES notifications via SNS.\n\nHandles SubscriptionConfirmation (auto-confirm) and Notification messages.\nReturns 200 immediately — processing is best-effort.","operationId":"sns_webhook_api_v1_email_sns_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}}}},"/api/v1/email/track/open":{"get":{"summary":"Track Open","description":"Record an email open event and return a 1x1 transparent GIF.","operationId":"track_open_api_v1_email_track_open_get","parameters":[{"name":"t","in":"query","required":true,"schema":{"type":"string","title":"T"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email/track/click":{"get":{"summary":"Track Click","description":"Record an email click event and redirect to the original URL.","operationId":"track_click_api_v1_email_track_click_get","parameters":[{"name":"t","in":"query","required":true,"schema":{"type":"string","title":"T"}},{"name":"url","in":"query","required":true,"schema":{"type":"string","title":"Url"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email/unsubscribe":{"get":{"summary":"Unsubscribe Get","description":"Browser-facing unsubscribe page. Validates token, sets preference, shows confirmation.","operationId":"unsubscribe_get_api_v1_email_unsubscribe_get","parameters":[{"name":"t","in":"query","required":true,"schema":{"type":"string","title":"T"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Unsubscribe Post","description":"RFC 8058 one-click unsubscribe endpoint for mail clients.","operationId":"unsubscribe_post_api_v1_email_unsubscribe_post","parameters":[{"name":"t","in":"query","required":true,"schema":{"type":"string","title":"T"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email/exclusions":{"get":{"summary":"List Exclusions","description":"List campaign exclusions for the environment across suppressions and unsubscribes.","operationId":"list_exclusions_api_v1_email_exclusions_get","security":[{"AscendKitSecretKey":[]},{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"reason","in":"query","required":false,"schema":{"anyOf":[{"enum":["bounce","complaint","unsubscribe"],"type":"string"},{"type":"null"}],"title":"Reason"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email/suppressions":{"get":{"summary":"List Suppressions","description":"List suppressed email addresses for the environment.","operationId":"list_suppressions_api_v1_email_suppressions_get","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email/suppressions/{email}":{"delete":{"summary":"Remove Suppression","description":"Remove a suppression (manual override).","operationId":"remove_suppression_api_v1_email_suppressions__email__delete","security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}],"parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/.well-known/jwks.json":{"get":{"tags":["Token Verification"],"summary":"Get environment JWKS","description":"Returns the JSON Web Key Set used to verify RS256 access tokens issued for a specific environment.","operationId":"jwks_endpoint_api__well_known_jwks_json_get","parameters":[{"name":"pk","in":"query","required":true,"schema":{"type":"string","description":"Environment public key (pk_dev_... or pk_live_...)","title":"Pk"},"description":"Environment public key (pk_dev_... or pk_live_...)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/import/users":{"post":{"tags":["import"],"summary":"Import Users Endpoint","operationId":"import_users_endpoint_api_import_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportUsersRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AscendKitPublicKey":[],"AscendKitBearerAuth":[]}]}},"/api/telemetry/cli-command":{"post":{"summary":"Ingest Cli Command","operationId":"ingest_cli_command_api_telemetry_cli_command_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CliCommandTelemetry"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}}},"components":{"schemas":{"ActionType":{"type":"string","enum":["send_email","send_survey","tag_user","advance_stage","none"],"title":"ActionType"},"AdminUpdateUserRequest":{"properties":{"waitlistStatus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Waitliststatus"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"}},"type":"object","title":"AdminUpdateUserRequest"},"ApiResponse":{"properties":{"data":{"title":"Data"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"}},"type":"object","title":"ApiResponse"},"AuthApproveBody":{"properties":{"deviceCode":{"type":"string","title":"Devicecode"}},"type":"object","required":["deviceCode"],"title":"AuthApproveBody"},"AuthEmailRequest":{"properties":{"type":{"type":"string","title":"Type"},"to":{"type":"string","title":"To"},"variables":{"additionalProperties":{"type":"string"},"type":"object","title":"Variables"}},"type":"object","required":["type","to","variables"],"title":"AuthEmailRequest"},"AuthFeatures":{"properties":{"emailVerification":{"type":"boolean","title":"Emailverification","description":"Require users to verify their email address before completing login.","default":false},"waitlist":{"type":"boolean","title":"Waitlist","description":"Put new signups into a pending state until approved.","default":false},"passwordReset":{"type":"boolean","title":"Passwordreset","description":"Allow users to request password reset emails.","default":false},"requireUsername":{"type":"boolean","title":"Requireusername","description":"Require usernames in addition to email addresses where supported.","default":false},"twoFactor":{"type":"boolean","title":"Twofactor","description":"Allow credential-based users to enroll in TOTP multi-factor authentication.","default":true},"botProtection":{"type":"boolean","title":"Botprotection","description":"Apply server-side auth abuse throttling and temporary lockouts on risky flows.","default":true}},"type":"object","title":"AuthFeatures"},"AuthRequestBody":{"properties":{"deviceCode":{"type":"string","title":"Devicecode"},"machineHostname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Machinehostname"},"machinePlatform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Machineplatform"},"cliVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cliversion"}},"type":"object","required":["deviceCode"],"title":"AuthRequestBody"},"AuthRiskPreflightRequest":{"properties":{"action":{"type":"string","enum":["sign_in_email","sign_up_email","request_password_reset","sign_in_magic_link","verify_two_factor"],"title":"Action"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Optional end-user email when the auth flow is email-address based."},"ipAddress":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ipaddress","description":"Original client IP forwarded by the trusted auth server."},"userAgent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Useragent","description":"Original client user agent forwarded by the trusted auth server."}},"type":"object","required":["action"],"title":"AuthRiskPreflightRequest"},"AuthRiskReportRequest":{"properties":{"action":{"type":"string","enum":["sign_in_email","sign_up_email","request_password_reset","sign_in_magic_link","verify_two_factor"],"title":"Action"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Optional end-user email when the auth flow is email-address based."},"ipAddress":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ipaddress","description":"Original client IP forwarded by the trusted auth server."},"userAgent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Useragent","description":"Original client user agent forwarded by the trusted auth server."},"success":{"type":"boolean","title":"Success","description":"Whether the auth step completed successfully."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Optional normalized failure reason for auditability."}},"type":"object","required":["action","success"],"title":"AuthRiskReportRequest"},"AuthSettingsUpdate":{"properties":{"providers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Providers","description":"Enabled sign-in providers for the environment.","examples":[["credentials","google"]]},"features":{"anyOf":[{"$ref":"#/components/schemas/AuthFeatures"},{"type":"null"}]},"sessionDuration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sessionduration","description":"Session lifetime expressed as a duration string.","examples":["7d"]},"allowedDomains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Alloweddomains","description":"Email domains allowed to sign up. Empty list clears restrictions.","examples":[["company.com","partner.org"]]},"blockPersonalDomains":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Blockpersonaldomains","description":"Block signups from common personal email providers."},"tosUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tosurl","description":"Absolute HTTPS URL to the customer's Terms of Service. Pass empty string to clear. Validated as absolute https URL with length cap 2048.","examples":["https://your-app.com/legal/terms"]}},"type":"object","title":"AuthSettingsUpdate"},"BillingPlanChangeRequest":{"properties":{"targetPlan":{"type":"string","title":"Targetplan"},"immediate":{"type":"boolean","title":"Immediate","default":false}},"type":"object","required":["targetPlan"],"title":"BillingPlanChangeRequest"},"BulkDeactivateRequest":{"properties":{"userIds":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Userids"}},"type":"object","required":["userIds"],"title":"BulkDeactivateRequest"},"CampaignCreate":{"properties":{"name":{"type":"string","title":"Name"},"templateId":{"type":"string","title":"Templateid"},"audienceFilter":{"additionalProperties":true,"type":"object","title":"Audiencefilter"},"audiencePreset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audiencepreset"},"scheduledAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduledat"},"fromIdentityEmail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fromidentityemail"}},"type":"object","required":["name","templateId"],"title":"CampaignCreate"},"CampaignPreviewRequest":{"properties":{"audienceFilter":{"additionalProperties":true,"type":"object","title":"Audiencefilter"},"audiencePreset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audiencepreset"}},"type":"object","title":"CampaignPreviewRequest"},"CampaignUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"templateId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Templateid"},"audienceFilter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Audiencefilter"},"audiencePreset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audiencepreset"},"scheduledAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduledat"},"fromIdentityEmail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fromidentityemail"}},"type":"object","title":"CampaignUpdate"},"CheckoutRequest":{"properties":{"targetPlan":{"type":"string","title":"Targetplan"}},"type":"object","required":["targetPlan"],"title":"CheckoutRequest"},"CliCommandTelemetry":{"properties":{"invocationId":{"type":"string","maxLength":64,"minLength":1,"title":"Invocationid"},"machineId":{"type":"string","maxLength":128,"minLength":1,"title":"Machineid"},"clientType":{"type":"string","maxLength":32,"minLength":1,"title":"Clienttype"},"clientVersion":{"type":"string","maxLength":32,"minLength":1,"title":"Clientversion"},"command":{"type":"string","maxLength":128,"minLength":1,"title":"Command"},"domain":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Domain"},"action":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Action"},"dtEntered":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Dtentered"},"dtCompleted":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Dtcompleted"},"durationMs":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Durationms"},"success":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Success"},"errorMessage":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Errormessage"},"hostname":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Hostname"},"os":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Os"},"nodeVersion":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Nodeversion"}},"type":"object","required":["invocationId","machineId","clientType","clientVersion","command"],"title":"CliCommandTelemetry"},"CloudflareDnsRequest":{"properties":{"apiToken":{"type":"string","title":"Apitoken"},"domain":{"type":"string","title":"Domain"}},"type":"object","required":["apiToken","domain"],"title":"CloudflareDnsRequest"},"ContentTemplateCreate":{"properties":{"name":{"type":"string","title":"Name"},"subject":{"type":"string","title":"Subject"},"bodyHtml":{"type":"string","title":"Bodyhtml"},"bodyText":{"type":"string","title":"Bodytext"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"category":{"type":"string","enum":["transactional","marketing"],"title":"Category","default":"marketing"}},"type":"object","required":["name","subject","bodyHtml","bodyText"],"title":"ContentTemplateCreate"},"ContentTemplateUpdate":{"properties":{"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"bodyHtml":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bodyhtml"},"bodyText":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bodytext"},"changeNote":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Changenote"},"category":{"anyOf":[{"type":"string","enum":["transactional","marketing"]},{"type":"null"}],"title":"Category"}},"type":"object","title":"ContentTemplateUpdate"},"CountRequest":{"properties":{"model":{"type":"string","title":"Model"},"where":{"anyOf":[{"items":{"$ref":"#/components/schemas/WhereCondition"},"type":"array"},{"type":"null"}],"title":"Where"}},"type":"object","required":["model"],"title":"CountRequest"},"CreateEnvironmentRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"type":"string","title":"Description","default":""},"tier":{"type":"string","title":"Tier"}},"type":"object","required":["tier"],"title":"CreateEnvironmentRequest"},"CreateProjectRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"enabledServices":{"items":{"type":"string"},"type":"array","title":"Enabledservices","default":[]}},"type":"object","required":["name"],"title":"CreateProjectRequest"},"CreateRequest":{"properties":{"model":{"type":"string","title":"Model"},"data":{"additionalProperties":true,"type":"object","title":"Data"},"select":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Select"}},"type":"object","required":["model","data"],"title":"CreateRequest"},"DeleteManyRequest":{"properties":{"model":{"type":"string","title":"Model"},"where":{"items":{"$ref":"#/components/schemas/WhereCondition"},"type":"array","title":"Where"}},"type":"object","required":["model","where"],"title":"DeleteManyRequest"},"DeleteRequest":{"properties":{"model":{"type":"string","title":"Model"},"where":{"items":{"$ref":"#/components/schemas/WhereCondition"},"type":"array","title":"Where"}},"type":"object","required":["model","where"],"title":"DeleteRequest"},"EmailIdentityCreate":{"properties":{"email":{"type":"string","title":"Email"},"displayName":{"type":"string","title":"Displayname","default":""}},"type":"object","required":["email"],"title":"EmailIdentityCreate"},"EmailIdentityUpdate":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Displayname"}},"type":"object","title":"EmailIdentityUpdate"},"EmailSettingsUpdate":{"properties":{"fromEmail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fromemail"},"fromName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fromname"}},"type":"object","title":"EmailSettingsUpdate"},"EventBatchRequest":{"properties":{"batch":{"items":{"$ref":"#/components/schemas/EventItem"},"type":"array","maxItems":100,"minItems":1,"title":"Batch"}},"type":"object","required":["batch"],"title":"EventBatchRequest"},"EventItem":{"properties":{"event":{"type":"string","maxLength":128,"minLength":1,"title":"Event"},"userId":{"type":"string","title":"Userid"},"properties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Properties"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp"}},"type":"object","required":["event","userId"],"title":"EventItem"},"FindManyRequest":{"properties":{"model":{"type":"string","title":"Model"},"where":{"anyOf":[{"items":{"$ref":"#/components/schemas/WhereCondition"},"type":"array"},{"type":"null"}],"title":"Where"},"select":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Select"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset"},"sortBy":{"anyOf":[{"$ref":"#/components/schemas/SortBy"},{"type":"null"}]}},"type":"object","required":["model"],"title":"FindManyRequest"},"FindOneRequest":{"properties":{"model":{"type":"string","title":"Model"},"where":{"anyOf":[{"items":{"$ref":"#/components/schemas/WhereCondition"},"type":"array"},{"type":"null"}],"title":"Where"},"select":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Select"}},"type":"object","required":["model"],"title":"FindOneRequest"},"ForgotPasswordRequest":{"properties":{"publicKey":{"type":"string","title":"Publickey","description":"Environment public key for the project.","examples":["pk_dev_1234567890abcdef"]},"email":{"type":"string","format":"email","title":"Email","description":"Email address to send the reset email to.","examples":["dev@acme.com"]}},"type":"object","required":["publicKey","email"],"title":"ForgotPasswordRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ImportAuthSettings":{"properties":{"enabledProviders":{"items":{"type":"string"},"type":"array","title":"Enabledproviders","default":[]},"oauthClientIds":{"additionalProperties":{"type":"string"},"type":"object","title":"Oauthclientids","default":{}}},"type":"object","title":"ImportAuthSettings"},"ImportOAuthProvider":{"properties":{"providerId":{"type":"string","title":"Providerid"},"accountId":{"type":"string","title":"Accountid"}},"type":"object","required":["providerId","accountId"],"title":"ImportOAuthProvider"},"ImportUserRecord":{"properties":{"sourceId":{"type":"string","title":"Sourceid"},"email":{"type":"string","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"emailVerified":{"type":"boolean","title":"Emailverified","default":false},"hadPassword":{"type":"boolean","title":"Hadpassword","default":false},"oauthProviders":{"items":{"$ref":"#/components/schemas/ImportOAuthProvider"},"type":"array","title":"Oauthproviders","default":[]},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Createdat"},"lastLoginAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lastloginat"}},"type":"object","required":["sourceId","email"],"title":"ImportUserRecord"},"ImportUsersRequest":{"properties":{"source":{"type":"string","title":"Source"},"users":{"items":{"$ref":"#/components/schemas/ImportUserRecord"},"type":"array","maxItems":500,"title":"Users","default":[]},"authSettings":{"anyOf":[{"$ref":"#/components/schemas/ImportAuthSettings"},{"type":"null"}]},"dryRun":{"type":"boolean","title":"Dryrun","default":false}},"type":"object","required":["source"],"title":"ImportUsersRequest"},"InviteMemberRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"role":{"type":"string","title":"Role","default":"member"}},"type":"object","required":["email"],"title":"InviteMemberRequest"},"JourneyCreate":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"description":{"type":"string","title":"Description","default":""},"entryEvent":{"type":"string","maxLength":200,"minLength":1,"title":"Entryevent"},"entryNode":{"type":"string","maxLength":100,"minLength":1,"title":"Entrynode"},"entryConditions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Entryconditions"},"reEntryPolicy":{"$ref":"#/components/schemas/ReEntryPolicy","default":"skip"},"nodes":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/NodeDef"},"type":"object"},{"type":"null"}],"title":"Nodes"},"transitions":{"items":{"$ref":"#/components/schemas/TransitionDef"},"type":"array","title":"Transitions"}},"type":"object","required":["name","entryEvent","entryNode"],"title":"JourneyCreate"},"JourneyUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"entryEvent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entryevent"},"entryNode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entrynode"},"entryConditions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Entryconditions"},"reEntryPolicy":{"anyOf":[{"$ref":"#/components/schemas/ReEntryPolicy"},{"type":"null"}]},"nodes":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/NodeDef"},"type":"object"},{"type":"null"}],"title":"Nodes"},"transitions":{"anyOf":[{"items":{"$ref":"#/components/schemas/TransitionDef"},"type":"array"},{"type":"null"}],"title":"Transitions"}},"type":"object","title":"JourneyUpdate"},"LoginRequest":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest"},"MetadataUpdate":{"properties":{"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["metadata"],"title":"MetadataUpdate"},"NodeAction":{"properties":{"type":{"$ref":"#/components/schemas/ActionType"},"templateSlug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Templateslug"},"surveySlug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Surveyslug"},"tagName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tagname"},"stageName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stagename"},"fromIdentityEmail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fromidentityemail"},"variables":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Variables"}},"type":"object","required":["type"],"title":"NodeAction"},"NodeAdd":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name"},"action":{"$ref":"#/components/schemas/NodeAction"},"terminal":{"type":"boolean","title":"Terminal","default":false}},"type":"object","required":["name"],"title":"NodeAdd"},"NodeDef":{"properties":{"action":{"$ref":"#/components/schemas/NodeAction"},"terminal":{"type":"boolean","title":"Terminal","default":false}},"type":"object","required":["action"],"title":"NodeDef"},"NodeEdit":{"properties":{"action":{"anyOf":[{"$ref":"#/components/schemas/NodeAction"},{"type":"null"}]},"terminal":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Terminal"}},"type":"object","title":"NodeEdit"},"OAuthConfigUpdate":{"properties":{"clientId":{"type":"string","title":"Clientid","description":"OAuth client ID issued by the provider.","examples":["google-client-id.apps.googleusercontent.com"]},"clientSecret":{"type":"string","title":"Clientsecret","description":"OAuth client secret issued by the provider.","examples":["super-secret-value"]},"callbackUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Callbackurl","description":"Optional absolute callback override. Leave empty to use the derived redirect URI for the active OAuth flow.","examples":["https://your-app.com/api/auth/callback/google"]}},"type":"object","required":["clientId","clientSecret"],"title":"OAuthConfigUpdate"},"PageviewBatchRequest":{"properties":{"batch":{"items":{"$ref":"#/components/schemas/PageviewItem"},"type":"array","maxItems":50,"minItems":1,"title":"Batch"}},"type":"object","required":["batch"],"title":"PageviewBatchRequest"},"PageviewItem":{"properties":{"eventId":{"type":"string","maxLength":64,"minLength":1,"title":"Eventid"},"visitorId":{"type":"string","maxLength":64,"minLength":1,"title":"Visitorid"},"sessionId":{"type":"string","maxLength":64,"minLength":1,"title":"Sessionid"},"userId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Userid"},"url":{"type":"string","maxLength":2048,"minLength":1,"title":"Url"},"referrer":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Referrer"},"userAgent":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Useragent"},"loadTimeMs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Loadtimems"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp"}},"type":"object","required":["eventId","visitorId","sessionId","url"],"title":"PageviewItem"},"PlatformEmailRequest":{"properties":{"type":{"type":"string","title":"Type"},"to":{"type":"string","title":"To"},"variables":{"additionalProperties":{"type":"string"},"type":"object","title":"Variables","default":{}}},"type":"object","required":["type","to"],"title":"PlatformEmailRequest"},"PromoteEnvironmentRequest":{"properties":{"targetTier":{"type":"string","title":"Targettier"},"dryRun":{"type":"boolean","title":"Dryrun","default":true}},"type":"object","required":["targetTier"],"title":"PromoteEnvironmentRequest"},"ProvidersUpdate":{"properties":{"providers":{"items":{"type":"string"},"type":"array","title":"Providers","description":"Replacement list of enabled auth providers.","examples":[["credentials","google"]]}},"type":"object","required":["providers"],"title":"ProvidersUpdate"},"QuestionAdd":{"properties":{"type":{"$ref":"#/components/schemas/QuestionType"},"title":{"type":"string","title":"Title"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"isRequired":{"type":"boolean","title":"Isrequired","default":false},"choices":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Choices"},"rateMin":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ratemin"},"rateMax":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ratemax"},"minRateDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Minratedescription"},"maxRateDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Maxratedescription"},"inputType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inputtype"},"visibleIf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visibleif"},"requiredIf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requiredif"},"position":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Position"}},"type":"object","required":["type","title"],"title":"QuestionAdd"},"QuestionReorder":{"properties":{"order":{"items":{"type":"string"},"type":"array","title":"Order"}},"type":"object","required":["order"],"title":"QuestionReorder"},"QuestionType":{"type":"string","enum":["text","comment","radiogroup","checkbox","rating","boolean","dropdown","ranking"],"title":"QuestionType"},"QuestionUpdate":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"isRequired":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isrequired"},"choices":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Choices"},"rateMin":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ratemin"},"rateMax":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ratemax"},"minRateDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Minratedescription"},"maxRateDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Maxratedescription"},"inputType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inputtype"},"visibleIf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visibleif"},"requiredIf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requiredif"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},"type":"object","title":"QuestionUpdate"},"ReEntryPolicy":{"type":"string","enum":["skip","restart"],"title":"ReEntryPolicy"},"ResetPasswordRequest":{"properties":{"publicKey":{"type":"string","title":"Publickey","description":"Environment public key for the project.","examples":["pk_dev_1234567890abcdef"]},"token":{"type":"string","title":"Token","description":"One-time reset token from the password reset email.","examples":["rst_token_123"]},"newPassword":{"type":"string","title":"Newpassword","description":"Replacement plain-text password.","examples":["new-correct-horse-battery-staple"]}},"type":"object","required":["publicKey","token","newPassword"],"title":"ResetPasswordRequest"},"SendTestEmailRequest":{"properties":{"to":{"type":"string","title":"To"},"fromIdentityEmail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fromidentityemail"}},"type":"object","required":["to"],"title":"SendTestEmailRequest"},"SendVerificationRequest":{"properties":{"publicKey":{"type":"string","title":"Publickey","description":"Environment public key for the project.","examples":["pk_dev_1234567890abcdef"]},"email":{"type":"string","format":"email","title":"Email","description":"Email address to resend verification instructions to.","examples":["dev@acme.com"]}},"type":"object","required":["publicKey","email"],"title":"SendVerificationRequest"},"SetupDomainRequest":{"properties":{"domain":{"type":"string","title":"Domain"}},"type":"object","required":["domain"],"title":"SetupDomainRequest"},"SignupRequest":{"properties":{"publicKey":{"type":"string","title":"Publickey","description":"Environment public key for the project the user is signing up to.","examples":["pk_dev_1234567890abcdef"]},"email":{"type":"string","format":"email","title":"Email","description":"Email address used for sign-in.","examples":["dev@acme.com"]},"password":{"type":"string","title":"Password","description":"Plain-text password.","examples":["correct-horse-battery-staple"]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Optional display name for the new user.","examples":["Avery Patel"]}},"type":"object","required":["publicKey","email","password"],"title":"SignupRequest"},"SortBy":{"properties":{"field":{"type":"string","title":"Field"},"direction":{"type":"string","title":"Direction","default":"asc"}},"type":"object","required":["field"],"title":"SortBy"},"SpendCapRequest":{"properties":{"spendCapCents":{"type":"integer","title":"Spendcapcents"}},"type":"object","required":["spendCapCents"],"title":"SpendCapRequest"},"StitchRequest":{"properties":{"visitorId":{"type":"string","maxLength":64,"minLength":1,"title":"Visitorid"},"email":{"type":"string","maxLength":256,"minLength":1,"title":"Email"}},"type":"object","required":["visitorId","email"],"title":"StitchRequest"},"SurveyCreate":{"properties":{"name":{"type":"string","title":"Name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"type":{"type":"string","title":"Type","default":"custom"},"definition":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Definition"}},"type":"object","required":["name"],"title":"SurveyCreate"},"SurveyDistribute":{"properties":{"userIds":{"items":{"type":"string"},"type":"array","title":"Userids"}},"type":"object","required":["userIds"],"title":"SurveyDistribute"},"SurveySubmission":{"properties":{"answers":{"additionalProperties":true,"type":"object","title":"Answers"}},"type":"object","required":["answers"],"title":"SurveySubmission"},"SurveyUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"definition":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Definition"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","title":"SurveyUpdate"},"TicketExchangeRequest":{"properties":{"ticket":{"type":"string","title":"Ticket"}},"type":"object","required":["ticket"],"title":"TicketExchangeRequest"},"TransitionAdd":{"properties":{"from":{"type":"string","minLength":1,"title":"From"},"to":{"type":"string","minLength":1,"title":"To"},"trigger":{"$ref":"#/components/schemas/TransitionTrigger"},"priority":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Priority"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["from","to","trigger"],"title":"TransitionAdd"},"TransitionDef":{"properties":{"from":{"type":"string","title":"From"},"to":{"type":"string","title":"To"},"trigger":{"$ref":"#/components/schemas/TransitionTrigger"},"priority":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Priority"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["from","to","trigger"],"title":"TransitionDef","description":"from_ is serialized as 'from' in JSON."},"TransitionEdit":{"properties":{"trigger":{"anyOf":[{"$ref":"#/components/schemas/TransitionTrigger"},{"type":"null"}]},"priority":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Priority"}},"type":"object","title":"TransitionEdit"},"TransitionTrigger":{"properties":{"type":{"$ref":"#/components/schemas/TriggerType"},"event":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event"},"eventFilter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eventfilter"},"delay":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delay"}},"type":"object","required":["type"],"title":"TransitionTrigger"},"TriggerType":{"type":"string","enum":["event","timer"],"title":"TriggerType"},"UpdateEnvironmentRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"variables":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Variables"}},"type":"object","title":"UpdateEnvironmentRequest"},"UpdateManyRequest":{"properties":{"model":{"type":"string","title":"Model"},"where":{"items":{"$ref":"#/components/schemas/WhereCondition"},"type":"array","title":"Where"},"update":{"additionalProperties":true,"type":"object","title":"Update"}},"type":"object","required":["model","where","update"],"title":"UpdateManyRequest"},"UpdateProfileRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"}},"type":"object","title":"UpdateProfileRequest"},"UpdateProjectRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"UpdateProjectRequest"},"UpdateRequest":{"properties":{"model":{"type":"string","title":"Model"},"where":{"items":{"$ref":"#/components/schemas/WhereCondition"},"type":"array","title":"Where"},"update":{"additionalProperties":true,"type":"object","title":"Update"}},"type":"object","required":["model","where","update"],"title":"UpdateRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerifyCredentialsRequest":{"properties":{"publicKey":{"type":"string","title":"Publickey","description":"Environment public key for the project the user belongs to.","examples":["pk_dev_1234567890abcdef"]},"email":{"type":"string","format":"email","title":"Email","description":"User email address.","examples":["dev@acme.com"]},"password":{"type":"string","title":"Password","description":"Plain-text password to verify.","examples":["correct-horse-battery-staple"]}},"type":"object","required":["publicKey","email","password"],"title":"VerifyCredentialsRequest"},"VerifyEmailRequest":{"properties":{"publicKey":{"type":"string","title":"Publickey","description":"Environment public key for the project.","examples":["pk_dev_1234567890abcdef"]},"token":{"type":"string","title":"Token","description":"One-time email verification token from the verification link.","examples":["vrf_token_123"]}},"type":"object","required":["publicKey","token"],"title":"VerifyEmailRequest"},"WebhookCreate":{"properties":{"url":{"type":"string","title":"Url"},"events":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Events"}},"type":"object","required":["url"],"title":"WebhookCreate"},"WebhookTest":{"properties":{"eventType":{"type":"string","title":"Eventtype","default":"user.created"}},"type":"object","title":"WebhookTest"},"WebhookUpdate":{"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"events":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Events"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","title":"WebhookUpdate"},"WhereCondition":{"properties":{"field":{"type":"string","title":"Field"},"value":{"title":"Value"},"operator":{"type":"string","title":"Operator","default":"eq"},"connector":{"type":"string","title":"Connector","default":"AND"}},"type":"object","required":["field","value"],"title":"WhereCondition"}},"securitySchemes":{"AscendKitBearerAuth":{"type":"http","description":"Bearer session token or short-lived access token issued by AscendKit.","scheme":"bearer"},"AscendKitPublicKey":{"type":"apiKey","description":"Project environment public key used to scope SDK requests.","in":"header","name":"X-AscendKit-Public-Key"},"AscendKitSecretKey":{"type":"apiKey","description":"Project environment secret key for server-to-server auth settings access.","in":"header","name":"X-AscendKit-Secret-Key"},"AscendKitPlatformSecret":{"type":"apiKey","description":"Internal platform secret for portal adapter routes.","in":"header","name":"X-Platform-Secret"},"HTTPBearer":{"type":"http","scheme":"bearer"}}},"tags":[{"name":"Auth - End User","description":"Public auth endpoints for signup, credential verification, password reset, sessions, and access tokens."},{"name":"Auth - Settings","description":"Environment-scoped auth configuration endpoints used by the portal, CLI, SDK runtime, and server integrations."},{"name":"OAuth Proxy","description":"Browser redirect endpoints used when AscendKit proxies OAuth through shared development credentials."},{"name":"Token Verification","description":"Public token verification metadata, including the JWKS endpoint for RS256 access token verification."}]}