Extension SDK Updates: Purpose-Built Apps GA, fetch3, and More
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 fetch3 API replaced fetch2 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.
Purpose-Built Apps are generally available
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.
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.
New in the GA docs:
- Theming. 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.
- Translations. 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.
Full documentation: Extension SDK → Purpose-Built App.
fetch3: the new standard for external requests
The Plugin Client now includes a fetch3 method, which replaces fetch2 as the recommended API for making requests to external services from within a plugin.
pluginClient
.fetch3('https://api.example.com/data?filter=active', {
method: 'GET',
connection: {
connectionName: 'my-service',
paramFormat: 'header',
paramName: 'Authorization',
paramTemplate: 'Bearer %s',
},
})
.then(({ data, status }) => {
console.log(status, data)
})
Key improvements over fetch2:
- All content types supported. Pass
FormDatadirectly in the request body for file uploads. Binary responses (images, PDFs, etc.) are returned asArrayBufferautomatically. - Auto-decoded responses. The response
datafield is decoded based on theContent-Typeheader — JSON becomes a parsed object, text becomes a string, binary becomes anArrayBuffer. No manual parsing. - Automatic credential refresh. If the destination server returns a
401or403due to an expired credential,fetch3retries the request with a refreshed credential automatically. - Query params in the URL. Include query parameters directly in the URL string rather than in a separate
paramsobject.
fetch2 continues to work and has no announced removal timeline — migrating is not urgent. That said, fetch3 is the right choice for new integrations and any existing code paths that handle file uploads or binary responses.
fetch3 requires @qualtrics/plugin-client version 1.10.4 or greater. Full reference: Extension SDK → Plugin Client → fetch3.
XM Solutions: Overview resource type
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.
XM Solutions now support a new Overview 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.
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 Extension SDK → XM Solution → Overview Page for the full reference.
Theme sharing between Purpose-Built Apps and Custom Blocks
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 getTheme function from the Custom Block SDK. This keeps the UI consistent across the full app without manually syncing theme values between plugins.
See Extension SDK → Purpose-Built App → Sharing Themes With Custom Blocks for the updated section.
Questions about any of these updates? Ask in the Developer Corner on the Qualtrics Community.