WisyLink ब्लॉग

वेबसाइट बनाने का APICLIऑटोमेशनडेवलपर्सAI वेबसाइट बिल्डर

AI वेबसाइट बिल्डर API: कोड से वेबसाइट बनाएं

WisyLink के AI वेबसाइट बिल्डर API से कोड के ज़रिए होस्टेड साइट बनाएं और बदलें: फ़ाइलें अपलोड करें, ब्रीफ़ भेजें, स्टेटस देखें, लाइव URL पाएं।

14 मिनट पढ़ें
AI वेबसाइट बिल्डर API: कोड से वेबसाइट बनाएं

WisyLink का API आपको कोड से होस्टेड वेबसाइटें बनाने और बदलने देता है। रेफ़रेंस फ़ाइलें अपलोड करें, POST /chat पर आम भाषा में मैसेज भेजें, और एजेंट साइट बनाकर उसे wisylink.com पर उसके अपने पते पर होस्ट कर देता है। बदलाव के लिए उसी लिंक id के साथ अगला मैसेज भेजें। API का इस्तेमाल आपके प्लान की 5-घंटे और साप्ताहिक सीमा में ही गिना जाता है।

  • कुछ REST एंडपॉइंट पूरा सफ़र संभालते हैं: फ़ाइल अपलोड, POST /chat से साइट बनाना या आगे बढ़ाना, स्टेटस पोल करना, साइटों की सूची देखना और उन्हें हटाना।
  • POST /chat उसी Wisy से बात करता है जो ऐप में है, इसलिए जवाब में बिल्ड की जगह एक सवाल भी आ सकता है। पोलिंग शुरू करने से पहले status देखें।
  • API कुंजियाँ सिर्फ़ वेब पर बनती हैं, और हर कुंजी पर प्रतिदिन, प्रति हफ़्ते या प्रति महीने $10 तक की अपनी खर्च सीमा लग सकती है, जो प्लान की सीमाओं के ऊपर एक अतिरिक्त रोक है।
  • npm पैकेज @wisylink/cli इन्हीं एंडपॉइंट को कमांड-लाइन टूल और Node क्लाइंट में लपेटता है।
  • कस्टम डोमेन और सेवाओं की कुंजियाँ (Stripe, ईमेल) वेब या मोबाइल ऐप में सेट होती हैं; पब्लिक API इन्हें नहीं संभालता।

क्या-क्या ऑटोमेट कर सकते हैं

API असल में चैट ही है, बस चैट विंडो के बिना। हर POST /chat Wisy के लिए एक मैसेज है; जब अनुरोध साफ़ होता है, तो एक AI बिल्ड एजेंट सर्वर-रेंडर्ड वेब ऐप लिखता है और उसे https://<id>.wisylink.com पर डिप्लॉय करता है, ब्रीफ़ में मांगा गया हो तो सेव होने वाले डेटा, अकाउंट या फ़ाइल अपलोड के साथ। टेम्पलेट, थीम या पेज टाइप जैसे कोई पैरामीटर नहीं हैं। साइट के बारे में सब कुछ, सेक्शन और टेक्स्ट से लेकर फ़ीचर और स्टाइल तक, मैसेज में ही जाता है, ठीक वैसे जैसे कोई इंसान उसे बताता। (इसके पीछे की बुनियादी बातें AI ऐप बिल्डर क्या है में हैं।)

बेस URL https://api.wisylink.com है। ऑथेंटिकेशन के लिए x-api-key: <key> हेडर या Authorization: Bearer <key> भेजें। JSON एंडपॉइंट Content-Type: application/json लेते हैं, और टाइमस्टैम्प epoch मिलीसेकंड में होते हैं।

WisyLink API के एंडपॉइंट
एंडपॉइंटमेथडकाममुख्य फ़ील्ड
/filesPOSTफ़ाइल अपलोड शुरू करनाभेजें name, मिलेगा id
/files/chunksPOSTफ़ाइल के बाइट भेजना, हर रिक्वेस्ट में ज़्यादा से ज़्यादा 4 MBid, और आखिरी हिस्से पर last=true; बॉडी में सीधा बाइनरी डेटा
/files/:idGETफ़ाइल की जानकारी पढ़नाcontent_type, name, size
/files/:idDELETEफ़ाइल हटानाहर लिंक के file_ids से भी हट जाती है
/chatPOSTनई साइट बनाना (id के बिना) या मौजूदा साइट आगे बढ़ाना (id के साथ)message, 10 तक file_ids; लौटाता है id, url, status, answer
/linksGETअपनी साइटों की सूची, सबसे नई पहलेpage, limit (1 से 100); items, total_pages, has_next
/links/:idGETएक साइट की जानकारीstatus, url, file_ids
/links/:idDELETEसाइट और उसकी रेफ़रेंस फ़ाइलें हटानालौटाता है {"ok": true}

