Skip to content

Mailbox API

List mail folders

GET
/azure/v1.0/users/{email}/mailFolders
curl --request GET \
--url https://api.customers.ac/api/mailbox/v1alpha1/azure/v1.0/users/sender%40yourdomain.com/mailFolders \
--header 'Authorization: Bearer <token>'

Lists the mailbox’s folders. Mirrors Graph’s GET /users/{id}/mailFolders.

Use this to discover folder ids and to read totalItemCount / unreadItemCount without pulling messages.

email
required
string format: email

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 sending.ac mailboxes.

Example
sender@yourdomain.com

A page of mail folders.

Media typeapplication/json
object
value
Array<object>
object
id
string
displayName
string
parentFolderId
string
childFolderCount
integer
unreadItemCount
integer
totalItemCount
integer
@odata.nextLink
string format: uri
Example
{
"value": [
{
"displayName": "Inbox"
}
]
}
x-ms-request-id
string

Microsoft’s own request id for the upstream call. Quote this when raising an issue with Microsoft support. (Graph returns it as request-id; it is re-emitted under this name because Request-ID is already used for our own request identifier.)

Missing or invalid API key. Also returned when the key has been revoked.

Media typeapplication/json
OData error

Microsoft’s error shape, used on the /azure and /google surfaces so Graph SDKs deserialise failures as ordinary errors.

object
error
required
object
code
required

Microsoft’s error code for the status.

string
Allowed values: BadRequest InvalidAuthenticationToken ErrorAccessDenied ResourceNotFound RequestNotSupported RequestEntityTooLarge TooManyRequests UnknownError NotImplemented ServiceUnavailable Timeout
message
required
string
innerError
object
request-id

Correlation id for this request. Quote it in support requests.

string
date
string format: date-time
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 key is valid but not usable here: it is a Provisioning key rather than a Mailbox key, it is a sandbox key, or it is not linked to a sending.ac account.

Media typeapplication/json
OData error

Microsoft’s error shape, used on the /azure and /google surfaces so Graph SDKs deserialise failures as ordinary errors.

object
error
required
object
code
required

Microsoft’s error code for the status.

string
Allowed values: BadRequest InvalidAuthenticationToken ErrorAccessDenied ResourceNotFound RequestNotSupported RequestEntityTooLarge TooManyRequests UnknownError NotImplemented ServiceUnavailable Timeout
message
required
string
innerError
object
request-id

Correlation id for this request. Quote it in support requests.

string
date
string format: date-time
Example
{
"error": {
"code": "ErrorAccessDenied",
"message": "The Mailbox API requires a live API key; sandbox keys are not accepted because these calls send and read real mail.",
"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.

Media typeapplication/json
OData error

Microsoft’s error shape, used on the /azure and /google surfaces so Graph SDKs deserialise failures as ordinary errors.

object
error
required
object
code
required

Microsoft’s error code for the status.

string
Allowed values: BadRequest InvalidAuthenticationToken ErrorAccessDenied ResourceNotFound RequestNotSupported RequestEntityTooLarge TooManyRequests UnknownError NotImplemented ServiceUnavailable Timeout
message
required
string
innerError
object
request-id

Correlation id for this request. Quote it in support requests.

string
date
string format: date-time
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 API key.

Media typeapplication/json
OData error

Microsoft’s error shape, used on the /azure and /google surfaces so Graph SDKs deserialise failures as ordinary errors.

object
error
required
object
code
required

Microsoft’s error code for the status.

string
Allowed values: BadRequest InvalidAuthenticationToken ErrorAccessDenied ResourceNotFound RequestNotSupported RequestEntityTooLarge TooManyRequests UnknownError NotImplemented ServiceUnavailable Timeout
message
required
string
innerError
object
request-id

Correlation id for this request. Quote it in support requests.

string
date
string format: date-time
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"
}
}
}
Retry-After
integer

Seconds to wait before retrying.

X-RateLimit-Limit
integer
X-RateLimit-Remaining
integer
X-RateLimit-Reset
integer

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.

Media typeapplication/json
OData error

Microsoft’s error shape, used on the /azure and /google surfaces so Graph SDKs deserialise failures as ordinary errors.

object
error
required
object
code
required

Microsoft’s error code for the status.

string
Allowed values: BadRequest InvalidAuthenticationToken ErrorAccessDenied ResourceNotFound RequestNotSupported RequestEntityTooLarge TooManyRequests UnknownError NotImplemented ServiceUnavailable Timeout
message
required
string
innerError
object
request-id

Correlation id for this request. Quote it in support requests.

string
date
string format: date-time
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.

Media typeapplication/json
OData error

Microsoft’s error shape, used on the /azure and /google surfaces so Graph SDKs deserialise failures as ordinary errors.

object
error
required
object
code
required

Microsoft’s error code for the status.

string
Allowed values: BadRequest InvalidAuthenticationToken ErrorAccessDenied ResourceNotFound RequestNotSupported RequestEntityTooLarge TooManyRequests UnknownError NotImplemented ServiceUnavailable Timeout
message
required
string
innerError
object
request-id

Correlation id for this request. Quote it in support requests.

string
date
string format: date-time
Example
{
"error": {
"code": "BadRequest"
}
}