NueForm

Forms API

फॉर्म बनाएं, प्राप्त करें, अपडेट करें, हटाएं, प्रकाशित करें, और डुप्लिकेट करें।

Forms API आपको प्रोग्रामेटिक रूप से अपने NueForm फॉर्म प्रबंधित करने देता है। आप फॉर्म की सूची देख सकते हैं, बना सकते हैं, प्राप्त कर सकते हैं, अपडेट कर सकते हैं, हटा सकते हैं, प्रकाशित कर सकते हैं, अप्रकाशित कर सकते हैं, और डुप्लिकेट कर सकते हैं।

सभी request और response bodies snake_case फ़ील्ड नामों का उपयोग करते हैं।

फॉर्म की सूची

GET/api/v1/forms

authenticated उपयोगकर्ता के पास जिन फॉर्म्स तक पहुंच है, उनकी paginated सूची लौटाता है, जिसमें व्यक्तिगत फॉर्म और उपयोगकर्ता जिन टीमों का सदस्य है उनके फॉर्म शामिल हैं।

Query Parameters

pageinteger

पेज नंबर (डिफ़ॉल्ट: 1)

per_pageinteger

प्रति पेज परिणाम (डिफ़ॉल्ट: 50)

searchstring

शीर्षक के अनुसार फॉर्म फ़िल्टर करें (case-insensitive आंशिक मिलान)

team_idstring

केवल इस टीम से संबंधित फॉर्म लौटाएं

publishedboolean

प्रकाशित स्थिति के अनुसार फ़िल्टर करें (true या false)

Response

json
{
  "forms": [
    {
      "id": "665a1b2c3d4e5f6a7b8c9d0e",
      "title": "Customer Feedback Survey",
      "description": "Quarterly satisfaction survey for Q1 2026",
      "slug": "a1b2c3d4e5f6",
      "published": true,
      "created_at": "2026-01-15T10:30:00.000Z",
      "updated_at": "2026-02-20T14:22:00.000Z",
      "theme_color": "#6366f1",
      "background_color": "#0a0a0a",
      "response_count": 142,
      "team": {
        "id": "665b2c3d4e5f6a7b8c9d0e1f",
        "name": "Marketing"
      }
    }
  ],
  "total": 24,
  "page": 1,
  "per_page": 50
}

कोड उदाहरण

bash
curl -X GET "https://api.nueform.io/api/v1/forms?page=1&per_page=10&published=true" \
  -H "Authorization: Bearer YOUR_API_KEY"

फॉर्म बनाएं

POST/api/v1/forms

एक नया फॉर्म बनाता है। आप वैकल्पिक रूप से फॉर्म के साथ बनाने के लिए प्रश्नों की एक array शामिल कर सकते हैं।

Request Body

titlestring

फॉर्म शीर्षक (खाली नहीं हो सकता)

descriptionstring

फॉर्म विवरण

team_idstring

फॉर्म को एक टीम को असाइन करें (create_forms अनुमति आवश्यक)

publishedboolean

फॉर्म बनाते ही उसे प्रकाशित करने के लिए true सेट करें। प्रकाशन वही जाँचें चलाता है जो फॉर्म प्रकाशित करें चलाता है। अगर कोई जाँच विफल होती है, तो फॉर्म फिर भी draft के रूप में बन जाता है: response 201 होता है, जिसमें published: false और एक publish_error object (reason, message, question_ids, upgrade_required) होता है। फॉर्म दोबारा न बनाएँ — समस्या ठीक करें, फिर फॉर्म प्रकाशित करें को call करें। डिफ़ॉल्ट: false (draft)

theme_colorstring

