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

# Delete a family

> Delete a family. One no model ever joined goes, and its name is free again. A model
that failed its gate never joined. Otherwise every model of its line goes with it,
discarded ones included, and you can't bring them back. Its name is never given again,
and calls to it, and reads and changes of it, get 410 family_deleted. Its dataset and
its fine-tunes, with their charges, stay. 409 family_answers while it or one of its
models answers calls, naming them: switch them off first. 409 family_training while one
of its fine-tunes is queued or running, and 409 version_in_use while an evaluation
scores one of its models. With `dataset_id`, the dataset the family grew on when the
caller looked, only while it still does, and with `latest`, the id of its latest model
the caller saw, only while it still is: 409 family_changed otherwise. Deleting a family
a model joined again changes nothing; an empty one is gone, so it gets 404 not_found.



## OpenAPI

````yaml /openapi.json delete /v1/families/{family}
openapi: 3.1.0
info:
  title: DecisionOne workbench
  description: >-
    Native decisions, versioned datasets, adaptation and shared-base deployment.
    Authenticate with `Authorization: Bearer d1_sk_...` when accounts are on. A
    short guide for coding agents is at /llms.txt. Hosted account APIs accept a
    Bearer API key or a browser session. An API key reads its account but can't
    change it: keys, billing and settings change in the console. Browser
    mutations require the configured Origin and X-CSRF-Token from /auth/session.
    Account recovery and history remain available to blocked accounts.
    Waitlisted accounts can read their account summary and model catalogue and
    request early access; private member APIs require admission. Money fields
    ending in _usd are exact decimal strings; never interpret them as integer
    cents. Authenticated customer reads and existing-operation replays share
    read_rpm, and other customer writes except decisions and estimates share
    write_rpm. Exhausted budgets return 429 with Retry-After; unavailable
    admission storage returns 503.
  version: 0.1.0
servers:
  - url: https://console.sqwish.ai
security: []
tags:
  - name: Decisions
    description: Probabilities for questions with fixed outcomes.
  - name: Models
    description: Base models, adapters and named models with versions.
  - name: Families
    description: >-
      Lines of models trained on one dataset, and the switches that let them
      answer calls.
  - name: Datasets
    description: >-
      Validated training examples. A dataset grows in versions, and a version
      never changes.
  - name: Evaluations
    description: Reusable model results on a dataset's fixed evaluation rows.
  - name: Fine-tuning
    description: Training jobs, their events and held-out results.
  - name: Prompt tuning
    description: Better wording for a decision, tested on your rows. Words, not weights.
  - name: Labeling
    description: Teacher labels for real queries, reviewed by you.
  - name: Accounts
    description: Email OTP sign-in, revocable sessions, security and API keys.
  - name: Billing
    description: Exact USD balances, purchases, automatic top-ups and referrals.
  - name: Integrations
    description: Endpoints other tools call, such as Claude Code.
  - name: System
    description: Health and discovery.
paths:
  /v1/families/{family}:
    delete:
      tags:
        - Families
      summary: Delete a family
      description: >-
        Delete a family. One no model ever joined goes, and its name is free
        again. A model

        that failed its gate never joined. Otherwise every model of its line
        goes with it,

        discarded ones included, and you can't bring them back. Its name is
        never given again,

        and calls to it, and reads and changes of it, get 410 family_deleted.
        Its dataset and

        its fine-tunes, with their charges, stay. 409 family_answers while it or
        one of its

        models answers calls, naming them: switch them off first. 409
        family_training while one

        of its fine-tunes is queued or running, and 409 version_in_use while an
        evaluation

        scores one of its models. With `dataset_id`, the dataset the family grew
        on when the

        caller looked, only while it still does, and with `latest`, the id of
        its latest model

        the caller saw, only while it still is: 409 family_changed otherwise.
        Deleting a family

        a model joined again changes nothing; an empty one is gone, so it gets
        404 not_found.
      operationId: deleteFamily
      parameters:
        - name: family
          in: path
          required: true
          schema:
            type: string
            title: Family
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
                - $ref: '#/components/schemas/FamilyDelete'
                - type: 'null'
              title: Body
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: string
                    title: Id
                  object:
                    type: string
                    const: family
                    title: Object
                  deleted:
                    const: true
                    title: Deleted
                    type: boolean
                required:
                  - id
                  - object
                  - deleted
                title: DeletedFamily
                type: object
        4XX:
          description: >-
            Client error. On a 422, `error.details` lists each field that
            failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        5XX:
          description: Server error. A 503 names what is not running on this server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    FamilyDelete:
      properties:
        dataset_id:
          anyOf:
            - type: string
              maxLength: 140
            - type: 'null'
          title: Dataset Id
          description: >-
            The dataset the family grew on when the caller looked: refused with
            family_changed unless it still does, as a family deleted and named
            again on another dataset doesn't.
        latest:
          anyOf:
            - type: string
              maxLength: 140
            - type: 'null'
          title: Latest
          description: >-
            The id of the family's latest model the caller saw, or null for
            none: refused with family_changed if it has another since, as when a
            model joined it, so a delete never takes a model the caller didn't
            see.
      additionalProperties: false
      type: object
      title: FamilyDelete
    ErrorResponse:
      description: >-
        The body of every error. app.failure() builds it; this model documents
        it.
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
      required:
        - error
      title: ErrorResponse
      type: object
    ErrorBody:
      properties:
        code:
          description: A stable code to branch on, such as invalid_request.
          title: Code
          type: string
        message:
          description: What went wrong and what to change, in plain words.
          title: Message
          type: string
        retryable:
          description: >-
            True when another attempt may succeed; it does not prove that no
            work was done. Respect Retry-After when present. Only operations
            that support Idempotency-Key replay a prior result, including
            /v1/decide for 24 hours.
          title: Retryable
          type: boolean
        request_id:
          description: Also sent as X-Request-ID. Quote it in bug reports.
          title: Request Id
          type: string
        details:
          anyOf:
            - items:
                $ref: '#/components/schemas/ErrorDetail'
              type: array
            - type: 'null'
          default: null
          description: On validation errors, one entry for each field that failed.
          title: Details
      required:
        - code
        - message
        - retryable
        - request_id
      title: ErrorBody
      type: object
    ErrorDetail:
      properties:
        path:
          description: Where the problem is, such as ["body", "decisions", 0, "outcomes"].
          items:
            anyOf:
              - type: string
              - type: integer
          title: Path
          type: array
        message:
          title: Message
          type: string
        type:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Type
      required:
        - path
        - message
      title: ErrorDetail
      type: object
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: d1_sk_...
      description: Create an API key in the console. Required when accounts are enabled.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.