पब्लिक API क्या नहीं करता: पेमेंट या ईमेल के लिए साइट को चाहिए कुंजियाँ सेट करना (ये मालिक इंटीग्रेशन में खुद पेस्ट करता है), कस्टम डोमेन जोड़ना, साइट का सेव किया डेटा पढ़ना या लिखना, या सोर्स कोड एक्सपोर्ट करना।

API कुंजी बनाएं और हर कुंजी की खर्च सीमा सेट करें

  1. wisylink.com पर साइन इन करें। कुंजियाँ सिर्फ़ वेब पर बनती हैं, मोबाइल ऐप में नहीं।
  2. अकाउंट सेटिंग्स में एपीआई कुंजियाँ खोलें और API कुंजी बनाएं चुनें।
  3. कुंजी का नाम उस जगह पर रखें जहां वह इस्तेमाल होगी, जैसे “acme-landing-pages-ci”, ताकि रद्द करते समय पता रहे कि क्या रुकेगा।
  4. विंडो और सीमा तय करें। दैनिक, साप्ताहिक या मासिक चुनें और USD में खर्च सीमा डालें, हर विंडो में ज़्यादा से ज़्यादा $10। विंडो UTC दिन, सोमवार से शुरू होने वाले हफ़्ते या महीने के हिसाब से चलती हैं।
  5. कुंजी तुरंत कॉपी करें। वह सिर्फ़ एक बार दिखती है। उसे अपने सीक्रेट मैनेजर या CI सीक्रेट में रखें, जैसे WISYLINK_API_KEY नाम से।

यह सीमा एक सुरक्षा रोक है, आपका प्लान नहीं। हर रिक्वेस्ट आपके अकाउंट की चलती 5-घंटे और साप्ताहिक विंडो में से भी घटती है, वही विंडो जो वेब और मोबाइल चैट इस्तेमाल करते हैं। माप इस बात से होता है कि रिक्वेस्ट से AI को कितना काम करना पड़ा, आपकी रेफ़रेंस फ़ाइलें पढ़ना भी उसमें शामिल है। सीमा हर रिक्वेस्ट से पहले जांची जाती है और खर्च उसके बाद दर्ज होता है, इसलिए किसी विंडो की आखिरी रिक्वेस्ट सीमा से थोड़ा ऊपर जा सकती है। कुंजी रद्द करते ही वह हट जाती है, और उसे अब भी इस्तेमाल करने वाली हर चीज़ को 401 मिलता है।

क्या फ़्री प्लान पर API चलता है? हां। Community पर ऐप वाले ही नियम लागू होते हैं: हर 5 घंटे की विंडो में एक बिल्ड, और साइटें 30 दिन लाइव रहती हैं, फिर एक हफ़्ता हटाए जाने के लिए चिह्नित रहती हैं। इंटीग्रेशन का प्रोटोटाइप बनाने के लिए इतना काफ़ी है; क्लाइंट के काम या बैच के लिए पेड प्लान ज़्यादा सीमा, एक साथ कई बिल्ड और सब्सक्रिप्शन रहने तक लाइव रहने वाले लिंक देता है।

रेफ़रेंस फ़ाइलें अपलोड करें (चंक में अपलोड)

रेफ़रेंस फ़ाइल वह सब है जिसे एजेंट को पढ़ना है या साइट पर लगाना है: ब्रांड गाइड, लोगो, प्रोडक्ट फ़ोटो, रेट लिस्ट। JPEG, PNG, WebP, GIF, HEIC, SVG, MP3, MP4, PDF, XLSX, DOCX, CSV, TXT, JSON और HTML फ़ॉर्मेट चलते हैं, हर फ़ाइल 25 MB तक। असली टाइप फ़ाइल के बाइट से पहचाना जाता है, और खाली फ़ाइलें रिजेक्ट होती हैं।

