auth
POST
https://lucida.15-204-158-166.sslip.io /v1/auth/atlas/backchannel-logout Code samples
cURL
curl -X POST "https://lucida.15-204-158-166.sslip.io/v1/auth/atlas/backchannel-logout"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Sessions ended
400 invalid logout token
404
POST
https://lucida.15-204-158-166.sslip.io /v1/auth/atlas/before-user-create Code samples
cURL
curl -X POST "https://lucida.15-204-158-166.sslip.io/v1/auth/atlas/before-user-create"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 {} admits; {deny: true, reason} refuses
401 bad signature
404
GET
https://lucida.15-204-158-166.sslip.io /v1/auth/atlas/callback Parameters
codestringquerystatestringqueryerrorstringqueryCode samples
cURL
curl -X GET "https://lucida.15-204-158-166.sslip.io/v1/auth/atlas/callback"TypeScript
Python
Go
PHP
Ruby
Java
Responses
303 Session cookies set; redirect into the app, or to /login?atlas_error=<cancelled|expired|closed|disabled|failed>
404
GET
https://lucida.15-204-158-166.sslip.io /v1/auth/atlas/start Parameters
return_tostringqueryscreen_hintstringqueryinvitestringquerylogin_hintstringqueryCode samples
cURL
curl -X GET "https://lucida.15-204-158-166.sslip.io/v1/auth/atlas/start"TypeScript
Python
Go
PHP
Ruby
Java
Responses
303 Redirect to Atlas
404 Atlas not configured
POST
https://lucida.15-204-158-166.sslip.io /v1/auth/atlas/webhooks Code samples
cURL
curl -X POST "https://lucida.15-204-158-166.sslip.io/v1/auth/atlas/webhooks"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 processed or ignored
401 bad signature
404
GET
https://lucida.15-204-158-166.sslip.io /v1/auth/config What the sign-in and signup pages need before the user types anything.
Code samples
cURL
curl -X GET "https://lucida.15-204-158-166.sslip.io/v1/auth/config"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200
Example
{
"atlas": {
"account_url": "string",
"company_sso": true,
"start_url": "string"
},
"captcha": {
"provider": "string",
"site_key": "string"
},
"social": [
"string"
]
}Schema
atlasAtlasPublicShow child parameters
account_urlstringrequiredAtlas's hosted account page (password, passkeys, 2FA, devices); add
?return_to=.company_ssobooleanrequiredCompany SSO can be set up from Settings (the instance secret key is configured).
start_urlstringrequiredSame-origin route that starts the sign-in; add
invite / return_to / screen_hint=signup.captchaCaptchaPublicShow child parameters
providerstringrequiredsite_keystringrequiredsocialstring[]requiredSocial login providers that are configured (
google | gitlab | github).POST
https://lucida.15-204-158-166.sslip.io /v1/auth/email/change/confirm Confirm with the token mailed to the new address: the address is replaced, every session ends and the old address gets a notice.
Request body
application/json
tokenstringrequired{
"token": "string"
}Code samples
cURL
curl -X POST "https://lucida.15-204-158-166.sslip.io/v1/auth/email/change/confirm" \
-H "Content-Type: application/json" \
-d '{"token":"string"}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
204
400
409
POST
https://lucida.15-204-158-166.sslip.io /v1/auth/email/verify Confirm an email address with the mailed token.
Request body
application/json
tokenstringrequired{
"token": "string"
}Code samples
cURL
curl -X POST "https://lucida.15-204-158-166.sslip.io/v1/auth/email/verify" \
-H "Content-Type: application/json" \
-d '{"token":"string"}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
204
400
POST
https://lucida.15-204-158-166.sslip.io /v1/auth/email/verify-request Mail the signed-in user a verification link.
Code samples
cURL
curl -X POST "https://lucida.15-204-158-166.sslip.io/v1/auth/email/verify-request"TypeScript
Python
Go
PHP
Ruby
Java
Responses
202
429
POST
https://lucida.15-204-158-166.sslip.io /v1/auth/login Email + password login. Sets the session cookie, or answers with a 2FA step-up.
Request body
application/json
emailstringrequiredpasswordstringrequired{
"email": "string",
"password": "string"
}Code samples
cURL
curl -X POST "https://lucida.15-204-158-166.sslip.io/v1/auth/login" \
-H "Content-Type: application/json" \
-d '{"email":"string","password":"string"}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Sets the session cookie unless
mfa_requiredExample
{
"created_at": "2024-01-01T00:00:00Z",
"email": "string",
"id": "string",
"is_disabled": true,
"name": "string"
}User
created_atstringrequiredemailstringrequiredidstringrequiredis_disabledbooleanrequirednamestringrequired{
"created_at": "2024-01-01T00:00:00Z",
"email": "string",
"id": "string",
"is_disabled": true,
"name": "string"
}Option 2
mfa_requiredbooleanrequiredmfa_tokenstringrequired{
"mfa_required": true,
"mfa_token": "string"
}Option 3
mfa_enrollment_requiredbooleanrequireduserobjectrequiredShow child parameters
created_atstringrequiredemailstringrequiredidstringrequiredis_disabledbooleanrequirednamestringrequired{
"mfa_enrollment_required": true,
"user": {
"created_at": "2024-01-01T00:00:00Z",
"email": "string",
"id": "string",
"is_disabled": true,
"name": "string"
}
}Option 4
confirmation_requiredbooleanrequired{
"confirmation_required": true
}401
429 rate limited; Retry-After set
POST
https://lucida.15-204-158-166.sslip.io /v1/auth/login/confirm Finish a password login that needed emailed confirmation; the session starts here.
Request body
application/json
tokenstringrequiredThe token from the emailed link.
{
"token": "string"
}Code samples
cURL
curl -X POST "https://lucida.15-204-158-166.sslip.io/v1/auth/login/confirm" \
-H "Content-Type: application/json" \
-d '{"token":"string"}'TypeScript
Python
Go
PHP
Ruby
Java
POST
https://lucida.15-204-158-166.sslip.io /v1/auth/logout Revoke the current session.
Code samples
cURL
curl -X POST "https://lucida.15-204-158-166.sslip.io/v1/auth/logout"TypeScript
Python
Go
PHP
Ruby
Java
Responses
204
POST
https://lucida.15-204-158-166.sslip.io /v1/auth/logout-all Revoke every session of the caller, including this one.
Code samples
cURL
curl -X POST "https://lucida.15-204-158-166.sslip.io/v1/auth/logout-all"TypeScript
Python
Go
PHP
Ruby
Java
Responses
204
401
POST
https://lucida.15-204-158-166.sslip.io /v1/auth/mfa Second step of login: exchange the challenge token + code for a session.
Request body
application/json
codestringrequired6-digit authenticator code, or a recovery code.
mfa_tokenstringrequired{
"code": "string",
"mfa_token": "string"
}Code samples
cURL
curl -X POST "https://lucida.15-204-158-166.sslip.io/v1/auth/mfa" \
-H "Content-Type: application/json" \
-d '{"code":"string","mfa_token":"string"}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Sets the session cookie
Example
{
"created_at": "2024-01-01T00:00:00Z",
"email": "string",
"id": "string",
"is_disabled": true,
"name": "string"
}Schema
created_atstringrequiredemailstringrequiredidstringrequiredis_disabledbooleanrequirednamestringrequired401
429
Updated