---
title: "Create or update a label set"
method: POST
path: "/v3/label-sets"
tags: ["Labeling Curation"]
---

# Create or update a label set

`POST /v3/label-sets`

Upserts label-set metadata. Platform operators only.

## Request body

- LabelSetRequest
  - `id` string, required
  - `name` string, required
  - `description` string, nullable

## Response `201`

Label set created or updated.

- object
  - `data` LabelSet, required
    - `id` string, required
    - `name` string, required
    - `description` string, nullable, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `meta` PaginationMeta, required
    - `total` integer — Exact total count when the endpoint provides one.
    - `hasMore` boolean — Indicates whether another page exists beyond the current page.
    - `offset` integer
    - `limit` integer — Echoed page size after endpoint-side clamping.
    - `timestamp` string, date-time, required
    - `chainId` string — Comma-separated chain IDs for multi-chain responses.
    - `degradedProviders` string[] — Live providers whose data is incomplete in this response.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `422` — Validation error
- `500` — Internal server error

---

[API](https://skmtc.dev/euler/apis/euler-data-api-v3.md) · [All operations](https://skmtc.dev/euler/apis/euler-data-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/euler/euler-data-api-v3/revisions/9573a5fbd4a6/schema)
