---
title: "Platform operator only: enable (optionally overriding the daily/monthly quota) or suspend sending for an organization"
method: POST
path: "/email/sending/operator"
tags: ["Email"]
---

# Platform operator only: enable (optionally overriding the daily/monthly quota) or suspend sending for an organization

`POST /email/sending/operator`

## Request

- Base URL: `https://hostingsurge.com/api/v1`
- URL: `https://hostingsurge.com/api/v1/email/sending/operator`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `__Host-hs_session`

## Request body

- object
  - `organizationId` string, uuid, required
  - `enabled` boolean, required
  - `dailySendLimit` integer: overrides the plan's daily quota for this organization
  - `monthlySendLimit` integer: overrides the plan's monthly quota (migration 138)

## Response `200`

Updated

- object
  - `organizationId` string, uuid, required
  - `status` 'not_requested' | 'requested' | 'enabled' | 'suspended', required: enabled: sending is on — automatically once a sending domain of the organization passes its DNS check, on every plan including Free (docs/EMAIL.md "Free tier and quotas"), or by a platform operator; suspended: turned off by a platform operator (a new domain check never turns it back on); not_requested/requested: no sending domain has passed its DNS check yet
  - `dailySendLimit` integer, nullable, required: the daily quota: recipients per UTC day through POST /emails (to + cc + bcc), from the plan or an operator override; a send that would go over it is refused with rate_limited. null = no quota (the team has no plan limits)
  - `sentToday` integer, required: recipients of today's (UTC) sends counted toward dailySendLimit: POST /emails, plus SMTP relay as the mail server last reported it (see GET /email/usage smtpCounted)
  - `hourlyLimit` integer, nullable, required: the rolling 60-minute burst guard (a quarter of dailySendLimit): POST /emails refuses a send over it with rate_limited, and the mail server holds SMTP messages over it (held messages are not delivered). null = none
  - `limitResetsAt` string, required: next 00:00 UTC, when sentToday starts again from 0
  - `requestedAt` string, nullable, required: ISO-8601 timestamp
  - `requestMessage` string, nullable, required
  - `enabledAt` string, nullable, required: ISO-8601 timestamp
  - `postalServerConfigured` boolean, required

## Other responses

- `400`: Invalid request (code invalid_request)
- `401`: Missing or invalid session/token (code unauthorized)
- `403`: Authenticated but not permitted (code forbidden)
- `404`: Not found or not visible to the caller (code not_found)
- `409`: Conflicting state (code conflict)
- `429`: Too many requests (code rate_limited); see Retry-After
- `501`: Not available on this server (code not_configured)
- `503`: Mail server or sending service unavailable (code provider_unavailable)

---

[API](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api.md) · [All operations](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api/revisions/4d08337cdff1?raw)
