Update a sub-account
Changes the name, uid, metadata, status or quotas. Fields left out keep their value; status: "disabled" refuses its sends until it is active again.
bearerAuthAuthorizationBearer <token>A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.
subaccount*stringThe sub-account's id (sub_…) or your uid for it.
Coss-Version?"2026-10-10"The API version (a date) to use for this request. Defaults to your organization's version, pinned to the latest one when it first used the API and upgraded from the dashboard. The SDK always sends the version it was built for.
"2026-10-10"application/json- body
- body
- …
name?string1 <= length <= 256uid?|null removes it.
metadata?Replaces the metadata.
status?stringdisabled refuses its sends until it is active again.
"active""disabled"quotas?Fields left out keep their value; null removes a quota.
The sub-account.
application/json- response
- response
- …
object*"subaccount""subaccount"id*stringuid*|Your own id for it (e.g. your user's id), unique in the environment. Every path and send that takes a sub-account accepts its id or its uid.
name*stringmetadata*status*stringdisabled: you turned it off (its sends are refused). deleting: its domains are being released.
"active""disabled""deleting"quotas*reputation*created_at*stringdate-timeupdated_at*stringdate-timeimport { Coss } from "coss";const coss = new Coss({ apiKey: process.env.COSS_API_KEY, baseUrl: "https://api.coss.com",});const { data, error } = await coss.email.subaccounts.update("user_8812", { status: "disabled",});{ "object": "subaccount", "id": "sub_01k7c8m4q2f3e9v6t5r1n0p8yz", "uid": "user_8812", "name": "Acme Bakery", "metadata": { "plan": "pro" }, "status": "active", "quotas": { "recipients_per_day": 5000, "recipients_per_second": 5, "burst": 50 }, "reputation": { "status": "good", "trigger": null, "changed_at": null, "reinstated_at": null }, "created_at": "2026-01-15T09:30:00.000Z", "updated_at": "2026-01-15T09:30:00.000Z"}