---
title: "Label a conversation for a custom signal"
method: POST
path: "/api/v1/data/custom-signals/{id}/labels"
---

# Label a conversation for a custom signal

`POST /api/v1/data/custom-signals/{id}/labels`

## Request

- Base URL: `https://moda.dev`
- URL: `https://moda.dev/api/v1/data/custom-signals/{id}/labels`
- Auth: API key in header `x-api-key`

Records a Fits / Doesn't fit example for one conversation. Record-only: the summary is frozen and saved but no revision proposal is generated. Optional criteria / verdict provenance must agree with the label ((fail, accept) is fits, (pass, accept) is does_not_fit; a reject is never an example) or the request is a 400 label_mismatch. Limited to 10 requests per minute per API key.

## Path parameters

- `id` string, required

## Request body

- object
  - `conversation_id` string, required
  - `label` 'fits' | 'does_not_fit', required
  - `msg_index` integer
  - `msg_dedup_token` string
  - `note` string
  - `criteria` 'pass' | 'fail'
  - `verdict` 'accept' | 'reject'

## Response `201`

Successful response.

- object: The recorded example (conversation, label, anchor, blurb).

## Other responses

- `401`: The x-api-key header is missing, invalid, or revoked.
- `404`: The requested resource was not found.

---

[API](https://skmtc.dev/moda-dev/apis/moda-data-api.md) - [All operations](https://skmtc.dev/moda-dev/apis/moda-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/moda-dev/apis/moda-data-api/revisions/19a11ad88cf6?raw)
