# Detect faces (no storage)

> Detect + quality-gate faces in an image WITHOUT storing anything (Rekognition DetectFaces). (POST /v1/detect)

Source: https://sightradar.com/docs/api/faces/detect-faces

Detect + quality-gate faces in an image WITHOUT storing anything
(Rekognition `DetectFaces`).

### Example request

```bash
curl -X POST "https://api.sightradar.com/v1/detect" \
  -H "Authorization: Bearer $SR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/photo.jpg"}'
```

### Parameters

| Name              | In     | Type     | Description                                                                                                                                                                                                                    |
| ----------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Idempotency-Key` | header | `string` | Opt-in idempotency. A replay under the same key is never re-charged. For a selfie register it returns 200 with the stored result (Idempotent-Replay: true) when the registration identity matches; every other op returns 409. |

### Request body (application/json)

| Field     | Type     | Description                      |
| --------- | -------- | -------------------------------- |
| `url`     | `string` | Public image URL.                |
| `gcsKey`  | `string` | Google Cloud Storage object key. |
| `photoId` | `string` | Optional per-image key.          |

Also accepts: `multipart/form-data`, `application/octet-stream`.

### Response body

| Field                 | Type       | Description |
| --------------------- | ---------- | ----------- |
| `detected_face_count` | `integer`  |             |
| `gated_face_count`    | `integer`  |             |
| `faces`               | `object[]` |             |

### Status codes

| Status | Meaning                                                   |
| ------ | --------------------------------------------------------- |
| `200`  | Detection result.                                         |
| `400`  | Cannot decode image, or no url/gcsKey/body provided.      |
| `401`  | Missing or invalid API key.                               |
| `402`  | Wallet balance too low for this operation.                |
| `429`  | Per-key RPS or per-customer concurrency limit exceeded.   |
| `502`  | Engine error (the credit hold is refunded automatically). |
