SVOYAGER ID Photo API
किसी भी फोटो को मानक अनुरूप आईडी / पासपोर्ट / वीज़ा फोटो में बदलें।
अवलोकन
यह क्या करता है
SVOYAGER ID Photo API एक साधारण पोर्ट्रेट को मानक-अनुरूप दस्तावेज़ फोटो में बदलता है। ID Photo एक ही उत्पाद है: पासपोर्ट, वीज़ा, निवास-परमिट और राष्ट्रीय-आईडी को अलग-अलग उत्पादों के बजाय दस्तावेज़ विनिर्देशों के रूप में दर्शाया गया है। आप एक फ़ोटो अपलोड करते हैं, एक विनिर्देश के अनुसार एक वॉटरमार्क वाला पूर्वावलोकन बनाते हैं, फिर बिना वॉटरमार्क वाला परिणाम प्राप्त करने के लिए इसे अंतिम रूप देते हैं।
प्रीव्यू → अंतिम वर्कफ़्लो
- 1एक फ़ोटो अपलोड करें. एक अपलोड लक्ष्य बनाएँ और उसमें इमेज बाइट्स भेजें।
- 2एक सत्र बनाएँ. एक विनिर्देश के विरुद्ध एक वॉटरमार्क वाला पूर्वावलोकन प्रस्तुत करें। लौटाए गए मुद्दों की समीक्षा करें।
- 3अंतिम रूप दें. समीक्षित सत्र को एक ऑर्डर में बदलें और वॉटरमार्क-रहित अंतिम संस्करण प्राप्त करें।
क्विकस्टार्ट
हर अनुरोध को Bearer गुप्त कुंजी से प्रमाणीकृत किया जाता है। परीक्षण मोड में शुरू करें:
# List specifications to find a spec_id
curl -G "https://partner.svoyager.com/v1/photo-specifications" \
-H "Authorization: Bearer svoy_sk_test_YOUR_KEY" \
--data-urlencode "country=US"बेस URL और वातावरण
सभी एंडपॉइंट एक ही बेस URL के तहत परोसे जाते हैं:
https://partner.svoyager.com/v1कोई एनवायरनमेंट पाथ या पैरामीटर नहीं है। यह कि कोई रिक्वेस्ट टेस्ट में चलती है या लाइव में, पूरी तरह से आपके API की प्रीफ़िक्स (svoy_sk_test_… बनाम svoy_sk_live_…) द्वारा निर्धारित होता है। रिस्पॉन्स में इसे livemode के रूप में दिखाया जाता है।
प्रमाणीकरण
एपीआई कुंजियाँ
हर अनुरोध को Authorization हेडर के साथ प्रमाणीकृत करें जिसमें आपकी सीक्रेट की हो। कीज़ पार्टनर सेंटर में बनाई और रोटेट की जाती हैं।
Authorization: Bearer svoy_sk_test_R2p9Kx7YOURKEYHERExxxxxxxप्रीफ़िक्स वातावरण का चयन करता है: परीक्षण के लिए svoy_sk_test_…, लाइव के लिए svoy_sk_live_…। एक परीक्षण कुंजी कभी भी लाइव डेटा पर कार्य नहीं कर सकती (और इसके विपरीत भी नहीं) — मिलान न होने पर 401 wrong_environment लौटाया जाता है।
स्कोप
कुंजियाँ स्पष्ट न्यूनतम-विशेषाधिकार (least-privilege) दायरे (scopes) के साथ होती हैं। आवश्यक दायरा (scope) न होने पर अनुरोध 403 insufficient_scope लौटाता है।
| दायरा | अनुदान |
|---|---|
| photo.specs.read | List and retrieve photo specifications. |
| photo.sessions.read | Retrieve sessions and their previews. |
| photo.sessions.write | Create uploads and photo sessions (previews). |
| photo.finalize.write | Finalize a session into a no-watermark order. |
| photo.orders.read | Retrieve orders and download finals. |
कुंजियों को सुरक्षित रखना
सीक्रेट कीज़ केवल सर्वर-टू-सर्वर होती हैं। कभी भी ब्राउज़र या मोबाइल कोड, किसी पब्लिक रिपॉजिटरी, या क्लाइंट-साइड बंडल में सीक्रेट की एम्बेड न करें। यदि कोई की एक्सपोज़ हो जाती है, तो उसे तुरंत पार्टनर सेंटर में रोटेट करें।
एंडपॉइंट्स
आवश्यक फ़ील्ड्स * से चिह्नित हैं। उदाहरण प्लेसहोल्डर क्रेडेंशियल्स का उपयोग करते हैं — कभी भी वास्तविक कुंजियाँ नहीं।
/v1/uploadsUpload a photo
Create a short-lived presigned upload target, then PUT the raw image bytes straight to `upload_url`. This bypasses request-body size limits (product cap 10 MB). No quota is spent.
photo.sessions.write| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| content_type* | string | MIME type of the image.image/jpegimage/pngimage/webpimage/heic |
- `upload_url` is single-use and expires; upload promptly and do not modify the URL.
# 1) Create the upload target
curl -X POST "https://partner.svoyager.com/v1/uploads" \
-H "Authorization: Bearer svoy_sk_test_R2p9Kx7YOURKEYHERExxxxxxx" \
-H "Content-Type: application/json" \
-d '{"content_type":"image/jpeg"}'
# 2) PUT the bytes to the returned upload_url (exactly as returned)
curl -X PUT "$UPLOAD_URL" \
-H "Content-Type: image/jpeg" \
--data-binary @photo.jpg{
"object": "upload",
"upload_url": "https://upload.svoyager.com/v1/EXAMPLE?signature=…",
"upload_ref": "up_ref_tXk3W2b8Qe7Ra1Nc0",
"max_bytes": 10485760,
"expires_at": "2026-07-24T18: 20: 00Z"
}| स्थिति | कोड | जब |
|---|---|---|
| 400 | missing_content_type | `content_type` was not provided. |
| 415 | unsupported_format | The content type is not an accepted image format. |
| 503 | temporarily_unavailable | Uploads are temporarily unavailable. |
| 502 | upload_init_failed | The upload could not be initialised — retry shortly. |
साथ ही मानक प्रमाणीकरण, अनुमति और दर-सीमा त्रुटियाँ — देखें त्रुटियाँ और पुनः प्रयास.
/v1/photo-sessionsCreate a photo session
Generate a watermarked preview from an upload against a specification. Spends one `preview` unit of your plan. Review `issues` before finalizing.
photo.sessions.write Idempotency-Key आवश्यक| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| upload_ref* | string | The `upload_ref` from Upload a photo. |
| spec_id* | string | The `photo_specification` id (`spc_…`) to render against. |
curl -X POST "https://partner.svoyager.com/v1/photo-sessions" \
-H "Authorization: Bearer svoy_sk_test_R2p9Kx7YOURKEYHERExxxxxxx" \
-H "Idempotency-Key: a7f3c9e1-2b4d-4c8a-9f10-3e5d6b7a8c9d" \
-H "Content-Type: application/json" \
-d '{"upload_ref":"up_ref_tXk3W2b8Qe7Ra1Nc0","spec_id":"spc_9wTv2c1Kd8Qe"}'{
"object": "photo_session",
"id": "3f9c1e77-2b8a-4a1e-9d2c-6b5a4c3d2e10",
"livemode": false,
"status": "preview_ready",
"spec_id": "spc_9wTv2c1Kd8Qe",
"preview_url": "https://partner.svoyager.com/v1/photo-sessions/3f9c1e77-2b8a-4a1e-9d2c-6b5a4c3d2e10/preview",
"watermarked": true,
"issues": [],
"created_at": "2026-07-24T18: 30: 00Z"
}| स्थिति | कोड | जब |
|---|---|---|
| 400 | missing_idempotency_key | The `Idempotency-Key` header is missing. |
| 400 | missing_upload_ref | `upload_ref` is missing. |
| 400 | missing_spec_id | `spec_id` is missing. |
| 400 | invalid_upload_ref | The referenced upload could not be read. |
| 413 | file_too_large | The uploaded file exceeds 10 MB. |
| 415 | unsupported_format | The uploaded file is not an accepted image format. |
| 404 | spec_not_found | No active specification matches `spec_id`. |
| 402 | no_active_plan | No active plan is assigned for this environment. |
| 402 | quota_exceeded | Included preview quota for the period is exhausted. |
| 402 | plan_inactive | The plan is not active for this environment. |
| 409 | idempotency_key_reuse | The key was reused with a different body. |
| 409 | request_in_progress | A request with this key is still processing. |
| 422 | unprocessable_image | The image could not be processed. |
| 502 | provider_error | The preview could not be generated upstream — retry shortly. |
| 503 | provider_busy | The processing service is busy — retry shortly. |
साथ ही मानक प्रमाणीकरण, अनुमति और दर-सीमा त्रुटियाँ — देखें त्रुटियाँ और पुनः प्रयास.
/v1/photo-sessions/{id}Retrieve a photo session
Fetch a session by id, including its current status, `preview_url`, and any `issues`.
photo.sessions.read| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| id* | string | Session id. |
curl "https://partner.svoyager.com/v1/photo-sessions/3f9c1e77-2b8a-4a1e-9d2c-6b5a4c3d2e10" \
-H "Authorization: Bearer svoy_sk_test_R2p9Kx7YOURKEYHERExxxxxxx"{
"object": "photo_session",
"id": "3f9c1e77-2b8a-4a1e-9d2c-6b5a4c3d2e10",
"livemode": false,
"status": "preview_ready",
"spec_id": "spc_9wTv2c1Kd8Qe",
"preview_url": "https://partner.svoyager.com/v1/photo-sessions/3f9c1e77-2b8a-4a1e-9d2c-6b5a4c3d2e10/preview",
"watermarked": true,
"issues": [],
"created_at": "2026-07-24T18: 30: 00Z"
}| स्थिति | कोड | जब |
|---|---|---|
| 404 | session_not_found | No session matches the id for this account/environment. |
साथ ही मानक प्रमाणीकरण, अनुमति और दर-सीमा त्रुटियाँ — देखें त्रुटियाँ और पुनः प्रयास.
/v1/photo-sessions/{id}/previewDownload the preview image
Stream the watermarked preview image bytes for a session (SVOYAGER-hosted; the upstream URL is never exposed). This is the resource `preview_url` points to.
photo.sessions.readछवि बाइट्स लौटाता है| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| id* | string | Session id. |
- Returns raw `image/*` bytes on success (not JSON).
curl "https://partner.svoyager.com/v1/photo-sessions/3f9c1e77-2b8a-4a1e-9d2c-6b5a4c3d2e10/preview" \
-H "Authorization: Bearer svoy_sk_test_R2p9Kx7YOURKEYHERExxxxxxx" \
--output preview.jpgसफलता पर एंडपॉइंट कच्चे इमेज बाइट्स (JSON नहीं) स्ट्रीम करता है। प्रतिक्रिया बॉडी को एक फ़ाइल में सहेजें।
| स्थिति | कोड | जब |
|---|---|---|
| 404 | preview_not_found | The session or its preview does not exist. |
साथ ही मानक प्रमाणीकरण, अनुमति और दर-सीमा त्रुटियाँ — देखें त्रुटियाँ और पुनः प्रयास.
/v1/photo-sessions/{id}/finalizeFinalize a photo
Turn a reviewed session into a deliverable order. In live mode this produces the no-watermark final and spends one `final` unit; in test mode it emulates the final from the preview.
photo.finalize.write Idempotency-Key आवश्यक| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| id* | string | Session id to finalize. |
curl -X POST "https://partner.svoyager.com/v1/photo-sessions/3f9c1e77-2b8a-4a1e-9d2c-6b5a4c3d2e10/finalize" \
-H "Authorization: Bearer svoy_sk_live_A8m4Qz1YOURKEYHERExxxxxxx" \
-H "Idempotency-Key: a7f3c9e1-2b4d-4c8a-9f10-3e5d6b7a8c9d"{
"object": "photo_order",
"id": "8a2d5b40-71c6-4f0e-b3a9-1e7c9d05f284",
"livemode": true,
"sandbox_emulated": false,
"status": "final_ready",
"session_id": "3f9c1e77-2b8a-4a1e-9d2c-6b5a4c3d2e10",
"spec_id": "spc_9wTv2c1Kd8Qe",
"final_url": "https://partner.svoyager.com/v1/orders/8a2d5b40-71c6-4f0e-b3a9-1e7c9d05f284/final",
"watermarked": false,
"created_at": "2026-07-24T18: 31: 00Z"
}| स्थिति | कोड | जब |
|---|---|---|
| 400 | missing_idempotency_key | The `Idempotency-Key` header is missing. |
| 404 | session_not_found | No session matches the id for this account/environment. |
| 422 | session_not_finalizable | The session is not in a finalizable state. |
| 402 | no_active_plan | No active plan is assigned for this environment. |
| 402 | quota_exceeded | Included final quota for the period is exhausted. |
| 402 | plan_inactive | The plan is not active for this environment. |
| 409 | idempotency_key_reuse | The key was reused with a different request. |
| 409 | request_in_progress | A request with this key is still processing. |
| 502 | provider_error | The final could not be produced upstream — retry shortly. |
| 503 | provider_busy | The processing service is busy — retry shortly. |
साथ ही मानक प्रमाणीकरण, अनुमति और दर-सीमा त्रुटियाँ — देखें त्रुटियाँ और पुनः प्रयास.
/v1/orders/{id}Retrieve an order
Fetch a finalized order by id, including its status and `final_url` once ready.
photo.orders.read| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| id* | string | Order id. |
curl "https://partner.svoyager.com/v1/orders/8a2d5b40-71c6-4f0e-b3a9-1e7c9d05f284" \
-H "Authorization: Bearer svoy_sk_live_A8m4Qz1YOURKEYHERExxxxxxx"{
"object": "photo_order",
"id": "8a2d5b40-71c6-4f0e-b3a9-1e7c9d05f284",
"livemode": true,
"sandbox_emulated": false,
"status": "final_ready",
"session_id": "3f9c1e77-2b8a-4a1e-9d2c-6b5a4c3d2e10",
"spec_id": "spc_9wTv2c1Kd8Qe",
"final_url": "https://partner.svoyager.com/v1/orders/8a2d5b40-71c6-4f0e-b3a9-1e7c9d05f284/final",
"watermarked": false,
"created_at": "2026-07-24T18: 31: 00Z"
}| स्थिति | कोड | जब |
|---|---|---|
| 404 | order_not_found | No order matches the id for this account/environment. |
साथ ही मानक प्रमाणीकरण, अनुमति और दर-सीमा त्रुटियाँ — देखें त्रुटियाँ और पुनः प्रयास.
/v1/orders/{id}/finalDownload the final image
Stream the final image bytes for an order (SVOYAGER-hosted). In live mode this is the no-watermark deliverable; in test mode it is the sandbox-emulated copy. This is the resource `final_url` points to.
photo.orders.readछवि बाइट्स लौटाता है| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| id* | string | Order id. |
- Returns raw `image/*` bytes on success (not JSON).
curl "https://partner.svoyager.com/v1/orders/8a2d5b40-71c6-4f0e-b3a9-1e7c9d05f284/final" \
-H "Authorization: Bearer svoy_sk_live_A8m4Qz1YOURKEYHERExxxxxxx" \
--output final.jpgसफलता पर एंडपॉइंट कच्चे इमेज बाइट्स (JSON नहीं) स्ट्रीम करता है। प्रतिक्रिया बॉडी को एक फ़ाइल में सहेजें।
| स्थिति | कोड | जब |
|---|---|---|
| 404 | final_not_found | The order or its final does not exist. |
साथ ही मानक प्रमाणीकरण, अनुमति और दर-सीमा त्रुटियाँ — देखें त्रुटियाँ और पुनः प्रयास.
/v1/photo-specificationsList photo specifications
Return a cursor-paginated list of available photo specifications. Filter by country or document type to find the `spec_id` you need.
photo.specs.read| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| limit | integer | Page size, 1–100 (default 20). |
| starting_after | string | A specification id (`spc_…`) to page after. |
| country | string | ISO-3166 alpha-2 filter, e.g. `US`. |
| document_type | string | Filter by document type, e.g. `passport`. |
curl -G "https://partner.svoyager.com/v1/photo-specifications" \
-H "Authorization: Bearer svoy_sk_test_R2p9Kx7YOURKEYHERExxxxxxx" \
--data-urlencode "country=US" \
--data-urlencode "limit=20"{
"object": "list",
"data": [
{
"object": "photo_specification",
"id": "spc_9wTv2c1Kd8Qe",
"name": "United States Passport"
}
],
"has_more": false,
"next_cursor": null
}यह एंडपॉइंट केवल नीचे दी गई मानक त्रुटियों को लौटाता है।
साथ ही मानक प्रमाणीकरण, अनुमति और दर-सीमा त्रुटियाँ — देखें त्रुटियाँ और पुनः प्रयास.
/v1/photo-specifications/{id}Retrieve a photo specification
Fetch a single specification by its stable `spec_id`, including its full requirements.
photo.specs.read| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| id* | string | Specification id (`spc_…`). |
curl "https://partner.svoyager.com/v1/photo-specifications/spc_9wTv2c1Kd8Qe" \
-H "Authorization: Bearer svoy_sk_test_R2p9Kx7YOURKEYHERExxxxxxx"{
"object": "photo_specification",
"id": "spc_9wTv2c1Kd8Qe",
"name": "United States Passport",
"country_code": "US",
"document_type": "passport",
"physical_size": {
"width": 51,
"height": 51,
"unit": "mm"
},
"pixel_size": {
"width": 600,
"height": 600
},
"dpi": 300,
"background": {
"color": "#FFFFFF",
"name": "white"
},
"requirements": {
"head_height": "25–35 mm (1–1⅜ in)",
"eye_to_bottom": "28–35 mm (1⅛–1⅜ in)",
"recency_months": 6,
"expression": "neutral",
"color": true,
"glasses": "not allowed",
"eyes_and_ears": "both eyes open"
},
"updated_at": "2026-07-01T12: 00: 00Z"
}| स्थिति | कोड | जब |
|---|---|---|
| 404 | spec_not_found | No active specification matches the id. |
साथ ही मानक प्रमाणीकरण, अनुमति और दर-सीमा त्रुटियाँ — देखें त्रुटियाँ और पुनः प्रयास.
एक Idempotency-Key हेडर भेजें (एक अद्वितीय मान, जैसे UUID) ताकि पुनः प्रयास किए गए अनुरोध पर कभी भी दोहरी चार्जिंग या दोहरी प्रक्रिया न हो। यह निम्नलिखित पर आवश्यक है:
POST /v1/photo-sessionsPOST /v1/photo-sessions/{id}/finalize
- • वही कुंजी + वही बॉडी → मूल परिणाम को फिर से चलाया जाता है (कोई दूसरा शुल्क नहीं, कोई दूसरा रेंडर नहीं)।
- • एक ही कुंजी + एक अलग बॉडी → 409 idempotency_key_reuse.
- • एक पुनः प्रयास योग्य विफलता आपको उसी कुंजी, बॉडी और upload_ref के साथ पुनः प्रयास करने की अनुमति देती है।
- • एक ही सत्र के लिए साथ-साथ चलने वाले फ़ाइनलize अनुरोध कभी भी दो ऑर्डर नहीं बना सकते या उन पर शुल्क नहीं लगा सकते।
एक सत्र पूर्वावलोकन राज्यों से होकर गुज़रता है; एक ऑर्डर अंतिमकरण राज्यों से होकर गुज़रता है।
preview_ready— प्रीव्यू उत्पन्न हो गया, कोई समस्या नहीं।preview_has_issues— समस्याओं के साथ जेनरेट किया गया पूर्वावलोकन।preview_failed— प्रीव्यू उत्पन्न नहीं किया जा सका।finalized— सत्र को अंतिम रूप दिया गया था।
final_ready— अंतिम उपलब्ध है।processing— अंतिम तैयार किया जा रहा है।failed— फ़ाइनलकरण विफल हो गया।
पर्यावरण आपके की प्रीफ़िक्स द्वारा निर्धारित होता है — क्लाइंट इसे कभी पास नहीं कर सकते। टेस्ट मोड असली, वॉटरमार्क किया हुआ प्रीव्यू चलाता है ताकि आप वास्तविक फ़्लो का अभ्यास कर सकें, लेकिन अंतिम मोड का अनुकरण करता है ताकि कोई लाइव कोटा या प्रोडक्शन रेंडर उपयोग न हो।
| पहलू | परीक्षण | लाइव |
|---|---|---|
| livemode | false | true |
| पूर्वावलोकन | वास्तविक, वॉटरमार्क किया हुआ | वास्तविक, वॉटरमार्क किया हुआ |
| अंतिम | प्रीव्यू से सैंडबॉक्स-एमुलेटेड | वास्तविक, कोई वॉटरमार्क नहीं |
| sandbox_emulated | true | false |
| watermarked | true | false |
| कोटा समाप्त | केवल परीक्षण कोटा | केवल लाइव कोटा |
आपकी योजना में प्रत्येक अवधि के लिए कई पूर्वावलोकन और फाइनल शामिल हैं, जिन्हें अलग-अलग गिना जाता है। एक सत्र बनाने पर एक पूर्वावलोकन खर्च होता है; अंतिम करने पर एक फाइनल खर्च होता है। कोटा प्रोसेसिंग से पहले एटॉमिक रूप से आरक्षित किया जाता है।
- जब संलग्न पूर्वावलोकन या अंतिम कोटा समाप्त हो जाता है, तो अनुरोध 402 quota_exceeded लौटाता है।
- 402 एक हार्ड स्टॉप है — अगली अवधि या योजना परिवर्तन तक पुनः प्रयास सफल नहीं होगा।
- टेस्ट और लाइव कोटा पूरी तरह से स्वतंत्र हैं।
प्रत्येक त्रुटि एक लिफाफे का उपयोग करती है। request_id X-Request-Id प्रतिक्रिया हेडर में भी दिखाई देता है — इसे समर्थन अनुरोधों में शामिल करें।
{
"error": {
"type": "invalid_request_error",
"code": "quota_exceeded",
"message": "Your included final quota for this period is exhausted.",
"request_id": "req_9wTv2c1Kd8QeR7"
}
}मानक त्रुटियाँ (सभी एंडपॉइंट्स)
| स्थिति | कोड | जब |
|---|---|---|
| 401 | invalid_api_key | Missing, malformed, or unknown API key. |
| 401 | revoked_api_key | The key was revoked. |
| 401 | expired_api_key | The key passed its rotation grace period. |
| 401 | wrong_environment | A test key was used on live traffic (or vice versa). |
| 403 | client_disabled | The API client is disabled. |
| 403 | api_access_revoked | API access for the account is not active. |
| 403 | insufficient_scope | The key lacks the required scope for this endpoint. |
| 429 | rate_limited | Per-key rate limit exceeded. Honour `Retry-After`. |
422 केवल एक पुष्टि की गई छवि समस्या के लिए लौटाया जाता है। 402 का अर्थ है कि कोटा समाप्त हो गया है। 409 एक इडेम्पोटेंसी या संसाधन संघर्ष है।
429 का अर्थ है कि आपने प्रति-कुंजी दर सीमा पार कर ली है — Retry-After हेडर का सम्मान करें। 502/503 और अन्य 5xx के लिए, बैकऑफ़ के साथ और उसी Idempotency-Key के साथ पुनः प्रयास करें।
एक पूर्वावलोकन शून्य या अधिक समस्याएँ लौटा सकता है, प्रत्येक एक स्थिर कोड + संदेश। इन्हें अंतिम उपयोगकर्ता को दिखाएँ ताकि वे फोटो फिर से ले सकें। एक अज्ञात अपस्ट्रीम सिग्नल अन्य में अपग्रेड हो जाता है।
| कोड | संदेश |
|---|---|
| face_not_found | No face was detected in the photo. |
| uneven_lighting | Lighting on the face is uneven. |
| poor_brightness | Face brightness is too dark, too bright, or the photo is low quality. |
| low_sharpness | The photo is blurry or not sharp enough. |
| eyeglasses_not_allowed | Eyeglasses are not allowed. |
| sunglasses_not_allowed | Sunglasses are not allowed. |
| headwear_not_allowed | Hats or head coverings are not allowed. |
| face_mask_not_allowed | A face mask is not allowed. |
| face_covering_found | A face covering was detected. |
| expression_not_neutral | The expression is not neutral. |
| crop_bottom | Not enough space is visible below the shoulders. |
| crop_left | Not enough of the left shoulder is visible. |
| crop_right | Not enough of the right shoulder is visible. |
| head_turned | The head is turned too far to the side. |
| head_tilted | The head is tilted too far up or down. |
| not_in_color | The photo must be in color. |
| other | The photo did not meet a requirement. |
- • प्रीव्यू और फाइनल केवल SVOYAGER द्वारा होस्ट किए गए, प्रमाणीकृत URL से ही परोसे जाते हैं। एक्सेस के लिए आपकी API कुंजी और सही स्कोप की आवश्यकता होती है — अंतर्निहित स्टोरेज कभी भी सार्वजनिक रूप से प्रकट नहीं किया जाता है।
- • अपलोड की गई छवियाँ निजी होती हैं और आपके खाते तथा परिवेश तक सीमित होती हैं; अपलोड लक्ष्य अल्पकालिक और एकल-उपयोग वाले होते हैं।
- • दस्तावेज़ की तस्वीरों को आपका परिणाम तैयार करने के लिए संसाधित किया जाता है और उन्हें खातों के बीच साझा नहीं किया जाता है।
SVOYAGER की डेटा-प्रसंस्करण, प्रतिधारण और विलोपन शर्तों को देखें:गोपनीयता नीति ·साझेदार समझौता और शर्तें