दस्तावेज़ पर जाएँ
SDK

फ़ॉर्म

`forms.list`, `get`, `create`, `update`, `delete`, `publish`, `pause`, `resume`, `duplicate`, `analytics`, `listStarters`, `getStarter`, `listSubmissions`, `getSubmission`, `deleteSubmission`, `deleteSubmissions`, `approveSubmission`, `resendConfirmation` और `subscribe`।

हर मेथड

forms.ts
const form = await openemail.forms.create({  name: 'Newsletter sign-up',  starter: 'newsletter',  settings: { audienceIds: ['aud_4c1b8e2a7d9f05c36b4e8a71'] },  publish: true,}) console.log(form.url, form.subscribeUrl) const saved = await openemail.forms.update(form.id, {  settings: { doubleOptIn: true, senderAddress: '[email protected]' },  expectedUpdatedAt: form.updatedAt,}) const signup = await openemail.forms.subscribe(form.id, {  email: '[email protected]',  first_name: 'Ann',  consent: true,}) for await (const submission of openemail.forms.iterateSubmissions(form.id, { status: 'pending' })) {  if (submission.expired) await openemail.forms.resendConfirmation(form.id, submission.id)} const stats = await openemail.forms.analytics(form.id, { days: 30 })const starters = await openemail.forms.listStarters() await openemail.forms.pause(form.id)await openemail.forms.resume(form.id)const copy = await openemail.forms.duplicate(form.id)await openemail.forms.delete(copy.id) console.log(saved.senderIssue, signup.outcome, stats.totals.conversion, starters.length)

फ़ॉर्म एक ड्राफ़्ट document और विज़िटर को दिखने वाला publishedDocument रखता है। update ड्राफ़्ट और सेटिंग्स बदलता है, और publish ड्राफ़्ट को लाइव करता है। सेटिंग्स तुरंत लागू होती हैं, फ़ॉर्म प्रकाशित हो या नहीं, और expectedUpdatedAt ऐसे सेव को 409 version_conflict के साथ अस्वीकार करता है जो किसी और के सेव को ओवरराइट कर देता।

पढ़ने के लिए forms:read और बदलने के लिए forms:write चाहिए। approveSubmission को contacts:write भी चाहिए, क्योंकि इससे एक संपर्क जुड़ता है। resendConfirmation को emails:send भी चाहिए, और उस कॉल को भी जिससे फ़ॉर्म मेल भेजता है: doubleOptIn चालू करना, senderAddress या पुष्टि ईमेल सेट करना, या डबल ऑप्ट-इन फ़ॉर्म को प्रकाशित करना या फिर से शुरू करना। delete OAuth एक्सेस टोकन से सत्यापन कोड माँगता है, और API कुंजी से कभी नहीं।

subscribe किसी को वैसे ही साइन अप कराता है जैसे फ़ॉर्म का पेज कराता है, और कोई क्रेडेंशियल नहीं भेजता, उस क्लाइंट से भी नहीं जिसके पास क्रेडेंशियल हो। एक नेटवर्क से आने वाले सभी साइन-अप हर दस मिनट में 40 की एक ही सीमा साझा करते हैं, इसलिए कई लोगों के साइन-अप आगे भेजने वाला सर्वर उस तक जल्दी पहुँच जाता है: जिन लोगों को आप पहले से जानते हैं, उन्हें इसके बजाय audiences.importContacts से जोड़ें। फ़ॉर्म जिस पेज पर था उसे oe_source के रूप में दें, oe_started को छोड़ दें, और oe_website ख़ाली भेजें या बिल्कुल न भेजें।

subscribe से मिला 422 invalid_form_submission होता है, और त्रुटि का fields हर उस जवाब को { key, error } के रूप में सूचीबद्ध करता है जो ग़ायब है या मान्य नहीं है, required, email और option जैसे कारणों के साथ। क्लाइंट सर्वर के लिए है। ब्राउज़र में, जवाब fetch से फ़ॉर्म के subscribeUrl पर भेजें, JSON बॉडी के रूप में या Accept: application/json हेडर के साथ, और वह किसी भी ओरिजिन से JSON में जवाब देता है। इन दोनों में से कुछ भी न हो, तो वह होस्ट किए गए पेज पर 303 रीडायरेक्ट से जवाब देता है।