अपलोड में दो कॉल लगती हैं। पहले फ़ाइल बनाएं और लौटी हुई id संभाल लें:

curl -s -X POST https://api.wisylink.com/files -H "x-api-key: $WISYLINK_API_KEY" -H "Content-Type: application/json" -d '{"name":"brand-guide.pdf"}'

फिर बाइट भेजें। 4 MB या उससे छोटी फ़ाइल एक ही रिक्वेस्ट में last=true के साथ जाती है:

curl -s -X POST "https://api.wisylink.com/files/chunks?id=$FILE_ID&last=true" -H "x-api-key: $WISYLINK_API_KEY" -H "Content-Type: application/octet-stream" --data-binary @brand-guide.pdf

बड़ी फ़ाइलों को टुकड़ों में बांटें (split -b 4m brand-guide.pdf part_), टुकड़े क्रम से उसी id पर भेजें, और last=true सिर्फ़ आखिरी टुकड़े पर लगाएं; वही कॉल फ़ाइल को पूरा करके प्रोसेस करती है। अपलोड 15 मिनट के अंदर पूरा होना चाहिए, वरना सेशन खत्म हो जाता है। Node में, नीचे बताया गया क्लाइंट टुकड़े करने का काम खुद कर देता है।

POST /chat से साइट बनाएं और लाइव URL का इंतज़ार करें

ब्रीफ़ भेजें

नई साइट के लिए id न भेजें। मैसेज 5,000 अक्षरों तक हो सकता है, जिसमें ढंग का ब्रीफ़ आ जाता है: मकसद, ऑडियंस, सेक्शन, असली टेक्स्ट, फ़ीचर, स्टाइल और भाषा। आखिर में “जो मैंने नहीं बताया, उसके लिए समझदारी भरे डिफ़ॉल्ट चुनें” लिखने से पहली ही कॉल पर बिल्ड शुरू होने की संभावना बढ़ती है। ब्रीफ़ हिंदी में भी लिखा जा सकता है, क्योंकि Wisy आपके मैसेज की भाषा में जवाब देता है। FILE_ID की जगह अपने अपलोड की id डालें।

curl -s -X POST https://api.wisylink.com/chat -H "x-api-key: $WISYLINK_API_KEY" -H "Content-Type: application/json" -d '{"message":"बेंगलुरु के स्पेशलिटी कॉफ़ी रोस्टर Ember के लिए एक पेज की लैंडिंग साइट बनाएं। सेक्शन: हीरो, कीमतों के साथ तीन सिंगल-ओरिजिन कॉफ़ी, होलसेल पूछताछ फ़ॉर्म जो एडमिन एरिया में सेव हो, खुलने का समय, मैप लिंक। रंग और फ़ॉन्ट के लिए अटैच की गई ब्रांड गाइड इस्तेमाल करें। जो मैंने नहीं बताया, उसके लिए समझदारी भरे डिफ़ॉल्ट चुनें।","file_ids":["FILE_ID"]}'

यही कॉल Node में fetch से:

const res = await fetch("https://api.wisylink.com/chat", { method: "POST", headers: { "x-api-key": process.env.WISYLINK_API_KEY, "Content-Type": "application/json" }, body: JSON.stringify({ message: brief, file_ids: [fileId] }) }); let link = await res.json();

नई साइट पर जवाब 201 होता है, जिसमें id, url, status, answer, created_at और updated_at आते हैं। id सेव कर लें: बाद में साइट बदलने, पढ़ने या हटाने का यही तरीका है। इसे एक अपारदर्शी स्ट्रिंग की तरह रखें, इसके फ़ॉर्मेट की जांच न करें।

पोल करने से पहले स्टेटस पढ़ें

POST /chat के जवाब का status बताता है कि बिल्ड सच में शुरू हुआ या नहीं:

