---
title: "Update Organization"
method: PATCH
path: "/v1/organizations"
tags: ["Organizations"]
---

# Update Organization

`PATCH /v1/organizations`

Update organization settings (requires ADMIN permission).

Security: Infrastructure configuration cannot be modified via this endpoint.
Infrastructure updates require Mixpeek admin access via private endpoints.

## Request body

- OrganizationUpdateRequest — Partial update payload for organization metadata.
  - `organization_name` string, nullable — Updated display name for the organization.
  - `logo_url` string, nullable — Updated organization logo URL (e.g., custom logo to override auto-generated logo).
  - `billing_email` string, email, nullable — Updated billing contact email.
  - `notifications_email` string, email, nullable — Set the opt-in single address that receives alert/system notifications (None leaves it unchanged via exclude_unset).
  - `metadata` object, nullable — Replace metadata with provided dictionary when set.
  - `rate_limit_overrides` BaseRateLimits — Rate limits by operation type (requests per minute). The rate limiting system uses 5 categories aligned with actual resource consumption: Categories: metadata: Infrastructure and configuration operations (namespaces, collections, retrievers, taxonomies, clusters CRUD). Zero-credit operations with highest rate limits. data: Data operations (objects, documents CRUD). Low-credit operations with high rate limits. search: Search and retrieval operations (retriever/taxonomy execution). Medium-credit operations with moderate rate limits. upload: File upload operations (credit-intensive: 1 credit/MB). Variable-credit operations with lower rate limits. compute: Compute operations (cluster execution, batch processing). High-credit operations (10 credits/min video) with lowest rate limits. Rate Limit Strategy: Higher limits for low-cost operations (metadata, data) Lower limits for high-cost operations (upload, compute) This aligns API throttling with actual infrastructure costs Examples: - Creating a namespace: Uses 'metadata' category (fast, cheap) - Uploading a file: Uses 'upload' category (slow, expensive per MB) - Executing a retriever: Uses 'search' category (moderate cost) - Running batch processing: Uses 'compute' category (very expensive)
    - `metadata` integer — REQUIRED. Rate limit for infrastructure and configuration operations (namespaces, collections, retrievers, taxonomies, clusters CRUD). These are zero-credit operations with highest rate limits since they're cheap to execute. Examples: creating collections, updating retrievers, listing namespaces.
    - `data` integer — REQUIRED. Rate limit for data operations (objects, documents CRUD). Low-credit operations with high rate limits. Examples: creating documents, updating objects, batch document updates.
    - `search` integer — REQUIRED. Rate limit for search and retrieval operations (retriever/taxonomy execution). Medium-credit operations with moderate rate limits. Examples: executing retrievers, running taxonomy matching.
    - `upload` integer — REQUIRED. Rate limit for file upload operations. Credit-intensive (1 credit/MB) with lower rate limits to prevent excessive resource consumption. Examples: uploading files, generating presigned URLs.
    - `compute` integer — REQUIRED. Rate limit for compute operations (cluster execution, batch processing). High-credit operations (10 credits/min video) with lowest rate limits. Examples: submitting batches, executing clusters, triggering syncs.
  - `default_llm_credentials` object, nullable — Map of provider names to secret names for org-wide LLM credentials.
  - `nsfw_check_enabled` boolean, nullable — Toggle NSFW upload classification + hard-reject for this organization. Applies only to SHARED-plane tenants (infrastructure is None). None leaves the current setting unchanged.
  - `nsfw_fail_closed` boolean, nullable — Toggle fail-closed behaviour for the NSFW gate (reject uploads when the classifier is unavailable instead of allowing them). None leaves the current setting unchanged.

## Response `200`

Successful Response

