{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/domain/register":{"post":{"tags":["domain"],"summary":"Register","operationId":"register_domain_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainType"}}},"required":true},"responses":{"200":{"description":"Domain created","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid domain name"},"401":{"description":"TLD not owned"},"403":{"description":"Domain missing for subdomain (e.g: a.b.frii.site needs b.frii.site registered)"},"405":{"description":"Domain limit exceeded"},"409":{"description":"Domain already in use"},"412":{"description":"Invalid DNS record type"},"460":{"description":"Invalid session"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/domain/modify":{"patch":{"tags":["domain"],"summary":"Modify","operationId":"modify_domain_modify_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainType"}}},"required":true},"responses":{"200":{"description":"Domain modified","content":{"application/json":{"schema":{}}}},"403":{"description":"User does not own domain"},"412":{"description":"Invalid record name or value"},"460":{"description":"Invalid session"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/domain/available":{"get":{"tags":["domain"],"summary":"Is Available","operationId":"is_available_domain_available_get","parameters":[{"required":true,"schema":{"type":"string","title":"Name"},"name":"name","in":"query"}],"responses":{"200":{"description":"Domain is available","content":{"application/json":{"schema":{}}}},"409":{"description":"Domain is not available"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/domain/delete":{"delete":{"tags":["domain"],"summary":"Delete","operationId":"delete_domain_delete_delete","parameters":[{"required":true,"schema":{"type":"string","title":"Domain"},"name":"domain","in":"query"}],"responses":{"200":{"description":"Domain deleted succesfully","content":{"application/json":{"schema":{}}}},"403":{"description":"Domain does not exist, or user does not own it."},"460":{"description":"Invalid session"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/domain/get":{"get":{"tags":["domain"],"summary":"Get Domains","operationId":"get_domains_domain_get_get","responses":{"200":{"description":"Returns a JSON dict of domains","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainRetrieve"}}}},"460":{"description":"Invalid session"}}}},"/domain/vercel/join":{"post":{"tags":["domain","vercel"],"summary":"Vercel Queue Join","operationId":"vercel_queue_join_domain_vercel_join_post","parameters":[{"required":true,"schema":{"type":"string","title":"Value"},"name":"value","in":"query"},{"required":true,"schema":{"type":"string","title":"Tld"},"name":"tld","in":"query"}],"responses":{"200":{"description":"Joined queue","content":{"application/json":{"schema":{}}}},"460":{"description":"Invalid session"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/domain/vercel/get":{"get":{"tags":["domain","vercel"],"summary":"Vercel Queue Get","operationId":"vercel_queue_get_domain_vercel_get_get","responses":{"200":{"description":"Position in queue","content":{"application/json":{"schema":{"type":"integer","title":"Response Vercel Queue Get Domain Vercel Get Get"}}}},"404":{"description":"User not in queue"},"460":{"description":"Invalid session"}}}},"/api/domain":{"post":{"tags":["api","domain"],"summary":"Register","operationId":"register_api_domain_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainType"}}},"required":true},"responses":{"200":{"description":"Domain created","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid domain name"},"403":{"description":"Domain missing for subdomain (e.g: a.b.frii.site needs b.frii.site registered)"},"405":{"description":"Domain limit exceeded"},"409":{"description":"Domain already in use"},"412":{"description":"Invalid DNS record type"},"460":{"description":"Invalid API key"},"462":{"description":"Invalid API key permissions ('register' needed)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["api","domain"],"summary":"Delete","operationId":"delete_api_domain_delete","parameters":[{"required":true,"schema":{"type":"string","title":"Domain"},"name":"domain","in":"query"},{"required":false,"schema":{"type":"string","title":"Type"},"name":"type","in":"query"}],"responses":{"200":{"description":"Domain deleted succesfully","content":{"application/json":{"schema":{}}}},"403":{"description":"Domain does not exist, or user does not own it."},"404":{"description":"Domain type couldn't be fetched, specify the type using the query parameter `type`"},"460":{"description":"Invalid session"},"461":{"description":"API key cannot do operations on requested domain"},"462":{"description":"Invalid API key permissions ('delete' needed)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["api","domain"],"summary":"Modify","operationId":"modify_api_domain_patch","parameters":[{"required":true,"schema":{"type":"string","title":"Domain"},"name":"domain","in":"query"},{"required":true,"schema":{"type":"string","title":"Value"},"name":"value","in":"query"},{"required":true,"schema":{"type":"string","title":"Type"},"name":"type","in":"query"}],"responses":{"200":{"description":"Domain modified","content":{"application/json":{"schema":{}}}},"403":{"description":"User does not own domain"},"412":{"description":"Invalid record name or value"},"460":{"description":"Invalid API key"},"461":{"description":"API key cannot do operations on requested domain"},"462":{"description":"Invalid API key permissions ('content' needed)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/domain/available":{"get":{"tags":["api","domain"],"summary":"Is Available","description":"Check whether a domain is available. No authentication required","operationId":"is_available_api_domain_available_get","parameters":[{"required":true,"schema":{"type":"string","title":"Name"},"name":"name","in":"query"}],"responses":{"200":{"description":"Domain is available","content":{"application/json":{"schema":{}}}},"409":{"description":"Domain is not available"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/domains":{"get":{"tags":["api","domain"],"summary":"Get Domains","operationId":"get_domains_api_domains_get","responses":{"200":{"description":"Retrieved domains","content":{"application/json":{"schema":{"additionalProperties":{"$ref":"#/components/schemas/DomainFormat"},"type":"object","title":"Response Get Domains Api Domains Get"}}}},"460":{"description":"Invalid API"},"461":{"description":"Invalid API permissions"}}}},"/api/intents":{"get":{"summary":"Get Key Intents","operationId":"get_key_intents_api_intents_get","responses":{"200":{"description":"Returns a list of intents which the key has","content":{"application/json":{"schema":{"items":{"type":"string","enum":["register","modify","delete","list","userdetails"]},"type":"array","title":"Response Get Key Intents Api Intents Get"}}}}}}},"/api/user":{"get":{"tags":["api","user"],"summary":"Get User Profile","operationId":"get_user_profile_api_user_get","responses":{"200":{"description":"User data retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPageType"}}}},"404":{"description":"Failed to load user data"},"462":{"description":"API key cannot do this ('userdetails' needed)"}}}},"/invite/create":{"post":{"tags":["invite"],"summary":"Create","operationId":"create_invite_create_post","responses":{"200":{"description":"Invite code created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteCreate"}}}},"404":{"description":"User does not exist"},"409":{"description":"Invite limit (3) reached"},"460":{"description":"Invalid session"}}}},"/blog/get":{"get":{"tags":["blog"],"summary":"Get","operationId":"get_blog_get_get","parameters":[{"required":true,"schema":{"type":"string","title":"Id"},"name":"id","in":"query"}],"responses":{"200":{"description":"Blog found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogType"}}}},"404":{"description":"Blog not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/blog/get/all":{"get":{"tags":["blog"],"summary":"Get All","operationId":"get_all_blog_get_all_get","parameters":[{"required":false,"schema":{"type":"integer","title":"N","default":5},"name":"n","in":"query"},{"required":false,"schema":{"type":"integer","title":"Content"},"name":"content","in":"query"}],"responses":{"200":{"description":"Succesfully retrived blogs","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/BlogType"},"type":"array","title":"Response Get All Blog Get All Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/blog/create":{"post":{"tags":["blog"],"summary":"Create","operationId":"create_blog_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogType"}}},"required":true},"responses":{"200":{"description":"Blog created","content":{"application/json":{"schema":{}}}},"460":{"description":"Invalid session"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/settings":{"get":{"tags":["account"],"summary":"Get Settings","operationId":"get_settings_settings_get","responses":{"200":{"description":"Settings retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPageType"}}}},"460":{"description":"Invalid session"}}}},"/redeem":{"post":{"tags":["account","kofi"],"summary":"Redeem Code","operationId":"redeem_code_redeem_post","parameters":[{"required":true,"schema":{"type":"string","title":"Code"},"name":"code","in":"query"}],"responses":{"200":{"description":"Succesfully redeemed code","content":{"application/json":{"schema":{}}}},"412":{"description":"Invalid code"},"460":{"description":"Invalid session"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/email/send":{"post":{"tags":["account"],"summary":"Resend Verification","operationId":"resend_verification_email_send_post","parameters":[{"required":true,"schema":{"type":"string","title":"User Id"},"name":"user_id","in":"query"}],"responses":{"200":{"description":"Email sent succesfully","content":{"application/json":{"schema":{}}}},"404":{"description":"Account does not exist"},"460":{"description":"Invalid session"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/email/verify":{"post":{"tags":["account"],"summary":"Verify Account","operationId":"verify_account_email_verify_post","parameters":[{"required":true,"schema":{"type":"string","title":"Code"},"name":"code","in":"query"}],"responses":{"200":{"description":"Verified succesfully","content":{"application/json":{"schema":{}}}},"400":{"description":"Code is invalid"},"404":{"description":"Account does not exist"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/deletion/send":{"delete":{"tags":["account"],"summary":"Send Account Deletion","operationId":"send_account_deletion_deletion_send_delete","parameters":[{"required":true,"schema":{"type":"string","title":"X-Mfa-Code"},"name":"x-mfa-code","in":"header"}],"responses":{"200":{"description":"Deletion email sent","content":{"application/json":{"schema":{}}}},"460":{"description":"Invalid session"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/deletion/verify":{"delete":{"tags":["account"],"summary":"Verify Deletion","operationId":"verify_deletion_deletion_verify_delete","parameters":[{"required":true,"schema":{"type":"string","title":"Code"},"name":"code","in":"query"}],"responses":{"200":{"description":"Account deleted","content":{"application/json":{"schema":{}}}},"400":{"description":"Deletion code invalid"},"404":{"description":"Account not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/recovery/send":{"post":{"tags":["account"],"summary":"Send Recovery Link","operationId":"send_recovery_link_recovery_send_post","parameters":[{"required":true,"schema":{"type":"string","title":"Username"},"name":"username","in":"query"}],"responses":{"200":{"description":"Email sent","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/recovery/verify":{"post":{"tags":["account"],"summary":"Reset Password","operationId":"reset_password_recovery_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordReset"}}},"required":true},"responses":{"200":{"description":"Email sent","content":{"application/json":{"schema":{}}}},"403":{"description":"Invalid code"},"404":{"description":"User not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/gdpr":{"get":{"tags":["account","privacy"],"summary":"Get Gdpr","operationId":"get_gdpr_gdpr_get","responses":{"200":{"description":"GDPR data sent","content":{"application/json":{"schema":{"type":"object","title":"Response Get Gdpr Gdpr Get"}}}},"460":{"description":"Invalid session"}}}},"/profile/wrapped":{"get":{"tags":["account","fun"],"summary":"Year Wrapped","operationId":"year_wrapped_profile_wrapped_get","responses":{"200":{"description":"Wrapped sent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/YearWrapped"}}}},"460":{"description":"Invalid session"}}}},"/referral":{"post":{"tags":["account","referral"],"summary":"Create Referral","operationId":"create_referral_referral_post","parameters":[{"required":true,"schema":{"type":"string","title":"Code"},"name":"code","in":"query"}],"responses":{"200":{"description":"Created referral","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid code length"},"409":{"description":"Referral code has already been created"},"412":{"description":"User has already created a codee"},"460":{"description":"Invalid session"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/create-key":{"post":{"tags":["account","api"],"summary":"Create Api Token","operationId":"create_api_token_api_create_key_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCreationBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Create Api Token Api Create Key Post"}}}},"403":{"description":"User does not own requested domains"},"460":{"description":"Invalid session"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/get-keys":{"get":{"tags":["account","api"],"summary":"Get Api Keys","operationId":"get_api_keys_api_get_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"$ref":"#/components/schemas/ApiType"},"type":"object","title":"Response Get Api Keys Api Get Keys Get"}}}},"460":{"description":"Invalid session"}}}},"/api/get-key":{"get":{"tags":["account","api"],"summary":"Get Key","operationId":"get_key_api_get_key_get","parameters":[{"required":true,"schema":{"type":"string","title":"Hash"},"name":"hash","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Get Key Api Get Key Get"}}}},"460":{"description":"Invalid session"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/delete-key":{"delete":{"tags":["account","api"],"summary":"Delete Api Key","operationId":"delete_api_key_api_delete_key_delete","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDeletion"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Key does not exist"},"460":{"description":"Invalid session"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mfa/create":{"post":{"tags":["account","2fa"],"summary":"Create Mfa","operationId":"create_mfa_mfa_create_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MFACreation"}}}},"409":{"description":"Code already exists"},"460":{"description":"Invalid session"}}}},"/mfa/verify":{"post":{"tags":["account","2fa"],"summary":"Verify Mfa Setup","operationId":"verify_mfa_setup_mfa_verify_post","parameters":[{"required":true,"schema":{"type":"string","title":"X-Mfa-Code"},"name":"x-mfa-code","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid code"},"409":{"description":"Code already exists"},"460":{"description":"Invalid session"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mfa/delete":{"delete":{"tags":["account","2fa"],"summary":"Delete Mfa","operationId":"delete_mfa_mfa_delete_delete","parameters":[{"required":false,"schema":{"type":"string","title":"X-Mfa-Code"},"name":"x-mfa-code","in":"header"},{"required":false,"schema":{"type":"string","title":"X-Backup-Code"},"name":"x-backup-code","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid code"},"460":{"description":"Invalid session"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mfa/recovery":{"delete":{"tags":["account","2fa"],"summary":"Delete Mfa With Username Pass","operationId":"delete_mfa_with_username_pass_mfa_recovery_delete","parameters":[{"required":true,"schema":{"type":"string","title":"X-Auth-Request"},"name":"x-auth-request","in":"header"},{"required":true,"schema":{"type":"string","title":"X-Backup-Code"},"name":"x-backup-code","in":"header"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid password"},"404":{"description":"Account doesnt exist"},"409":{"description":"Invalid recovery code"},"412":{"description":"MFA not enabled"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/discord":{"post":{"tags":["account","discord"],"summary":"Create Conn Code","operationId":"create_conn_code_discord_post","responses":{"200":{"description":"Code created succesfully","content":{"application/json":{"schema":{"type":"string","title":"Response Create Conn Code Discord Post"}}}},"400":{"description":"Account has linked discord but code isn't stored"}}},"delete":{"tags":["account","discord"],"summary":"Remove Discord Conn","operationId":"remove_discord_conn_discord_delete","responses":{"200":{"description":"Discord account detached","content":{"application/json":{"schema":{}}}}}}},"/discord/link":{"post":{"tags":["account","discord"],"summary":"Verify Discord Link","operationId":"verify_discord_link_discord_link_post","parameters":[{"required":true,"schema":{"type":"string","title":"Code"},"name":"code","in":"query"},{"required":true,"schema":{"type":"integer","title":"Discord Id"},"name":"discord_id","in":"query"}],"responses":{"200":{"description":"Code created succesfully","content":{"application/json":{"schema":{}}}},"404":{"description":"Code does not exist"},"409":{"description":"Code has been linked already"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/login":{"post":{"tags":["account","session"],"summary":"Login","operationId":"login_login_post","parameters":[{"required":true,"schema":{"type":"string","title":"X-Auth-Request"},"name":"x-auth-request","in":"header"},{"required":true,"schema":{"type":"string","title":"X-Captcha-Code"},"name":"x-captcha-code","in":"header"},{"required":false,"schema":{"type":"string","title":"X-Mfa-Code"},"name":"x-mfa-code","in":"header"},{"required":false,"schema":{"type":"string","title":"X-Plain-Username"},"name":"x-plain-username","in":"header"}],"responses":{"200":{"description":"Login succesfull","content":{"application/json":{"schema":{},"refresh-token":"Refreshing your auth-token after it expires in 15 minutes","auth-token":"Token you can use for accessing things"}}},"400":{"description":"User signed up with Google"},"404":{"description":"User not found"},"401":{"description":"Invalid password"},"412":{"description":"2FA code required to be passed in X-MFA-Code"},"429":{"description":"Invalid captcha"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/refresh":{"post":{"tags":["account","session"],"summary":"Refresh","operationId":"refresh_refresh_post","responses":{"200":{"description":"Refreshed tokens succesfully","content":{"application/json":{"schema":{},"refresh-token":"Refreshing your auth-token after it expires in 15 minutes","auth-token":"Token you can use for accessing things"}}},"460":{"description":"Invalid key"}}}},"/auth/google/callback":{"get":{"summary":"Google Oauth2","operationId":"google_oauth2_auth_google_callback_get","parameters":[{"required":true,"schema":{"type":"string","title":"Code"},"name":"code","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Google Oauth2","operationId":"google_oauth2_auth_google_callback_get","parameters":[{"required":true,"schema":{"type":"string","title":"Code"},"name":"code","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/link":{"post":{"summary":"Create Linking Code","operationId":"create_linking_code_auth_link_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Create Linking Code Auth Link Post"}}}}}}},"/sign-up":{"post":{"tags":["account"],"summary":"Sign Up","operationId":"sign_up_sign_up_post","parameters":[{"required":true,"schema":{"type":"string","title":"X-Captcha-Code"},"name":"x-captcha-code","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignUp"}}},"required":true},"responses":{"200":{"description":"Sign up succesfull","content":{"application/json":{"schema":{}}}},"422":{"description":"Email is already in use"},"409":{"description":"Username is already in use"},"429":{"description":"Invalid captcha"}}}},"/logout":{"patch":{"tags":["account","session"],"summary":"Logout","operationId":"logout_logout_patch","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Session does not exist"},"460":{"description":"Invalid session"},"461":{"description":"User does not have access to use that session"}}}},"/kofi/webhook":{"post":{"tags":["kofi"],"summary":"Webhook","operationId":"webhook_kofi_webhook_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_webhook_kofi_webhook_post"}}},"required":true},"responses":{"200":{"description":"Succesfully registered event","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid verification token passed"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/domain/delete":{"delete":{"tags":["admin"],"summary":"Delete Domain","operationId":"delete_domain_admin_domain_delete_delete","parameters":[{"required":true,"schema":{"type":"string","title":"Domain"},"name":"domain","in":"query"},{"required":true,"schema":{"type":"string","title":"Userid"},"name":"userid","in":"query"},{"required":true,"schema":{"type":"string","title":"Reason"},"name":"reason","in":"query"}],"responses":{"200":{"description":"Domain deleted","content":{"application/json":{"schema":{}}}},"460":{"description":"Invalid session"},"461":{"description":"Invalid permissions"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/user/reinstate":{"post":{"tags":["admin"],"summary":"Reinstate User","operationId":"reinstate_user_admin_user_reinstate_post","parameters":[{"required":true,"schema":{"type":"string","title":"User Id"},"name":"user_id","in":"query"}],"responses":{"200":{"description":"User reinstated","content":{"application/json":{"schema":{}}}},"404":{"description":"User not found"},"412":{"description":"User already unbanned"},"503":{"description":"Failed to recover DNS records"},"460":{"description":"Invalid session"},"461":{"description":"Invalid permissions"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/user/verify":{"post":{"tags":["admin"],"summary":"Verify","operationId":"verify_admin_user_verify_post","parameters":[{"required":true,"schema":{"type":"string","title":"Id"},"name":"id","in":"query"}],"responses":{"200":{"description":"User verified","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/user/tld/add":{"post":{"tags":["admin"],"summary":"Add Tld","operationId":"add_tld_admin_user_tld_add_post","parameters":[{"required":true,"schema":{"type":"string","title":"Id"},"name":"id","in":"query"},{"required":true,"schema":{"type":"string","title":"Tld"},"name":"tld","in":"query"}],"responses":{"200":{"description":"TLD added","content":{"application/json":{"schema":{}}}},"412":{"description":"Invalid TLD"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/user/tld/remove":{"post":{"tags":["admin"],"summary":"Remove Tld","operationId":"remove_tld_admin_user_tld_remove_post","parameters":[{"required":true,"schema":{"type":"string","title":"Id"},"name":"id","in":"query"},{"required":true,"schema":{"type":"string","title":"Tld"},"name":"tld","in":"query"}],"responses":{"200":{"description":"TLD added","content":{"application/json":{"schema":{}}}},"412":{"description":"Invalid TLD"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/user/can-access":{"get":{"tags":["admin"],"summary":"Can Access","operationId":"can_access_admin_user_can_access_get","responses":{"200":{"description":"User can access the admin panel","content":{"application/json":{"schema":{}}}},"403":{"description":"User cant access the admin panel"}}}},"/admin/user/delete":{"delete":{"tags":["admin"],"summary":"Delete User","operationId":"delete_user_admin_user_delete_delete","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BanUser"}}},"required":true},"responses":{"200":{"description":"User deleted","content":{"application/json":{"schema":{}}}},"460":{"description":"Invalid session"},"461":{"description":"Invalid permissions"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/user/get/domain":{"get":{"tags":["admin"],"summary":"Find User By Domain","operationId":"find_user_by_domain_admin_user_get_domain_get","parameters":[{"required":true,"schema":{"type":"string","title":"Domain"},"name":"domain","in":"query"}],"responses":{"200":{"description":"User found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountData"}}}},"404":{"description":"User not found"},"460":{"description":"Invalid session"},"461":{"description":"Invalid permissions"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/user/delete/record":{"delete":{"tags":["admin"],"summary":"Delete Dns Record","operationId":"delete_dns_record_admin_user_delete_record_delete","parameters":[{"required":true,"schema":{"type":"string","title":"Record"},"name":"record","in":"query"},{"required":true,"schema":{"type":"string","title":"Type"},"name":"type","in":"query"}],"responses":{"200":{"description":"User found","content":{"application/json":{"schema":{}}}},"503":{"description":"Failed to delete record"},"460":{"description":"Invalid session"},"461":{"description":"Invalid permissions"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/user/get/id":{"get":{"tags":["admin"],"summary":"Find User By Id","operationId":"find_user_by_id_admin_user_get_id_get","parameters":[{"required":true,"schema":{"type":"string","title":"Id"},"name":"id","in":"query"}],"responses":{"200":{"description":"User found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountData"}}}},"404":{"description":"User not found"},"460":{"description":"Invalid session"},"461":{"description":"Invalid permissions"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/user/get/username":{"get":{"tags":["admin"],"summary":"Find User By Username","operationId":"find_user_by_username_admin_user_get_username_get","parameters":[{"required":true,"schema":{"type":"string","title":"Username"},"name":"username","in":"query"}],"responses":{"200":{"description":"User found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountData"}}}},"404":{"description":"User not found"},"460":{"description":"Invalid session"},"461":{"description":"Invalid permissions"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/user/get/email":{"get":{"tags":["admin"],"summary":"Find User By Email","operationId":"find_user_by_email_admin_user_get_email_get","parameters":[{"required":true,"schema":{"type":"string","title":"Email"},"name":"email","in":"query"}],"responses":{"200":{"description":"User found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountData"}}}},"404":{"description":"User not found"},"460":{"description":"Invalid session"},"461":{"description":"Invalid permissions"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/user/get/referral":{"get":{"tags":["admin"],"summary":"Find User By Referral","operationId":"find_user_by_referral_admin_user_get_referral_get","parameters":[{"required":true,"schema":{"type":"string","title":"Referral"},"name":"referral","in":"query"}],"responses":{"200":{"description":"User found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountData"}}}},"404":{"description":"User not found"},"460":{"description":"Invalid session"},"461":{"description":"Invalid permissions"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/user/permission":{"patch":{"tags":["admin"],"summary":"Change Permission","operationId":"change_permission_admin_user_permission_patch","parameters":[{"required":true,"schema":{"type":"string","title":"Id"},"name":"id","in":"query"},{"required":true,"schema":{"type":"string","title":"Permission"},"name":"permission","in":"query"},{"required":true,"schema":{"anyOf":[{"type":"boolean"},{"type":"integer"},{"type":"string"}],"title":"Value"},"name":"value","in":"query"}],"responses":{"200":{"description":"Permission changed","content":{"application/json":{"schema":{}}}},"404":{"description":"User not found"},"460":{"description":"Invalid session"},"461":{"description":"Invalid permissions"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/status":{"get":{"summary":"Status","operationId":"status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AccountData":{"properties":{"username":{"type":"string","title":"Username"},"email":{"type":"string","title":"Email"},"lang":{"type":"string","title":"Lang"},"country":{"anyOf":[{"$ref":"#/components/schemas/CountryType"},{"type":"object"}],"title":"Country"},"created":{"type":"integer","title":"Created"},"verified":{"type":"boolean","title":"Verified"},"permissions":{"type":"object","title":"Permissions"},"beta-enroll":{"type":"boolean","title":"Beta-Enroll"},"sessions":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/NewSessionType"},{"$ref":"#/components/schemas/OldSessionType"}]},"type":"array"},{"items":{"type":"object"},"type":"array"}],"title":"Sessions"},"invites":{"additionalProperties":{"$ref":"#/components/schemas/InviteType"},"type":"object","title":"Invites"},"mfa_enabled":{"type":"boolean","title":"Mfa Enabled"},"google-connected":{"type":"boolean","title":"Google-Connected"},"referral-code":{"type":"string","title":"Referral-Code"},"referred-people":{"type":"integer","title":"Referred-People"},"owned-tlds":{"items":{"type":"string"},"type":"array","title":"Owned-Tlds"},"discord-linked":{"type":"boolean","title":"Discord-Linked"},"domains":{"additionalProperties":{"$ref":"#/components/schemas/DomainFormat"},"type":"object","title":"Domains"},"id":{"type":"string","title":"Id"},"banned":{"type":"boolean","title":"Banned"},"ban_reasons":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"items":{"items":{"type":"string"},"type":"array"},"type":"array"}],"title":"Ban Reasons"},"last_login":{"type":"integer","title":"Last Login"},"api_key_amount":{"type":"integer","title":"Api Key Amount"},"accessed_from":{"items":{"type":"string"},"type":"array","title":"Accessed From"}},"type":"object","required":["username","email","lang","country","created","verified","permissions","beta-enroll","sessions","invites","mfa_enabled","google-connected","referral-code","referred-people","owned-tlds","discord-linked","domains","id","banned","ban_reasons","last_login","api_key_amount","accessed_from"],"title":"AccountData"},"ApiCreationBody":{"properties":{"permissions":{"items":{"type":"string","enum":["register","modify","delete","list","userdetails"]},"type":"array","title":"Permissions"},"domains":{"items":{"type":"string"},"type":"array","title":"Domains"},"comment":{"type":"string","title":"Comment"}},"type":"object","required":["permissions","domains","comment"],"title":"ApiCreationBody"},"ApiDeletion":{"properties":{"hash":{"type":"string","title":"Hash"}},"type":"object","required":["hash"],"title":"ApiDeletion"},"ApiType":{"properties":{"string":{"type":"string","title":"String"},"perms":{"items":{"type":"string","enum":["register","modify","delete","list","userdetails"]},"type":"array","title":"Perms"},"domains":{"items":{"type":"string"},"type":"array","title":"Domains"},"comment":{"type":"string","title":"Comment"}},"type":"object","required":["string","perms","domains","comment"],"title":"ApiType"},"BanUser":{"properties":{"user_id":{"type":"string","title":"User Id"},"reasons":{"items":{"type":"string"},"type":"array","title":"Reasons"}},"type":"object","required":["user_id","reasons"],"title":"BanUser"},"BlogType":{"properties":{"url":{"type":"string","title":"Url"},"date":{"type":"integer","title":"Date"},"title":{"type":"string","title":"Title"},"body":{"type":"string","title":"Body"}},"type":"object","required":["url","date","title","body"],"title":"BlogType"},"Body_webhook_kofi_webhook_post":{"properties":{"data":{"type":"string","title":"Data"}},"type":"object","required":["data"],"title":"Body_webhook_kofi_webhook_post"},"CountryType":{"properties":{"ip":{"type":"string","title":"Ip"},"hostname":{"type":"string","title":"Hostname"},"city":{"type":"string","title":"City"},"region":{"type":"string","title":"Region"},"country":{"type":"string","title":"Country"},"loc":{"type":"string","title":"Loc"},"org":{"type":"string","title":"Org"},"postal":{"type":"string","title":"Postal"},"timezone":{"type":"string","title":"Timezone"},"country_name":{"type":"string","title":"Country Name"},"isEU":{"type":"boolean","title":"Iseu"},"country_flag_url":{"type":"string","title":"Country Flag Url"},"country_flag":{"type":"object","title":"Country Flag"},"country_currency":{"type":"object","title":"Country Currency"},"continent":{"type":"object","title":"Continent"},"latitude":{"type":"string","title":"Latitude"},"longitude":{"type":"string","title":"Longitude"}},"type":"object","required":["ip","city","region","country","loc","org","postal","timezone","country_name","isEU","country_flag_url","country_flag","country_currency","continent","latitude","longitude"],"title":"CountryType"},"DomainFormat":{"properties":{"ip":{"type":"string","title":"Ip"},"registered":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Registered"},"type":{"type":"string","title":"Type"},"id":{"type":"string","title":"Id"}},"type":"object","required":["ip","registered","type","id"],"title":"DomainFormat"},"DomainRetrieve":{"properties":{"domains":{"additionalProperties":{"$ref":"#/components/schemas/DomainFormat"},"type":"object","title":"Domains"},"owned_tlds":{"items":{"type":"string"},"type":"array","title":"Owned Tlds"}},"type":"object","required":["domains","owned_tlds"],"title":"DomainRetrieve"},"DomainType":{"properties":{"domain":{"type":"string","title":"Domain"},"value":{"type":"string","title":"Value"},"type":{"type":"string","title":"Type"}},"type":"object","required":["domain","value","type"],"title":"DomainType"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InviteCreate":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"InviteCreate"},"InviteType":{"properties":{"used":{"type":"boolean","title":"Used"},"used_by":{"type":"string","title":"Used By"},"used_at":{"type":"integer","title":"Used At"}},"type":"object","required":["used"],"title":"InviteType"},"MFACreation":{"properties":{"backup_codes":{"items":{"type":"string"},"type":"array","title":"Backup Codes"},"app_link":{"type":"string","title":"App Link"}},"type":"object","required":["backup_codes","app_link"],"title":"MFACreation"},"NewSessionType":{"properties":{"owner":{"type":"string","title":"Owner"},"type":{"type":"string","enum":["refresh","access"],"title":"Type"},"created":{"type":"integer","title":"Created"},"expires":{"type":"integer","title":"Expires"},"agent":{"type":"string","title":"Agent"},"ip":{"type":"string","title":"Ip"}},"type":"object","required":["owner","type","created","expires","agent","ip"],"title":"NewSessionType"},"OldSessionType":{"properties":{"user-agent":{"type":"string","title":"User-Agent"},"ip":{"type":"string","title":"Ip"},"expires":{"type":"integer","title":"Expires"},"id":{"type":"string","title":"Id"}},"type":"object","required":["user-agent","ip","expires","id"],"title":"OldSessionType"},"PasswordReset":{"properties":{"code":{"type":"string","title":"Code"},"hashed_password":{"type":"string","title":"Hashed Password"}},"type":"object","required":["code","hashed_password"],"title":"PasswordReset"},"SignUp":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"},"email":{"type":"string","title":"Email"},"language":{"type":"string","title":"Language"}},"type":"object","required":["username","password","email","language"],"title":"SignUp"},"UserPageType":{"properties":{"username":{"type":"string","title":"Username"},"email":{"type":"string","title":"Email"},"lang":{"type":"string","title":"Lang"},"country":{"anyOf":[{"$ref":"#/components/schemas/CountryType"},{"type":"object"}],"title":"Country"},"created":{"type":"integer","title":"Created"},"verified":{"type":"boolean","title":"Verified"},"permissions":{"type":"object","title":"Permissions"},"beta-enroll":{"type":"boolean","title":"Beta-Enroll"},"sessions":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/NewSessionType"},{"$ref":"#/components/schemas/OldSessionType"}]},"type":"array"},{"items":{"type":"object"},"type":"array"}],"title":"Sessions"},"invites":{"additionalProperties":{"$ref":"#/components/schemas/InviteType"},"type":"object","title":"Invites"},"mfa_enabled":{"type":"boolean","title":"Mfa Enabled"},"google-connected":{"type":"boolean","title":"Google-Connected"},"referral-code":{"type":"string","title":"Referral-Code"},"referred-people":{"type":"integer","title":"Referred-People"},"owned-tlds":{"items":{"type":"string"},"type":"array","title":"Owned-Tlds"},"discord-linked":{"type":"boolean","title":"Discord-Linked"}},"type":"object","required":["username","email","lang","country","created","verified","permissions","beta-enroll","sessions","invites","mfa_enabled","google-connected","referral-code","referred-people","owned-tlds","discord-linked"],"title":"UserPageType"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"YearWrapped":{"properties":{"account_created":{"type":"integer","title":"Account Created"},"domains_registered":{"type":"integer","title":"Domains Registered"},"unique_ips":{"type":"integer","title":"Unique Ips"},"accounts_made_after":{"type":"integer","title":"Accounts Made After"},"total_users":{"type":"integer","title":"Total Users"}},"type":"object","required":["account_created","domains_registered","unique_ips","accounts_made_after","total_users"],"title":"YearWrapped"}}}}