> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# आयु अनुमान रिपोर्ट: JSON स्कीमा और फ़ील्ड

> Didit आयु अनुमान रिस्पॉन्स समझें: अनुमानित आयु, लाइवनेस स्कोर, अस्वीकृति थ्रेशोल्ड और चेतावनियाँ। प्रति-कॉल $0.10 से शुरू।

आयु अनुमान रिपोर्ट किसी छवि में पहचाने गए सबसे बड़े चेहरे के लिए मॉडल द्वारा अनुमानित आयु (वर्षों में) को कैप्चर करती है, साथ ही एक पैसिव लाइवनेस जांच भी करती है जो यह पुष्टि करती है कि विषय कोई फ़ोटो, स्क्रीन या मास्क होने के बजाय एक वास्तविक व्यक्ति है। ये दोनों जांचें हमेशा एक साथ चलती हैं — आयु अनुमान कभी भी लाइवनेस स्कोर के बिना आयु वापस नहीं करता है।

यह पेज दोनों कॉल पाथ द्वारा लौटाए गए JSON आकार का विवरण प्रस्तुत करता है: स्टैंडअलोन `POST /v3/age-estimation/` endpoint और वर्कफ़्लो लाइवनेस रिपोर्ट पर एम्बेडेड `age_estimation` फ़ील्ड।

![Didit की आयु अनुमान रिपोर्ट, जिसमें अनुमानित आयु, पैसिव लाइवनेस स्कोर और चेहरे की गुणवत्ता के मेट्रिक्स हैं](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/age-estimation-report.png?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=f0ae767c591e55866d0cf5496291e17b)

## अवलोकन

आयु अनुमान के दो डिलीवरी मोड हैं:

