---
title: "Verify a mailbox's connection still works"
method: POST
path: "/mailboxes/{mailbox_id}/verify/"
tags: ["senders"]
---

# Verify a mailbox's connection still works

`POST /mailboxes/{mailbox_id}/verify/`

## Request

- Base URL: `https://api.getoneprofile.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getoneprofile.ai/mailboxes/{mailbox_id}/verify/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Checks that a mailbox's connection to Google still works by reading the account's own profile, refreshing the access token first if it needs it. Sends no email. A mailbox that passes is stamped last_verified_at, as the hourly check and a status refresh stamp it. A refused grant disconnects the mailbox, and the refusal carries the reason stored on it; so does a mailbox disconnected on purpose, which is not checked. A definite error Gmail answers with (Gmail turned off for that user, say) fails the check and clears the stamp, but leaves the mailbox connected. When Google cannot answer just now (no answer, a server error or a timeout), nothing is checked and the mailbox keeps the status it had.

## Path parameters

- `mailbox_id` string, uuid, required

## Response `200`

Successful Response

- MailboxReadSchema
  - `bounce_rate` number, nullable: DSNs / accepted sends, lifetime.
  - `connection_status` 'connected' | 'disconnected', required: Whether the mailbox's grant currently authenticates.
  - `created_at` string, date-time, required
  - `daily_send_limit` integer, required
  - `disconnected_at` string, date-time, nullable, required
  - `disconnected_reason` string, nullable, required
  - `email_address` string, required
  - `id` string, uuid, required
  - `last_verified_at` string, date-time, nullable: When the grant last passed its check.
  - `provider` 'google_workspace' | 'google_workspace_dwd', required: Which email provider a mailbox connects through. Only Google Workspace ships so far; every provider is implemented behind ``providers.EmailProviderBase`` so Office 365 and IMAP/SMTP can be added later without touching callers. ``GOOGLE_WORKSPACE`` holds a per-mailbox OAuth grant (consent screen, refresh token). ``GOOGLE_WORKSPACE_DWD`` holds no grant at all: tokens are minted on demand via domain-wide delegation as the platform service account, so its rows carry an empty ``refresh_token`` forever. It is the path imported fleets (e.g. InboxKit) connect through.
  - `reply_rate` number, nullable: Genuine replies / accepted sends, lifetime.
  - `sender_profile_id` string, uuid, nullable, required
  - `updated_at` string, date-time, required
  - `usage` MailboxUsageReadSchema: Volume only; the ceiling it runs against is the mailbox's `daily_send_limit`.
    - `sent_today` integer, required
    - `sent_yesterday` integer, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found.
- `422`: Invalid request made to the API.
- `500`: Internal server error.
- `502`: The mailbox is disconnected, or Gmail answered with a definite error.
- `503`: Google could not answer, so nothing was checked.

---

[API](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile.md) · [All operations](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/llms.txt) · [OpenAPI document](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/revisions/4a6bd71e3f02?raw)
