---
title: "Create or update a label"
method: POST
path: "/compat/v2/labels/upsertLabel"
tags: ["labels"]
---

# Create or update a label

`POST /compat/v2/labels/upsertLabel`

## Request body

- object
  - `title` string, required
  - `labelGroupId` string, uuid, nullable — The label group to assign this label to. Null for no group, undefined to leave unchanged if-exists
  - `addToRecipeIds` string[], nullable, required

## Response `200`

Successful response

- object
  - `id` string, uuid, required
  - `userId` string, uuid, required
  - `title` string, required
  - `createdAt` string, required
  - `updatedAt` string, required
  - `labelGroupId` string, uuid, nullable, required
  - `labelGroup` object, nullable, required
    - `id` string, uuid, required
    - `userId` string, uuid, required
    - `title` string, required
    - `warnWhenNotPresent` boolean, required
    - `createdAt` string, required
    - `updatedAt` string, required
  - `_count` object, required
    - `recipeLabels` integer, required

## Other responses

- `400` — Invalid input data
- `401` — Authorization not provided
- `403` — Insufficient access
- `500` — Internal server error

---

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