Look up which authentication methods exist for an email. The response shape is constant-time-ish: we always return 200 with the same body shape regardless of whether the email exists, to slow account enumeration.
GET
/auth/methods
const url = 'https://api.siteqwality.com/auth/methods?email=example';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.siteqwality.com/auth/methods?email=example'Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ” email
required
string
Responses
Section titled “ Responses ”Auth methods (always 200 even if email unknown)
Media type application/json
What auth methods are configured for a given email. Used by the email-first login UI to branch between password, magic link, and OAuth.
object
exists
required
true if a local account exists for this email.
boolean
has_password
required
true if the account can authenticate with a password.
boolean
has_oauth_google
required
true if the account has Google OAuth linked.
boolean
has_passkey
required
true if the account has a registered WebAuthn passkey.
Always false today, wired for the future passkey feature.
boolean
Example generated
{ "exists": true, "has_password": true, "has_oauth_google": true, "has_passkey": true}Invalid email
Rate limited
Internal server error