building या queued
बिल्ड चल रहा है या खाली स्लॉट का इंतज़ार कर रहा है (queued अभी रेफ़रेंस की सूची में नहीं है, पर जवाब में दिख सकता है)। पोलिंग शुरू करें। नई साइट पर पहला बिल्ड पूरा होने तक url पर “बन रहा है” वाला पेज दिखता है।
नई साइट पर idle
कोई बिल्ड शुरू नहीं हुआ। Wisy ने जवाब दिया है, और answer में आमतौर पर एक छोटा सवाल होता है, जैसे कौन-सा पेमेंट प्रोवाइडर इस्तेमाल करना है। उसी id के साथ एक और POST /chat भेजकर जवाब दें।
फ़ॉलो-अप के तुरंत बाद completed या aborted
मौजूदा साइट पर स्टेटस पिछले बिल्ड का नतीजा दिखाता है। अगर वह building में नहीं बदला, तो आपके मैसेज का जवाब आया है, बिल्ड नहीं; answer पढ़ें।

बिल्ड पूरा होने तक पोल करें

वेबहुक नहीं हैं, इसलिए GET /links/:id को पोल करें। बिल्ड सेकंडों में नहीं, मिनटों में चलते हैं, इसलिए हर 15 से 30 सेकंड काफ़ी है। completed, aborted या idle के अलावा हर स्टेटस को “अभी चल रहा है” मानें; इससे कोई नया इन-प्रोग्रेस स्टेटस आने पर भी आपका लूप सुरक्षित रहता है:

const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); while (!["completed", "aborted", "idle"].includes(link.status)) { await sleep(20000); link = await (await fetch(`https://api.wisylink.com/links/${link.id}`, { headers: { "x-api-key": process.env.WISYLINK_API_KEY } })).json(); }

जब status completed हो जाए, तो url आपकी लाइव साइट है। aborted का मतलब है कि बिल्ड पूरा होने से पहले रुक गया; जो साइट पहले से लाइव थी, उसका पिछला वर्ज़न बना रहता है, और नया मैसेज दोबारा कोशिश करता है। अगर बाद में साइट पर कस्टम डोमेन लगे, तो url वही डोमेन लौटाता है। बिल्ड की पूरी रिपोर्ट, जिसमें यह नोट भी होता है कि साइट Stripe या ईमेल कुंजियों का इंतज़ार कर रही है, वेब ऐप में उस लिंक की चैट में मिलती है।

साइट बदलने के लिए सिर्फ़ नया निर्देश भेजें और LINK_ID की जगह उसकी id डालें; बातचीत का इतिहास सर्वर रखता है, और आगे बढ़ाई गई साइट 200 लौटाती है:

curl -s -X POST https://api.wisylink.com/chat -H "x-api-key: $WISYLINK_API_KEY" -H "Content-Type: application/json" -d '{"id":"LINK_ID","message":"दूसरी ब्रांच जोड़ें: 100 फ़ीट रोड, इंदिरानगर, रोज़ सुबह 7 से दोपहर 3 बजे तक खुली।"}'

फिर उसी तरह पोल करें। हर बदलाव एक नया बिल्ड है; फ़ेल हुआ बिल्ड आखिरी सही वर्ज़न को लाइव रहने देता है, जबकि सफल बिल्ड पूरा होते ही लाइव हो जाता है, इसलिए हर बदलाव के बाद अपनी जांच चलाएं। अगला बदलाव भेजने से पहले चल रहे बिल्ड के पूरा होने का इंतज़ार करें, जब तक कि नया मैसेज उसी चल रहे बिल्ड को सुधारने के लिए न हो।

साइटों की सूची के लिए GET /links?page=1&limit=100 से पेज-दर-पेज तब तक आगे बढ़ें, जब तक has_next false न हो जाए। किसी साइट को हटाने के लिए DELETE /links/:id साइट और उससे जुड़ी रेफ़रेंस फ़ाइलें मिटा देता है। उस पर लगा कस्टम डोमेन आपके अकाउंट में बना रहता है, किसी दूसरी साइट के लिए तैयार।

CLI और Node क्लाइंट

@wisylink/cli पैकेज (MIT लाइसेंस, Node 18.17 या नया) ऊपर के एंडपॉइंट को एक-एक कमांड से जोड़ता है, इसलिए शेल या CI जॉब से WisyLink को स्क्रिप्ट करने का यह सबसे तेज़ तरीका है:

  • npm i -g @wisylink/cli, फिर export WISYLINK_API_KEY=..., या हर कमांड के साथ --api-key दें।
  • wisylink files upload ./brand-guide.pdf अपने-आप 4 MB के टुकड़ों में अपलोड करता है।
  • wisylink chat --message "Ember Coffee के लिए लैंडिंग पेज बनाएं।" --file-id FILE_ID एक साइट बनाता है।
  • wisylink links list --page 1 --limit 50 आपकी साइटों की सूची दिखाता है।

