otp[].value is the code. otp[].source is text or html — the same digits often appear once per part, so tests use the first value. links[].href is the URL, and links[].text is the visible text when the message had any.
From the message you waited for
List the latest message
email.address() mints a new local-part. messages.list on that address reads the inbox it just created. It does not take a subject filter.
inbox on the list endpoint. q matches the subject, sender, or recipient.
data[0].otp[0].value.
Next steps
Wait for an email
Block until the message that holds the code arrives.
Custom domains
Point a hostname you own at DevHelm.