प्रतिक्रिया: FormDetailResource

list FormResource का एक पेज देता है, नए पहले, document और settings के बिना, और listAll तथा iterate हर पेज पढ़ते हैं। get, create, update, publish, pause, resume और duplicate एक FormDetailResource में resolve होते हैं, जिसमें document, publishedDocument, settings, audiences, senderIssue और senderProblem भी जुड़ते हैं।

idstring
टिकाऊ हैंडल, `frm_` के बाद 24 hex अक्षर।
status'draft' | 'live' | 'paused'
पहली बार प्रकाशित होने तक `draft`, फिर साइन-अप लेते समय `live` और न लेते समय `paused`। फ़ॉर्म कभी `draft` पर वापस नहीं जाता।
urlstring
प्रकाशित फ़ॉर्म का होस्ट किया गया पेज, लिंक के रूप में साझा करने के लिए।
subscribeUrlstring
जहाँ सादा HTML फ़ॉर्म, या `fetch`, जवाब भेजता है।
documentFormDocument
ड्राफ़्ट: क्रम में `fields`, उनके आसपास की `copy` और `style`।
publishedDocumentFormDocument | null
विज़िटर अभी जो देखते हैं। पहली बार प्रकाशित होने तक null।
settingsFormSettings
साइन-अप कहाँ जाते हैं और हर साइन-अप के बाद क्या होता है: `audienceIds`, `doubleOptIn`, `senderAddress`, पुष्टि ईमेल, `successAction`, `redirectUrl` और `notifyAddresses`।
hasUnpublishedChangesboolean
जब ड्राफ़्ट विज़िटर को दिखने वाली सामग्री से अलग हो, तब true। पहली बार प्रकाशित होने से पहले हमेशा false।
senderIssue'missing' | 'not_sendable' | 'not_allowed' | null
डबल ऑप्ट-इन फ़ॉर्म अभी अपने पुष्टि ईमेल क्यों नहीं भेज सकता, या जब भेज सकता हो तो null।
statsFormStats
`views`, `submissions`, `added`, `pending` और `lastSubmittedAt`, पढ़ने के क्षण पर गिने गए।

सबमिशन

listSubmissions नए से पुराने के क्रम में पेज देता है, ईमेल पतों में खोजने के लिए q और pending या added के लिए status के साथ, और listAllSubmissions तथा iterateSubmissions हर पेज पढ़ते हैं। हर FormSubmissionResource जवाबों को लेबल समेत वैसे ही रखता है जैसे वे भेजे गए थे, ताकि फ़ॉर्म बदलने के बाद भी वह सही पढ़ा जाए।

resendConfirmation confirmationSent के साथ सबमिशन में resolve होता है। जब कुछ नहीं भेजा गया हो तो यह false होता है: एक पते को हर फ़ॉर्म से दस मिनट में एक पुष्टि ईमेल और पूरे वर्कस्पेस में दिन में पाँच मिलते हैं, और पहले से जोड़े जा चुके सबमिशन को कोई नहीं मिलता। expired पुष्टि की प्रतीक्षा वाले ऐसे साइन-अप को चिह्नित करता है जिसके सबसे नए लिंक की अवधि ख़त्म हो चुकी है।

आपका इनबॉक्स,
आपकी अपनी शर्तों पर।

व्यवसायों, AI, एजेंट और निजी ईमेल के लिए ईमेल इन्फ़्रास्ट्रक्चर। स्केल, निजता और नियंत्रण के लिए बना। वह सब जो ईमेल में पहले दिन से होना चाहिए था।

© 2026 OpenEmail. सर्वाधिकार सुरक्षित।