🎯 कस्टमाइज़ करने योग्य, डिटेक्शन-प्रतिरोधी क्लाउड ब्राउज़र जो स्व-विकसित Chromium द्वारा संचालित है, वेब क्रॉलर और एआई एजेंट्स के लिए डिज़ाइन किया गया। 👉अभी आज़माएं
वापस ब्लॉग पर

Amazon ASIN खोज: स्क्रैपर API के साथ ASIN को उत्पाद रिकॉर्ड में बदलें

Isabella Garcia
Isabella Garcia

Web Data Collection Specialist

29-Jun-2026

TL;DR:

  • ASIN एक उत्पाद के लिए Amazon की मुख्य कुंजी है, और Amazon Scraper API इसे एक पूर्ण उत्पाद रिकॉर्ड में बदल देती है। एक उत्पाद URL जो ASIN को शामिल करता है पास करें और scraper.amazon अभिनेता शीर्षक, ब्रांड, मूल्य, उपलब्धता, रेटिंग, विक्रेता, और श्रेणी फ़ील्ड्स को संरचित JSON के रूप में लौटाता है।
  • अनुसंधान एक प्रमाणीकरण किए गए एंडपॉइंट के माध्यम से चलता है: POST https://api.scrapeless.com/api/v1/scraper/request x-api-token हेडर, scraper.amazon का एक actor, और एक input वस्तु जो url और product का type ले जाती है।
  • प्रतिक्रिया कच्चे और पार्स किए गए डेटा को एक पैकेज में अलग करती है। हर कॉल तीन शीर्ष-स्तरीय कुंजियों — html (रेंडर की गई पृष्ठ), metadata (अनुरोध की प्रतिध्वनि), और result (पार्स किया गया उत्पाद वस्तु) — को लौटाती है, ताकि आप साफ फ़ील्ड पढ़ सकें या HTML पर वापस लौट सकें।
  • देश पिनिंग एक पहले श्रेणी का अनुरोध फ़ील्ड है। proxy वस्तु जिसमें country US है, खोज को US आवासीय आउटगोइंग के माध्यम से रूट करती है, जो कीमतों, उपलब्धता, और Buy Box को उस सटीकता के साथ रखती है जिसे एक US खरीदार देखता है।
  • वही अभिनेता उत्पाद अनुसंधानों से अधिक को कवर करता है। type को keywords में बदलने से अभिनेता एक खोज-परिणाम पाठक में बदल जाता है (पृष्ठ, कीवर्ड, और लिस्टिंग का result एरे), इसलिए ASIN समृद्धि और खोज एक ही एकीकरण साझा करते हैं।
  • शुरू करने के लिए फ्री। नए Scrapeless खाते में मुफ्त Scraper API क्रेडिट शामिल हैं — app.scrapeless.com पर साइन अप करें।

परिचय: एक ASIN को संरचित उत्पाद रिकॉर्ड में बदलना

Amazon पर प्रत्येक उत्पाद में दस-चरित्र ASIN होता है, और यह एकमात्र पहचानकर्ता है जो तब भी स्थिर रहता है जब एक लिस्टिंग का शीर्षक, मूल्य, और विक्रेता इसके तहत बदलते हैं। मूल्य निर्धारण टीमें, कैटालॉग बिल्डर्स, और AI एजेंट सभी अपने डेटा को उसी पर आधार करते हैं। कठिन हिस्सा दूसरी दिशा में जाना है: ASIN से साफ, वर्तमान उत्पाद फ़ील्ड्स की ओर।

मैन्युअल रूप से उत्पाद पृष्ठ को स्क्रैप करना एक JavaScript-भारी पृष्ठ को रेंडर करने, Amazon द्वारा डेटासेंटर ट्रैफिक के लिए प्रस्तुत किए गए एक्सेस चुनौतियों को पार करने, और फिर लेआउट और क्षेत्रों के बीच बदलती मार्कअप के खिलाफ चयनकर्ताओं को लिखने का अर्थ है। चयनकर्ता टूट जाते हैं, कीमतें गलत देश के लिए स्थानीयकृत होती हैं, और आप द्वारा पार्स किया गया Buy Box विक्रेता उस क्षेत्र में से संबंधित होता है जिसे आप चाहते थे।