कमांड JSON प्रिंट करती हैं, इसलिए jq से id या url निकाला जा सकता है। --timeout 1,000 से 120,000 मिलीसेकंड तक लेता है; chat के लिए इसे बढ़ाएं, क्योंकि वह Wisy के जवाब का इंतज़ार करता है।

यही पैकेज एक Node क्लाइंट भी देता है: import { CreateWisyLinkClient } from "@wisylink/cli"; const client = CreateWisyLinkClient({ apiKey: process.env.WISYLINK_API_KEY }); const file = await client.uploadFile("./brand-guide.pdf"); const link = await client.chat({ message: brief, fileIds: [file.id] });

npm रिलीज़ 0.2.1 के हिसाब से वर्ज़न से जुड़ी दो बातें। पहली, लिंक id लेने वाली कमांड और क्लाइंट मेथड (chat --link-id, links get, links delete, और Node में linkId, getLink, deleteLink) लिंक id को पुराने फ़ॉर्मेट से जांचते हैं और मौजूदा id रिजेक्ट कर देते हैं, इसलिए साइट आगे बढ़ाने, पढ़ने और हटाने के लिए ऊपर दिखाए HTTP कॉल इस्तेमाल करें। दूसरी, CLI डॉक्यूमेंटेशन (अंग्रेज़ी में) पहले से एक नई रिलीज़ बताता है, जिसमें ब्राउज़र से लॉगिन (wisylink login), बिल्ड की लाइव प्रोग्रेस वाली इंटरैक्टिव चैट और --json फ़्लैग है; आपके पास कौन-सा वर्ज़न है, यह wisylink --version से देखें।

सीमाएं, एरर और अच्छी आदतें

एरर JSON में error कोड के साथ आते हैं। इन्हें अलग से संभालना चाहिए:

429 limit_reached
आपके प्लान की 5-घंटे या साप्ताहिक विंडो खत्म हो गई है (reason होगा 5h_limit या weekly_limit)। लूप में बार-बार कोशिश करने की जगह अगली कोशिश reset_at (epoch मिलीसेकंड) के लिए शेड्यूल करें।
429 credit_limit_exceeded
इस कुंजी की अपनी खर्च सीमा पूरी हो गई। यह किसी भी एंडपॉइंट पर आ सकता है; resets_at तक रुकें या वेब पर सीमा बढ़ाएं ($10 तक)।
429 build_concurrency_limit
आपके प्लान के हिसाब से बहुत सारे बिल्ड एक साथ चल रहे हैं। किसी एक के पूरा होने का इंतज़ार करें, फिर अगला भेजें।
429 rate_limited
कम समय में बहुत ज़्यादा रिक्वेस्ट। थोड़ा रुककर दोबारा कोशिश करें।
400 bad_request
गलत JSON, खाली मैसेज या 5,000 अक्षरों से लंबा मैसेज, या ऐसी फ़ाइल id जो मौजूद नहीं (ये missing_file_ids में दिखती हैं)। ध्यान दें कि सिर्फ़ पहली 10 file_ids इस्तेमाल होती हैं; बाकी बिना किसी एरर के छोड़ दी जाती हैं।
401, 404, 500 chat_unavailable
कुंजी नहीं भेजी गई या रद्द हो चुकी है; लिंक या फ़ाइल आपकी नहीं है; Wisy थोड़ी देर के लिए उपलब्ध नहीं है, जिस पर कुछ देर रुककर एक बार दोबारा कोशिश करना ठीक है।

