Added

Workspace Data API — mailboxes, domains, users, and Safety Net

The API has always answered one question: is this email safe to send? Now it can answer questions about your own workspace too. Thirteen new endpoints expose the data your team already sees in the Allegrow app — connected mailboxes and their sender reputation, sending domains, users, and the Safety Net — plus, for the first time, a set of actions: inviting users and steering where the Safety Net applies.

Same x-api-key you already use for validation. None of it consumes validation credits.


Connected Mailboxes


GET /v1/connected-mailboxes returns every mailbox your team has connected for reputation monitoring — owner, provider, connection status, when it was connected, and its 0–100 reputation score:

{
  "limit": 50,
  "mailboxes": [
    {
      "connectedAt": "2026-01-04T14:13:58.000Z",
      "connectionStatus": "connected",
      "domain": "allegrow.co",
      "email": "[email protected]",
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "owner": {
        "email": "[email protected]",
        "firstName": "Ada",
        "lastName": "Lovelace"
      },
      "provider": "google",
      "reputation": 87,
      "statusUpdatedAt": "2026-08-15T12:47:27.000Z"
    }
  ],
  "offset": 0,
  "reputationRange": "last30Days",
  "total": 128
}


reputation on the list is an average over a named window — pass reputationRange today, yesterday, ast7Days, thisWeek, last30Days, lastWeek, lastMonth, thisMonth) and you get the same projection as the in-app leaderboard. The response echoes the window it used.

GET /v1/connected-mailboxes/{id} goes deeper: the latest daily score as currentReputation, plus a day-by-day history series — one point per day — windowed by startDate/endDate (defaults to the last 90 days). This is the endpoint for charting a mailbox's reputation over time in your own tooling, or stamping your records with reputation at a moment you care about.


Connected Domains


The same reputation lens, aggregated per sending domain. GET /v1/connected-domains lists each domain with its currentReputation and mailboxCount; GET /v1/connected-domains/{domainName} returns the domain's day-by-day history over the same startDate/endDate windowing. A single mailbox dipping and a whole domain sliding are very different problems — this is the view that tells them apart.



Users


GET /v1/users returns everyone in your workspace — including pending invites — each with their role and a summary of their connected mailboxes. Active users carry createdAt; invited users carry inviteExpiresAt, "id": null, and "status": "invited" until they sign up. Filter with ?status=active or ?status=invited, and fetch one user by id with GET /v1/users/{id}.

A user with "mailboxes": [] has a seat but nothing being monitored yet — which makes this the endpoint for spotting who hasn't connected.



Safety Net

Two resources cover where Safety Net protection applies, both matching the switches in the app:

  • MailboxesGET /v1/safety-net-mailboxes lists every sending mailbox synced from your sales-engagement platform (Outreach or Salesloft) with an activated flag and the integrations it appears in. These are a different population from your connected mailboxes: the sync brings in every mailbox present in your platform, whether or not it's connected to Allegrow. Fetch one with GET /v1/safety-net-mailboxes/{id} and filter with ?activated=true or false — many teams deliberately protect only a subset, and this shows exactly which.
  • SequencesGET /v1/safety-net-sequences lists your sequences (Outreach) and cadences (Salesloft), each with its own activated flag, its owner, and the CRM's own id as crmSequenceId alongside service — so you can cross-reference every entry in your platform directly. GET /v1/safety-net-sequences/{id} fetches one.

And for the first time, the API can act — not just report

  • Invite a userPOST /v1/users with an email, optional name, and role member or admin). Allegrow sends the invite email, the seat is consumed, and the invitee appears on your users list until they sign up. Wire it into your own onboarding flow so new reps are invited the moment they join.
  • Switch the Safety Net per mailboxPATCH /v1/safety-net-mailboxes/{id} with {"actived": true} or false.
  • Switch the Safety Net per sequencePATCH /v1/safety-net-sequences/{id} — one call updates the sequence for every owner it appears under, exactly like the in-app toggle. Switch it off for internal or test sequences; keep it on for anything customer-facing.

Writes follow the same rules as the app: where the app requires a role permission, the API requires the key's creator to hold it — and returns 403 otherwise. All updates are idempotent, so you can sync a desired state without reading first.


Conventions

  • Every list paginates with limit (up to 1000) and offset, and returns total for the matching set — so a filtered call with limit=1 is a cheap headline metric. GET /v1/connected-mailboxes?connectionStatus=credentials_error&limit=1 answers "how many mailboxes need reconnecting?" in one request.
  • Lists filter server-side: connectionStatus on mailboxes, status on users, activated on Safety Net mailboxes, service and activated on sequences.
  • Detail endpoints are keyed by an opaque id from the list endpoints (connected-domain detail uses the domain name itself).
  • Response keys are emitted alphabetically at every level, same as validation responses. Errors follow the same shapes you know from the validation API, including 503 with a Retry-After header when a dependent service is briefly unavailable.

Every section of the reference opens with a short overview explaining what the resource is — written for teams who use Allegrow through the API without ever opening the app.

Read the full reference in our docs →