प्राथमिक थीम रंग (hex, डिफ़ॉल्ट: #6366f1)

background_colorstring

बैकग्राउंड रंग (hex, डिफ़ॉल्ट: #0a0a0a)

text_colorstring

प्रश्न टेक्स्ट रंग (hex)

answer_text_colorstring

उत्तर इनपुट टेक्स्ट रंग (hex)

placeholder_colorstring

इनपुट placeholder रंग (hex)

button_colorstring

बटन बैकग्राउंड रंग (hex)

button_text_colorstring

बटन टेक्स्ट रंग (hex)

title_colorstring

शीर्षक टेक्स्ट रंग (hex)

description_colorstring

विवरण टेक्स्ट रंग (hex)

option_text_colorstring

चॉइस विकल्प टेक्स्ट रंग (hex)

indicator_bg_colorstring

स्टेप इंडिकेटर बैकग्राउंड रंग (hex)

indicator_text_colorstring

स्टेप इंडिकेटर टेक्स्ट रंग (hex)

font_familystring

प्रश्न font family

font_family_answerstring

उत्तर इनपुट font family

font_family_buttonstring

बटन font family

font_family_descriptionstring

विवरण font family

font_family_optionstring

चॉइस विकल्प font family

font_family_indicatorstring

स्टेप इंडिकेटर font family

question_font_sizestring

प्रश्न font size (जैसे, "24px")

custom_cssstring

फॉर्म renderer में inject किया गया custom CSS

show_progress_barboolean

प्रोग्रेस बार दिखाएं (डिफ़ॉल्ट: true)

branding_logo_urlstring

ब्रांडिंग लोगो के लिए URL

branding_footer_textstring

कस्टम फुटर टेक्स्ट

hide_brandingboolean

NueForm ब्रांडिंग छुपाएं (डिफ़ॉल्ट: false)

auto_translateboolean

NueLingo — उत्तरदाताओं के लिए प्रकाशित फ़ॉर्म को मांग पर किसी भी समर्थित भाषा में अनुवादित करें (Pro+; अन्य प्लान पर false के रूप में सहेजा जाता है)। डिफ़ॉल्ट भाषा आवश्यक है; प्रकाशित करने पर लागू होता है।

top_logo_urlstring

फॉर्म के शीर्ष पर दिखाए जाने वाले लोगो के लिए URL

top_logo_sizestring

शीर्ष लोगो आकार (जैसे, "120px")

top_logo_alignmentstring

शीर्ष लोगो alignment ("left", "center", "right")

top_logo_cssstring

शीर्ष लोगो के लिए custom CSS

watermark_cssstring

वॉटरमार्क के लिए custom CSS

welcome_titlestring

स्वागत स्क्रीन शीर्षक

welcome_descriptionstring

स्वागत स्क्रीन विवरण

welcome_button_textstring

स्वागत स्क्रीन बटन टेक्स्ट (डिफ़ॉल्ट: "Start")

thank_you_titlestring

धन्यवाद स्क्रीन शीर्षक (डिफ़ॉल्ट: "Thank you!")

thank_you_descriptionstring

धन्यवाद स्क्रीन विवरण

modestring

फॉर्म मोड: "standard", "knowledge_quiz", "lead_qualification", "match_quiz" (डिफ़ॉल्ट: "standard")

quiz_settingsobject

क्विज़ कॉन्फ़िगरेशन (क्विज़ मोड के लिए)

variablesobject

लॉजिक के लिए फॉर्म-level variables

start_logic_jumpsarray

फॉर्म शुरू होने पर लागू logic jump नियम

webhook_urlstring

सबमिशन पर POST प्राप्त करने के लिए URL (Pro प्लान आवश्यक)

limit_one_responseboolean

प्रति विज़िटर एक रिस्पॉन्स तक सीमित करें (डिफ़ॉल्ट: false)

incremental_submissionboolean

उत्तरदाता आगे बढ़ने पर उत्तरों को incrementally सेव करें (डिफ़ॉल्ट: false)

questionsarray

बनाने के लिए प्रश्न objects की array (नीचे देखें)

Request उदाहरण

json
{
  "title": "Customer Feedback Survey",
  "description": "Help us improve our product",
  "theme_color": "#2563eb",
  "background_color": "#ffffff",
  "show_progress_bar": true,
  "welcome_title": "We value your feedback",
  "welcome_description": "This survey takes about 3 minutes.",
  "welcome_button_text": "Let's go",
  "thank_you_title": "Thank you!",
  "thank_you_description": "Your feedback helps us build a better product.",
  "questions": [
    {
      "type": "short_text",
      "title": "What is your name?",
      "required": true
    },
    {
      "type": "multiple_choice",
      "title": "How did you hear about us?",
      "required": true,
      "properties": {
        "choices": [
          { "label": "Search engine" },
          { "label": "Social media" },
          { "label": "Friend or colleague" },
          { "label": "Other" }
        ],
        "allow_multiple": false
      }
    },
    {
      "type": "rating",
      "title": "How would you rate your overall experience?",
      "required": true,
      "properties": {
        "steps": 5,
        "shape": "star"
      }
    }
  ]
}

Response

बनाया गया फॉर्म object सभी प्रश्नों के साथ लौटाता है:

json
{
  "id": "665a1b2c3d4e5f6a7b8c9d0e",
  "title": "Customer Feedback Survey",
  "description": "Help us improve our product",
  "slug": "a1b2c3d4e5f6",
  "published": false,
  "created_at": "2026-02-28T12:00:00.000Z",
  "updated_at": "2026-02-28T12:00:00.000Z",
  "theme_color": "#2563eb",
  "background_color": "#ffffff",
  "show_progress_bar": true,
  "welcome_title": "We value your feedback",
  "welcome_description": "This survey takes about 3 minutes.",
  "welcome_button_text": "Let's go",
  "thank_you_title": "Thank you!",
  "thank_you_description": "Your feedback helps us build a better product.",
  "questions": [
    {
      "id": "66a1b2c3d4e5f6a7b8c9d001",
      "type": "short_text",
      "title": "What is your name?",
      "description": null,
      "required": true,
      "order": 0,
      "properties": {},
      "logic_jumps": [],
      "validations": {}
    },
    {
      "id": "66a1b2c3d4e5f6a7b8c9d002",
      "type": "multiple_choice",
      "title": "How did you hear about us?",
      "description": null,
      "required": true,
      "order": 1,
      "properties": {
        "choices": [
          { "label": "Search engine" },
          { "label": "Social media" },
          { "label": "Friend or colleague" },
          { "label": "Other" }
        ],
        "allow_multiple": false
      },
      "logic_jumps": [],
      "validations": {}
    },
    {
      "id": "66a1b2c3d4e5f6a7b8c9d003",
      "type": "rating",
      "title": "How would you rate your overall experience?",
      "description": null,
      "required": true,
      "order": 2,
      "properties": {
        "steps": 5,
        "shape": "star"
      },
      "logic_jumps": [],
      "validations": {}
    }
  ]
}

कोड उदाहरण

bash
curl -X POST "https://api.nueform.io/api/v1/forms" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Customer Feedback Survey",
    "description": "Help us improve our product",
    "questions": [
      {
        "type": "short_text",
        "title": "What is your name?",
        "required": true
      }
    ]
  }'

फॉर्म प्राप्त करें

GET/api/v1/forms/:id

ID द्वारा एक फॉर्म प्राप्त करता है, जिसमें सभी प्रश्न उनकी स्थिति के अनुसार क्रमबद्ध होते हैं।

Path Parameters

idstring

फॉर्म ID

Response

json
{
  "id": "665a1b2c3d4e5f6a7b8c9d0e",
  "title": "Customer Feedback Survey",
  "description": "Help us improve our product",
  "slug": "a1b2c3d4e5f6",
  "published": true,
  "created_at": "2026-01-15T10:30:00.000Z",
  "updated_at": "2026-02-20T14:22:00.000Z",
  "theme_color": "#2563eb",
  "background_color": "#ffffff",
  "text_color": null,
  "answer_text_color": null,
  "placeholder_color": null,
  "button_color": null,
  "button_text_color": null,
  "font_family": null,
  "question_font_size": null,
  "custom_css": null,
  "show_progress_bar": true,
  "incremental_submission": false,
  "limit_one_response": false,
  "welcome_title": "We value your feedback",
  "welcome_description": "This survey takes about 3 minutes.",
  "welcome_button_text": "Let's go",
  "thank_you_title": "Thank you!",
  "thank_you_description": "Your feedback helps us build a better product.",
  "branding_logo_url": null,
  "branding_footer_text": null,
  "hide_branding": false,
  "auto_translate": false,
  "mode": "standard",
  "webhook_url": null,
  "has_unpublished_changes": false,
  "published_version_id": "66c3d4e5f6a7b8c9d0e1f2a3",
  "response_count": 142,
  "questions": [
    {
      "id": "66a1b2c3d4e5f6a7b8c9d001",
      "type": "short_text",
      "title": "What is your name?",
      "description": null,
      "required": true,
      "order": 0,
      "properties": {},
      "logic_jumps": [],
      "validations": {}
    }
  ]
}

कोड उदाहरण

bash
curl -X GET "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e" \
  -H "Authorization: Bearer YOUR_API_KEY"

फॉर्म अपडेट करें

PUT/api/v1/forms/:id

फॉर्म के फ़ील्ड अपडेट करता है और उसके प्रश्नों को synchronize करता है। जब आप questions array शामिल करते हैं, NueForm:

  • मौजूदा प्रश्नों को अपडेट करेगा (id से मिलान)
  • नए प्रश्न बनाएगा (कोई id नहीं या अपरिचित id)
  • उन प्रश्नों को हटाएगा जो फॉर्म पर मौजूद हैं लेकिन array में नहीं हैं

यदि फॉर्म वर्तमान में प्रकाशित है, तो has_unpublished_changes flag स्वचालित रूप से true पर सेट हो जाता है: आपके बदलाव draft के रूप में सहेजे जाते हैं, और respondents तब तक प्रकाशित version ही देखते हैं जब तक आप दोबारा प्रकाशित नहीं करते।

published किसी field की तरह सहेजा नहीं जाता, बल्कि फॉर्म की स्थिति बदलता है:

  • Draft फॉर्म पर, published: true आपके बदलाव सहेजने के बाद उसे प्रकाशित करता है, फॉर्म प्रकाशित करें जैसी ही जाँचों के साथ। अगर कोई जाँच विफल होती है, तो आपके बदलाव फिर भी सहेज लिए जाते हैं और API form_id और saved_as_draft: true के साथ 409 Conflict लौटाता है।
  • जो फॉर्म पहले से लाइव है, उस पर published: true कुछ नहीं बदलता — अपने बदलाव लाइव करने के लिए फॉर्म प्रकाशित करें को call करें।
  • published: false किसी लाइव फॉर्म को ऑफ़लाइन कर देता है, बिल्कुल फॉर्म अप्रकाशित करें की तरह।

Team फॉर्म पर, केवल team admins और owners ही published बदल सकते हैं।

Path Parameters

idstring

फॉर्म ID

Request Body

team_id को छोड़कर फॉर्म बनाएं के सभी फ़ील्ड स्वीकार करता है। केवल वे फ़ील्ड शामिल करें जिन्हें आप बदलना चाहते हैं।

Request उदाहरण

json
{
  "title": "Updated Survey Title",
  "description": "Revised description for Q2",
  "theme_color": "#10b981",
  "questions": [
    {
      "id": "66a1b2c3d4e5f6a7b8c9d001",
      "type": "short_text",
      "title": "What is your full name?",
      "required": true
    },
    {
      "type": "long_text",
      "title": "Any additional comments?",
      "required": false
    }
  ]
}

Response

अपडेट किया गया फॉर्म object सभी प्रश्नों के साथ लौटाता है (फॉर्म प्राप्त करें जैसा ही schema)।

कोड उदाहरण

bash
curl -X PUT "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Updated Survey Title",
    "theme_color": "#10b981"
  }'

