Bilješka
Pristup ovoj stranici zahtijeva provjeru vjerodostojnosti. Možete pokušati da se prijavite ili promijenite direktorije.
Pristup ovoj stranici zahtijeva provjeru vjerodostojnosti. Možete pokušati promijeniti direktorije.
Note
Now available for public preview!
This article covers product-specific guidance for SharePoint Solutions. For shared concepts like authentication, core API methods, resource-tree queries, configuration requests, and lifecycle management, see the Product Ingestion API documentation.
Tip
You can now create and manage SharePoint solution offers with AI agents by using the Marketplace Ingestion MCP server, which connects tools like GitHub Copilot and Visual Studio Code to the Product Ingestion API.
Note
Your Microsoft Entra app registration must be in the seller-associated tenant (the tenant linked to your Partner Center seller account). App tokens from a corporate or Microsoft-homed Entra tenant won't work.
Retrieve existing resource configurations
To retrieve the current configuration for a SharePoint Solution product, use the resource-tree endpoint with the product's durable ID:
GET https://graph.microsoft.com/rp/product-ingestion/resource-tree/product/12345678-abcd-efgh-1234-12345678901?$version=2026-04-01-preview1
Sample response:
{
"$schema": "https://schema.mp.microsoft.com/schema/resource-tree/2022-03-01-preview2",
"root": "product/12345678-abcd-efgh-1234-12345678901",
"target": {
"targetType": "preview"
},
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/product/2026-04-01-preview1",
"id": "product/12345678-abcd-efgh-1234-12345678901",
"identity": {
"externalId": "my-sharepoint-solution"
},
"type": "sharepointSolution",
"alias": "My SharePoint Solution"
},
{
"$schema": "https://schema.mp.microsoft.com/schema/property/2026-04-01-preview1",
"id": "property/12345678-abcd-efgh-1234-12345678902",
"product": "product/12345678-abcd-efgh-1234-12345678901",
"kind": "sharepointSolution",
"categories": ["communication"],
"termsConditions": "standardMicrosoft",
"privacyPolicyUrl": "https://contoso.com/privacy",
"supportDocumentUrl": "https://contoso.com/support",
"termsOfUseUrl": "https://contoso.com/terms"
},
{
"$schema": "https://schema.mp.microsoft.com/schema/listing/2026-04-01-preview1",
"id": "listing/12345678-abcd-efgh-1234-12345678903",
"product": "product/12345678-abcd-efgh-1234-12345678901",
"kind": "sharepointSolution",
"languageId": "en",
"title": "My SharePoint Solution",
"description": "A powerful solution for SharePoint.",
"searchResultSummary": "Enhance your SharePoint experience"
}
]
}
Create a new SharePoint Solution product
To create a new SharePoint Solution, submit a configure request with the product resource. Set type to sharepointSolution.
POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2026-04-01-preview1
Request body:
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-03-01-preview2",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/product/2026-04-01-preview1",
"resourceName": "myNewProduct",
"identity": {
"externalId": "my-new-sharepoint-solution"
},
"type": "sharepointSolution",
"alias": "My New SharePoint Solution"
}
]
}
Sample response:
{
"$schema": "https://schema.mp.microsoft.com/schema/configure-status/2022-03-01-preview2",
"jobId": "87654321-dcba-hgfe-4321-109876543210",
"jobStatus": "running",
"jobResult": "pending",
"jobStart": "2026-04-01T10:00:00.0000000Z",
"resourceStatuses": [
{
"resourceName": "myNewProduct",
"status": "running"
}
]
}
Configure properties
The property resource defines categories, terms and conditions, and policy links for your SharePoint Solution. Set kind to sharepointSolution.
POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2026-04-01-preview1
Request body:
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-03-01-preview2",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/property/2026-04-01-preview1",
"id": "property/12345678-abcd-efgh-1234-12345678902",
"product": "product/12345678-abcd-efgh-1234-12345678901",
"kind": "sharepointSolution",
"categories": ["communication", "collaboration"],
"industries": ["education", "retail"],
"cloudIndustries": ["government"],
"termsConditions": "standardMicrosoft",
"termsOfUseUrl": "https://contoso.com/terms",
"privacyPolicyUrl": "https://contoso.com/privacy",
"supportDocumentUrl": "https://contoso.com/support"
}
]
}
Property fields
| Field | Required | Description |
|---|---|---|
kind |
Yes | Must be sharepointSolution |
product |
Yes | Reference to the product resource |
categories |
Yes | Array of category identifiers |
termsConditions |
Yes | Either custom or standardMicrosoft |
termsOfUseUrl |
Yes | URL to your terms of use |
privacyPolicyUrl |
Yes | URL to your privacy policy |
supportDocumentUrl |
Yes | URL to your support documentation |
industries |
No | Array of industry identifiers |
cloudIndustries |
No | Array of cloud-specific industry identifiers |
Configure listing
The listing resource contains storefront information like title, description, and search keywords. Set kind to sharepointSolution.
Warning
Use Office-supported base locale codes for languageId (for example, en, fr, ja). Region-qualified codes like en-US might cause downstream export failures even if the configure call succeeds.
Note
Ensure your product name is reserved before publishing. The configure endpoint accepts a listing even if the name isn't reserved, but submission fails if the name isn't reserved at submission time.
POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2026-04-01-preview1
Request body:
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-03-01-preview2",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/listing/2026-04-01-preview1",
"id": "listing/12345678-abcd-efgh-1234-12345678903",
"product": "product/12345678-abcd-efgh-1234-12345678901",
"kind": "sharepointSolution",
"languageId": "en",
"title": "My SharePoint Solution",
"searchResultSummary": "Transform your SharePoint sites with advanced features",
"description": "This solution extends SharePoint with powerful web parts, workflows, and integrations. Build modern intranet experiences, automate business processes, and enhance team collaboration.",
"searchKeywords": ["sharepoint", "intranet", "web parts"],
"videoLink": "https://www.youtube.com/watch?v=example"
}
]
}
Listing fields
| Field | Required | Description |
|---|---|---|
kind |
Yes | Must be sharepointSolution |
product |
Yes | Reference to the product resource |
languageId |
Yes | Language code using Office-supported base codes (for example, en, fr, ja, pt-BR) |
title |
No | Display title (max 200 characters) |
searchResultSummary |
No | Short summary for search results |
description |
No | Full product description |
searchKeywords |
No | Array of keywords for search discovery |
videoLink |
No | URL to a promotional video |
Configure listing assets
Listing assets include logos and screenshots for your storefront presence.
POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2026-04-01-preview1
Request body:
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-03-01-preview2",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/listing-asset/2026-04-01-preview1",
"product": "product/12345678-abcd-efgh-1234-12345678901",
"listing": "listing/12345678-abcd-efgh-1234-12345678903",
"type": "m365andCopilotLogo",
"url": "https://yourstorageaccount.blob.core.windows.net/assets/logo.png?sv=...",
"fileName": "logo.png",
"friendlyName": "Product Logo"
},
{
"$schema": "https://schema.mp.microsoft.com/schema/listing-asset/2026-04-01-preview1",
"product": "product/12345678-abcd-efgh-1234-12345678901",
"listing": "listing/12345678-abcd-efgh-1234-12345678903",
"type": "m365andCopilotScreenshot",
"url": "https://yourstorageaccount.blob.core.windows.net/assets/screenshot1.png?sv=...",
"fileName": "screenshot1.png",
"friendlyName": "Dashboard Overview",
"displayOrder": 0
}
]
}
Listing asset types
| Type | Description |
|---|---|
m365andCopilotLogo |
Product logo for storefront display |
m365andCopilotScreenshot |
Product screenshot |
Configure Microsoft 365 setup
The Microsoft 365 setup resource configures Entra ID requirements, target cloud plans, and Apple Store availability.
POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2026-04-01-preview1
Request body:
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-03-01-preview2",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/microsoft365-setup/2026-04-01-preview1",
"product": "product/12345678-abcd-efgh-1234-12345678901",
"requiresEntraId": true,
"targetPlan": "gbl",
"additionalPurchaseRequired": false,
"appleStoreAvailability": false
}
]
}
Microsoft 365 setup fields
| Field | Required | Description |
|---|---|---|
product |
Yes | Reference to the product resource |
requiresEntraId |
No | Whether Entra ID authentication is required |
targetPlan |
No | Target cloud plan: chn (China), gbl (Global), ger (Germany), gov (Government) |
additionalPurchaseRequired |
No | Whether additional purchases are required |
appleStoreAvailability |
No | Whether the product is available in the Apple Store |
Configure technical configuration
The technical configuration for SharePoint Solutions uses a payload-based model. You upload your .app package file to Azure Blob Storage and provide the SAS URI.
POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2026-04-01-preview1
Request body:
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-03-01-preview2",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/sharepoint-solution-technical-configuration/2026-04-01-preview1",
"product": "product/12345678-abcd-efgh-1234-12345678901",
"payloads": [
{
"payload": {
"sasUri": "https://yourstorageaccount.blob.core.windows.net/uploads/solution.sppkg?sv=...",
"fileName": "my-sharepoint-solution.sppkg"
}
}
]
}
]
}
Technical configuration payload fields
| Field | Required | Description |
|---|---|---|
sasUri |
Conditional | Azure Blob SAS URI for the .app package file. Required for new uploads. |
fileName |
Yes | Display name of the uploaded file |
payloadId |
Conditional | Server-assigned ID from a previous upload. Use instead of sasUri to reuse an existing payload. |
Note
You must provide either sasUri (for new uploads) or payloadId (to reuse an existing payload), but not both.
Reusing an existing payload
After the initial upload is processed, the API returns a payloadId. You can use this ID in subsequent requests to reference the same payload without re-uploading:
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-03-01-preview2",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/sharepoint-solution-technical-configuration/2026-04-01-preview1",
"product": "product/12345678-abcd-efgh-1234-12345678901",
"payloads": [
{
"payload": {
"payloadId": "98765432-abcd-efgh-1234-12345678901",
"fileName": "my-sharepoint-solution.sppkg"
}
}
]
}
]
}
Publishing
Publish to live
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-03-01-preview2",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/submission/2026-04-01-preview1",
"id": "submission/12345678-abcd-efgh-1234-12345678904",
"product": "product/12345678-abcd-efgh-1234-12345678901",
"target": {
"targetType": "live"
}
}
]
}
Important
A successful configure response doesn't guarantee a successful submission. The configure endpoint is more permissive than the submission pipeline. Common causes of submission failure include missing reserved names, unsupported locale codes, and missing implicit resources. Validate your full resource tree before submitting.
Note
SharePoint Solutions are free-only products. Pricing is managed internally and isn't configurable through the API.
Resource lifecycle states
Resources support lifecycle state management. To deprecate a resource, set lifecycleState to deleted:
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-03-01-preview2",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/listing/2026-04-01-preview1",
"id": "listing/12345678-abcd-efgh-1234-12345678903",
"product": "product/12345678-abcd-efgh-1234-12345678901",
"kind": "sharepointSolution",
"languageId": "en",
"lifecycleState": "deleted"
}
]
}
To restore a deprecated resource, set lifecycleState back to generallyAvailable.
For more information about lifecycle management, see the base API documentation.
Resource API reference
| Resource type | Description | Schema URL |
|---|---|---|
| product | Main resource defining product name and type | https://schema.mp.microsoft.com/schema/product/2026-04-01-preview1 |
| property | Categories, industries, and legal contracts | https://schema.mp.microsoft.com/schema/property/2026-04-01-preview1 |
| listing | Product descriptions for storefront | https://schema.mp.microsoft.com/schema/listing/2026-04-01-preview1 |
| listing-asset | Screenshots and marketing assets | https://schema.mp.microsoft.com/schema/listing-asset/2026-04-01-preview1 |
| microsoft365-setup | M365-specific setup configuration | https://schema.mp.microsoft.com/schema/microsoft365-setup/2026-04-01-preview1 |
| sharepoint-solution-technical-configuration | Technical configuration with app package | https://schema.mp.microsoft.com/schema/sharepoint-solution-technical-configuration/2026-04-01-preview1 |
| submission | Publishing state and actions | https://schema.mp.microsoft.com/schema/submission/2026-04-01-preview1 |
API versions and updates
| Version | Description |
|---|---|
| 2026-04-01-preview1 | Initial preview release for SharePoint Solutions support |