curl -X POST \
https://win.oneshotagent.com/v1/tools/email/domains/oneshotagents.com/pause \
-H "X-Payment-Proof: <your_x402_signature>"
await sdk.email.pauseDomain('oneshotagents.com');
client.pause_domain("oneshotagents.com")
{ "domain": "oneshotagents.com", "pool_status": "paused", "warmup_state": "warmed", "pause_reason": "manual" }
Email
Pause Domain
Take a domain out of the rotation pool without removing it.
POST
/
v1
/
tools
/
email
/
domains
/
{domain}
/
pause
curl -X POST \
https://win.oneshotagent.com/v1/tools/email/domains/oneshotagents.com/pause \
-H "X-Payment-Proof: <your_x402_signature>"
await sdk.email.pauseDomain('oneshotagents.com');
client.pause_domain("oneshotagents.com")
{ "domain": "oneshotagents.com", "pool_status": "paused", "warmup_state": "warmed", "pause_reason": "manual" }
Authentication
Requires x402-verified wallet identity (X-Payment-Proof header). Same
auth surface as /email/quote.
Path Parameters
string
required
The bare domain to pause — e.g.
oneshotagents.com. Must be owned by
the caller (domains.agent_id = wallet).Behavior
Setspool_status to paused on the matching row. The rotation selector
skips paused domains entirely. Allowed transitions:
| From | Result |
|---|---|
active | → paused |
warming | → paused (legitimate “take it out of consideration” before warmup graduates it) |
paused | no-op |
removed | not found |
404 domain_not_found if the domain isn’t owned by the caller or
is removed.
Response
string
The paused domain.
string
paused.string
Reputation health (
warming | warmed | degraded) — unchanged by a
manual pause, since pausing rotation doesn’t stop warmup.string
manual — a manual pause stays paused until you
resume it; the reconciler will not
auto-recover it (unlike a low_reputation pause).curl -X POST \
https://win.oneshotagent.com/v1/tools/email/domains/oneshotagents.com/pause \
-H "X-Payment-Proof: <your_x402_signature>"
await sdk.email.pauseDomain('oneshotagents.com');
client.pause_domain("oneshotagents.com")
{ "domain": "oneshotagents.com", "pool_status": "paused", "warmup_state": "warmed", "pause_reason": "manual" }
Notes
- Pausing does NOT release the domain or stop renewals. It just gates the
rotation selector from picking it. Reverse with
/domains/:domain/resume. - Explicit sends (passing
from_address) bypass the pool, so a paused domain can still be used directly — pause only affects server-side rotation. - Pausing a
warmingrow is fine, but resume won’t bring a formerly-warming row back toactive— only the daily reconciler can graduate it (score ≥ threshold).