---
title: "Sitecore Marketplace SDK for JavaScript"
slug: "sitecore-marketplace-sdk-for-javascript"
abstract: "Extend the capabilities of Sitecore by using a dedicated SDK to build JavaScript or TypeScript apps for the Sitecore Marketplace."
---
# Sitecore Marketplace SDK for JavaScript

The [open-source Marketplace SDK](https://github.com/Sitecore/sitecore-marketplace-sdk) lets developers build Marketplace applications. These are JavaScript or TypeScript apps that extend and customize Sitecore products and give Sitecore users new capabilities tailored to their needs.

The Marketplace SDK offers two main functionalities, delivered in distinct [packages](https://doc.sitecore.com/mp/en/developers/sdk/0/sitecore-marketplace-sdk/marketplace-sdk-packages.html "Marketplace SDK packages"):

- *Interactions between your app and Sitecore* - the required `client` package connects your app to Sitecore, allowing the two to securely communicate. For example, it enables your app to appear in and interact with [SitecoreAI extension points](https://doc.sitecore.com/mp/en/developers/marketplace/extension-points.html) such as the SitecoreAI Page Builder.
- *Interactions with SitecoreAI APIs* - the optional `xmc` package gives your app API access to SitecoreAI. The package provides type-safe interfaces for interacting with SitecoreAI APIs from the client side and from the server side, if your app needs it.
- *Interactions with AI skills APIs* - the optional `ai` package gives your app API access to AI skills. AI skills APIs provide LLM-powered capabilities grounded in SitecoreAI data. The package provides type-safe interfaces for interacting with AI skills APIs from the client side and from the server side, if your app needs it.

## Development tasks with the Marketplace SDK

[Before you start using the Marketplace SDK](https://doc.sitecore.com/mp/en/developers/marketplace/en/introduction-to-sitecore-marketplace-for-custom-and-public-apps.html#UUID-1735fb7a-559b-d6af-ec6f-91456d2504c5_section-idm234813214660084), decide what to build, then plan and design your app. During planning, you also choose your [app architecture and authorization](https://doc.sitecore.com/mp/en/developers/marketplace/app-architecture-and-authorization-options.html), which affects how you work with the SDK. Next, create, configure, and install your [custom](https://doc.sitecore.com/mp/en/developers/marketplace/create-a-custom-marketplace-app.html) or [public](https://doc.sitecore.com/mp/en/developers/marketplace/create-a-public-marketplace-app.html) app in the Cloud Portal. After completing these steps, you're ready to start development.

You can start development in any of the following ways:

- Complete one of the [SDK quick starts](https://doc.sitecore.com/mp/en/developers/sdk/0/sitecore-marketplace-sdk/quick-starts.html "Quick starts") depending on your app architecture and authorization.
- Use the [Sitecore Marketplace SDK Starter Kit](https://github.com/Sitecore/marketplace-starter), which provides a preconfigured project structure. For more information, refer to the [Sitecore Developer Portal](https://developers.sitecore.com/learn/getting-started/marketplace/marketplace-starter-kit-nextjs-app-router).
- Explore [sample applications](https://github.com/search?q=org%3ASitecore+marketplace&type=repositories) created by Sitecore.

The most common development tasks you perform with the Marketplace SDK include the following:

- [Initialize](https://doc.sitecore.com/mp/en/developers/sdk/0/sitecore-marketplace-sdk/quick-start--manual-.html "Quick start (manual)") the `client` package - after you finish initialization, you can open your app in Sitecore so the two can securely communicate.
- Optionally, initialize other packages - for example, if your app needs access to SitecoreAI APIs, [initialize `xmc`](https://doc.sitecore.com/mp/en/developers/sdk/0/sitecore-marketplace-sdk/initialize-the-xmc-package.html "Initialize the xmc package"). If your app needs access to AI skills APIs, [initialize `ai`](https://doc.sitecore.com/mp/en/developers/sdk/0/sitecore-marketplace-sdk/initialize-the-ai-package.html "Initialize the ai package").
- [Make queries](https://doc.sitecore.com/mp/en/developers/sdk/0/sitecore-marketplace-sdk/understanding-queries.html "Understanding queries") - retrieve data from Sitecore to your app. For example, retrieve data about your application, page variants, the hierarchy of a SitecoreAI site, and more.

    > [!note]
    > For a full list of query operations, refer to the `QueryMap` reference documentation of each SDK package: [`client`](https://github.com/Sitecore/sitecore-marketplace-sdk/blob/main/docs/client/interfaces/QueryMap.md), [`xmc`](https://github.com/Sitecore/sitecore-marketplace-sdk/blob/main/docs/modules/xmc/interfaces/QueryMap.md), [`ai`](https://github.com/Sitecore/sitecore-marketplace-sdk/blob/main/docs/modules/ai/interfaces/QueryMap.md).

- [Make mutations](https://doc.sitecore.com/mp/en/developers/sdk/0/sitecore-marketplace-sdk/understanding-mutations.html "Understanding mutations") - change data in Sitecore from your app. For example, create content using the GraphQL API, update a SitecoreAI site, delete a site language, and more.

    > [!note]
    > For a full list of mutation operations, refer to the `MutationMap` reference documentation of each SDK package: [`client`](https://github.com/Sitecore/sitecore-marketplace-sdk/blob/main/docs/client/interfaces/MutationMap.md), [`xmc`](https://github.com/Sitecore/sitecore-marketplace-sdk/blob/main/docs/modules/xmc/interfaces/MutationMap.md), [`ai`](https://github.com/Sitecore/marketplace-sdk/blob/main/docs/modules/ai/interfaces/MutationMap.md).

- Subscribe to events - receive real-time updates in your app as the data in Sitecore changes. For example, get an update when the SitecoreAI Page Builder user [opens a different page](https://doc.sitecore.com/mp/en/developers/sdk/0/sitecore-marketplace-sdk/subscribe-to-page-events.html "Subscribe to page events").
- [Save and restore app URL state](https://doc.sitecore.com/mp/en/developers/sdk/0/sitecore-marketplace-sdk/save-and-restore-app-url-state.html "Save and restore app URL state") - save a view configuration, such as a selected tab or filters, in the host URL so users can reload or share the view.

After development, return to the Cloud Portal to finish setting up your [custom](https://doc.sitecore.com/mp/en/developers/marketplace/finish-configuration.html) or [public](https://doc.sitecore.com/mp/en/developers/marketplace/prepare-to-submit-a-public-app-for-approval.html) app.
