प्रवेश: API
DR चेकर टूल API: हर पैरामीटर और फ़ील्ड की व्याख्या
अनुरूप संरचना और प्रत्येक प्रमाणीकृत रिस्पॉन्स में मौजूद दो फ़ील्ड्स के लिए संदर्भ। एक्शन-विशिक्त पंक्तियाँ भिन्न हो सकती हैं, इसलिए पार्स करने से पहले एक कॉल का परीक्षण करें।

यह सेवा एक REST API है जो JSON लौटाता है। CORS खुला है। एक ब्राउज़र पेज इसे सीधे कॉल कर सकता है। कीज़ 'sk_' से शुरू होते हैं और Google साइन-इन के बाद अकाउंट पेज से आते हैं।
बेस यूआरएल https://rankupedia.com/api.php है। क्वेरी स्ट्रिंग में key=sk_... या हेडर Authorization: Bearer sk_... के साथ प्रमाणीकरण करें, आपकी क्लाइंट जो पसंद करे। चार एक्शन्स को प्रमाणीकरण की आवश्यकता नहीं है: domain, overview, stats और suggest।
एक DR चेकर टूल तभी उपयोगी होता है जब आप उस के आउटपुट को पार्स कर सकें। नीचे दिया गया नमूना सबसे छोटा उपयोगी केस है, और उसके बाद के अनुभाग उन हिस्सों को कवर करते हैं जिनमें लोग गलती करते हैं।
एक कॉल, टिप्पणी सहित
मुफ्त overview एक्शन। डोमेन को अपने स्वयं के डोमेन से बदलें।
curl "https://rankupedia.com/api.php?action=overview&q=nytimes.com"
# authenticated listing, 100 rows per page:
curl -H "Authorization: Bearer sk_live_..." \
"https://rankupedia.com/api.php?action=refdomains&q=nytimes.com&per=100&page=1&order=desc"अनुरूप की संरचना
लक्ष्य का नाम दें
q मान एक साधा डोमेन है जैसे कि nytimes.com, बिना किसी स्कीम या पथ के।
यदि एक्शन शुल्क वाला है तो क्रेडेंशियल्स जोड़ें
क्वेरी स्ट्रिंग में key या Bearer हेडर। हेडर कुंजी को सर्वर लॉग और ब्राउज़र इतिहास से बाहर रखते हैं।
पेज और सॉर्ट
page और per परिणामों को विभाजित करते हैं और sort order के साथ उन्हें व्यवस्थित करता है। पेजिनेशन 50,000 पंक्तियों पर रुक जाती है।
पहले कॉल से पहले डोमेन सूची तैयार करना
अक्सर अजीब परिणाम सर्वर के बजाय इनपुट से शुरू होते हैं। सूची को एक बार साफ़ करें, फिर उसे भेजें।
वह सब हटा दें जो एक साधा डोमेन नहीं है। पथ के साथ एक पेस्ट किया गया पता कुछ ऐसे अक्षर जोड़ता है जिन्हें q मान अपेक्षित नहीं करता, इसलिए स्कीम, पथ और किसी भी ट्रेलिंग स्लैश को हटा दें।
स्कीम और पथ हटाएं
https://shop.example.org/blog/ को कॉल से पहले shop.example.org में बदलें। q मान एक साधा डोमेन लेता है, इसलिए पथ यहीं छोड़ दिया जाता है, भेजा नहीं जाता।
स्प्रेडशीट्स इन विवरणों को सेल के अंदर छुपा देती हैं। स्लैश और काला बिंदु (colon) के लिए एक त्वरित फ़िल्टर अधिकांश को पकड़ लेता है।
नामों को लोअर-केस करें और दोहराव हटाएं
डोमेन नाम केस-सेंसिटिव नहीं होते हैं, इसलिए Example.COM और example.com एक ही टारगेट को दर्शाते हैं। दोनों भेजने से एक ही जवाब के लिए क्रेडिट दो बार खर्च होते हैं।
कॉल्स की गिनती करने से पहले डुप्लिकेट हटाएं। 2,100 नामों की सूची जिसमें 300 दोहराव हैं, को कच्चे रूप में दो bulk_dr कॉल्स की आवश्यकता होती है, लेकिन जब इसे डुप्लिकेट हटाकर अद्वितीय बनाया जाता है, तो उसके 1,800 अद्वितीय नाम एक में समाहित हो जाते हैं।
रूट और सबडोमेन के बीच निर्णय लें
blog.example.org जैसा एक सबडोमेन आपकी सूची में अपना अलग नाम है। कुछ भी भेजने से पहले तय करें कि आपका प्रश्न किसके बारे में है।
यदि प्रश्न पूरे साइट को कवर करता है, तो रूट नाम भेजें। यदि यह एक सबडोमेन को कवर करता है, तो उसी सटीक नाम का परीक्षण करें और जवाब को केवल उसी से संबंधित मानें।
निर्णय को जॉब के नोट्स में लिखें, ताकि अगली बार, शायद किसी अलग व्यक्ति द्वारा, उसी नियम का पालन किया जाए।
क्वेरी पैरामीटर
| पैरामीटर | अर्थ | नोट्स |
|---|---|---|
| क्रिया | कौन सी ऑपरेशन चलानी है | आवश्यक; लागत तालिका देखें |
| q | लक्ष्य डोमेन | उदाहरण: nytimes.com |
| key | API कुंजी | या Bearer हेडर का उपयोग करें |
| page | परिणामों का पेज नंबर | गहरी पेजिंग 50,000 पर सीमित है |
| per | प्रति पेज पंक्तियाँ | 10 से 5000 तक स्वीकार करता है; एक कॉल एक चार्ज है, किसी भी पंक्ति संख्या पर |
| sort | जिस कॉलम के आधार पर सॉर्ट करना है | उपलब्ध कॉलम क्रिया पर निर्भर करते हैं |
| order | asc या desc | sort के साथ एक साथ उपयोग करें |
| domains | bulk_dr के लिए सूची | हर बार अधिकतम 2,000 डोमेन, GET या POST बॉडी के माध्यम से |