यह मार्गदर्शिका Scrapeless Amazon Scraper API के शीर्ष पर ASIN अनुसंधान के माध्यम से चलती है — व्यापक स्क्रैपिंग API लाइन में प्रबंधित scraper.amazon अभिनेता। आप एक उत्पाद URL भेजते हैं, अभिनेता सर्वर-साइड पर पृष्ठ को रेंडर और पार्स करता है, और आप एक संरचित उत्पाद वस्तु वापस प्राप्त करते हैं। यह मार्गदर्शिका अंत बिंदु और इसके पैरामीटर, एक प्रमाणीकरण अनुरोध, वास्तविक प्रतिक्रिया स्कीमा, और एक Python रीडर को कवर करती है जो पार्स किए गए फ़ील्डस को उपभोग करती है।


Amazon ASIN Lookup API क्या करता है

Amazon Scraper API एक ASIN को शामिल करने वाले उत्पाद URL को लेता है और उस लिस्टिंग के लिए पार्स किया गया उत्पाद रिकॉर्ड लौटाता है। आप इसे प्रामाणिक उत्पाद पथ प्रदान करते हैं — https://www.amazon.com/dp/<ASIN> — और scraper.amazon अभिनेता रेंडरिंग, एंटी-डिटेक्शन, और फ़ील्ड निष्कर्षण को सर्वर पर संभालता है, फिर JSON वापस करता है।

  • ASIN को उत्पाद फ़ील्ड्स में हल करें। एकल type: product कॉल शीर्षक, ब्रांड, मूल्य, उपलब्धता, रेटिंग, समीक्षा संख्या, विक्रेता, और URL में ASIN के लिए श्रेणी पथ लौटाती है।
  • पार्स किए गए वस्तु और कच्चे पृष्ठ को पढ़ें। result वस्तु संरचित फ़ील्ड्स ले जाती है; html कुंजी रेंडर की गई पृष्ठ बाइट्स को वहन करती है जिसके लिए पार्सर ने कुछ नहीं उठाया है।
  • स्टोरफ्रंट क्षेत्र को पिन करें। एक proxy.country मान खोज को उस देश के आवासीय आउटगोइंग के माध्यम से रूट करता है, इसलिए कीमतें और उपलब्धता उस संवाद से मेल खाती हैं बजाय एक यादृच्छिक निकासी के।
  • खोज के लिए एकीकरण का पुन: उपयोग करें। वही अभिनेता type: keywords के साथ एक खोज URL स्वीकार करता है और पृष्ठित खोज परिणाम लौटाता है, इसलिए कैटलॉग खोज और प्रति-ASIN समृद्धि एक ही एंडपॉइंट के माध्यम से चलती है।
  • ब्राउज़र प्लंबिंग को छोड़ें। कोई स्थानीय हेडलेस ब्राउज़र, कोई प्रॉक्सी पूल, और कोई चयनकर्ता रखरखाव नहीं — आप पार्स किए गए स्कीमा से फ़ील्ड पढ़ते हैं बजाय इसके कि किसी भी चीज़ को बनाए रखें।

एंडपॉइंट्स और पैरामीटर

Amazon ASIN अनुसंधान Scraper API अनुरोध एंडपॉइंट पर एक समकालिक कॉल है।

Copy
POST https://api.scrapeless.com/api/v1/scraper/request

अनुरोध शरीर में तीन शीर्ष स्तरीय फील्ड होते हैं:

फ़ील्ड प्रकार आवश्यक विवरण
actor स्ट्रिंग हाँ स्क्रैपिंग सेवा पहचानकर्ता — Amazon के लिए scraper.amazon
input वस्तु हाँ कार्य पैरामीटर। एक ASIN अनुसंधान के लिए: url ( /dp/<ASIN> उत्पाद URL) और type (product)।
proxy वस्तु नहीं आउटगोइंग कॉन्फ़िगरेशन। country (जैसे US) स्टोरफ्रंट क्षेत्र को पिन करता है।

input के अंदर, ASIN अनुसंधान दो फ़ील्ड का उपयोग करता है:

input फ़ील्ड उदाहरण विवरण
url https://www.amazon.com/dp/B07ZPKBL9V प्रामाणिक उत्पाद URL। ASIN /dp/ पथ खंड में बैठता है।
प्रकार उत्पाद उत्पाद-विवरण पार्सर का चयन करता है। इसे कीवर्ड पर सेट करें ताकि एक खोज-परिणाम यूआरएल पढ़ा जा सके।

प्रमाणीकरण एकल हेडर है, x-api-token, जिसमें आपका स्क्रैपलेस एपीआई कुंजी होती है। उत्पाद खोज वापस इनलाइन आती है - JSON शरीर उसी HTTP प्रतिक्रिया पर वापस आता है, इसलिए scraper.amazon के लिए कोई परिणाम-निगरानी कदम की आवश्यकता नहीं है।

मुफ्त योजना पर अपना एपीआई कुंजी प्राप्त करें: app.scrapeless.com


एक प्रमाणित ASIN खोज

यह अनुरोध एकल ASIN को देखता है और US स्टोरफ्रंट को पिन करता है। x-api-token हेडर आपका कुंजी ले जाता है; इसे कमांड के बजाय एक पर्यावरण चर में रखें।

bash Copy
# एक ASIN (B07ZPKBL9V) को खोजें और US स्टोरफ्रंट को पिन करें।
curl -s -X POST "https://api.scrapeless.com/api/v1/scraper/request" \
  -H "Content-Type: application/json" \
  -H "x-api-token: ${SCRAPELESS_API_KEY}" \
  -d '{
    "actor": "scraper.amazon",
    "input": {
      "url": "https://www.amazon.com/dp/B07ZPKBL9V",
      "type": "product"
    },
    "proxy": { "country": "US" }
  }'

प्रतिक्रिया एक JSON ऑब्जेक्ट के रूप में आती है जिसमें html, metadata, और result कुंजी होती हैं। metadata ऑब्जेक्ट अनुरोध को पुनः प्रतिध्वनित करता है - उस प्रकार को जिसे आपने पूछा और एक rawUrl जो संग्रहीत रेंडर की गई पृष्ठ की ओर इशारा करता है:

json Copy
{
  "rawUrl": "https://api.scrapeless.com/storage/scrapeless.scraper.amazon/<hash>.html",
  "type": "product"
}

प्रतिक्रिया स्कीमा

पार्स की गई संरचित उत्पाद डेटा result के तहत रहता है। नीचे ASIN B07ZPKBL9V के लिए लौटाए गए आकार का विवरण है, जिसमें फ़ील्ड नाम सही वही हैं जिनकी उत्सर्जित करते हैं और मान वास्तविक लुकअप से लिए गए हैं।

json Copy
{
  // स्कीमा ठीक उसी चीज़ को दर्शाता है जो scraper.amazon उत्पाद पार्सर उत्सर्जित करता है।
  // मूल्य वास्तव में ASIN B07ZPKBL9V के लिए एक कैप्चर हैं; विशेषताओं की सूची एक चित्रात्मक नमूना है।
  "result": {
    "asin": "B07ZPKBL9V",
    "input_asin": "B07ZPKBL9V",
    "parent_asin": "B0GR1S2JM2",
    "title": "Apple iPhone 11, 64GB, PRODUCT RED - अनलॉक (पुनर्निर्मित)",
    "brand": "Apple",
    "manufacturer": "Apple Computer",
    "final_price": "$174.00",
    "initial_price": "$174.64",
    "discount": "-11%",
    "availability": "स्टॉक में केवल 4 बातें बची हैं - जल्द ही ऑर्डर करें।",
    "is_available": true,
    "reviews_count": 60289,
    "seller_name": "WirelessSource",
    "categories": ["सेल फ़ोन और सामान", "सेल फ़ोन"],
    "domain": "https://www.amazon.com",
    "url": "https://www.amazon.com/dp/B07ZPKBL9V",
    "images_count": 1,
    "features": ["...", "...", "..."]
  }
}