ये आदतें पैसा और उलझन दोनों बचाती हैं:

  • कुंजियाँ सर्वर पर रखें। कुंजी कभी ब्राउज़र या ऐप के कोड में न डालें। हर क्लाइंट या पाइपलाइन के लिए अलग कुंजी रखें, ताकि हर एक की अपनी सीमा हो और उसे अकेले रद्द किया जा सके।
  • POST /chat को आंख मूंदकर दोबारा न भेजें। यह idempotent नहीं है, यानी इसे दोहराना सुरक्षित नहीं: जो रिक्वेस्ट आपकी तरफ़ टाइमआउट हुई, उसने शायद फिर भी साइट बना दी हो या बिल्ड शुरू कर दिया हो। दोबारा भेजने से पहले GET /links (सबसे नई पहले) देखें, और कॉल को एक मिनट या उससे ज़्यादा का क्लाइंट टाइमआउट दें।
  • बैच जॉब को कतार में चलाएं। जितने बिल्ड आपका प्लान एक साथ चलाने देता है, उतने चलाएं, और build_concurrency_limit को इंतज़ार का संकेत मानें।
  • भेजने से पहले जांचें। AI आउटपुट में गलतियां हो सकती हैं। किसी क्लाइंट या आम लोगों के देखने से पहले हर साइट खोलें, उसके फ़ॉर्म टेस्ट करें और टेक्स्ट पढ़ें; WisyLink की शर्तों के मुताबिक जांचना और टेस्ट करना आपकी ज़िम्मेदारी है।

इस्तेमाल: एजेंसी पेज, इवेंट माइक्रोसाइट, इंटरनल टूल

एजेंसी के लैंडिंग पेज। एक ब्रीफ़ टेम्पलेट रखें जिसमें क्लाइंट का नाम, ऑफ़र, सेक्शन और टोन की खाली जगहें हों, उसे अपने CRM से भरें, और क्लाइंट का लोगो और ब्रांड गाइड फ़ाइल के रूप में अटैच करें। हर कैंपेन अपनी अलग साइट बनता है, क्लाइंट का फ़ीडबैक फ़ॉलो-अप मैसेज बनता है, और हर क्लाइंट की अलग कुंजी से खर्च अलग रहता है। पेज मंज़ूर होने के बाद डोमेन सेक्शन में क्लाइंट का डोमेन जोड़ें (हर प्लान पर संभव)। पेज का एक पूरा उदाहरण AI से वेटलिस्ट लैंडिंग पेज बनाने की गाइड में है।

हर इवेंट की अलग माइक्रोसाइट। स्प्रेडशीट में हर इवेंट की एक पंक्ति (नाम, तारीख, जगह, क्षमता) से हर इवेंट की एक RSVP साइट बनती है, जिसे एक स्क्रिप्ट बनाती है और हर लौटी id उसकी पंक्ति के आगे सेव करती है। हर ब्रीफ़ में क्या लिखें, यह AI से इवेंट RSVP पेज बनाने की गाइड बताती है। इवेंट के बाद साइट हटा दें, या पेड प्लान पर उसे आर्काइव के रूप में रखें।

इंटरनल ऑटोमेशन। कोई स्क्रिप्ट इंटरनल टूल का पहला वर्ज़न बना सकती है, जैसे इन्वेंटरी ट्रैकर या मंज़ूरी बोर्ड। पर डेटा अपडेट करने के लिए दोबारा बिल्ड न करें: Wisy से एक ऐसा एंडपॉइंट मांगें जिस पर आपके सिस्टम रिकॉर्ड भेज सकें, और जो इंटीग्रेशन में आपके सेट किए सीक्रेट से सुरक्षित हो। इस तरह लिखे रिकॉर्ड लगभग एक मिनट में विज़िटर तक पहुंच जाते हैं, बिना कोई बिल्ड खर्च किए। इस तरीके पर और जानकारी AI से इंटरनल टूल बनाने वाले लेख में है।

कुंजी लें और कोड से अपनी पहली साइट बनाएं

मुफ़्त अकाउंट बनाएं, छोटी सीमा वाली API कुंजी बनाएं, और ऊपर की curl कॉल से अपना पहला ब्रीफ़ भेजें। फ़ील्ड-स्तर की जानकारी के लिए API रेफ़रेंस (अंग्रेज़ी में) खुला रखें, और जब इंटीग्रेशन प्रोटोटाइप से प्रोडक्शन की ओर बढ़े, तो प्लान और कीमतों में से वह प्लान चुनें जिसकी बिल्ड सीमा और एक साथ चलने वाले बिल्ड आपकी मात्रा के लिए काफ़ी हों।

F.A.Q.

अक्सर पूछे जाने वाले प्रश्न

