Product Ingestion API for Microsoft 365 and Copilot Apps and Agents - public preview

Note

Now available for public preview!

This article covers product-specific guidance for Microsoft 365 and Copilot Apps and Agents. 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 Microsoft 365 and Copilot 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 Microsoft 365 and Copilot Apps and Agents 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-copilot-app"
      },
      "type": "microsoft365CopilotApp",
      "alias": "My Copilot App"
    },
    {
      "$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": "microsoft365CopilotApp",
      "categories": ["ai-machine-learning"],
      "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": "microsoft365CopilotApp",
      "languageId": "en",
      "title": "My Copilot App",
      "description": "An AI-powered app for Microsoft 365.",
      "searchResultSummary": "Enhance your Microsoft 365 experience with AI"
    }
  ]
}

Create a new Microsoft 365 and Copilot Apps and Agents product

To create a new Microsoft 365 and Copilot Apps and Agents product, submit a configure request with the product resource. Set type to microsoft365CopilotApp.

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-copilot-app"
      },
      "type": "microsoft365CopilotApp",
      "alias": "My New Copilot App"
    }
  ]
}

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 Microsoft 365 and Copilot Apps and Agents product. Set kind to microsoft365CopilotApp.

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": "microsoft365CopilotApp",
      "categories": ["ai-machine-learning", "productivity"],
      "industries": ["financial-services", "professional-services"],
      "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 microsoft365CopilotApp
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 microsoft365CopilotApp.

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": "microsoft365CopilotApp",
      "languageId": "en",
      "title": "My Copilot App",
      "searchResultSummary": "AI-powered productivity for Microsoft 365",
      "description": "This app brings advanced AI capabilities to your Microsoft 365 experience. Use natural language to automate tasks, generate content, analyze data, and integrate with your favorite Microsoft apps.",
      "searchKeywords": ["copilot", "ai", "automation", "productivity"],
      "videoLink": "https://www.youtube.com/watch?v=example"
    }
  ]
}

Listing fields

Field Required Description
kind Yes Must be microsoft365CopilotApp
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": "Copilot Integration",
      "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": true
    }
  ]
}

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 Microsoft 365 and Copilot Apps and Agents uses a payload-based model. You upload your .zip 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/m365-copilot-app-technical-configuration/2026-04-01-preview1",
      "product": "product/12345678-abcd-efgh-1234-12345678901",
      "payloads": [
        {
          "payload": {
            "sasUri": "https://yourstorageaccount.blob.core.windows.net/uploads/copilot-app.zip?sv=...",
            "fileName": "my-copilot-app.zip"
          }
        }
      ]
    }
  ]
}

Technical configuration payload fields

Field Required Description
sasUri Conditional Azure Blob SAS URI for the .zip 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/m365-copilot-app-technical-configuration/2026-04-01-preview1",
      "product": "product/12345678-abcd-efgh-1234-12345678901",
      "payloads": [
        {
          "payload": {
            "payloadId": "98765432-abcd-efgh-1234-12345678901",
            "fileName": "my-copilot-app.zip"
          }
        }
      ]
    }
  ]
}

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

Microsoft 365 and Copilot Apps and Agents 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": "microsoft365CopilotApp",
      "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
m365-copilot-app-technical-configuration Technical configuration with zip package https://schema.mp.microsoft.com/schema/m365-copilot-app-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 Microsoft 365 and Copilot Apps and Agents support