- OrganizationModelResponse — Response model for organization endpoints. SECURITY: Does NOT expose internal_id to prevent leakage of high-entropy secrets. Only organization_id (public identifier) is included in API responses.
  - `organization_id` string, required
  - `organization_name` string, required
  - `logo_url` string, nullable
  - `account_type` 'build' | 'scale' | 'enterprise' | 'free' | 'pro' | 'team', required — Account tier (2026-07 pricing overhaul). Current tiers (CC-required, tier minimum is a billing floor): BUILD: $25/mo min — 100K objects/mo (managed) / 1M vectors (MVS) SCALE: $250/mo min — 1M objects/mo (managed) / 25M vectors (MVS) ENTERPRISE: Custom — dedicated compute, SLA LEGACY tiers — still stored on unmigrated orgs; resolvable until the Phase-4 migration completes (do NOT remove before then — org records in Mongo carry these strings): FREE (→ Build or read-only), PRO (→ Build), TEAM (→ Scale)
  - `credit_count` integer, required
  - `effective_monthly_credit_cap` integer, nullable
  - `onboarding_answers` object, nullable
  - `metadata` object
  - `billing_email` string, email, nullable
  - `notifications_email` string, email, nullable
  - `rate_limits` BaseRateLimits, required — Rate limits by operation type (requests per minute). The rate limiting system uses 5 categories aligned with actual resource consumption: Categories: metadata: Infrastructure and configuration operations (namespaces, collections, retrievers, taxonomies, clusters CRUD). Zero-credit operations with highest rate limits. data: Data operations (objects, documents CRUD). Low-credit operations with high rate limits. search: Search and retrieval operations (retriever/taxonomy execution). Medium-credit operations with moderate rate limits. upload: File upload operations (credit-intensive: 1 credit/MB). Variable-credit operations with lower rate limits. compute: Compute operations (cluster execution, batch processing). High-credit operations (10 credits/min video) with lowest rate limits. Rate Limit Strategy: Higher limits for low-cost operations (metadata, data) Lower limits for high-cost operations (upload, compute) This aligns API throttling with actual infrastructure costs Examples: - Creating a namespace: Uses 'metadata' category (fast, cheap) - Uploading a file: Uses 'upload' category (slow, expensive per MB) - Executing a retriever: Uses 'search' category (moderate cost) - Running batch processing: Uses 'compute' category (very expensive)
    - `metadata` integer — REQUIRED. Rate limit for infrastructure and configuration operations (namespaces, collections, retrievers, taxonomies, clusters CRUD). These are zero-credit operations with highest rate limits since they're cheap to execute. Examples: creating collections, updating retrievers, listing namespaces.
    - `data` integer — REQUIRED. Rate limit for data operations (objects, documents CRUD). Low-credit operations with high rate limits. Examples: creating documents, updating objects, batch document updates.
    - `search` integer — REQUIRED. Rate limit for search and retrieval operations (retriever/taxonomy execution). Medium-credit operations with moderate rate limits. Examples: executing retrievers, running taxonomy matching.
    - `upload` integer — REQUIRED. Rate limit for file upload operations. Credit-intensive (1 credit/MB) with lower rate limits to prevent excessive resource consumption. Examples: uploading files, generating presigned URLs.
    - `compute` integer — REQUIRED. Rate limit for compute operations (cluster execution, batch processing). High-credit operations (10 credits/min video) with lowest rate limits. Examples: submitting batches, executing clusters, triggering syncs.
  - `auto_billing_enabled` boolean
  - `billing_cycle_start` integer
  - `current_month_usage` integer
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `users` object[], nullable
  - `auth_provider_org_id` string, nullable
  - `default_llm_credentials` object
  - `api_url` string, nullable
  - `requires_plan` boolean — True when this workspace must pick a plan before it can create namespaces or run billable work. When gated, write endpoints return 403 PlanRequiredError with a link to https://studio.mixpeek.com/signup/plan.
  - `is_internal` boolean — True when this org is Mixpeek-internal (team/dogfood/ops), derived server-side at read time. Analytics consumers should exclude internal orgs from customer metrics.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/mixpeek/apis/mixpeek-api.md) · [All operations](https://skmtc.net/mixpeek/apis/mixpeek-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mixpeek/mixpeek-api/versions/5d4c905106b4/schema)
