---
title: "Upsert system version"
method: POST
path: "/systems/{systemId}/versions"
---

# Upsert system version

`POST /systems/{systemId}/versions`

Create a new system version if it does not already exist. Does **not** set the created version to be the system's production version.

If there is already a system version with the same config, its name will be updated.

## Path parameters

- `systemId` string, uuid, required

## Request body

- object
  - `config` object, required — The configuration of the system version.
  - `name` string — The name of the system version. If creating a new system version and the name isn't provided, it will be autogenerated.

## Response `200`

Successfully upserted system version.

- SystemVersion — A SystemVersion defines the specific settings for a System Under Test. System versions contain parameter values that determine system behavior during evaluation. They are immutable snapshots - once created, they never change. When running evaluations, you reference a specific systemVersionId to establish which system version to test.
  - `id` string, uuid, required — The ID of the system version.
  - `systemId` string, uuid, required — The ID of the system the system version belongs to.
  - `name` string, required — The name of the system version.
  - `config` object, required — The configuration of the system version.

## Other responses

- `401` — Error indicating that the request is not authenticated.
- `500` — An internal service error indicating an issue with the Scorecard service.

## Changes

- **2025-06-27** `013895a80cfe` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/scorecard-ai/apis/scorecard-api/changes/systems/:systemId/versions/post.md)

---

[API](https://skmtc.dev/scorecard-ai/apis/scorecard-api.md) · [All operations](https://skmtc.dev/scorecard-ai/apis/scorecard-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/scorecard-ai/scorecard-api/revisions/121aaa257802/schema)
