<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Qualtrics Developer Platform Blog</title>
        <link>https://developer-docs.qualtrics.com/blog/</link>
        <description>Qualtrics Developer Platform Blog</description>
        <lastBuildDate>Thu, 22 Oct 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Introducing the New Qualtrics Developer Documentation]]></title>
            <link>https://developer-docs.qualtrics.com/blog/new-developer-documentation-site/</link>
            <guid>https://developer-docs.qualtrics.com/blog/new-developer-documentation-site/</guid>
            <pubDate>Thu, 22 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The Qualtrics Developer Platform has moved from Stoplight to a new self-hosted Docusaurus site — same content, better experience.]]></description>
            <content:encoded><![CDATA[<p>The Qualtrics Developer Platform documentation has a new home. Public API reference and Extension SDK guides are now at <strong>developer-docs.qualtrics.com</strong>, replacing the previous Stoplight-hosted site. All existing bookmarks redirect automatically — no action required on your end.</p>
<p>The previous site was hosted by Stoplight; this new site is self-hosted and will remain so going forward.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-the-same">What's the same<a href="https://developer-docs.qualtrics.com/blog/new-developer-documentation-site/#whats-the-same" class="hash-link" aria-label="Direct link to What's the same" title="Direct link to What's the same" translate="no">​</a></h2>
<p>All content has moved as-is. If you used the old site, you'll find everything you expect:</p>
<ul>
<li class="">The complete <a class="" href="https://developer-docs.qualtrics.com/docs/public-api/intro/">Public API reference</a> — all 321 endpoints across 46 OpenAPI specs, rendered with interactive try-it panels and code samples in multiple languages.</li>
<li class="">The full <a class="" href="https://developer-docs.qualtrics.com/docs/extension-sdk/ove-extension-sdk/">Extension SDK documentation</a> — guides for every plugin type, the XMT CLI reference, and the manifest specification.</li>
</ul>
<p>The URL structure is preserved wherever possible, and 301 redirects are in place for any paths that changed. If you have a bookmark that doesn't redirect correctly, <a href="https://developer-docs.qualtrics.com/blog/new-developer-documentation-site/#feedback" class="">let us know</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-new">What's new<a href="https://developer-docs.qualtrics.com/blog/new-developer-documentation-site/#whats-new" class="hash-link" aria-label="Direct link to What's new" title="Direct link to What's new" translate="no">​</a></h2>
<p>The two most significant changes are unified navigation and full-site search.</p>
<p><strong>Unified navigation.</strong> Extension SDK and Public API docs now live under one roof with a shared top nav and a single place to bookmark. Previously, the two sets were hosted separately with no cross-linking.</p>
<p><strong>Faster search.</strong> Press <code>Cmd+K</code> (or <code>Ctrl+K</code>) from anywhere on the site to search across both documentation sets simultaneously. The search index is built at compile time, so results are instant with no external service dependency.</p>
<p>Also new:</p>
<ul>
<li class=""><strong>Dark mode</strong> — toggle between light and dark themes using the button in the top-right corner.</li>
<li class=""><strong>This blog</strong> — release notes, tutorials, and platform updates will be published here going forward. Subscribe via RSS or Atom using <code>/blog/rss.xml</code> and <code>/blog/atom.xml</code> in your feed reader.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-use-it">How to use it<a href="https://developer-docs.qualtrics.com/blog/new-developer-documentation-site/#how-to-use-it" class="hash-link" aria-label="Direct link to How to use it" title="Direct link to How to use it" translate="no">​</a></h2>
<p>The site has two primary sections reachable from the top nav:</p>

















<table><thead><tr><th>Section</th><th>What's in it</th></tr></thead><tbody><tr><td><a class="" href="https://developer-docs.qualtrics.com/docs/extension-sdk/ove-extension-sdk/"><strong>Extension SDK</strong></a></td><td>Plugin development guides, manifest reference, XMT CLI, authentication</td></tr><tr><td><a class="" href="https://developer-docs.qualtrics.com/docs/public-api/intro/"><strong>Public API</strong></a></td><td>OpenAPI reference for all Qualtrics public APIs, organized by spec</td></tr></tbody></table>
<p>The sidebar on each section mirrors the structure you already know. The API reference pages include the full parameter and response schema on the left, with request/response examples on the right. New to extensions? Start with <a class="" href="https://developer-docs.qualtrics.com/docs/extension-sdk/qui-extension-sdk/">Get Started with the Extension SDK</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="feedback">Feedback<a href="https://developer-docs.qualtrics.com/blog/new-developer-documentation-site/#feedback" class="hash-link" aria-label="Direct link to Feedback" title="Direct link to Feedback" translate="no">​</a></h2>
<p>If you find broken links, missing content, or anything that worked better before, use the feedback icon at the bottom of any page to submit a response.</p>]]></content:encoded>
            <category>Announcements</category>
            <category>Documentation</category>
        </item>
        <item>
            <title><![CDATA[Extension SDK Updates: Purpose-Built Apps GA, fetch3, and More]]></title>
            <link>https://developer-docs.qualtrics.com/blog/extension-sdk-updates-h1-2026/</link>
            <guid>https://developer-docs.qualtrics.com/blog/extension-sdk-updates-h1-2026/</guid>
            <pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Purpose-Built Apps hit general availability, the fetch3 API adds FormData and binary support, and XM Solutions gained a new Overview resource type — here's what changed in the Extension SDK in H1 2026.]]></description>
            <content:encoded><![CDATA[<p>The first half of 2026 brought several meaningful updates to the Extension SDK: Purpose-Built Apps moved from early access to general availability, a new <code>fetch3</code> API replaced <code>fetch2</code> as the recommended way to make external requests, and the XM Solution plugin type gained support for a new Overview resource. Here's a rundown of what changed and what it means for your extensions.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="purpose-built-apps-are-generally-available">Purpose-Built Apps are generally available<a href="https://developer-docs.qualtrics.com/blog/extension-sdk-updates-h1-2026/#purpose-built-apps-are-generally-available" class="hash-link" aria-label="Direct link to Purpose-Built Apps are generally available" title="Direct link to Purpose-Built Apps are generally available" translate="no">​</a></h2>
<p>As of January 2026, Purpose-Built Apps (PBAs) are generally available. The early access gate has been removed from all PBA documentation — if you've been waiting on GA before building production extensions, now is the time.</p>
<p>PBAs let you embed custom web applications directly inside the Qualtrics platform using a plugin-based architecture. They're the right tool when you need a full UI — not just a widget or a step in a workflow — that integrates tightly with Qualtrics data and context.</p>
<p><strong>New in the GA docs:</strong></p>
<ul>
<li class=""><strong>Theming.</strong> The PBA documentation now includes a complete section on applying Qualtrics-consistent styles to your app using the platform's theming API. Building a UI that matches the host product is now documented with examples.</li>
<li class=""><strong>Translations.</strong> The translations section has been expanded with more detail on how to structure locale files, register translations at init time, and handle fallback behavior when a translation key is missing.</li>
</ul>
<p>Full documentation: <a class="" href="https://developer-docs.qualtrics.com/docs/extension-sdk/plugins/purpose-built-app/fou-purpose-built-app/">Extension SDK → Purpose-Built App</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fetch3-the-new-standard-for-external-requests">fetch3: the new standard for external requests<a href="https://developer-docs.qualtrics.com/blog/extension-sdk-updates-h1-2026/#fetch3-the-new-standard-for-external-requests" class="hash-link" aria-label="Direct link to fetch3: the new standard for external requests" title="Direct link to fetch3: the new standard for external requests" translate="no">​</a></h2>
<p>The Plugin Client now includes a <code>fetch3</code> method, which replaces <code>fetch2</code> as the recommended API for making requests to external services from within a plugin.</p>
<div class="language-javascript codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-javascript codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">pluginClient</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">fetch3</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">'https://api.example.com/data?filter=active'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#36acaa">method</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'GET'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#36acaa">connection</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#36acaa">connectionName</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'my-service'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#36acaa">paramFormat</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'header'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#36acaa">paramName</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'Authorization'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#36acaa">paramTemplate</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'Bearer %s'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token parameter punctuation" style="color:#393A34">{</span><span class="token parameter"> data</span><span class="token parameter punctuation" style="color:#393A34">,</span><span class="token parameter"> status </span><span class="token parameter punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token arrow operator" style="color:#393A34">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token console class-name">console</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">log</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">status</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> data</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre></div></div>
<p><strong>Key improvements over fetch2:</strong></p>
<ul>
<li class=""><strong>All content types supported.</strong> Pass <code>FormData</code> directly in the request body for file uploads. Binary responses (images, PDFs, etc.) are returned as <code>ArrayBuffer</code> automatically.</li>
<li class=""><strong>Auto-decoded responses.</strong> The response <code>data</code> field is decoded based on the <code>Content-Type</code> header — JSON becomes a parsed object, text becomes a string, binary becomes an <code>ArrayBuffer</code>. No manual parsing.</li>
<li class=""><strong>Automatic credential refresh.</strong> If the destination server returns a <code>401</code> or <code>403</code> due to an expired credential, <code>fetch3</code> retries the request with a refreshed credential automatically.</li>
<li class=""><strong>Query params in the URL.</strong> Include query parameters directly in the URL string rather than in a separate <code>params</code> object.</li>
</ul>
<p><code>fetch2</code> continues to work and has no announced removal timeline — migrating is not urgent. That said, <code>fetch3</code> is the right choice for new integrations and any existing code paths that handle file uploads or binary responses.</p>
<p><code>fetch3</code> requires <code>@qualtrics/plugin-client</code> version <strong>1.10.4 or greater</strong>. Full reference: <a class="" href="https://developer-docs.qualtrics.com/docs/extension-sdk/plugins/tooling/com-plugin-client/#fetch3">Extension SDK → Plugin Client → fetch3</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="xm-solutions-overview-resource-type">XM Solutions: Overview resource type<a href="https://developer-docs.qualtrics.com/blog/extension-sdk-updates-h1-2026/#xm-solutions-overview-resource-type" class="hash-link" aria-label="Direct link to XM Solutions: Overview resource type" title="Direct link to XM Solutions: Overview resource type" translate="no">​</a></h2>
<p>XM Solutions are extensions that embed a structured, multi-resource experience directly inside Qualtrics — guided workflows, dashboards, or onboarding flows built on Qualtrics data. Each solution is made up of individual resource pages that users navigate through.</p>
<p>XM Solutions now support a new <strong>Overview</strong> resource type. An Overview resource renders as a dedicated landing page at the start of the solution, before the user reaches any individual resources. Use it to introduce the solution's purpose, explain prerequisites, or surface context that applies across all resources.</p>
<p>If your XM Solution has multiple resources that share common setup steps or require orientation to use effectively, an Overview resource is the right place to put that content. See <a class="" href="https://developer-docs.qualtrics.com/docs/extension-sdk/plugins/xm-solution/resources/ove-overview-page/">Extension SDK → XM Solution → Overview Page</a> for the full reference.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="theme-sharing-between-purpose-built-apps-and-custom-blocks">Theme sharing between Purpose-Built Apps and Custom Blocks<a href="https://developer-docs.qualtrics.com/blog/extension-sdk-updates-h1-2026/#theme-sharing-between-purpose-built-apps-and-custom-blocks" class="hash-link" aria-label="Direct link to Theme sharing between Purpose-Built Apps and Custom Blocks" title="Direct link to Theme sharing between Purpose-Built Apps and Custom Blocks" translate="no">​</a></h2>
<p>The Purpose-Built App documentation now covers how to share your PBA's active theme with embedded Custom Block plugins. When a Custom Block is displayed inside a PBA, you can pass the PBA's theme — colors and visual configuration — down to the Custom Block using the <code>getTheme</code> function from the Custom Block SDK. This keeps the UI consistent across the full app without manually syncing theme values between plugins.</p>
<p>See <a class="" href="https://developer-docs.qualtrics.com/docs/extension-sdk/plugins/purpose-built-app/fou-purpose-built-app/#sharing-themes-with-custom-blocks">Extension SDK → Purpose-Built App → Sharing Themes With Custom Blocks</a> for the updated section.</p>
<hr>
<p>Questions about any of these updates? Ask in the <a href="https://community.qualtrics.com/developer-corner-9" target="_blank" rel="noopener noreferrer" class="">Developer Corner</a> on the Qualtrics Community.</p>]]></content:encoded>
            <category>Extension SDK</category>
            <category>Announcements</category>
            <category>Plugins</category>
        </item>
        <item>
            <title><![CDATA[Public API Updates: Response Exports Returns, 321 Endpoints Documented]]></title>
            <link>https://developer-docs.qualtrics.com/blog/public-api-updates-q2-2026/</link>
            <guid>https://developer-docs.qualtrics.com/blog/public-api-updates-q2-2026/</guid>
            <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The Response Imports/Exports API spec is now publicly documented after a three-year gap, and the full Public API surface is now tracked at 321 endpoints across 46 specs.]]></description>
            <content:encoded><![CDATA[<p>Two notable updates to the Qualtrics Public API documentation landed in Q2 2026: the Response Imports/Exports API spec is live for the first time in roughly three years, and the full API surface is now formally documented with endpoint counts across all 46 OpenAPI specs.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="response-importsexports-api-is-back">Response Imports/Exports API is back<a href="https://developer-docs.qualtrics.com/blog/public-api-updates-q2-2026/#response-importsexports-api-is-back" class="hash-link" aria-label="Direct link to Response Imports/Exports API is back" title="Direct link to Response Imports/Exports API is back" translate="no">​</a></h2>
<p>If you're building an ETL pipeline, backup workflow, or third-party analytics integration that pulls response data out of Qualtrics in bulk, the Response Imports/Exports API is the right endpoint set to use. It covers exporting response files, triggering response imports, and checking import job status.</p>
<p>This spec is now available in the <a class="" href="https://developer-docs.qualtrics.com/docs/public-api/responseImportsExports/surveys-response-import-export-api/">Public API reference</a>. The documentation had been removed about three years ago; it's been restored following a recent audit that confirmed the endpoints are stable and production-ready. Navigate to <strong>Public API → Response Imports &amp; Exports</strong> in the sidebar to browse the full spec.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="full-api-reference-coverage">Full API reference coverage<a href="https://developer-docs.qualtrics.com/blog/public-api-updates-q2-2026/#full-api-reference-coverage" class="hash-link" aria-label="Direct link to Full API reference coverage" title="Direct link to Full API reference coverage" translate="no">​</a></h2>
<p>If you've been working off incomplete third-party references or discovering endpoints by trial and error, the documentation now covers the complete Qualtrics Public API surface. All 321 endpoints across 46 OpenAPI spec files are included, spanning:</p>
<ul>
<li class="">Surveys and survey definitions</li>
<li class="">Contacts and directory management</li>
<li class="">Event subscriptions</li>
<li class="">Audit logs</li>
<li class="">GDPR and CCPA compliance endpoints</li>
<li class="">Response exports (now restored, above)</li>
</ul>
<p>Browse the full reference from the <a class="" href="https://developer-docs.qualtrics.com/docs/public-api/intro/">Public API introduction</a>, or open <strong>Public API</strong> in the site nav.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="staying-current">Staying current<a href="https://developer-docs.qualtrics.com/blog/public-api-updates-q2-2026/#staying-current" class="hash-link" aria-label="Direct link to Staying current" title="Direct link to Staying current" translate="no">​</a></h2>
<p>API reference documentation is generated directly from the OpenAPI specs maintained by the owning engineering teams. New endpoints and parameter changes will appear in the reference as specs are updated upstream. Start with the <a class="" href="https://developer-docs.qualtrics.com/docs/public-api/instructions/quick-start/qualtrics-api-quick-start/">Qualtrics API Quick Start</a> if you are new to the APIs.</p>
<p>Subscribe via <code>/blog/rss.xml</code> or check back here for future update summaries. If you notice a missing endpoint or a spec that looks out of date, use the feedback icon at the bottom of any page.</p>]]></content:encoded>
            <category>Public API</category>
            <category>Releases</category>
        </item>
    </channel>
</rss>