* **स्टैंडअलोन API.** `POST /v3/age-estimation/` एक सिंगल फ़ेस इमेज (`user_image`) स्वीकार करता है और सिंक्रोनस रूप से अनुमानित आयु और पैसिव लाइवनेस स्कोर लौटाता है। [आयु अनुमान स्टैंडअलोन API संदर्भ](https://docs.didit.me/hi/standalone-apis/age-estimation.md) देखें।
* **वर्कफ़्लो में एम्बेडेड।** प्रत्येक वर्कफ़्लो लाइवनेस रिपोर्ट `age_estimation` के अंतर्गत अनुमानित आयु रखती है — यह मान हमेशा सबसे बड़े पहचाने गए चेहरे से भरा जाता है। आयु थ्रेशोल्ड केवल आयु अनुमान प्रवाहों पर ही *लागू* होते हैं (आयु चेतावनियां ट्रिगर करते हैं): अनुकूली आयु सत्यापन वर्कफ़्लो या `AGE_ESTIMATION` वर्कफ़्लो नोड्स।

प्रत्येक रिपोर्ट में शामिल हैं:

* समग्र `status` (`Approved`, `Declined`)।
* लाइवनेस `method` (स्टैंडअलोन API पर हमेशा `PASSIVE`; वर्कफ़्लो में `ACTIVE_3D` / `FLASHING` / `PASSIVE`)।
* एक लाइवनेस `score` (0–100; उच्च स्कोर का अर्थ है कि विषय के जीवित होने पर अधिक विश्वास है; थ्रेशोल्ड जांच के लिए `null` को `0` माना जाता है)।
* वर्षों में अनुमानित `age_estimation` (फ़्लोट — उदाहरण के लिए `27.33`; जब किसी चेहरे की आयु का अनुमान नहीं लगाया जा सका तो `null`)।
* केवल स्टैंडअलोन: `entities[]` ऐरे के साथ एक `user_image` ऑब्जेक्ट (प्रत्येक पहचाने गए चेहरे के लिए एक प्रविष्टि — `age`, `bbox`, `confidence`, `gender`) और `best_angle` ओरिएंटेशन।
* केवल वर्कफ़्लो: `reference_image`, `video_url`, `matches[]`, और पैसिव-लाइवनेस गुणवत्ता मेट्रिक्स `face_quality` (0–100%) और `face_luminance` (0–100%)। स्टैंडअलोन रिस्पॉन्स में ये फ़ील्ड शामिल **नहीं** हैं।
* एक `warnings[]` ऐरे — जांच के दौरान उत्सर्जित जोखिम इवेंट (देखें [आयु अनुमान चेतावनियां](https://docs.didit.me/hi/core-technology/age-estimation/warnings-age-estimation.md))।

जब भी `warnings` गैर-खाली होती है, स्टैंडअलोन निर्णय `Declined` होता है — `Approved` के लिए एक खाली ऐरे आवश्यक है। चेतावनियां तब ट्रिगर होती हैं जब:

* लाइवनेस `score` `face_liveness_score_decline_threshold` (डिफ़ॉल्ट `30`) पर या उससे नीचे हो — `LOW_LIVENESS_SCORE`।
* अनुमानित आयु `age_estimation_decline_threshold` (डिफ़ॉल्ट `18`) से कम हो — `AGE_BELOW_MINIMUM`। आयु जांच को अक्षम करने के लिए थ्रेशोल्ड को `0` पर सेट करें।
* कोई चेहरा नहीं पहचाना गया (`NO_FACE_DETECTED`) या किसी चेहरे की आयु का अनुमान नहीं लगाया जा सका (`AGE_NOT_DETECTED`)।
* लाइवनेस मॉडल एक प्रेज़ेंटेशन अटैक को फ़्लैग करता है (`LIVENESS_FACE_ATTACK`)।

## API रिस्पॉन्स में यह कहाँ दिखाई देता है

### स्टैंडअलोन API — `POST /v3/age-estimation/`

स्टैंडअलोन रिस्पॉन्स परिणाम को `request_id` और प्रतिध्वनित `vendor_data` / `metadata` के साथ एक शीर्ष-स्तरीय `age_estimation` ऑब्जेक्ट के अंतर्गत लपेटता है। जब `save_api_request=true` (डिफ़ॉल्ट) होता है, तो `request_id` स्थायी रूप से संग्रहीत सत्र आईडी होती है और परिणाम को बाद में निर्णय endpoint से भी प्राप्त किया जा सकता है; जब `false` होता है, तो यह एक बार का सहसंबंध UUID होता है।

```json theme={null}
{
  "request_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "age_estimation": {
    "status": "Approved",
    "method": "PASSIVE",
    "score": 97.5,
    "age_estimation": 27.33,
    "user_image": { "entities": [ /* ... */ ], "best_angle": 0 },
    "warnings": []
  },
  "vendor_data": "user-123",
  "metadata": { "flow": "age-gate" },
  "created_at": "2026-06-12T02:24:11.512941+00:00"
}
```

### वर्कफ़्लो निर्णय — `GET /v3/session/{session_id}/decision/`

वर्कफ़्लो सत्र में, अनुमानित आयु **लाइवनेस रिपोर्ट के अंदर एम्बेडेड होती है — कोई अलग आयु-अनुमान ऐरे नहीं है**। V3 निर्णय endpoint बहुवचन ऐरे कुंजी **`liveness_checks`** (`ReducedSessionV3DecisionSerializer.get_liveness_checks`) के तहत लाइवनेस रिपोर्ट लौटाता है, और प्रत्येक प्रविष्टि एक `age_estimation` फ़्लोट रखती है — सबसे बड़े पहचाने गए चेहरे की अनुमानित आयु — या `null` यदि किसी आयु की गणना नहीं की गई थी (`LivenessV2Serializer.get_age_estimation`)।

```json theme={null}
{
  "session_id": "11111111-1111-1111-1111-111111111111",
  "status": "Approved",
  "features": ["AGE_ESTIMATION"],
  "liveness_checks": [
    {
      "node_id": "feature_age_estimation_1",
      "status": "Approved",
      "method": "PASSIVE",
      "score": 89.92,
      "age_estimation": 24.3,
      "...": "..."
    }
  ]
}
```

आयु को `liveness_checks[].age_estimation` से पढ़ें। स्थायी रूप से संग्रहीत स्टैंडअलोन कॉल (`save_api_request=true`) निर्णय endpoint पर उसी तरह दिखाई देती हैं, जिसमें `features` में `AGE_ESTIMATION` शामिल होता है।

## स्कीमा

कैनोनिकल फ़ील्ड-दर-फ़ील्ड स्कीमा [डेटा मॉडल](https://docs.didit.me/hi/reference/data-models.md#आयु-अनुमान) पेज पर उपलब्ध है। स्टैंडअलोन रिस्पॉन्स आकार को `AgeEstimationResponseSerializer` द्वारा प्रलेखित किया गया है और `AgeEstimationAPIView` में असेंबल किया गया है; वर्कफ़्लो मान `LivenessV3Serializer` द्वारा निर्मित होता है।

```typescript theme={null}
interface AgeEstimationStandalone {
  request_id: string;                  // Session id when save_api_request=true
  age_estimation: {
    status: "Approved" | "Declined";
    method: "PASSIVE";
    score: number | null;              // Passive liveness score (0-100); null counts as 0
    age_estimation: number | null;     // Predicted age in years of the largest face (float)
    user_image: {
      entities: Array<{
        age: number;                   // Estimated age of this face
        bbox: [number, number, number, number];  // [x_min, y_min, x_max, y_max]
        confidence: number;            // Face-detection confidence (0-1)
        gender: "male" | "female";
      }>;
      best_angle: number | null;       // Rotation (0/90/180/270) with best detection
    };
    warnings: Warning[];
  };
  vendor_data: string | null;          // Echoed from the request
  metadata: object | null;             // Echoed from the request
  created_at: string;                  // ISO 8601
}

interface WorkflowLivenessWithAge {
  node_id: string | null;
  status: "Approved" | "Declined" | "In Review";
  method: "ACTIVE_3D" | "FLASHING" | "PASSIVE";
  score: number | null;                // Liveness score (0-100)
  reference_image: string;             // Presigned URL
  video_url: string | null;            // Presigned URL (active liveness only)
  age_estimation: number | null;       // Predicted age in years (float)
  face_quality: number | null;         // 0-100% (passive liveness only)
  face_luminance: number | null;       // 0-100% (passive liveness only)
  warnings: Warning[];
  matches: FaceMatch[];
}
```

### स्थिति मान

स्थिति स्ट्रिंग्स साझा फ़ीचर-स्थिति enum से आती हैं (देखें [स्थिति enums](https://docs.didit.me/hi/reference/data-models.md#स्टेटस-एनम-संदर्भ))। स्टैंडअलोन endpoint केवल निम्न लौटाता है:

| स्थिति | अर्थ |
| - | - |
| `Approved` | कोई चेतावनी ट्रिगर नहीं हुई — विषय लाइव है और अनुमानित आयु कॉन्फ़िगर किए गए थ्रेशोल्ड को पूरा करती है। |
| `Declined` | कम से कम एक चेतावनी ट्रिगर हुई — कम लाइवनेस स्कोर, थ्रेशोल्ड से कम आयु, कोई चेहरा नहीं, कोई आयु नहीं, या हमला। |

वर्कफ़्लो सत्रों में, लाइवनेस जांच `In Review` में भी समाधान हो सकती है जब कोई कॉन्फ़िगर करने योग्य जोखिम एक समीक्षा कार्रवाई के साथ ट्रिगर होता है (उदाहरण के लिए `POSSIBLE_DUPLICATED_FACE`)। [स्थिति enum संदर्भ](https://docs.didit.me/hi/reference/data-models.md#स्टेटस-एनम-संदर्भ) देखें।

## उदाहरण

### Approved — स्टैंडअलोन, वयस्क विषय

```json theme={null}
{
  "request_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "age_estimation": {
    "status": "Approved",
    "method": "PASSIVE",
    "score": 97.5,
    "age_estimation": 27.33,
    "user_image": {
      "entities": [
        { "age": 27.33, "bbox": [40, 40, 100, 100], "confidence": 0.72, "gender": "male" }
      ],
      "best_angle": 0
    },
    "warnings": []
  },
  "vendor_data": "user-123",
  "metadata": { "flow": "age-gate" },
  "created_at": "2026-06-12T02:24:11.512941+00:00"
}
```

### Declined — स्टैंडअलोन, अनुमानित आयु थ्रेशोल्ड से नीचे

```json theme={null}
{
  "request_id": "b2c3d4e5-f6a7-8901-2345-67890abcdef0",
  "age_estimation": {
    "status": "Declined",
    "method": "PASSIVE",
    "score": 92.0,
    "age_estimation": 15.8,
    "user_image": {
      "entities": [
        { "age": 15.8, "bbox": [55, 60, 110, 110], "confidence": 0.81, "gender": "female" }
      ],
      "best_angle": 0
    },
    "warnings": [
      {
        "risk": "AGE_BELOW_MINIMUM",
        "feature": "LIVENESS",
        "additional_data": null,
        "log_type": "error",
        "short_description": "Age below minimum",
        "long_description": "The age of the face is below the minimum age threshold for the application."
      }
    ]
  },
  "vendor_data": "user-456",
  "metadata": null,
  "created_at": "2026-06-12T02:26:40.118332+00:00"
}
```

### Approved — वर्कफ़्लो लाइवनेस रिपोर्ट में एम्बेडेड

```json theme={null}
{
  "node_id": "feature_age_estimation_1",
  "status": "Approved",
  "method": "PASSIVE",
  "score": 89.92,
  "reference_image": "https://<media-host>/.../reference.jpg?signature=...",
  "video_url": null,
  "age_estimation": 24.3,
  "matches": [],
  "face_quality": 87.5,
  "face_luminance": 54.12,
  "warnings": []
}
```

## सुरक्षा नोट

रिस्पॉन्स में लौटाए गए सभी छवि और वीडियो URL सीमित वैधता अवधि वाले पूर्व-हस्ताक्षरित लिंक हैं। इन्हें अल्पकालिक संदर्भों के रूप में मानें — इन्हें सार्वजनिक रूप से साझा न करें, और समाप्त हो चुके URL को रीफ़्रेश करने के लिए निर्णय endpoint को फिर से कॉल करें। सर्वोत्तम अभ्यास के रूप में, अंतर्निहित बायोमेट्रिक मीडिया के बजाय केवल सत्यापन स्थिति और विश्वास मानों को अपनी तरफ स्टोर करें।

## संबंधित

* [आयु अनुमान अवलोकन](https://docs.didit.me/hi/core-technology/age-estimation/overview.md) — फ़ीचर व्यवहार, मूल्य निर्धारण, निर्णय तर्क।
* [आयु अनुमान चेतावनियां](https://docs.didit.me/hi/core-technology/age-estimation/warnings-age-estimation.md) — प्रत्येक जोखिम कोड और अस्वीकृति ट्रिगर।
* [स्टैंडअलोन API संदर्भ](https://docs.didit.me/hi/standalone-apis/age-estimation.md) — `POST /v3/age-estimation/` अनुरोध और रिस्पॉन्स।
* [डेटा मॉडल — आयु अनुमान](https://docs.didit.me/hi/reference/data-models.md#आयु-अनुमान) — कैनोनिकल फ़ील्ड-दर-फ़ील्ड स्कीमा।
* [पैसिव लाइवनेस](https://docs.didit.me/hi/core-technology/liveness/overview.md) — आयु अनुमान रिस्पॉन्स में उपयोग किया जाने वाला साझा लाइवनेस मॉडल।


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.