Discover auth methods for an email
Overview
Email-first auth-method discovery for the login form. Given an email, it returns which sign-in methods the user can use (password and/or jumpcloud) and their preferred method. It also returns a JumpCloud SSO redirect URL when SSO is available. Unknown emails always return ["password"] so the endpoint cannot be used to enumerate accounts.
Prerequisites
- This is a public endpoint — no authentication required.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
POST /api/v1/auth/discover
Authentication
- No bearer token required.
- This is a public route with no authentication; throttled at 10/min per IP.
Rate limit
- 10 requests/min per IP.
Request body
- Body:
| Field | Type | Required | Description |
|---|---|---|---|
email | string | yes | email rule |
{
"email": "[email protected]"
}Response
data.methods(string[]) — subset/ordering of["password", "jumpcloud"]. Ifsso_required, exactly["jumpcloud"]; otherwise built fromcanUsePassword/canUseJumpCloud, falling back to["password"]if empty. Unknown email falls back to["password"].data.preferred(string) —user.preferred_auth_methodor"password"fallback ("password"for unknown email)data.sso_url(string|null) — the absolutehttps://<base>/api/v1/auth/sso/jumpcloud/redirectURL whenjumpcloudis inmethods, elsenull
200 Both methods available · 200
200{
"data": {
"methods": [
"password",
"jumpcloud"
],
"preferred": "password",
"sso_url": "https://production-api.shoutaboutus.com/api/v1/auth/sso/jumpcloud/redirect"
}
}200 SSO-only user · 200
200{
"data": {
"methods": [
"jumpcloud"
],
"preferred": "jumpcloud",
"sso_url": "https://production-api.shoutaboutus.com/api/v1/auth/sso/jumpcloud/redirect"
}
}200 Unknown email (no enumeration) · 200
200{
"data": {
"methods": [
"password"
],
"preferred": "password",
"sso_url": null
}
}Errors
| Status | Meaning |
|---|---|
422 | The request failed validation — the response names the fields |
500 | Unexpected server error |
Example request
curl --request POST \
--url "https://production-api.shoutaboutus.com/api/v1/auth/discover" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"email": "[email protected]"}'Updated 10 days ago
Did this page help you?
