---
title: "Upserts a training project in a specific team"
method: POST
path: "/v1/teams/{team_id}/training_projects"
---

# Upserts a training project in a specific team

`POST /v1/teams/{team_id}/training_projects`

Upserts a training project with the specified metadata for a team.

## Request body

- UpsertTrainingProjectRequestV1 — A request to upsert a training project.
  - `training_project` UpsertTrainingProjectV1, required — Fields that can be upserted on a training project.
    - `name` string, required — Name of the training project.

## Response `200`

- UpsertTrainingProjectResponseV1 — A response to upserting a training project.
  - `training_project` TrainingProjectV1, required
    - `id` string, required — Unique identifier of the training project
    - `name` string, required — Name of the training project.
    - `created_at` string, date-time, required — Time the training project was created in ISO 8601 format.
    - `updated_at` string, date-time, required — Time the training project was updated in ISO 8601 format.
    - `team_name` string, nullable — Name of the team associated with the training project.
    - `latest_job` TrainingJobV1, required
      - `id` string, required — Unique identifier of the training job.
      - `created_at` string, date-time, required — Time the job was created in ISO 8601 format.
      - `current_status` string, required — Current status of the training job.
      - `error_message` string, nullable — Error message if the training job failed.
      - `instance_type` InstanceTypeV1, required — An instance type.
        - `id` string, required — Identifier string for the instance type
        - `name` string, required — Display name of the instance type
        - `memory_limit_mib` integer, required — Memory limit of the instance type in Mebibytes
        - `millicpu_limit` integer, required — CPU limit of the instance type in millicpu
        - `gpu_count` integer, required — Number of GPUs on the instance type
        - `gpu_type` string, nullable, required — Type of GPU on the instance type
        - `gpu_memory_limit_mib` integer, nullable, required — Memory limit of the GPU on the instance type in Mebibytes
      - `updated_at` string, date-time, required — Time the job was updated in ISO 8601 format.
      - `training_project_id` string, required — ID of the training project.
      - `training_project` TrainingProjectSummaryV1, required — A summary of a training project.
        - `id` string, required — Unique identifier of the training project.
        - `name` string, required — Name of the training project.
      - `name` string, nullable — Name of the training job.
      - `checkpoint_sync_status` 'SYNCING' | 'COMPLETED' — Lifecycle state for the checkpoint uploader.
      - `priority` integer — Queue priority. Higher values are dequeued first. NULL is treated as 0.
      - `availability_model` 'dedicated' | 'spot' — Capacity guarantee under which a training job is scheduled. ``DEDICATED`` is on-demand capacity that is not preempted (the default). ``SPOT`` is interruptible capacity that may be preempted; the user is responsible for checkpointing their own progress. A managed/resumable model where the platform handles checkpoint/resume on its own is intentionally not defined yet; it is planned for a future milestone.
      - `user` UserV1 — A user.
        - `email` string, nullable — Email of the user.

---

[API](https://skmtc.net/baseten/apis/baseten-inference-api.md) · [All operations](https://skmtc.net/baseten/apis/baseten-inference-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/baseten/baseten-inference-api/revisions/a55a2f64c3c5/schema)
