Loading challenge...
Retrieve a one-time code from a side-channel inbox and verify it — the API+UI hybrid dance
The one-time code is never returned by the request endpoint — you must fetch it from a side channel (the inbox), then submit it to log in
Request a code for an email, then retrieve the current 6-digit code from GET /api/lab/inbox — the side channel a real test reads programmatically. Submit it to set the session cookie.
This is the classic API + UI hybrid dance: the UI triggers the request, but the secret travels through a separate channel that your automation must poll and read.
Send the OTP to an email address
In a real test you'd read this channel programmatically — here a button reveals it
Submit the 6-digit code to set the session
Automation hints
#otp-request only returns { sent: true }. Retrieve the code from the side channel: GET /api/lab/inbox?to=<email>&kind=otp#otp-peek button is a learning aid that shows the code in #otp-inbox-code; in a real test you read that endpoint programmatically and skip the UI button entirelysleep — assert the code is present, then proceed (delivery is eventually consistent)#otp-code with the fetched code and click #otp-verify; success reveals #otp-success, a wrong/expired code reveals #otp-error (401 from the server)