लंबी सूची के माध्यम से पेजिंग
लिस्टिंग एक्शन परिणामों को पेजों में लौटाते हैं। स्लाइस को नियंत्रित करने वाले दो पैरामीटर हैं: page स्लाइस चुनता है, और per निर्धारित करता है कि वह कितनी पंक्तियाँ रखती है। per 10 से 5000 तक मान स्वीकार करता है।
पहले पेज आकार चुनें। एक बड़ा per कॉलों की संख्या को कम करता है, और बिलिंग पंक्तियों के बजाय कॉलों को गिनता है।
पेजिंग से पहले सॉर्ट करें
sort और order तय करते हैं कि कौन सी पंक्तियाँ पेज एक पर आती हैं। हर कॉल में दोनों सेट करें, ताकि हर पेज समान ऑर्डरिंग से आए।
जब आप सबसे मजबूत पंक्तियों को पहले चाहते हैं तो मेट्रिक कॉलम पर desc का उपयोग करें, और जब आप सबसे कमजोर की तलाश में हों तो asc का उपयोग करें। उपलब्ध कॉलम नाम क्रिया पर निर्भर करते हैं।
एक लंबी रन पर भरोसा करने से पहले दो पेजों के छोटे टेस्ट से ऑर्डर की पुष्टि करें।
50,000 पंक्ति की सीमा पर रुकें
गहरी पेजिंग 50,000 पंक्तियों पर रुक जाती है। उस बिंदु के बाद कॉल कुछ नया नहीं लौटाती, इसलिए जो लूप लगातार पेजिंग करता है वह क्रेडिट बर्बाद कर रहा है।
प्रश्न को संकीर्ण करें या कार्य को छोटे-छोटे हिस्सों में बांटकर चलाएं। अलग लक्ष्य के साथ एक दूसरा क्वेरी आमतौर पर एक गहरे पेज से साफ़ होता है।
गहराई पर एक सीमा (cap) लिस्टिंग की एक संपत्ति है, इसलिए यह उस क्लाइंट पर लागू होती है जो उसे कॉल करता है।
छोटे पेज पर लूप समाप्त करें
जब कोई पेज प्रति से कम पंक्तियाँ लौटाए, तो रोक दें। यह आमतौर पर इस संकेत को देता है कि लिस्टिंग खत्म हो गई है।
इस परीक्षण को त्रुटि निवारण प्रविष्टि में संतुलन जाँच के साथ जोड़ें, ताकि लूप अंतिम पेज पर या कम संतुलन पर समाप्त हो जाए, जो भी पहले आए।
हर प्रतिक्रिया में मौजूद फ़ील्ड
ठीक
एक बूलियन मान। सत्य का अर्थ है कि कॉल पूरी हुई। असत्य का अर्थ है कि नहीं हुई, और HTTP स्थिति बताती है कि क्यों।
_क्रेडिट्स
प्रमाणीकृत कॉल्स पर दिखाई देता है। यह इस कॉल की लागत और आपके शेष क्रेडिट्स का संतुलन रिपोर्ट करता है, जिससे आप लूप को संतुलन खत्म होने से पहले रोक सकते हैं।
प्रत्येक एक्शन के लिए पंक्ति-स्तर के फ़ील्ड नाम एक लाइव प्रतिक्रिया में दिखाई देते हैं। हम उन्हें इस प्रविष्टि में दोहराते नहीं हैं ताकि यह सेवा से अलग न हो जाए।
लूप लिखने से पहले एक कॉल का परीक्षण
एक ऐसे डोमेन को चुनें जिसे आप जानते हों
एक साइट चुनें जिसकी प्रोफ़ाइल आप उसके अपने पेजों से आंक सकते हैं। एक परिचित डोमेन अजीब संख्या को आसानी से पहचानने में मदद करता है।
एक मुफ्त कॉल भेजें
बिना कुंजी के ओवरव्यू या डोमेन चलाएं। प्रतिक्रिया JSON का वास्तविक आकार दिखाती है, जो किसी भी विवरण से अधिक विश्वसनीय है, इस विवरण सहित।
सबसे छोटे पेज के साथ एक भुगतान वाली कॉल भेजें
एक लिस्टिंग एक्शन पर per=10 का उपयोग करें। आप स्केल अप करने से पहले पंक्ति फ़ील्ड और _क्रेडिट्स मान देखेंगे।
_क्रेडिट्स पढ़ें, फिर स्केल करें
एक कॉल की लागत को अपनी योजना में कॉल्स की संख्या से गुणा करें। यदि कुल राशि संतुलन से अधिक है, तो लूप शुरू होने से पहले योजना को कम करें।
क्लाइंट तैनात करने से पहले
- किसी अन्य फ़ील्ड को पढ़ने से पहले ok की जाँच करें
- हर कॉल पर _क्रेडिट्स लॉग करें
- डेटा को एक मासिक स्नैपशॉट मानें
- 401 और 402 को अलग से हैंडल करें, त्रुटि निवारण प्रविष्टि देखें
- कुंजी को फ्रंट-एंड कोड से बाहर रखें

