Set a tenant's ceilings (platform administrators)
const url = 'https://files.centralcodestation.com/api/v1/platform/tenants/example/settings';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"quota_bytes":1,"max_file_size_bytes":1,"allowed_types":["example"],"public_visibility_allowed":true,"share_links_allowed":true,"suspended":true,"note":"example","storage_account_id":"example","updated_at":"2026-04-15T12:00:00Z","updated_by":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://files.centralcodestation.com/api/v1/platform/tenants/example/settings \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "quota_bytes": 1, "max_file_size_bytes": 1, "allowed_types": [ "example" ], "public_visibility_allowed": true, "share_links_allowed": true, "suspended": true, "note": "example", "storage_account_id": "example", "updated_at": "2026-04-15T12:00:00Z", "updated_by": "example" }'A partial merge: quota (null = unlimited), max file size, allowed types, public visibility, share links, suspension, a note. Audited with before and after.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The Identity Server tenant id.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Null: unlimited.
Every new ticket answers 403 tenant_suspended; reads keep working.
Example generated
{ "quota_bytes": 1, "max_file_size_bytes": 1, "allowed_types": [ "example" ], "public_visibility_allowed": true, "share_links_allowed": true, "suspended": true, "note": "example", "storage_account_id": "example", "updated_at": "2026-04-15T12:00:00Z", "updated_by": "example"}Responses
Section titled “Responses”Success.
object
Null: unlimited.
Every new ticket answers 403 tenant_suspended; reads keep working.
Example generated
{ "quota_bytes": 1, "max_file_size_bytes": 1, "allowed_types": [ "example" ], "public_visibility_allowed": true, "share_links_allowed": true, "suspended": true, "note": "example", "storage_account_id": "example", "updated_at": "2026-04-15T12:00:00Z", "updated_by": "example"}Error. error is one of: invalid_request.
object
Stable snake_case error code.
Example
{ "status_code": 400, "error": "invalid_request", "message": "The request is malformed: a required field is missing, a value has the wrong type or format, or a field the route does not accept was sent", "path": "/api/v1/tenants/fitness-co/applications/fitness-app/files/01J9Z6S9Q5F5R6Y2W2GZ3B3K4D", "timestamp": "2026-10-22T09:12:33.120Z"}Error. error is one of: invalid_token.
object
Stable snake_case error code.
Example
{ "status_code": 401, "error": "invalid_token", "message": "The bearer token is missing, malformed, expired, signed by an unknown key, or has the wrong audience (`aud` must be `files-api`).", "path": "/api/v1/tenants/fitness-co/applications/fitness-app/files/01J9Z6S9Q5F5R6Y2W2GZ3B3K4D", "timestamp": "2026-10-22T09:12:33.120Z"}Error. error is one of: not_tenant_member, tenant_not_available, insufficient_scope, client_context_mismatch, files_access_not_granted, platform_admin_required.
object
Stable snake_case error code.
Example
{ "status_code": 403, "error": "not_tenant_member", "message": "The user is not an active member of the tenant in the URL.", "path": "/api/v1/tenants/fitness-co/applications/fitness-app/files/01J9Z6S9Q5F5R6Y2W2GZ3B3K4D", "timestamp": "2026-10-22T09:12:33.120Z"}Error. error is one of: not_found.
object
Stable snake_case error code.
Example
{ "status_code": 404, "error": "not_found", "message": "An id in the path is malformed, or the route does not exist.", "path": "/api/v1/tenants/fitness-co/applications/fitness-app/files/01J9Z6S9Q5F5R6Y2W2GZ3B3K4D", "timestamp": "2026-10-22T09:12:33.120Z"}Error. error is one of: rate_limited.
object
Stable snake_case error code.
Example
{ "status_code": 429, "error": "rate_limited", "message": "Too many requests in the current window; `retry_after` (and the `Retry-After` header) says when to retry.", "path": "/api/v1/tenants/fitness-co/applications/fitness-app/files/01J9Z6S9Q5F5R6Y2W2GZ3B3K4D", "timestamp": "2026-10-22T09:12:33.120Z"}Error. error is one of: identity_unavailable.
object
Stable snake_case error code.
Example
{ "status_code": 503, "error": "identity_unavailable", "message": "The service could not reach the Identity Server and has no fresh cached answer.", "path": "/api/v1/tenants/fitness-co/applications/fitness-app/files/01J9Z6S9Q5F5R6Y2W2GZ3B3K4D", "timestamp": "2026-10-22T09:12:33.120Z"}default
Section titled “default”Error: see error for the code.
object
Stable snake_case error code.
Example
{ "status_code": 403, "error": "invalid_request", "message": "This client is not bound to this tenant/application", "path": "/api/v1/tenants/t1/applications/a1/files/01J9Z6S9Q5F5R6Y2W2GZ3B3K4D"}