उत्पाद ऑब्जेक्ट के पास उन फ़ील्ड से अधिक हैं जो ऊपर हैं — पूर्ण result भी buybox_seller, number_of_sellers, product_dimensions, item_weight, date_first_available, model_number, variations, product_details, prices_breakdown, और अन्य में एक अंतर्निहित images सूची को उजागर करता है। जो फ़ील्ड किसी दिए गए लिस्टिंग पर लागू नहीं होती हैं, वे गायब होने के बजाय खाली लौटती हैं, इसलिए उपस्थिति के खिलाफ कोड करें, न कि अनुपस्थिति के खिलाफ।

कुछ फ़ील्ड्स पर एक दूसरी नज़र डालने की आवश्यकता है:

  • asin बनाम input_asin बनाम parent_asin. input_asin वह ASIN है जिसे आपने भेजा; asin वह लिस्टिंग है जिस पर पृष्ठ संबोधित किया गया; parent_asin वह विविधता समूह है जिसमें लिस्टिंग शामिल है। एक बच्चे की विविधता के लिए, तीनों भिन्न हो सकते हैं।
  • कीमतें अपने मुद्रा चिह्न के साथ स्ट्रिंग हैं। final_price है "$174.00", न कि एक संख्या — यदि आपको अंकगणित की आवश्यकता है तो संख्या मान को स्वयं पार्स करें, और घटक कीमतों के लिए prices_breakdown पढ़ें।
  • is_available वह बूलियन है जिस पर शाखा बनानी है। availability मानव स्ट्रिंग है ("स्टॉक में केवल 4 बातें बची हैं"); is_available मशीन ध्वज है।
  • reviews_count एक पूर्णांक है। यह लुकअप समय पर लिस्टिंग पर रेटिंग्स की गिनती करता है और कॉल के बीच में स्थानांतरित होता है।

संरचित आउटपुट का प्रबंधन

कोड में, लुकअप एक POST है और result का पढ़ना है। यह पायथन रीडर अधिकांश कैटलॉग को आवश्यक फ़ील्ड खींचता है और एक सपाट रिकॉर्ड प्रिंट करता है।

python Copy
import os
import requests

API_URL = "https://api.scrapeless.com/api/v1/scraper/request"


def lookup_asin(asin: str, country: str = "US") -> dict:
    """एक एसिन को इसके पार्स की गई उत्पाद रिकॉर्ड में हल करें।"""
    payload = {
        "actor": "scraper.amazon",
        "input": {
            "url": f"https://www.amazon.com/dp/{asin}",
            "type": "product",
        },
        "proxy": {"country": country},
    }
    headers = {
        "Content-Type": "application/json",
        "x-api-token": os.environ["SCRAPELESS_API_KEY"],
    }
    response = requests.post(API_URL, json=payload, headers=headers, timeout=120)
    response.raise_for_status()
    return response.json()["result"]


if __name__ == "__main__":
    product = lookup_asin("B07ZPKBL9V")
    record = {
        "asin": product.get("asin"),
        "title": product.get("title"),

"ब्रांड": उत्पाद.get("ब्रांड"),
"कीमत": उत्पाद.get("अंतिम_कीमत"),
"स्टॉक में": उत्पाद.get("उपलब्धता"),
"रेटिंग_गिनती": उत्पाद.get("समीक्षाएँ_गिनती"),
"बिक्री": उत्पाद.get("विक्रेता_नाम"),
"श्रेणी": " > ".जोड़ें(उत्पाद.get("श्रेणियाँ") या []),
}
प्रिंट(record)

Copy
पाठक सब कुछ `result` से मुख्य मानता है और गायब क्षेत्रों को `None` के रूप में मानता है `.get()` के माध्यम से, जो बेमेल क्षेत्रों को खाली लौटाने के तरीके से मेल खाता है। ASINs की एक सूची को समृद्ध करने के लिए, उनके चारों ओर लूप करें और समांतरता को मतदान करते रहें - एक बार में कुछ कार्यकर्ता पर्याप्त हैं, और यह प्रत्येक स्टोरफ्रंट की बाहर जाने वाली जीरो को साफ रखता है।

