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

# Create a Model Distillation project

> Creates project version 1 and publishes its required initial routing configuration. Set project_mode to create for a new Forge project or import for an accessible existing one. Each Forge project can belong to exactly one Model Distillation project per entity. The path alias is the proxy model name clients send in inference requests and may differ from the Forge project name.



## OpenAPI

````yaml openapi/model-distillation/management.openapi.yaml PUT /projects/{alias}
openapi: 3.1.0
info:
  title: CoreWeave Model Distillation Management API
  version: 1.0.0
  description: |
    Manage providers, projects, routing versions, datasets, relabeling,
    fine-tunes, evaluations, and analytics. This is the same API used by
    Model Distillation.
servers:
  - url: https://forge.coreweave.com/api/distillation/v1
    description: Production
security:
  - WandbCredential: []
tags:
  - name: Providers
    description: OpenAI-compatible endpoints, credentials, model catalogs, and pricing.
  - name: Projects
    description: Stable project identity and project-level information.
  - name: Routing
    description: Versioned model targets, weights, and request parameters.
  - name: Datasets
    description: >-
      Reproducible data snapshots, entries, relabeling, and reusable model
      outputs.
  - name: Fine-tunes
    description: Supervised fine-tuning jobs and hosted model artifacts.
  - name: Evaluations
    description: Head-to-head, exact-match, and categorization evaluations.
  - name: Analytics
    description: Project traffic, token, error, and estimated-cost read models.
  - name: UI preferences
    description: Per-project display preferences used by the UI.
paths:
  /projects/{alias}:
    parameters:
      - $ref: '#/components/parameters/WandbEntity'
      - $ref: '#/components/parameters/ProjectAlias'
    put:
      tags:
        - Projects
      summary: Create a Model Distillation project
      description: >-
        Creates project version 1 and publishes its required initial routing
        configuration. Set project_mode to create for a new Forge project or
        import for an accessible existing one. Each Forge project can belong to
        exactly one Model Distillation project per entity. The path alias is the
        proxy model name clients send in inference requests and may differ from
        the Forge project name.
      operationId: createProject
      requestBody:
        required: true
        content:
          application/json:
            example:
              project: ticket-classifier
              project_mode: create
              proxy_backend: cloudflare
              targets:
                - model_ref: openai/gpt-5.6-sol
                  weight: 1
                  params_override: {}
            schema:
              type: object
              properties:
                project:
                  type: string
                  minLength: 1
                  maxLength: 128
                  description: >-
                    The one Forge project owned by this Model Distillation
                    project.
                project_mode:
                  type: string
                  enum:
                    - create
                    - import
                  description: >-
                    Create a new Forge project or import an existing accessible
                    Forge project.
                proxy_backend:
                  default: cloudflare
                  type: string
                  enum:
                    - cloudflare
                    - local
                trace_sampling_rate:
                  default: 1
                  type: number
                  minimum: 0
                  maximum: 1
                targets:
                  minItems: 1
                  type: array
                  items:
                    type: object
                    properties:
                      model_ref:
                        type: string
                        pattern: ^[a-z0-9][a-z0-9_-]{0,63}\/\S+$
                      weight:
                        type: number
                        minimum: 0
                      params_override:
                        default: {}
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                    required:
                      - model_ref
                      - weight
                    additionalProperties: false
                  description: >-
                    The initial routing configuration. A new project must route
                    traffic to at least one model.
              required:
                - project
                - project_mode
                - targets
              additionalProperties: false
      responses:
        '201':
          description: Created Model Distillation project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        default:
          $ref: '#/components/responses/Error'
components:
  parameters:
    WandbEntity:
      name: Wandb-Entity
      in: header
      required: false
      description: >-
        Accessible personal or team entity. Omit to use the authenticated user's
        default entity.
      schema:
        type: string
    ProjectAlias:
      name: alias
      in: path
      required: true
      schema:
        type: string
        pattern: ^[a-z0-9-]{1,64}$
  schemas:
    Project:
      type: object
      required:
        - id
        - entity
        - project
        - alias
        - proxy_backend
        - created_at
        - updated_at
        - versions
      properties:
        id:
          type: string
          format: uuid
        entity:
          type: string
        project:
          type: string
        alias:
          type: string
        proxy_backend:
          type: string
          enum:
            - cloudflare
            - local
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        versions:
          type: array
          items:
            $ref: '#/components/schemas/ProjectVersion'
    ProjectVersion:
      type: object
      required:
        - version
        - created_at
      properties:
        version:
          type: integer
          minimum: 1
        created_at:
          type: string
          format: date-time
        routing:
          oneOf:
            - $ref: '#/components/schemas/RoutingConfig'
            - type: 'null'
        deployment:
          oneOf:
            - $ref: '#/components/schemas/Deployment'
            - type: 'null'
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - message
            - type
          properties:
            message:
              type: string
            type:
              type: string
      example:
        error:
          message: Project 'missing' not found in entity 'your-team'
          type: not_found
    RoutingConfig:
      type: object
      additionalProperties: true
      required:
        - targets
      properties:
        targets:
          type: array
          items:
            $ref: '#/components/schemas/Target'
    Deployment:
      type: object
      required:
        - proxy_backend
        - status
      additionalProperties: true
      properties:
        proxy_backend:
          type: string
        status:
          type: string
          enum:
            - pending
            - applying
            - applied
            - failed
        applied_revision:
          type: integer
          nullable: true
        external_ref:
          type: string
          nullable: true
        last_error:
          type: string
          nullable: true
    Target:
      type: object
      additionalProperties: false
      required:
        - model_ref
        - weight
      properties:
        model_ref:
          $ref: '#/components/schemas/ModelRef'
        weight:
          type: number
          minimum: 0
        params_override:
          $ref: '#/components/schemas/JsonObject'
      example:
        model_ref: openai/gpt-5.6-sol
        weight: 1
        params_override:
          temperature: 0
    ModelRef:
      type: string
      pattern: ^[a-z0-9][a-z0-9_-]{0,63}/\S+$
      example: openai/gpt-5.6-sol
    JsonObject:
      type: object
      additionalProperties: true
  responses:
    Error:
      description: Request failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    WandbCredential:
      type: http
      scheme: bearer
      bearerFormat: wandb API key or JWT
      description: >-
        A wandb API key or wandb JWT. Browser sessions are exchanged by the
        Model Distillation web app backend; job capabilities are internal only.

````