API reference navigation
GET /v1/me/mailboxes

List your mailboxes

Access
Authenticated (self)
Cost
Free
Rate limit
60 / minute per actor
Quota
None

Every sending identity you have connected, newest first, each with its provider, address, granted scopes, health status and last error, token expiry, and whether it is your default. Never tokens.

Responses

  • 200 Your mailboxes
    • mailboxes array of MailboxView required

      The account’s linked mailboxes.

      • id string required

        The mailbox id.

      • provider string required

        Which email provider this mailbox is linked through.

      • address string required

        The email address messages are sent from.

      • displayName string | null required

        The sender name shown to recipients, for example "Cam at Vamo". Null when unset.

      • scopes array of string required

        The permissions granted at the provider. Sending and reading replies each need their own; a mailbox missing one cannot do that half of the job.

      • status string required

        Whether the mailbox is usable. A mailbox can go unhealthy on its own when the provider revokes access, so check this before relying on it to send.

      • lastError string | null required

        The last provider error, in plain words. Null when healthy. This is what to show a user whose sending has silently stopped.

      • tokenExpiresAt string | null required

        When the provider authorization expires, as an ISO 8601 instant. Null when it does not expire on a schedule.

      • isDefault boolean required

        Whether this is the account’s default sending mailbox.

      • createdAt string required

        When the mailbox was linked, as an ISO 8601 instant.

  • 401 No or invalid credential
    • code string required

      Stable machine-readable error code. Branch on this, never on the numeric status.

      bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_error
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at the credit top-up).

      • kind string required

        What kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.

        topupconnect_mailbox
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.

  • 403 API keys have no mailboxes. The 403 body carries the remedy: a member connects one in the web app.
    • code string required

      Stable machine-readable error code. Branch on this, never on the numeric status.

      bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_error
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at the credit top-up).

      • kind string required

        What kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.

        topupconnect_mailbox
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.