{"id":182066,"date":"2026-04-02T11:06:46","date_gmt":"2026-04-02T02:06:46","guid":{"rendered":"https:\/\/support.questetra.com\/?p=182066"},"modified":"2026-06-05T16:13:20","modified_gmt":"2026-06-05T07:13:20","slug":"qguide-request-to-openai-api-using-localstorage-2026","status":"publish","type":"post","link":"https:\/\/support.questetra.com\/en\/deco\/qguide-request-to-openai-api-using-localstorage-2026\/","title":{"rendered":"qGuide: Request to OpenAI API using localStorage"},"content":{"rendered":"\n<h4 class=\"wp-block-heading has-background\" style=\"background-color:#ffc69b;margin-top:var(--wp--preset--spacing--30);margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:var(--wp--preset--spacing--20);padding-bottom:0;padding-left:var(--wp--preset--spacing--20)\"><strong>qGuide: Request to OpenAI API using localStorage<\/strong><\/h4>\n\n\n\n<p class=\"has-text-align-right has-background has-small-font-size mt-0 pt-0 wp-block-paragraph\" style=\"background-color:#ffc69b;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:var(--wp--preset--spacing--30);padding-bottom:0;padding-left:var(--wp--preset--spacing--30)\"><a href=\"https:\/\/support.questetra.com\/en\/deco-ja\/qguide-request-to-openai-api-using-localstorage-2026\/\">translate qGuide: OpenAI API \u306b\u30ea\u30af\u30a8\u30b9\u30c8 (localStorage\u7248)<\/a><\/p>\n\n\n\n<p class=\"has-background mt-0 pt-0 wp-block-paragraph\" style=\"background-color:#ffe5ce;margin-top:0;margin-right:0;margin-bottom:var(--wp--preset--spacing--30);margin-left:0;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\">Sends the Input-string to the Responses API via CORS. The responses (the sentence generated by the model) will be displayed in streaming format. Depending on the prompt settings, various support functions to assist task operators can be provided, such as a typo check function, a text rewrite function, and a list of possible reasons for rejection. The &#8220;API key&#8221; and &#8220;instruction text&#8221; must be saved in localStorage by each user.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>Input \/ Output<\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u2190 STRING (STRING_TEXTFIELD) <code>q_human_answer_body<\/code><\/li>\n\n\n\n<li>\u2190 localStorage <code>apiKey<\/code><\/li>\n\n\n\n<li>\u2190 localStorage <code>instruction<\/code><\/li>\n\n\n\n<li>\u2192 <code>pre#user_result<\/code><\/li>\n\n\n\n<li>\u2192 <code>div#user_status<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Please use web storage after understanding its functions and risks.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Web_Storage_API\">https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Web_Storage_API<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/w.wiki\/KfNZ\">https:\/\/w.wiki\/KfNZ<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>Code Example<\/span><\/h3>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details open><summary class=\"wp-block-coblocks-accordion-item__title has-background\" style=\"background-color:#ffe5ce\">HTML\/JavaScript (click to close)<\/summary><div class=\"wp-block-coblocks-accordion-item__content\" style=\"border-color:#ffe5ce\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-html\" data-lang=\"HTML\"><code>&lt;style&gt;\n\/* AI\u547c\u3073\u51fa\u3057\u30dc\u30bf\u30f3 *\/\n.user_aiBtn {\nborder: 1px solid #ccc;\npadding: 6px 12px;\nborder-radius: 20px;\ncursor: pointer;\nfont-size: 13px;\ntransition: all 0.2s ease;\ncolor: #333;\nmargin-right: 8px;\nmargin-bottom: 12px;\nbackground-color: #fff;\nfont-family: system-ui, -apple-system, sans-serif;\n}\n.user_aiBtn:hover { background-color: #f0f0f0; border-color: #bbb; }\n.user_aiBtn:disabled { opacity: 0.5; cursor: not-allowed; background-color: #eee; }\n\n\/* CONFIG\u30dc\u30bf\u30f3 *\/\n#user_btnConfig {\nborder: 1px solid #4a5568;\npadding: 6px 16px;\nborder-radius: 4px;\ncursor: pointer;\nfont-size: 13px;\nfont-weight: bold;\ntransition: all 0.2s ease;\ncolor: #fff;\nbackground-color: #4a5568;\nmargin-right: 16px;\nmargin-bottom: 12px;\nfont-family: system-ui, -apple-system, sans-serif;\n}\n#user_btnConfig:hover { background-color: #2d3748; border-color: #1a202c; }\n#user_btnConfig.user_active { background-color: #2b6cb0; border-color: #2c5282; box-shadow: inset 0 2px 4px rgba(0,0,0,0.2); }\n\n\/* --- \u305d\u306e\u4ed6\u306e\u8a2d\u5b9a\u30a8\u30ea\u30a2\u8981\u7d20 --- *\/\n.user_lbl {\ndisplay: block;\nmargin: 12px 0 4px 0;\nfont-weight: bold;\nfont-size: 13px;\nfont-family: system-ui, -apple-system, sans-serif;\n}\n.user_display_val {\nbackground: #e9e9e9;\npadding: 4px 8px;\nborder-radius: 4px;\nfont-family: Menlo, Monaco, Consolas, monospace;\ncolor: #333;\nfont-size: 13px;\n}\n.user_display_inst {\nbackground: #e9e9e9;\npadding: 8px;\nborder-radius: 4px;\nwhite-space: pre-wrap;\ncolor: #333;\nmin-height: 1.5em;\nmargin-bottom: 4px;\nfont-size: 13px;\nfont-family: system-ui, -apple-system, sans-serif;\n}\n.user_btnEdit {\npadding: 2px 8px;\nfont-size: 11px;\ncursor: pointer;\nborder: 1px solid #bbb;\nbackground-color: #fff;\nborder-radius: 4px;\nmargin-left: 8px;\nvertical-align: middle;\n}\n.user_btnEdit:hover { background-color: #eee; }\n#user_apiKey, #user_instruction {\nwidth: 100%;\nbox-sizing: border-box;\npadding: 6px;\nborder: 1px solid #ccc;\nborder-radius: 4px;\nfont-family: inherit;\nfont-size: 13px;\n}\n#user_instruction { resize: vertical; min-height: 4em; }\n.user_actionBtn {\npadding: 4px 12px;\nborder: 1px solid #bbb;\nbackground-color: #fff;\nborder-radius: 4px;\ncursor: pointer;\nfont-size: 13px;\n}\n.user_actionBtn:hover { background-color: #eee; }\n#user_result {\nbackground-color: #f9f9f9;\nborder: 1px solid #ddd;\nborder-radius: 4px;\npadding: 12px;\nmin-height: 8em;\nwhite-space: pre-wrap;\nword-break: break-word;\nfont-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace;\nfont-size: 14px;\nline-height: 1.6;\ncolor: #222;\nmargin-top: 16px;\n}\n#user_status {\nfont: 12px\/1.4 system-ui, sans-serif;\nopacity: 0.75;\nmargin-top: 8px;\nmin-height: 1.4em;\n}\n\n@keyframes blink { 50% { opacity: 0; } }\n.user_cursor {\ndisplay: inline-block;\nwidth: 8px;\nheight: 1em;\nbackground-color: #333;\nmargin-left: 2px;\nanimation: blink 1s step-end infinite;\nvertical-align: text-bottom;\n}\n&lt;\/style&gt;\n\n&lt;button type=&quot;button&quot; id=&quot;user_btnConfig&quot;&gt;CONFIG&lt;\/button&gt;\n&lt;button type=&quot;button&quot; class=&quot;user_aiBtn&quot;&gt;gpt-5.4&lt;\/button&gt;\n&lt;button type=&quot;button&quot; class=&quot;user_aiBtn&quot;&gt;gpt-5.4-mini&lt;\/button&gt;\n&lt;button type=&quot;button&quot; class=&quot;user_aiBtn&quot;&gt;gpt-5.4-nano&lt;\/button&gt;\n&lt;button type=&quot;button&quot; class=&quot;user_aiBtn&quot;&gt;gpt-5-nano&lt;\/button&gt;\n&lt;button type=&quot;button&quot; class=&quot;user_aiBtn&quot;&gt;gpt-5-mini&lt;\/button&gt;\n&lt;button type=&quot;button&quot; class=&quot;user_aiBtn&quot;&gt;gpt-5&lt;\/button&gt;\n&lt;button type=&quot;button&quot; class=&quot;user_aiBtn&quot;&gt;gpt-5.3-codex&lt;\/button&gt;\n&lt;button type=&quot;button&quot; class=&quot;user_aiBtn&quot;&gt;gpt-5-codex&lt;\/button&gt;\n&lt;span id=&quot;user_lbl_api&quot; class=&quot;user_lbl&quot; style=&quot;display:none;&quot;&gt;API\u30ad\u30fc \/ API Key:&lt;\/span&gt;\n&lt;span id=&quot;user_apiKey_display&quot; class=&quot;user_display_val&quot; style=&quot;display:none;&quot;&gt;&lt;\/span&gt;\n&lt;button type=&quot;button&quot; class=&quot;user_btnEdit&quot; id=&quot;user_btn_editApiKey&quot; style=&quot;display:none;&quot;&gt;Edit KEY&lt;\/button&gt;\n&lt;span id=&quot;user_apiKey_edit_area&quot; style=&quot;display:none; width:100%;&quot;&gt;&lt;\/span&gt;\n&lt;span id=&quot;user_lbl_inst&quot; class=&quot;user_lbl&quot; style=&quot;display:none;&quot;&gt;\u6307\u793a \/ Instruction (\u5165\u529b\u5bfe\u8c61: &lt;span id=&quot;user_lbl_target_field&quot;&gt;&lt;\/span&gt;):&lt;\/span&gt;\n&lt;span id=&quot;user_instruction_display&quot; class=&quot;user_display_inst&quot; style=&quot;display:none;&quot;&gt;&lt;\/span&gt;\n&lt;button type=&quot;button&quot; class=&quot;user_btnEdit&quot; id=&quot;user_btn_editInst&quot; style=&quot;margin-left:0; margin-top:4px; display:none;&quot;&gt;Edit PROMPT&lt;\/button&gt;\n&lt;span id=&quot;user_inst_edit_area&quot; style=&quot;display:none; width:100%;&quot;&gt;&lt;\/span&gt;\n&lt;hr id=&quot;user_set_hr&quot; style=&quot;margin:16px 0 12px 0; border:none; border-top:1px dashed #ccc; display:none;&quot;&gt;\n&lt;button type=&quot;button&quot; id=&quot;user_btnSave&quot; class=&quot;user_actionBtn&quot; style=&quot;display:none;&quot;&gt;\u8a2d\u5b9a\u3092\u4fdd\u5b58 \/ Save&lt;\/button&gt;\n&lt;button type=&quot;button&quot; id=&quot;user_btnClear&quot; class=&quot;user_actionBtn&quot; style=&quot;display:none;&quot;&gt;\u30af\u30ea\u30a2 \/ Clear&lt;\/button&gt;\n&lt;span id=&quot;user_settingStatus&quot; style=&quot;margin-left:8px; color:#0066cc; font-weight:bold; font-size:13px; display:none;&quot;&gt;&lt;\/span&gt;\n&lt;pre id=&quot;user_result&quot;&gt;&lt;\/pre&gt;\n&lt;div id=&quot;user_status&quot;&gt;&lt;\/div&gt;\n\n&lt;script&gt;\nqbpms.form.on(&#39;ready&#39;, () =&gt; {\n  \/\/ --- 0. \u5bfe\u8c61\u30d5\u30a3\u30fc\u30eb\u30c9\u2605\u2605\u2605 \u7de8\u96c6\u3057\u3066\u304f\u3060\u3055\u3044 \/ EDIT here \u2605\u2605\u2605 ---\n  const TARGET_FIELD_NAME = &quot;q_human_answer_body&quot;;\n  \n  \/\/ \u30e9\u30d9\u30eb\u306b\u5bfe\u8c61\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3092\u53cd\u6620\n  document.getElementById(&quot;user_lbl_target_field&quot;).innerText = TARGET_FIELD_NAME;\n\n  \/\/ --- 1. \u52d5\u7684\u306a\u5165\u529b\u8981\u7d20\u306e\u751f\u6210 ---\n  const apiKeyInput = document.createElement(&quot;input&quot;);\n  apiKeyInput.type = &quot;password&quot;;\n  apiKeyInput.id = &quot;user_apiKey&quot;;\n  apiKeyInput.placeholder = &quot;sk-...&quot;;\n  document.getElementById(&quot;user_apiKey_edit_area&quot;).appendChild(apiKeyInput);\n  const instructionInput = document.createElement(&quot;textarea&quot;);\n  instructionInput.id = &quot;user_instruction&quot;;\n  instructionInput.placeholder = &quot;\u4f8b: \u3042\u306a\u305f\u306f\u512a\u79c0\u306a\u30a2\u30b7\u30b9\u30bf\u30f3\u30c8\u3067\u3059\u3002\u7c21\u6f54\u306b\u7b54\u3048\u3066\u304f\u3060\u3055\u3044\u3002 \/ Ex: You are a helpful assistant...&quot;;\n  document.getElementById(&quot;user_inst_edit_area&quot;).appendChild(instructionInput);\n\n  \/\/ --- 2. \u5404\u7a2e\u5b9a\u6570\u3068\u8981\u7d20\u306e\u53d6\u5f97 ---\n  const STORAGE_KEY_API = &quot;user_openai_api_key&quot;;\n  const STORAGE_KEY_INST = &quot;user_openai_instruction&quot;;\n  const btnConfig = document.getElementById(&quot;user_btnConfig&quot;);\n  const aiButtons = document.querySelectorAll(&quot;.user_aiBtn&quot;);\n  const resultElement = document.getElementById(&quot;user_result&quot;);\n  const statusElement = document.getElementById(&quot;user_status&quot;);\n  const settingStatus = document.getElementById(&quot;user_settingStatus&quot;);\n\n  \/\/ UI\u72b6\u614b\u7ba1\u7406\u30d5\u30e9\u30b0\n  let isConfigOpen = false;\n  let isEditingApi = false;\n  let isEditingInst = false;\n\n  \/\/ --- 3. UI\u306e\u8868\u793a\u5207\u308a\u66ff\u3048\u95a2\u6570 (\u30d5\u30e9\u30c3\u30c8\u306a\u8981\u7d20\u3092\u500b\u5225\u306b\u5236\u5fa1) ---\n  function renderUI() {\n    const storedKey = localStorage.getItem(STORAGE_KEY_API) || &quot;&quot;;\n    const storedInst = localStorage.getItem(STORAGE_KEY_INST) || &quot;&quot;;\n    apiKeyInput.value = storedKey;\n    instructionInput.value = storedInst;\n    const hasKey = !!storedKey;\n    const hasInst = !!storedInst;\n    const showApiDisp = isConfigOpen && hasKey && !isEditingApi;\n    const showApiEdit = isConfigOpen && (!hasKey || isEditingApi);\n    const showInstDisp = isConfigOpen && hasInst && !isEditingInst;\n    const showInstEdit = isConfigOpen && (!hasInst || isEditingInst);\n\n    if (isConfigOpen) {\n      btnConfig.classList.add(&quot;user_active&quot;);\n    } else {\n      btnConfig.classList.remove(&quot;user_active&quot;);\n    }\n\n    document.getElementById(&quot;user_lbl_api&quot;).style.display = isConfigOpen ? &quot;block&quot; : &quot;none&quot;;\n    const eKeyDisp = document.getElementById(&quot;user_apiKey_display&quot;);\n    eKeyDisp.style.display = showApiDisp ? &quot;inline-block&quot; : &quot;none&quot;;\n    if (showApiDisp) eKeyDisp.innerText = storedKey.length &gt; 10 ? storedKey.substring(0, 10) + &quot;...&quot; : storedKey;\n    document.getElementById(&quot;user_btn_editApiKey&quot;).style.display = showApiDisp ? &quot;inline-block&quot; : &quot;none&quot;;\n    document.getElementById(&quot;user_apiKey_edit_area&quot;).style.display = showApiEdit ? &quot;block&quot; : &quot;none&quot;;\n    document.getElementById(&quot;user_lbl_inst&quot;).style.display = isConfigOpen ? &quot;block&quot; : &quot;none&quot;;\n    const eInstDisp = document.getElementById(&quot;user_instruction_display&quot;);\n    eInstDisp.style.display = showInstDisp ? &quot;block&quot; : &quot;none&quot;;\n    if (showInstDisp) eInstDisp.innerText = storedInst;\n    document.getElementById(&quot;user_btn_editInst&quot;).style.display = showInstDisp ? &quot;inline-block&quot; : &quot;none&quot;;\n    document.getElementById(&quot;user_inst_edit_area&quot;).style.display = showInstEdit ? &quot;block&quot; : &quot;none&quot;;\n    document.getElementById(&quot;user_set_hr&quot;).style.display = isConfigOpen ? &quot;block&quot; : &quot;none&quot;;\n    document.getElementById(&quot;user_btnSave&quot;).style.display = isConfigOpen ? &quot;inline-block&quot; : &quot;none&quot;;\n    document.getElementById(&quot;user_btnClear&quot;).style.display = isConfigOpen ? &quot;inline-block&quot; : &quot;none&quot;;\n    settingStatus.style.display = isConfigOpen ? &quot;inline-block&quot; : &quot;none&quot;;\n  }\n\n  \/\/ \u521d\u671f\u5316\n  renderUI();\n\n  \/\/ --- 4. \u5404\u7a2e\u30a4\u30d9\u30f3\u30c8\u30ea\u30b9\u30ca\u30fc ---\n  btnConfig.addEventListener(&quot;click&quot;, () =&gt; {\n    isConfigOpen = !isConfigOpen;\n    if (!isConfigOpen) {\n      isEditingApi = false;\n      isEditingInst = false;\n    }\n    renderUI();\n  });\n  document.getElementById(&quot;user_btn_editApiKey&quot;).addEventListener(&quot;click&quot;, () =&gt; {\n    isEditingApi = true;\n    renderUI();\n    apiKeyInput.focus();\n  });\n  document.getElementById(&quot;user_btn_editInst&quot;).addEventListener(&quot;click&quot;, () =&gt; {\n    isEditingInst = true;\n    renderUI();\n    instructionInput.focus();\n  });\n  document.getElementById(&quot;user_btnSave&quot;).addEventListener(&quot;click&quot;, () =&gt; {\n    localStorage.setItem(STORAGE_KEY_API, apiKeyInput.value.trim());\n    localStorage.setItem(STORAGE_KEY_INST, instructionInput.value);\n    isEditingApi = false;\n    isEditingInst = false;\n    renderUI();\n    settingStatus.innerText = &quot;\u8a2d\u5b9a\u3092\u4fdd\u5b58\u3057\u307e\u3057\u305f \/ Saved successfully.&quot;;\n    setTimeout(() =&gt; { settingStatus.innerText = &quot;&quot;; }, 2500);\n  });\n  document.getElementById(&quot;user_btnClear&quot;).addEventListener(&quot;click&quot;, () =&gt; {\n    localStorage.removeItem(STORAGE_KEY_API);\n    localStorage.removeItem(STORAGE_KEY_INST);\n    isEditingApi = false;\n    isEditingInst = false;\n    renderUI();\n    settingStatus.innerText = &quot;\u8a2d\u5b9a\u3092\u30af\u30ea\u30a2\u3057\u307e\u3057\u305f \/ Cleared successfully.&quot;;\n    setTimeout(() =&gt; { settingStatus.innerText = &quot;&quot;; }, 2500);\n  });\n\n  \/\/ --- 5. AI\u547c\u3073\u51fa\u3057\u51e6\u7406 ---\n  aiButtons.forEach(button =&gt; {\n    button.addEventListener(&quot;click&quot;, async (event) =&gt; {\n      const strKey = localStorage.getItem(STORAGE_KEY_API);\n      const strInstruction = localStorage.getItem(STORAGE_KEY_INST) || &quot;&quot;; \n      \/\/ \u5909\u6570\u5316\u3057\u305f\u30bf\u30fc\u30b2\u30c3\u30c8\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3092\u5229\u7528\n      const strInput = qbpms.form.get(TARGET_FIELD_NAME);\n      const modelName = event.currentTarget.innerText.trim();\n\n      if (!strKey) {\n        statusElement.innerText = &quot;\u30a8\u30e9\u30fc: API\u30ad\u30fc\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002CONFIG\u30dc\u30bf\u30f3\u304b\u3089\u8a2d\u5b9a\u3092\u4fdd\u5b58\u3057\u3066\u304f\u3060\u3055\u3044\u3002 \/ Error: API Key is not set.&quot;;\n        resultElement.innerText = &quot;&quot;;\n        return;\n      }\n      if (!strInput) {\n        statusElement.innerText = `\u30a8\u30e9\u30fc: \u5165\u529b\u5185\u5bb9(${TARGET_FIELD_NAME})\u304c\u7a7a\u3067\u3059\u3002 \/ Error: Input field is empty.`;\n        resultElement.innerText = &quot;&quot;;\n        return;\n      }\n\n      aiButtons.forEach(btn =&gt; btn.disabled = true);\n      btnConfig.disabled = true;\n      statusElement.innerText = &quot;AI\u306b\u63a5\u7d9a\u4e2d... \/ Connecting to AI...&quot;;\n      resultElement.innerHTML = &#39;&lt;span class=&quot;user_cursor&quot;&gt;&lt;\/span&gt;&#39;;\n      const cursor = resultElement.querySelector(&quot;.user_cursor&quot;);\n\n      try {\n        const response = await fetch(&quot;https:\/\/api.openai.com\/v1\/responses&quot;, {\n          method: &quot;POST&quot;,\n          headers: {\n            &quot;Content-Type&quot;: &quot;application\/json&quot;,\n            &quot;Authorization&quot;: `Bearer ${strKey}`\n          },\n          body: JSON.stringify({\n            model: modelName,\n            instructions: strInstruction,\n            input: strInput,\n            stream: true\n          })\n        });\n\n        if (!response.ok) {\n          let msg = `API Error: ${response.status}`;\n          try {\n            const err = await response.json();\n            msg += `\\n${JSON.stringify(err, null, 2)}`;\n          } catch (_) {}\n          throw new Error(msg);\n        }\n        statusElement.innerText = &quot;AI\u304c\u6587\u7ae0\u3092\u751f\u6210\u4e2d... \/ AI is generating text...&quot;;\n        const reader = response.body.getReader();\n        const decoder = new TextDecoder();\n        let buffer = &quot;&quot;;\n        let currentEvent = &quot;&quot;;\n        const flushLines = (chunkText) =&gt; {\n          buffer += chunkText;\n          const lines = buffer.split(\/\\r?\\n\/);\n          buffer = lines.pop() || &quot;&quot;;\n          for (const line of lines) {\n            if (!line.trim()) continue;\n            if (line.startsWith(&quot;event:&quot;)) {\n              currentEvent = line.replace(\/^event:\\s*\/, &quot;&quot;).trim();\n              continue;\n            }\n            if (line.startsWith(&quot;data:&quot;)) {\n              const dataRaw = line.replace(\/^data:\\s*\/, &quot;&quot;).trim();\n              if (dataRaw === &quot;[DONE]&quot;) return &quot;DONE&quot;;\n              \n              try {\n                const data = JSON.parse(dataRaw);\n                if (currentEvent === &quot;response.output_text.delta&quot; && data.delta) {\n                  cursor.insertAdjacentText(&quot;beforebegin&quot;, data.delta);\n                }\n                if (currentEvent === &quot;response.completed&quot;) {\n                  return &quot;DONE&quot;;\n                }\n                if (currentEvent === &quot;response.error&quot;) {\n                  throw new Error(data?.error?.message || &quot;Unknown streaming error&quot;);\n                }\n              } catch (e) {\n                console.error(&quot;SSE JSON parse error:&quot;, dataRaw, e);\n              }\n            }\n          }\n        };\n        while (true) {\n          const { done, value } = await reader.read();\n          if (done) break;\n          const text = decoder.decode(value, { stream: true });\n          const status = flushLines(text);\n          if (status === &quot;DONE&quot;) break;\n        }\n        statusElement.innerText = &quot;\u751f\u6210\u5b8c\u4e86 \/ Generation Completed&quot;;\n      } catch (error) {\n        console.error(&quot;Request failed:&quot;, error);\n        statusElement.innerText = &quot;\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 \/ An error occurred.&quot;;\n        resultElement.innerText = String(error.message || error);\n      } finally {\n        const c = document.querySelector(&quot;#user_result .user_cursor&quot;);\n        c?.remove();\n        aiButtons.forEach(btn =&gt; btn.disabled = false);\n        btnConfig.disabled = false;\n      }\n    });\n  });\n});\n&lt;\/script&gt;<\/code><\/pre><\/div>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<div class=\"has-small-font-size\" style=\"text-align: right;\"><div style=\"display: inline-block; background: #FBE7DD; text-align: center;\">\r\n<span class=\"material-icons\">warning<\/span> Freely modifiable HTML\/JavaScript code, MIT License. No warranty of any kind.<br>\r\n(<em><strong>Decoration using JavaScript<\/strong><\/em> is only available in the <em><strong><span style=\"color: #1970B9\">Professional<\/span><\/strong><\/em> edition: <a href=\"https:\/\/questetra.zendesk.com\/hc\/en-us\/articles\/360002245252-M213\">M213<\/a>)\r\n<\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>Capture<\/span><\/h3>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a67f446c2791&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a67f446c2791\" class=\"wp-block-image size-large has-lightbox wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"536\" data-attachment-id=\"182073\" data-permalink=\"https:\/\/support.questetra.com\/en\/deco\/qguide-request-to-openai-api-using-localstorage-2026\/attachment\/deco-request-to-openai-api-using-localstorage-en\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?fit=1200%2C628&amp;ssl=1\" data-orig-size=\"1200,628\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"deco-Request-to-OpenAI-API-using-localStorage-en\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?fit=1024%2C536&amp;ssl=1\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en-1024x536.png?resize=1024%2C536&#038;ssl=1\" alt=\"qGuide: Request to OpenAI API using localStorage\" class=\"wp-image-182073\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=1024%2C536&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=600%2C315&amp;ssl=1 600w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=768%2C402&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?w=1200&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>Capture<\/span><\/h3>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a67f446c3081&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a67f446c3081\" class=\"wp-block-image aligncenter size-large is-style-default has-lightbox wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-attachment-id=\"182079\" data-permalink=\"https:\/\/support.questetra.com\/en\/deco\/qguide-request-to-openai-api-using-localstorage-2026\/attachment\/ai-deco-localstorage\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/ai-deco-localStorage.gif?fit=1600%2C900&amp;ssl=1\" data-orig-size=\"1600,900\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ai-deco-localStorage\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/ai-deco-localStorage.gif?fit=1024%2C576&amp;ssl=1\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/ai-deco-localStorage.gif?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-182079\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/ai-deco-localStorage.gif?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/ai-deco-localStorage.gif?resize=560%2C315&amp;ssl=1 560w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/ai-deco-localStorage.gif?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/ai-deco-localStorage.gif?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/ai-deco-localStorage.gif?resize=1200%2C675&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a67f446c3af7&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a67f446c3af7\" class=\"wp-block-image aligncenter size-large has-lightbox wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"515\" data-attachment-id=\"182082\" data-permalink=\"https:\/\/support.questetra.com\/en\/deco\/qguide-request-to-openai-api-using-localstorage-2026\/attachment\/localstorage-output\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-output.png?fit=1617%2C813&amp;ssl=1\" data-orig-size=\"1617,813\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"localStorage-output\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-output.png?fit=1024%2C515&amp;ssl=1\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-output.png?resize=1024%2C515&#038;ssl=1\" alt=\"\" class=\"wp-image-182082\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-output.png?resize=1024%2C515&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-output.png?resize=600%2C302&amp;ssl=1 600w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-output.png?resize=768%2C386&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-output.png?resize=1536%2C772&amp;ssl=1 1536w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-output.png?resize=1200%2C603&amp;ssl=1 1200w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-output.png?w=1617&amp;ssl=1 1617w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a67f446c4577&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a67f446c4577\" class=\"wp-block-image aligncenter size-large has-lightbox wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"591\" data-attachment-id=\"182086\" data-permalink=\"https:\/\/support.questetra.com\/en\/deco\/qguide-request-to-openai-api-using-localstorage-2026\/attachment\/localstorage-config\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config.png?fit=1619%2C934&amp;ssl=1\" data-orig-size=\"1619,934\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"localStorage-config\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config.png?fit=1024%2C591&amp;ssl=1\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config.png?resize=1024%2C591&#038;ssl=1\" alt=\"\" class=\"wp-image-182086\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config.png?resize=1024%2C591&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config.png?resize=546%2C315&amp;ssl=1 546w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config.png?resize=768%2C443&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config.png?resize=1536%2C886&amp;ssl=1 1536w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config.png?resize=1200%2C692&amp;ssl=1 1200w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config.png?w=1619&amp;ssl=1 1619w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a67f446c4f4a&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a67f446c4f4a\" class=\"wp-block-image aligncenter size-large has-lightbox wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"548\" height=\"630\" data-attachment-id=\"182088\" data-permalink=\"https:\/\/support.questetra.com\/en\/deco\/qguide-request-to-openai-api-using-localstorage-2026\/attachment\/localstorage-config-edit-mode\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config-edit-mode.png?fit=947%2C1088&amp;ssl=1\" data-orig-size=\"947,1088\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"localStorage-config-edit-mode\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config-edit-mode.png?fit=548%2C630&amp;ssl=1\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config-edit-mode.png?resize=548%2C630&#038;ssl=1\" alt=\"\" class=\"wp-image-182088\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config-edit-mode.png?resize=548%2C630&amp;ssl=1 548w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config-edit-mode.png?resize=274%2C315&amp;ssl=1 274w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config-edit-mode.png?resize=768%2C882&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/localStorage-config-edit-mode.png?w=947&amp;ssl=1 947w\" sizes=\"auto, (max-width: 548px) 100vw, 548px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--30)\"><span>See also<\/span><\/h3>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-questetra-support wp-block-embed-questetra-support\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"3IGw3UQw65\"><a href=\"https:\/\/support.questetra.com\/en\/deco\/qguide-request-to-openai-api-2025\/\">qGuide: Request to OpenAI API<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u201cqGuide: Request to OpenAI API\u201d \u2014 Questetra Support\" src=\"https:\/\/support.questetra.com\/deco\/qguide-request-to-openai-api-2025\/embed\/#?secret=SZBZ2hBDPB#?secret=3IGw3UQw65\" data-secret=\"3IGw3UQw65\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-questetra-support wp-block-embed-questetra-support\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"a0wKxN8UGx\"><a href=\"https:\/\/support.questetra.com\/en\/deco\/qguide-request-to-openai-api-with-image-2025\/\">qGuide: Request to OpenAI API with Image<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u201cqGuide: Request to OpenAI API with Image\u201d \u2014 Questetra Support\" src=\"https:\/\/support.questetra.com\/deco\/qguide-request-to-openai-api-with-image-2025\/embed\/#?secret=IQtOdC56XF#?secret=a0wKxN8UGx\" data-secret=\"a0wKxN8UGx\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Sends the Input-string to the Responses API via CORS. The responses (the sentence generated by the model) will be displayed in streaming format. Depending on the prompt settings, various support functions to assist task operators can be provided, such as a typo check function, a text rewrite function, and a list of possible reasons for rejection. The &#8220;API key&#8221; and &#8220;instruction text&#8221; must be saved in localStorage by each user.<\/p>\n","protected":false},"author":2,"featured_media":182073,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_uag_custom_page_level_css":"","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[3439],"tags":[],"class_list":["post-182066","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deco"],"jetpack_publicize_connections":[],"uagb_featured_image_src":{"full":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?fit=1200%2C628&ssl=1",1200,628,false],"thumbnail":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=440%2C440&ssl=1",440,440,true],"medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?fit=600%2C315&ssl=1",600,315,true],"medium_large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?fit=768%2C402&ssl=1",768,402,true],"large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?fit=1024%2C536&ssl=1",1024,536,true],"1536x1536":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?fit=1200%2C628&ssl=1",1200,628,true],"2048x2048":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?fit=1200%2C628&ssl=1",1200,628,true],"newspack-article-block-landscape-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=1200%2C628&ssl=1",1200,628,true],"newspack-article-block-portrait-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=900%2C628&ssl=1",900,628,true],"newspack-article-block-square-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=1200%2C628&ssl=1",1200,628,true],"newspack-article-block-landscape-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=800%2C600&ssl=1",800,600,true],"newspack-article-block-portrait-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=600%2C628&ssl=1",600,628,true],"newspack-article-block-square-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=800%2C628&ssl=1",800,628,true],"newspack-article-block-landscape-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=600%2C450&ssl=1",600,450,true],"newspack-article-block-portrait-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=450%2C600&ssl=1",450,600,true],"newspack-article-block-square-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=600%2C600&ssl=1",600,600,true],"newspack-article-block-landscape-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=400%2C300&ssl=1",400,300,true],"newspack-article-block-portrait-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=300%2C400&ssl=1",300,400,true],"newspack-article-block-square-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=400%2C400&ssl=1",400,400,true],"newspack-article-block-landscape-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=200%2C150&ssl=1",200,150,true],"newspack-article-block-portrait-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=150%2C200&ssl=1",150,200,true],"newspack-article-block-square-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?resize=200%2C200&ssl=1",200,200,true],"newspack-article-block-uncropped":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?fit=1200%2C628&ssl=1",1200,628,true]},"uagb_author_info":{"display_name":"IMAMURA, Genichi","author_link":"https:\/\/support.questetra.com\/en\/author\/imamuragenichi\/"},"uagb_comment_info":0,"uagb_excerpt":"Sends the Input-string to the Responses API via CORS. The responses (the sentence generated by the model) will be displayed in streaming format. Depending on the prompt settings, various support functions to assist task operators can be provided, such as a typo check function, a text rewrite function, and a list of possible reasons for&hellip;","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9DiIh-Lmy","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":77675,"url":"https:\/\/support.questetra.com\/en\/templates\/translation-time-measurement-20160627\/","url_meta":{"origin":182066,"position":0},"title":"Translation-Time Measurement","author":"Hirotaka NISHI","date":"2021-02-22","format":false,"excerpt":"Translates the text of the manuscript. The sentences entered in [1 Translation request] will be delivered to the translator. On the Operating screen of [2 Translation work], scripts that are for measuring the working time by the stopwatch button and for counting the number of input characters have been set,\u2026","rel":"","context":"In &quot;Workflow Apps&quot;","block_context":{"text":"Workflow Apps","link":"https:\/\/support.questetra.com\/en\/category\/templates\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/07\/eye-catch-translation-time-measurement-20160627-220-en.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/07\/eye-catch-translation-time-measurement-20160627-220-en.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/07\/eye-catch-translation-time-measurement-20160627-220-en.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/07\/eye-catch-translation-time-measurement-20160627-220-en.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/07\/eye-catch-translation-time-measurement-20160627-220-en.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":70597,"url":"https:\/\/support.questetra.com\/en\/developer-blog\/choices-salesforce\/","url_meta":{"origin":182066,"position":1},"title":"How to Use Customer Data in Salesforce as Options","author":"HatanakaAkihiro","date":"2018-08-16","format":false,"excerpt":"How to check details of selected customer data on Salesforce.","rel":"","context":"In &quot;Questetra Developers Blog&quot;","block_context":{"text":"Questetra Developers Blog","link":"https:\/\/support.questetra.com\/en\/category\/developer-blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/08\/salesforce-choices-1200x675-1.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/08\/salesforce-choices-1200x675-1.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/08\/salesforce-choices-1200x675-1.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/08\/salesforce-choices-1200x675-1.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/08\/salesforce-choices-1200x675-1.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":70010,"url":"https:\/\/support.questetra.com\/en\/developer-blog\/receive-task-webhook-twilio\/","url_meta":{"origin":182066,"position":2},"title":"Automatically Making a Phone Call in the Middle of a Workflow","author":"HatanakaAkihiro","date":"2018-06-26","format":false,"excerpt":"Making a phone call automatically in the middle of the Workflow by using the new function of v11.7, \"Receive Task (Webhook): Correspond so that content of HTTP response can be configured\" and Twilio in combination.","rel":"","context":"In &quot;Questetra Developers Blog&quot;","block_context":{"text":"Questetra Developers Blog","link":"https:\/\/support.questetra.com\/en\/category\/developer-blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/06\/receive-task-webhook-twilio-1200x675-1.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/06\/receive-task-webhook-twilio-1200x675-1.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/06\/receive-task-webhook-twilio-1200x675-1.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/06\/receive-task-webhook-twilio-1200x675-1.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/06\/receive-task-webhook-twilio-1200x675-1.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":70449,"url":"https:\/\/support.questetra.com\/en\/developer-blog\/twilio-sms-script-task\/","url_meta":{"origin":182066,"position":3},"title":"Sending a Text Message in the Middle of Workflow Using SMS &#8211; Script Task version","author":"HatanakaAkihiro","date":"2018-07-17","format":false,"excerpt":"In my latest blog post, I used a Throwing Message Intermediate Event (HTTP) to realize the API request to Twilio. I would like to substitute that part with a Script Task.","rel":"","context":"In &quot;Questetra Developers Blog&quot;","block_context":{"text":"Questetra Developers Blog","link":"https:\/\/support.questetra.com\/en\/category\/developer-blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/07\/SMS-sending-script-1200x675-1.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/07\/SMS-sending-script-1200x675-1.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/07\/SMS-sending-script-1200x675-1.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/07\/SMS-sending-script-1200x675-1.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2018\/07\/SMS-sending-script-1200x675-1.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":188355,"url":"https:\/\/support.questetra.com\/en\/deco\/qguide-request-to-openai-api-using-localstorage-202606\/","url_meta":{"origin":182066,"position":4},"title":"qGuide: Request to OpenAI API using localStorage v202606","author":"IMAMURA, Genichi","date":"2026-07-01","format":false,"excerpt":"Sends the text and file information stored in specified data fields to the Responses API via CORS. The responses (the sentence generated by the model) will be displayed in streaming format. Depending on the prompt settings, various support functions to assist task operators can be provided, such as a typo\u2026","rel":"","context":"In &quot;Task Form Decoration&quot;","block_context":{"text":"Task Form Decoration","link":"https:\/\/support.questetra.com\/en\/category\/deco\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/qguide-request-to-openai-api-using-localstorage-202606-en.png?fit=1200%2C628&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/qguide-request-to-openai-api-using-localstorage-202606-en.png?fit=1200%2C628&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/qguide-request-to-openai-api-using-localstorage-202606-en.png?fit=1200%2C628&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/qguide-request-to-openai-api-using-localstorage-202606-en.png?fit=1200%2C628&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/07\/qguide-request-to-openai-api-using-localstorage-202606-en.png?fit=1200%2C628&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":77067,"url":"https:\/\/support.questetra.com\/en\/developer-blog\/download-process-data\/","url_meta":{"origin":182066,"position":5},"title":"Downloading Case and Task Lists Using Workflow API (reportId)","author":"Hirotaka NISHI","date":"2022-01-18","format":false,"excerpt":"Download Case and Task data from Questetra BPM Suite. Introducing examples of scripts using curl command.","rel":"","context":"In &quot;Questetra Developers Blog&quot;","block_context":{"text":"Questetra Developers Blog","link":"https:\/\/support.questetra.com\/en\/category\/developer-blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/download-case-and-task-data.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/download-case-and-task-data.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/download-case-and-task-data.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/download-case-and-task-data.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/09\/download-case-and-task-data.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"amp_enabled":false,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2026\/04\/deco-Request-to-OpenAI-API-using-localStorage-en.png?fit=1200%2C628&ssl=1","_links":{"self":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/182066","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/comments?post=182066"}],"version-history":[{"count":16,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/182066\/revisions"}],"predecessor-version":[{"id":186609,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/182066\/revisions\/186609"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/media\/182073"}],"wp:attachment":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/media?parent=182066"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/categories?post=182066"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/tags?post=182066"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}