/organizationUpdate the caller's organizationUpdates the whitelisted fields on the caller's organization. Only name, defaultTimezone, and defaultCurrency are writable.
plan is billing-bound — an attempt to update it is rejected with 400 invalid_argument rather than silently ignored, so a partner misreading the spec gets a clear error rather than a false sense of success. slug is stable for the same reason — changing it breaks dashboard deep links and other external references. Both return 400 when present in the body.
Other unknown fields are silently ignored.
Request body
requiredapplication/json
PATCH-style update. Only `name`, `defaultTimezone`, and `defaultCurrency` are writable. `plan` and `slug` in the body are explicitly rejected with `400 invalid_argument`.
defaultCurrencystringdefaultTimezonestringnamestring{
"defaultCurrency": "string",
"defaultTimezone": "string",
"name": "string"
}Responses
Headers
X-RateLimit-LimitThe request cap for the tighter of the per-organization / per-endpoint windows that applied to this request.
X-RateLimit-RemainingRequests remaining in the current window.
X-RateLimit-ResetUnix timestamp (seconds) when the current window resets.
allOf · 2 options
datavaluerequiredThe response payload — shape depends on the endpoint.
metaobjectrequiredPagination metadata — populated on list endpoints, empty on single-resource endpoints.
Show child attributes
cursornull | stringOpaque cursor to pass to the next request.
hasMoreboolean | nullTrue when further pages of results are available.
dataobjectThe caller's organization. `plan` and `rateLimits` currently return stubbed defaults (`"free"` and the system-wide caps); see the description on `GET /organization` for the gap.
Show child attributes
createdAtstring · date-timerequireddefaultCurrencystringrequiredThree-letter ISO-4217 currency used for revenue displays.
defaultTimezonestringrequiredIANA timezone used for report aggregation.
idstring · uuidrequirednamestringrequiredplanstringrequiredBilling plan. Read-only on the public API.
rateLimitsobjectrequiredRate-limit caps applying to the organization. Currently reflects the system defaults; per-organization overrides are a tracked follow-up.
Show child attributes
endpointPerMinuteintegerrequiredRequests per minute for any single endpoint.
organizationPerMinuteintegerrequiredRequests per minute across the entire organization.
slugnull | stringURL-friendly short identifier. Read-only on the public API.
updatedAtstring · date-timerequired{
"data": {
"createdAt": "2026-06-09T00:00:00Z",
"defaultCurrency": "EUR",
"defaultTimezone": "Europe/Amsterdam",
"id": "00000000-0000-0000-0000-000000000000",
"name": "Acme Inc.",
"plan": "free",
"rateLimits": {
"endpointPerMinute": 50,
"organizationPerMinute": 100
},
"slug": "acme",
"updatedAt": "2026-06-09T00:00:00Z"
},
"meta": {
"cursor": "string",
"hasMore": true
}
}errorobjectrequiredShow child attributes
codestringrequiredMachine-readable error category.
detailsobjectOptional per-code context (field names, retry windows, …).
messagestringrequiredHuman-readable description — intended for operator logs, not end-user display.
{
"error": {
"code": "invalid_argument",
"message": "limit must be an integer between 1 and 100"
}
}errorobjectrequiredShow child attributes
codestringrequiredMachine-readable error category.
detailsobjectOptional per-code context (field names, retry windows, …).
messagestringrequiredHuman-readable description — intended for operator logs, not end-user display.
{
"error": {
"code": "unauthorized",
"message": "Authentication required"
}
}Headers
Retry-AfterSeconds the client should wait before retrying.
errorobjectrequiredShow child attributes
codestringrequiredMachine-readable error category.
detailsobjectOptional per-code context (field names, retry windows, …).
messagestringrequiredHuman-readable description — intended for operator logs, not end-user display.
{
"error": {
"code": "rate_limited",
"details": {
"retry_after_seconds": 30
},
"message": "Rate limit exceeded"
}
}