बैचिंग पर नोट्स
bulk_dr एक्शन प्रति कॉल 2,000 डोमेन तक स्वीकार करता है। उन्हें domains क्वेरी मान के रूप में भेजें, या जब सूची URL के लिए बहुत लंबी हो तो POST बॉडी के रूप में।
compare 20 डोमेन तक लेता है और intersect 2 से 10 लेता है। Intersect एक ही प्रश्न का उत्तर देता है: कौन सी साइटें उन सभी डोमेन को लिंक करती हैं जिन्हें आप नामित करते हैं।
चूँकि बिलिंग प्रति कॉल है, बड़े बैच प्रति पंक्ति हमेशा सस्ते होते हैं। वे भी एक इकाई के रूप में विफल होते हैं। एक ऐसे आकार में चंक करें जिसे आप दोहरा सकें।
लंबी सूचियाँ POST बॉडी में हो सकती हैं। प्रतिक्रिया में किसी अन्य चीज़ से पहले ok पढ़ें, क्योंकि एक अस्वीकृत बैच में उपयोग करने योग्य कोई पंक्ति नहीं होती।
मान्यताओं के बिना JSON पढ़ना
पार्सर उन फ़ील्ड्स पर टूट जाते हैं जिनकी प्रतिक्रिया में कमी है। कोड जो हर पंक्ति पर हर कुंजी की उम्मीद करता है, नाजुक होता है, और एक छोटी पंक्ति पूरे कार्य को रोक सकती है।
गुम फ़ील्ड्स को सामान्य मानें
पंक्ति फ़ील्ड्स एक्शन पर निर्भर करते हैं, इसलिए एक लिस्टिंग में मौजूद एक फ़ील्ड दूसरी में अनुपस्थित हो सकता है। प्रत्येक फ़ील्ड को एक डिफ़ॉल्ट दें और आगे बढ़ें।
लॉग करें कि कौन सा फ़ील्ड गुम था, केवल यह नहीं कि कुछ विफल हुआ। वह लॉग दिखाता है कि स्कीमा या आपका अपना कोड बदला है या नहीं।
नमूने के लिए कच्ची प्रतिक्रियाएँ रखें
प्रत्येक नए कार्य में पहले कुछ कॉल्स की कच्ची JSON सहेजें। जब कोई संख्या बाद में गलत लगती है, तो सहेजी गई टेक्स्ट प्रश्न को स्मृति से तेज़ी से सुलझाता है।
नमूने को उसकी तारीख और एक्शन नाम के साथ स्टोर करें। एक मासिक रीफ्रेश का अर्थ है कि अगले महीने वही कॉल अलग पंक्तियाँ लौटा सकती है।
परिवार के अनुसार एक्शन
| परिवार | एक्शन | सामान्य उपयोग |
|---|---|---|
| मुफ्त | डोमेन, ओवरव्यू, स्टैट्स, सजेस्ट | त्वरित खोज और ऑटोकम्प्लीट |
| स्कोरिंग | बल्क_dr, कंपेयर, dr_डिस्ट्रीब्यूशन | सूची स्क्रीनिंग और पीयर सेट |
| लिस्टिंग | रिफ़डोमेन, बैकलिंक्स, एंकर, टॉपपेजेस, एंकर_क्लाउड | एक साइट का ऑडिट |
| खोज | खोज, कीवर्ड, इंटरसेक्ट | किसी दिए गए एंकर या कई प्रतिस्पर्धियों से लिंक करने वालों को खोजना |
पंक्ति-स्तर के फ़ील्ड नाम एक्शन के अनुसार अलग होते हैं और यहाँ सूचीबद्ध नहीं हैं। एक ऐसे डोमेन पर मुफ्त एक्शन के साथ एंडपॉइंट कॉल करें और JSON पढ़ें, जो एकमात्र अधिकारिक स्रोत है।
डेवलपर्स द्वारा पूछे जाने वाले पैरामीटर प्रश्न
चार पैरामीटर प्रश्न API के पहले सप्ताह के अधिकांश हिस्से को कवर करते हैं।
क्या मुझे हर कॉल के लिए कुंजी की आवश्यकता है?
नहीं। डोमेन, ओवरव्यू, स्टैट्स और सजेस्ट एक्शन को कुंजी की आवश्यकता नहीं है। भुगतान वाले एक्शन को एक चाहिए, जिसे either key पैरामीटर के रूप में या Bearer हेडर के रूप में भेजा जाता है।
क्या मैं URL में कुंजी भेज सकता हूँ?
हाँ, key पैरामीटर क्वेरी स्ट्रिंग में काम करता है। हेडर कुंजी को पता के अंदर रखता है, जिसे लॉग और साझा लिंक्स के लिए कई टीमें प्राथमिकता देती हैं।
अगर मुझे per 5000 से ऊपर चाहिए?
दस्तावेज़ित रेंज 10 से 5000 है। इससे बाहर के मान उस दायरे से बाहर गिर जाते हैं जिसे यह प्रविष्टि वर्णित करती है, इसलिए मान को रेंज के अंदर रखें और अधिक के लिए पेज करें।
q में अक्षर केस मायने रखता है?
डोमेन नाम केस-असेंसिटिव नहीं हैं, इसलिए भेजने से पहले मान को लोअर-केस करें। एक वर्तनी के परिणामों को रनों के बीच तुलना करना आसान बनाती है।