---
title: "Identify speaker with diarization"
method: POST
path: "/v1/identify"
tags: ["Api", "Operations"]
---

# Identify speaker with diarization

`POST /v1/identify`

## Request body

- IdentifyRequest
  - `url` string — URL of the audio file to be processed
  - `webhook` string — Webhook URL to receive results when job is completed (optional)
  - `webhookStatusOnly` boolean — When true, webhook payload only includes jobId and status (excludes output). Useful for large payloads.
  - `model` 'precision-2', nullable
  - `numSpeakers` number — Number of speakers. Only use if the number of speakers is known in advance. Number of speakers is detected automatically if not provided. Setting this value results in better overall diarization performance. In rare cases where we cannot honor this request (e.g. short files and large number of speakers), a warning will be added to the output. Equivalent to sending minSpeakers==maxSpeakers
  - `minSpeakers` number — Minimum number of speakers (must be <= maxSpeakers if both are set)
  - `maxSpeakers` number — Maximum number of speakers (must be >= minSpeakers if both are set)
  - `turnLevelConfidence` boolean, nullable — Includes turn-level confidence values in the output.
  - `exclusive` boolean — Includes exclusive diarization values in the output in `exclusiveDiarization` key (equivalent to diarization but without overlapping speech).
  - `confidence` boolean — Include confidence values in the output. Output is considerably larger when this option is enabled. Output includes a list of confidence scores with a resolution.
  - `matching` MatchingOptions
    - `exclusive` boolean, nullable — Prevent multiple speakers from being matched to the same voiceprint. Default to true
    - `threshold` number, float, nullable — Prevent matching if confidence score is below this threshold. Value is between 0 and 100. Default is 0, meaning all voiceprints are matched
  - `voiceprints` Voiceprint[], required — List of voiceprints to identify against
    - `label` string, required — Label for the speaker. Labels can't start with "SPEAKER_"
    - `voiceprint` string, string, required — Voiceprint of a speaker

## Response `200`

- JobCreated
  - `jobId` string, required — ID of the job
  - `status` 'pending' | 'created' | 'succeeded' | 'canceled' | 'failed' | 'running', required — Status of the job
  - `warning` string — Warning message if any

## Other responses

- `400` — Invalid request
- `402` — Subscription is required
- `429` — Too many requests

---

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