> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mixpeek.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Organization Targets

> Get this organization's resource + SLO targets.

Tenancy (dedicated vs shared) is resolved SERVER-SIDE from the org —
never from a client-supplied header (BACKE-2564). ``targets_writable``
is the capability flag a client should read rather than infer from
``plane``: shared-plane orgs are always read-only by platform policy;
dedicated orgs may write once the write path ships (not this
endpoint).



## OpenAPI

````yaml get /v1/organizations/targets
openapi: 3.1.0
info:
  title: Mixpeek API
  description: >-
    This is the Mixpeek API, providing access to various endpoints for data
    processing and retrieval.
  termsOfService: https://mixpeek.com/terms
  contact:
    name: Mixpeek Support
    url: https://mixpeek.com/contact
    email: info@mixpeek.com
  version: '0.82'
servers:
  - url: https://api.mixpeek.com
    description: Production
security:
  - BearerAuth: []
paths:
  /v1/organizations/targets:
    get:
      tags:
        - Organization Targets
      summary: Get Organization Targets
      description: |-
        Get this organization's resource + SLO targets.

        Tenancy (dedicated vs shared) is resolved SERVER-SIDE from the org —
        never from a client-supplied header (BACKE-2564). ``targets_writable``
        is the capability flag a client should read rather than infer from
        ``plane``: shared-plane orgs are always read-only by platform policy;
        dedicated orgs may write once the write path ships (not this
        endpoint).
      operationId: get_organization_targets_v1_organizations_targets_get
      parameters: []
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TargetSpec'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    TargetSpec:
      properties:
        internal_id:
          type: string
          title: Internal Id
        plane:
          type: string
          enum:
            - shared
            - dedicated
          title: Plane
        resource_targets:
          items:
            $ref: '#/components/schemas/ResourceTarget'
          type: array
          title: Resource Targets
        slo_targets:
          items:
            $ref: '#/components/schemas/SLOTarget'
          type: array
          title: Slo Targets
        is_platform_default:
          type: boolean
          title: Is Platform Default
          description: >-
            True when no org-specific TargetSpec has been written yet and these
            values are the platform default band for this org's plane. Always
            true today — no write path exists.
        targets_writable:
          type: boolean
          title: Targets Writable
          description: >-
            Whether this org CAN write its own TargetSpec (once the write path
            ships). Always false for shared-plane orgs by design, regardless of
            is_platform_default.
      type: object
      required:
        - internal_id
        - plane
        - resource_targets
        - slo_targets
        - is_platform_default
        - targets_writable
      title: TargetSpec
      description: |-
        Per-tenant (or plane) resource targets + SLO block.

        TENANCY RULE (Ethan 2026-07-31, baked into the audit): dedicated
        tenants get write access to their own TargetSpec (once the write path
        ships — not this card); shared tenants are read-only, scoped to their
        own workloads, and cannot set utilization targets at all — shared-plane
        targets are platform policy, since one tenant's aggressiveness is
        another tenant's starvation.

        ``targets_writable`` is an explicit CAPABILITY the client reads rather
        than infers from ``plane`` (studio-plg's binding contract note,
        2026-08-03): the client will not reconstruct dedicated-vs-shared logic
        itself.
    ErrorResponse:
      properties:
        success:
          type: boolean
          title: Success
          description: Always false for error responses
          default: false
        status:
          type: integer
          title: Status
          description: HTTP status code for this error
        error:
          $ref: '#/components/schemas/ErrorDetail'
          description: Error details payload
      type: object
      required:
        - status
        - error
      title: ErrorResponse
      description: Error response model.
      examples:
        - error:
            details:
              id: ns_123
              resource: namespace
            message: Namespace not found
            type: NotFoundError
          status: 404
          success: false
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ResourceTarget:
      properties:
        dimension:
          $ref: '#/components/schemas/ResourceDimension'
        target_min:
          type: number
          title: Target Min
          description: Lower bound of the target band.
        target_max:
          type: number
          title: Target Max
          description: Upper bound of the target band.
        unit:
          type: string
          enum:
            - ratio
            - count
          title: Unit
          description: >-
            'ratio' for a 0-1 utilization fraction, 'count' for a unit quantity
            (e.g. Ray replicas).
      type: object
      required:
        - dimension
        - target_min
        - target_max
        - unit
      title: ResourceTarget
      description: |-
        A target range for one resource dimension. ``target_min``/
        ``target_max`` bound the band a controller should hold the resource
        inside — below is over-provisioned (safe, wastes money), above is HOT
        (unsafe), matching the semantics already established in
        operations/finances/utilization_convergence.py's TENANCY_BANDS.
    SLOTarget:
      properties:
        surface:
          $ref: '#/components/schemas/SLOSurface'
        p95_latency_ms_target:
          anyOf:
            - type: number
            - type: 'null'
          title: P95 Latency Ms Target
          description: Target p95 latency in milliseconds for this surface.
        error_budget_pct:
          anyOf:
            - type: number
            - type: 'null'
          title: Error Budget Pct
          description: Target maximum error rate (percent) for this surface.
      type: object
      required:
        - surface
      title: SLOTarget
      description: |-
        The SLO block for one surface. Both fields are nullable — G3
        (latency/error SLO layer) has not declared numeric targets for any
        surface yet; a null here is honest ("nothing declared"), not a
        fabricated default the way resource targets can safely default from
        the existing tenancy bands.
    ErrorDetail:
      properties:
        message:
          type: string
          title: Message
          description: Human-readable error message
        type:
          type: string
          title: Type
          description: Stable error type identifier (machine-readable)
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
          description: >-
            Fine-grained error code for programmatic handling (e.g.,
            namespace_name_taken, feature_extractor_not_found). Present only
            when consumers may need to branch on a specific error condition.
        details:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Details
          description: >-
            Optional structured details to help debugging (validation errors,
            IDs, etc.)
      type: object
      required:
        - message
        - type
      title: ErrorDetail
      description: Error detail model.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    ResourceDimension:
      type: string
      enum:
        - cpu_utilization
        - mem_utilization
        - gpu_duty_cycle
        - ray_replicas
      title: ResourceDimension
      description: |-
        The resource dimensions the audit names as in scope for phase 1
        (§5, proposed shape). Per-extractor/per-serve-instance granularity is
        deliberately deferred (G8) — same doctrine BACKE-3125's rollup already
        applied to SLO surfaces.
    SLOSurface:
      type: string
      enum:
        - indexing
        - retrieval
        - clustering
      title: SLOSurface
      description: |-
        The three surfaces BACKE-3125's SLO rollup already computes
        attainment INPUTS for — kept identical here so a future attainment
        computation (reading both TargetSpec and slo_rollup_hourly) never has
        to reconcile two different surface vocabularies.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Mixpeek API key, sent as `Authorization: Bearer mxp_sk_...`. Create one
        in Studio under Settings → API Keys, or with an admin key via `POST
        /v1/organizations/users/{user_email}/api-keys`. A missing header returns
        403; an invalid or revoked key returns 401.

````