Email Read Verification Link (Microsoft Graph)
PythonUtilityPOST api.upapi.io/email-read-verification-link-graph.postPoll an outlook.com mailbox over Microsoft Graph for a verification LINK in a message body, optionally following a click-tracker through a proxy. For accounts whose IMAP switch is off. Returns the link or an error.
Request schema
| Field | Type | Description |
|---|---|---|
linkPattern | Regex for candidate URLs in the RAW html body (default: any http(s) URL)· default: null | |
pollSeconds | number | Seconds between polls· default: 5 |
maxRedirects | integer | Max redirect hops to follow· default: 5 |
graphClientIdreq | string | Microsoft public app client_id |
senderContainsreq | string | Substring to match in the From header (e.g. 'discord', 'reddit') |
timeoutSeconds | number | Max seconds to poll· default: 120 |
followRedirects | boolean | Follow click-tracker redirects to resolve the actionable URL· default: true |
minEpochSeconds | Ignore messages received before this Unix timestamp· default: null | |
linkHostContains | Keep only candidate URLs whose text contains this (e.g. 'discord.com')· default: null | |
redirectProxyUrl | Proxy to follow the tracker through (the account's pinned exit)· default: null | |
graphRefreshTokenreq | string | OAuth refresh token (Mail.Read offline_access) |
recipientContains | Substring to match in the To header -- REQUIRED to tell plus-addresses (base+alias@outlook.com) apart when many accounts share one inbox· default: null | |
redirectHostContains | The actionable URL's host+path (e.g. 'discord.com/verify'): a candidate that already contains it is returned directly; otherwise candidates are followed until a hop contains it· default: null |
Response schema
| Field | Type | Description |
|---|---|---|
link | · default: null | |
error | · default: null | |
subject | · default: null | |
successreq | boolean | |
allLinks | array | |
elapsedMsreq | integer | |
receivedAt | · default: null |
Try it
Try it
Microsoft public app client_id
Substring to match in the From header (e.g. 'discord', 'reddit')
OAuth refresh token (Mail.Read offline_access)
Regex for candidate URLs in the RAW html body (default: any http(s) URL)
Seconds between polls
Max redirect hops to follow
Max seconds to poll
Follow click-tracker redirects to resolve the actionable URL
Ignore messages received before this Unix timestamp
Keep only candidate URLs whose text contains this (e.g. 'discord.com')
Proxy to follow the tracker through (the account's pinned exit)
Substring to match in the To header -- REQUIRED to tell plus-addresses (base+alias@outlook.com) apart when many accounts share one inbox
The actionable URL's host+path (e.g. 'discord.com/verify'): a candidate that already contains it is returned directly; otherwise candidates are followed until a hop contains it
Run this endpoint live
Jump in as a guest — no signup — and run email-read-verification-link-graph.post with your own inputs. Create a free account anytime to get your own API key.
Code examples
curl -X POST https://api.upapi.io/email-read-verification-link-graph.post \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_API_KEY' \
-d '{ "pollSeconds": 5, "maxRedirects": 5, "graphClientId": "example", "senderContains": "discord", "timeoutSeconds": 120, "followRedirects": true, "graphRefreshToken": "example" }'