फॉर्म हटाएं

DELETE/api/v1/forms/:id

एक फॉर्म और उससे जुड़े सभी डेटा को स्थायी रूप से हटाता है, जिसमें प्रश्न, रिस्पॉन्स, versions, और changelog entries शामिल हैं। संबंधित फ़ाइल अपलोड asynchronously रूप से साफ़ किए जाते हैं।

यह क्रिया अपरिवर्तनीय है। इस फॉर्म के लिए एकत्र किए गए सभी रिस्पॉन्स स्थायी रूप से हटा दिए जाएंगे।

Path Parameters

idstring

फॉर्म ID

Query Parameters

delete_signed_contractsboolean

पूरे हो चुके हस्ताक्षरित अनुबंधों वाले फॉर्म को हटाने के लिए true होना ज़रूरी है। ये अनुबंध फॉर्म के साथ स्थायी रूप से हट जाते हैं, जिनमें हस्ताक्षरित PDF और ऑडिट ट्रेल शामिल हैं। इसके बिना ऐसा फॉर्म नहीं हटता: API 409 लौटाता है, साथ में reason: form_has_signed_contracts और signed_contracts (कितने अनुबंध)।

Response

json
{
  "success": true
}

कोड उदाहरण

bash
curl -X DELETE "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e" \
  -H "Authorization: Bearer YOUR_API_KEY"