क्या फ़्री प्लान पर API इस्तेमाल कर सकते हैं?
हां। कोई भी अकाउंट API कुंजियाँ बना सकता है, और कॉल चैट वाली ही Community सीमा से घटती हैं: हर 5 घंटे की विंडो में एक बिल्ड, और फ़्री साइटें 30 दिन लाइव, फिर एक हफ़्ता हटाए जाने के लिए चिह्नित। किसी इंटीग्रेशन को शुरू से आखिर तक बनाकर टेस्ट करने के लिए इतना काफ़ी है। प्रोडक्शन की मात्रा के लिए पेड प्लान 5-घंटे और साप्ताहिक विंडो बढ़ाता है, एक साथ कई बिल्ड चलाने देता है और सब्सक्रिप्शन रहने तक साइटें लाइव रखता है।
API के इस्तेमाल का बिल कैसे बनता है?
API का कोई अलग बिल नहीं है। रिक्वेस्ट आपके प्लान की चलती 5-घंटे और साप्ताहिक विंडो में गिनी जाती हैं, इस हिसाब से कि हर रिक्वेस्ट से AI को कितना काम करना पड़ा, जैसे एजेंट का सोचना और आपकी रेफ़रेंस फ़ाइलें पढ़ना। फ़ाइल अपलोड की अपनी कोई फ़ीस नहीं है। इसके ऊपर हर कुंजी की अपनी USD सीमा हो सकती है, हर दैनिक, साप्ताहिक या मासिक विंडो में ज़्यादा से ज़्यादा $10, जो सिर्फ़ उस कुंजी को रोकती है, बाकी कुंजियों को नहीं।
कैसे पता चले कि बिल्ड पूरा हो गया?
GET /links/:id को हर 15 से 30 सेकंड पर पोल करें, जब तक status completed न हो जाए, फिर लौटा हुआ url इस्तेमाल करें। अगर status aborted हो जाए, तो बिल्ड रुक गया है; मौजूदा साइट अपना आखिरी सही वर्ज़न बनाए रखती है। अगर बनाने वाली कॉल ने idle लौटाया, तो कोई बिल्ड चल ही नहीं रहा: answer फ़ील्ड पढ़ें, जिसमें आमतौर पर एक सवाल होता है, और उसी id के लिए एक और POST /chat भेजकर जवाब दें।
क्या API से कस्टम डोमेन जोड़ सकते हैं?
पब्लिक API से नहीं। वेब ऐप या iOS और Android ऐप के डोमेन सेक्शन में डोमेन जोड़कर वेरिफ़ाई करें, फिर उसे साइट को असाइन करें; कस्टम डोमेन हर प्लान पर चलते हैं। इसके बाद GET /links/:id अपने url फ़ील्ड में कस्टम डोमेन लौटाता है, इसलिए url पढ़ने वाली स्क्रिप्ट चलती रहती हैं। अगर आपके पास अभी डोमेन नहीं है, तो पहले किसी भी डोमेन रजिस्ट्रार से रजिस्टर कर लें।
क्या कोई SDK है?
@wisylink/cli पैकेज में कमांड-लाइन टूल और CreateWisyLinkClient से बनने वाला Node क्लाइंट, दोनों हैं। ये अपलोड, साइट बनाना और सूची देखना संभालते हैं। npm रिलीज़ 0.2.1 में लिंक id लेने वाले मेथड मौजूदा id रिजेक्ट करते हैं, इसलिए जब तक नई रिलीज़ इसे ठीक न करे, साइट आगे बढ़ाने, पढ़ने और हटाने के लिए सीधे HTTP कॉल इस्तेमाल करें। दूसरी भाषाएं REST एंडपॉइंट को सीधे कॉल कर सकती हैं।
किन एरर को संभालना चाहिए?
कम से कम ये: 429 limit_reached, यानी reset_at तक इंतज़ार; 429 credit_limit_exceeded, यानी resets_at तक कुंजी की अपनी सीमा खत्म; और 429 build_concurrency_limit, यानी चल रहे बिल्ड के पूरा होने तक कतार। 429 rate_limited पर भी रुककर कोशिश करें, 500 chat_unavailable पर कुछ देर बाद एक बार दोबारा कोशिश करें, और 400 वाले जवाब लॉग करें, क्योंकि वे आमतौर पर बहुत लंबे मैसेज या गलत फ़ाइल id की ओर इशारा करते हैं।
शेयर करें
XLinkedInFacebook