कैटलॉग खोज के लिए, `type` को `keywords` में बदलें और एक खोज URL (`https://www.amazon.com/s?k=<query>`); उसी कॉल के बाद एक `result` वस्तु लौटती है जिसमें `keyword`, `current_page`, `total_page`, और एक `result` सूची जो आप ऊपर दिए गए ASIN लुकअप में वापस दे सकते हैं। यही पैटर्न बाकी के प्रतियोगी मूल्य निर्धारण या कैटलॉग पाइपलाइन के लिए भी व्यवस्थित होता है - इसे [सर्वश्रेष्ठ अमेज़न स्क्रैपर्स गाइड](https://www.scrapeless.com/hi/blog/best-amazon-scrapers-2026) में रैंक की गई सूची के साथ जोड़ें ताकि यह पता चल सके कि एक प्रबंधित अभिनेता विकल्पों की तुलना में कहाँ फिट बैठता है, और [स्क्रैपिंग एपीआई मूल्य निर्धारण](https://www.scrapeless.com/hi/pricing?utm_source=website&utm_medium=blog&utm_campaign=scraperapi&utm_term=amazon-asin-lookup-api) को चेक करें उससे पहले कि आप कॉल वॉल्यूम को बढ़ाएं।

---

## निष्कर्ष: एक ASIN-कुंजी वाली उत्पाद फ़ीड बनाएं

एक अमेज़न ASIN लुकअप चार निर्णयों में घटित होता है: `/dp/<ASIN>` URL भेजें, `type` को `product` पर सेट करें, `proxy.country` को उस स्टोरफ्रंट पर पिन करें जिसे आप चाहते हैं, और `result` से जाँची गई फ़ील्ड पढ़ें। प्रबंधित [अमेज़न स्क्रैपर एपीआई](https://www.scrapeless.com/hi/product/scraping-api?utm_source=website&utm_medium=blog&utm_campaign=scraperapi&utm_term=amazon-asin-lookup-api) रेंडरिंग, एंटी-डिटेक्शन, और पार्सिंग को संभालता है, इसलिए आप पार्स की गई स्कीमा के खिलाफ कोड करते हैं न कि एक चयनकर्ता सेट के खिलाफ जो अगले डिज़ाइन पर टूटता है।

यहां से, वही `scraper.amazon` अभिनेता एक व्यापक पाइपलाइन को जोड़ता है: `type: keywords` ASINs की खोज करता है, `type: product` प्रत्येक को समृद्ध करता है, और एक देश-पिन किया गया इजरेज़ मूल्य और उपलब्धता को क्षेत्र के अनुसार प्रामाणिक रखता है। पूर्ण अनुरोध और प्रतिक्रिया संदर्भ जीवन को [Scrapeless दस्तावेज़ीकरण](https://docs.scrapeless.com?utm_source=website&utm_medium=blog&utm_campaign=scraperapi&utm_term=amazon-asin-lookup-api) में मिलता है। श्रृंखलाबद्ध कीमतों को स्ट्रिंग के रूप में मानें, `is_available` पर शाखा बनाएं, और खाली फ़ील्ड को त्रुटियाँ नहीं बल्कि खाली मानों के रूप में पढ़ें।

---

## क्या आप अपने एआई-संचालित डेटा पाइपलाइन का निर्माण करने के लिए तैयार हैं?

हमारे समुदाय में शामिल हों एक निःशुल्क योजना प्राप्त करने के लिए और डेवलपर्स से जुड़ें जो अमेज़न उत्पाद-डेटा पाइपलाइनों का निर्माण कर रहे हैं: [Discord](https://discord.gg/VU2vtbq7Q2) · [Telegram](https://t.me/scrapeless).

[app.scrapeless.com](https://app.scrapeless.com/passport/login/?utm_source=website&utm_medium=blog&utm_campaign=scraperapi&utm_term=amazon-asin-lookup-api) पर साइन अप करें मुफ़्त स्क्रैपर एपीआई क्रेडिट के लिए और ऊपर दी गई लुकअप को ASINs, स्टोरफ्रंट, और क्षेत्रों के लिए अनुकूलित करें जिसकी आपके कैटलॉग को आवश्यकता है।

---

## सामान्य प्रश्न

**प्रश्न: ASIN क्या है और मुझे यह कहाँ मिलेगा?**
ASIN एक उत्पाद के लिए अमेज़न का दस-अक्षर का मानक पहचान संख्या है। यह उत्पाद URL में `/dp/` के बाद प्रकट होता है (उदाहरण के लिए, `B07ZPKBL9V` में `amazon.com/dp/B07ZPKBL9V`) और लिस्टिंग के "उत्पाद जानकारी" अनुभाग में। अमेज़न स्क्रैपर एपीआई ASIN को सीधे उस `url` से पढ़ता है जिसे आप भेजते हैं।

**प्रश्न: क्या मैं ASIN भेजू या पूरा URL?**
आप पूरे उत्पाद URL को भेजते हैं जिसमें `/dp/` खंड में ASIN होता है, और `input.type` को `product` पर सेट करते हैं। अभिनेता पथ से ASIN को पार्स करता है और इसे आपको `input_asin` (जो आपने भेजा) और `asin` (जो पृष्ठ ने हल किया) के रूप में लौटाता है।

**प्रश्न: क्या ASIN द्वारा अमेज़न उत्पाद डेटा को स्क्रैप करना कानूनी है?**
सार्वजनिक उत्पाद-लिस्टिंग डेटा आमतौर पर सुलभ होता है, लेकिन वैधता आपकी न्यायाधीशता, आप जो डेटा इकट्ठा करते हैं, और अमेज़न की सेवा की शर्तों पर निर्भर करती है। प्रयोजनों और उपयोग के मामलों के लिए लागू शर्तों की पुनरावलोकन करें और अपने विशेष उपयोग मामले के लिए सलाह के लिए परामर्श लें। Scrapeless केवल सार्वजनिक रूप से उपलब्ध डेटा तक पहुँचता है।

**प्रश्न: क्या मुझे एक प्रॉक्सी देश पिन करने की आवश्यकता है?**
संगत कीमत और उपलब्धता के लिए, हाँ। अमेज़न मूल्य, खरीद बॉक्स, और स्टॉक को क्षेत्र के अनुसार स्थानीयकरण करता है, इसलिए `proxy.country` को उस स्टोरफ्रंट पर पिन करें जिसे आप चाहते हैं (उदाहरण के लिए, `US` के लिए `amazon.com`)। इसके बिना, इजरेज़ क्षेत्र भिन्न हो सकता है और आप जो कीमतें पढ़ते हैं उन्हें विकृत कर सकता है।

**प्रश्न: प्रतिक्रिया में कुछ फ़ील्ड खाली क्यों हैं?**
उत्पाद पार्सर अपने स्कीमा में हर फ़ील्ड को लौटाता है और लिस्टिंग को लागू न होने पर उन्हें खाली छोड़ देता है, उन्हें गिराने के बजाय। एक नवीनीकरण फोन `सामग्री` ले जाने वाला नहीं होगा; एक किताब `वस्तु_वजन` नहीं ले जाएगी। खाली फ़ील्ड को शून्य मान के रूप में मानें और अपने कोड में उपस्थिति पर शाखा बनाएं।

**प्रश्न: क्या मैं एक बार में कई ASINs की खोज कर सकता हूँ?**
एंडपॉइंट एक अनुरोध प्रति एक ASIN को हल करता है, इसलिए अपने ASIN सूची के चारों ओर इटरेट करें और प्रति आइटम इसे कॉल करें। समांतरता को उचित रखें - एक समय में कुछ कार्यकर्ता - ताकि प्रत्येक स्टोरफ्रंट की बाहर जाने वाली जीरो को साफ रखें जबकि आप एक कैटलॉग को समृद्ध करते हैं।

**प्रश्न: सबसे पहले ASINs को कैसे खोजूं?**
उसी अभिनेता का उपयोग करें जिसमें `input.type` को `keywords` पर सेट किया गया है और एक खोज URL (`amazon.com/s?k=<query>`)। यह ASINs के साथ लिस्टिंग के पृष्ठबद्ध `result` एरे को लौटाता है, जिसे आप पूर्ण रिकॉर्ड के लिए `type: product` लुकअप में फीड करते हैं।

स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।

सबसे लोकप्रिय लेख

सूची