फॉर्म प्रकाशित करें

POST/api/v1/forms/:id/publish

वर्तमान फॉर्म और उसके प्रश्नों का एक versioned snapshot बनाकर फॉर्म प्रकाशित करता है — यह वही pipeline है जो builder का Publish button इस्तेमाल करता है। प्रत्येक publish version नंबर बढ़ाता है, और फॉर्म अपने shareable URL पर सार्वजनिक रूप से उपलब्ध हो जाता है।

कुछ भी प्रकाशित करने से पहले, NueForm जाँचता है कि:

  • team फॉर्म केवल team admins और owners ही प्रकाशित करें, और personal फॉर्म केवल उनके owner (बाकी सभी को 403 Forbidden मिलता है, या 404 Not Found अगर वे फॉर्म की team के सदस्य नहीं हैं);
  • Pro सुविधाएँ (बुकिंग प्रश्न, ई-हस्ताक्षर अनुबंध, data nodes, form webhooks और आपके अपने Stripe खाते में भुगतान) फॉर्म owner के प्लान में शामिल हों (team फॉर्म के लिए team owner का प्लान);
  • बुकिंग, ईमेल स्टेप, Fuse और कंपोज़िट प्रश्न पूरी तरह configure हों।

अगर कोई भी जाँच विफल होती है, तो फॉर्म प्रकाशित नहीं होता और API एक reason code और ठीक किए जाने वाले question_ids के साथ 409 Conflict लौटाता है (Error Handling देखें)। सफल responses में published_version और non-blocking सूचनाओं वाला एक warnings array शामिल होता है।

