Mailbox API · Beta
List messages
const url = 'https://api.builders.ac/api/mailbox/v1beta1/azure/v1.0/users/sender%40yourdomain.com/messages?%24select=id%2Csubject%2Cfrom%2CreceivedDateTime%2CisRead&%24filter=receivedDateTime%20ge%202026-07-01T00%3A00%3A00Z&%24top=25&%24orderby=receivedDateTime%20desc';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.builders.ac/api/mailbox/v1beta1/azure/v1.0/users/sender%40yourdomain.com/messages?%24select=id%2Csubject%2Cfrom%2CreceivedDateTime%2CisRead&%24filter=receivedDateTime%20ge%202026-07-01T00%3A00%3A00Z&%24top=25&%24orderby=receivedDateTime%20desc' \ --header 'Authorization: Bearer <token>'Lists messages in the mailbox. Mirrors Graph’s GET /users/{id}/messages.
OData query parameters are forwarded to Microsoft untouched, so $select, $filter, $top, $orderby and $search behave exactly as they do against Graph directly. $search additionally requires the ConsistencyLevel: eventual header, which is one of the headers the proxy forwards.
@odata.nextLink in the response is rewritten to this API, so SDK page iterators work unchanged.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The mailbox address, which must belong to the account owning the API key. A mailbox that exists but is not yours returns 404 rather than 403, so this endpoint cannot be used to discover which addresses are builders.ac mailboxes.
Example
sender@yourdomain.comQuery Parameters
Section titled “Query Parameters”Comma-separated properties to return. Strongly recommended — the default projection is large.
Example
id,subject,from,receivedDateTime,isReadOData filter expression.
Example
receivedDateTime ge 2026-07-01T00:00:00ZPage size.
Example
25Example
receivedDateTime descResponses
Section titled “Responses”A page of messages.
object
A Graph message. Only commonly used properties are listed; the full Graph resource is returned and accepted.
object
Opaque message id. Forward it byte-for-byte — ids contain =, + and /.
object
object
object
object
object
object
object
Link to the next page, rewritten to point at this API rather than graph.microsoft.com. Follow it with the same API key.
Example
{ "value": [ { "body": { "contentType": "text" }, "from": { "emailAddress": { "name": "Jane Doe", "address": "jane@example.com" } }, "toRecipients": [ { "emailAddress": { "name": "Jane Doe", "address": "jane@example.com" } } ], "ccRecipients": [ { "emailAddress": { "name": "Jane Doe", "address": "jane@example.com" } } ] } ]}Headers
Section titled “Headers”Microsoft’s own request id for the upstream call, re-emitted as x-sending-upstream-id. Quote this when raising an issue with Microsoft support.
Malformed request — for example an invalid OData query or a body Graph refused.
Microsoft’s error shape, used on the /azure surface so Graph SDKs deserialise failures as ordinary errors.
object
object
Microsoft’s error code for the status.
object
Correlation id for this request. Quote it in support requests.
Example
{ "error": { "code": "BadRequest", "message": "The request is malformed or incorrect.", "innerError": { "request-id": "a26397a7-04e1-4c8f", "date": "2026-07-31T08:24:57+00:00" } }}Missing or invalid API key. Also returned when the key has been revoked.
Microsoft’s error shape, used on the /azure surface so Graph SDKs deserialise failures as ordinary errors.
object
object
Microsoft’s error code for the status.
object
Correlation id for this request. Quote it in support requests.
Example
{ "error": { "code": "InvalidAuthenticationToken", "message": "The API key is invalid or has been revoked.", "innerError": { "request-id": "a26397a7-04e1-4c8f", "date": "2026-07-31T08:24:57+00:00" } }}The credential is valid, but its Core customer account is inactive.
Microsoft’s error shape, used on the /azure surface so Graph SDKs deserialise failures as ordinary errors.
object
object
Microsoft’s error code for the status.
object
Correlation id for this request. Quote it in support requests.
Example
{ "error": { "code": "ErrorAccessDenied", "message": "This account is inactive.", "innerError": { "request-id": "a26397a7-04e1-4c8f", "date": "2026-07-31T08:24:57+00:00" } }}Either the mailbox is not yours (or does not exist), or the Graph path is outside the allow-list. Both answer 404 so the API does not disclose which.
Microsoft’s error shape, used on the /azure surface so Graph SDKs deserialise failures as ordinary errors.
object
object
Microsoft’s error code for the status.
object
Correlation id for this request. Quote it in support requests.
Example
{ "error": { "code": "ResourceNotFound", "message": "No such mailbox.", "innerError": { "request-id": "a26397a7-04e1-4c8f", "date": "2026-07-31T08:24:57+00:00" } }}Rate limit exceeded — 60 requests per minute per credential and per account.
Microsoft’s error shape, used on the /azure surface so Graph SDKs deserialise failures as ordinary errors.
object
object
Microsoft’s error code for the status.
object
Correlation id for this request. Quote it in support requests.
Example
{ "error": { "code": "TooManyRequests", "message": "Too many requests. Retry after the number of seconds in Retry-After.", "innerError": { "request-id": "a26397a7-04e1-4c8f", "date": "2026-07-31T08:24:57+00:00" } }}Headers
Section titled “Headers”Seconds to wait before retrying.
Unix timestamp at which the window resets.
Microsoft Graph could not be reached, or its response was too large to relay.
For sendMail this is ambiguous: the message may already have been accepted and sent. Do not retry automatically.
Microsoft’s error shape, used on the /azure surface so Graph SDKs deserialise failures as ordinary errors.
object
object
Microsoft’s error code for the status.
object
Correlation id for this request. Quote it in support requests.
Example
{ "error": { "code": "UnknownError", "message": "Could not reach Microsoft Graph. The request may not have been processed; retry only if it is safe to repeat.", "innerError": { "request-id": "a26397a7-04e1-4c8f", "date": "2026-07-31T08:24:57+00:00" } }}The Mailbox API is temporarily unavailable, or credentials could not be verified. Safe to retry with backoff.
Microsoft’s error shape, used on the /azure surface so Graph SDKs deserialise failures as ordinary errors.
object
object
Microsoft’s error code for the status.
object
Correlation id for this request. Quote it in support requests.
Example
{ "error": { "code": "BadRequest" }}