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:
- Mailboxes —
GET /v1/safety-net-mailboxeslists every sending mailbox synced from your sales-engagement platform (Outreach or Salesloft) with anactivatedflag 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 withGET /v1/safety-net-mailboxes/{id}and filter with?activated=trueorfalse— many teams deliberately protect only a subset, and this shows exactly which. - Sequences —
GET /v1/safety-net-sequenceslists your sequences (Outreach) and cadences (Salesloft), each with its ownactivatedflag, its owner, and the CRM's own id ascrmSequenceIdalongsideservice— 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 user —
POST /v1/userswith an email, optional name, and rolememberoradmin). 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 mailbox —
PATCH /v1/safety-net-mailboxes/{id}with{"actived": true}orfalse. - Switch the Safety Net per sequence —
PATCH /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) andoffset, and returnstotalfor the matching set — so a filtered call withlimit=1is a cheap headline metric.GET /v1/connected-mailboxes?connectionStatus=credentials_error&limit=1answers "how many mailboxes need reconnecting?" in one request. - Lists filter server-side:
connectionStatuson mailboxes,statuson users,activatedon Safety Net mailboxes,serviceandactivatedon sequences. - Detail endpoints are keyed by an opaque
idfrom 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
503with aRetry-Afterheader 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.