Path Parameters

idstring

फॉर्म ID

Response

प्रकाशित फॉर्म को published_version (नया version नंबर) और warnings (non-blocking सूचनाएँ, अक्सर खाली) के साथ लौटाता है:

json
{
  "data": {
    "id": "665a1b2c3d4e5f6a7b8c9d0e",
    "title": "Customer Feedback Survey",
    "slug": "a1b2c3d4e5f6",
    "published": true,
    "has_unpublished_changes": false,
    "published_version_id": "66c3d4e5f6a7b8c9d0e1f2a3",
    "published_version": 3,
    "warnings": [
      {
        "code": "booking_attendee_ask",
        "question_id": "66a1b2c3d4e5f6a7b8c9d004",
        "question_title": "Book a demo",
        "message": "Booking question \"Book a demo\" has no attendee email mapping, so respondents will be asked for their email when they book."
      }
    ],
    "questions": [ ... ]
  }
}

प्रकाशन अवरुद्ध (409)

कुछ भी प्रकाशित नहीं होता। reason बताता है कि कौन-सी जाँच विफल हुई और question_ids ठीक किए जाने वाले प्रश्नों की सूची देता है; जब फॉर्म owner के प्लान को अपग्रेड की ज़रूरत हो, तो upgrade_required true होता है:

json
{
  "error": {
    "code": "CONFLICT",
    "message": "E-signature contracts need a Pro plan to go live. Upgrade to publish this form, or remove the contract question.",
    "status": 409,
    "reason": "contract_requires_pro",
    "question_ids": ["66a1b2c3d4e5f6a7b8c9d001"],
    "upgrade_required": true
  }
}

कोड उदाहरण

bash
curl -X POST "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/publish" \
  -H "Authorization: Bearer YOUR_API_KEY"

फॉर्म अप्रकाशित करें

DELETE/api/v1/forms/:id/publish

एक फॉर्म को अप्रकाशित करता है, जिससे वह अपने सार्वजनिक URL पर अब उपलब्ध नहीं रहता। प्रकाशित version snapshot बना रहता है ताकि आप बाद में पुनः प्रकाशित कर सकें। Team फॉर्म केवल team admins और owners ही अप्रकाशित कर सकते हैं, और personal फॉर्म केवल उनके owner; बाकी सभी को 403 Forbidden मिलता है, या 404 Not Found अगर वे फॉर्म की team के सदस्य नहीं हैं।

Path Parameters

idstring

फॉर्म ID

Response

published को false पर सेट करके अपडेट किया गया फॉर्म object लौटाता है।

json
{
  "id": "665a1b2c3d4e5f6a7b8c9d0e",
  "title": "Customer Feedback Survey",
  "published": false,
  "questions": [ ... ]
}

कोड उदाहरण

bash
curl -X DELETE "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/publish" \
  -H "Authorization: Bearer YOUR_API_KEY"

फॉर्म डुप्लिकेट करें

POST/api/v1/forms/:id/duplicate

सभी प्रश्नों सहित एक मौजूदा फॉर्म की प्रति बनाता है। Logic jump references स्वचालित रूप से नए प्रश्न IDs पर remap हो जाते हैं। डुप्लिकेट फॉर्म हमेशा अप्रकाशित स्थिति में बनाया जाता है।

Path Parameters

idstring

डुप्लिकेट करने वाले फॉर्म की ID

Request Body

titlestring

नए फॉर्म का शीर्षक (डिफ़ॉल्ट: "Original Title (Copy)")

team_idstring

डुप्लिकेट को किसी अन्य टीम को असाइन करें

Request उदाहरण

json
{
  "title": "Customer Feedback Survey v2",
  "team_id": "665b2c3d4e5f6a7b8c9d0e1f"
}

Response

published को false पर सेट करके नया बनाया गया फॉर्म object लौटाता है (फॉर्म प्राप्त करें जैसा ही schema)।

कोड उदाहरण

bash
curl -X POST "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/duplicate" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Customer Feedback Survey v2" }'

Error Responses

सभी endpoints मानक error responses लौटाते हैं।

Error Codes

400Bad Request

Validation error या आवश्यक फ़ील्ड गायब है

401Unauthorized

API key गायब या अमान्य है

403Forbidden

टीम फॉर्म्स के लिए अपर्याप्त अनुमतियां

404Not Found

फॉर्म नहीं मिला

409Conflict

प्रकाशन अवरुद्ध: कोई प्रकाशन जाँच विफल हुई (फॉर्म प्रकाशित करें देखें)

500Server Error

Internal server error

Error उदाहरण

json
{
  "error": "Title is required"
}
अंतिम अपडेट: 8 अक्टूबर 2026