Partner API for AI Business Solutions & Security Insights API version endpoint reference guide

Note

This API provides access to the AI Business Solutions & Security Insights report. For all other Partner Center data scenarios, see Partner Center REST APIs.


Note

Version 1.5 is the current version and should be used for new integrations. All new functionality is available in version 1.5. Step-by-step guidance is available in the Migration Guide ASPX API Onboarding Guide. Version 1.3 is in maintenance mode and will be retired at a later date.

Overview

The Partner API for AI Business Solutions & Security Insights enables partners to integrate their existing CRM systems with Microsoft data, including usage signals, upsell propensity, incentive eligibility, referral opportunities, and other key insights.

All endpoints are prefixed by a version number. Version 1.3 is in maintenance mode. Version 1.5 is the current version, which includes new features and endpoints and builds on previous releases with enhancements that improve data access, consistency, and the overall integration experience. These improvements allow partners to consume insights and incorporate them into their workflows more efficiently.

Before you begin developing with the API, review the ASPX API Onboarding Guide section for the required onboarding steps and access prerequisites.

Select your ASPX API version for endpoint references.

ASPX API v1.5 important resources

Base URL

https://m365partner.microsoft.com/abss/v1.5/api/

Opportunity and Cloud Endpoint Data Grids

Method Endpoint Definition
GET /opportunities/copilot Copilot grid with filters and summary insights
POST /opportunities/copilot Same as GET, with the full filter set sent in the JSON request body
GET /opportunities/secureproductivity?category={categoryId} Secure Productivity Workload Opportunities grid with filters, summaries, charts (E3, E5, E5Exp)
POST /opportunities/secureproductivity Same as GET, with the full filter set (including category) sent in the JSON request body
GET /opportunities/cloudEndpoints Cloud endpoints grid with filters, summaries and charts
POST /opportunities/cloudEndpoints Same as GET, with the full filter set sent in the JSON request body
GET /metadata Field discovery and ETag-based data freshness validation

Common URI Parameters (All Grid Endpoints)

Parameter Type Description
page int Page number (default 1). Mutually exclusive with after.
pageSize int Rows per page (default 25).
sortBy string Column name to sort by.
sortOrder string asc or desc.
searchTerm string Free-text search across all text columns.
include string Comma-separated: grid, filters, summaries, charts, all. Default: all.
fields string Comma-separated field names. Omit for all columns.
after string Cursor token for cursor pagination. Mutually exclusive with page.
output string Set to sync for streaming mode.
format string csv, jsonl, or parquet (only with output=sync).
mpnIds string Comma-separated MPN IDs (cap 1500). Mutually exclusive with partnerOneId.
partnerOneId int Resolve all MPNs under a PartnerOne ID.
partnerMpnIdFilter string[] v1.3-compatible fail-closed MPN filter.

Using POST for large filter sets

/opportunities/copilot, /opportunities/secureproductivity, and /opportunities/cloudEndpoints each accept a POST in addition to GET. The POST body mirrors every query parameter listed above (and each endpoint's own filters) as JSON, and is forwarded to the exact same handler as the GET — so the response shape, status codes, headers, feature-flag gating, MPN authorization, and all output modes (default, sync paginated, sync streaming, async export) are identical between GET and POST for a given endpoint.

Use POST instead of GET when the request produces a very long query string. For example:

  • A large explicit mpnIds list (up to 1,500–2,000 IDs) instead of one long comma-separated query value.
  • Multiple array-valued filters selected at once (For example, tenantCountryFilter, industryVerticalFilter, customerSubSegmentFilter, adoptionStatusFilter) — each additional filter value adds to the URL length.
  • Any combination of filters whose encoded query string approaches common URL length limits (typically 2,048–8,192 characters depending on browser, proxy, or gateway).

Sample request

POST https://m365partner.microsoft.com/abss/v1.5/api/opportunities/copilot 
Content-Type: application/json

{
  "page": 1,
  "pageSize": 25,
  "include": "all",
  "mpnIds": ["1234567", "2345678", "3456789"],
  "tenantCountryFilter": ["US", "GB", "DE"],
  "adoptionStatusFilter": ["Engaged"],
  "industryVerticalFilter": ["Healthcare", "Finance"]
}

Note

The same POST pattern applies to /opportunities/secureproductivity (include category in the body instead of the query string) and /opportunities/cloudEndpoints.

Opportunity and Cloud Endpoint Data Grid Response (include=all)

When include=all (default), the response contains:

  1. items[] – Paginated grid rows with all tenant fields
  2. pagination – { page, pageSize, totalCount, hasMore, cursor }
  3. filters – Distinct values for all filter dropdowns
  4. summaries – OpportunitySummary, PropensitySummary, TargetingScenariosSummary, AdoptionSummary, MciPotentialEarningsSummary, UsageByProduct, PenetrationSummary

Copilot opportunities

GET /opportunities/copilot

Returns paginated Copilot opportunity data with optional filters, summaries, and field selection.

GET https://m365partner.microsoft.com/abss/v1.5/api/opportunities/copilot?page=1&pageSize=25&include=all 

Copilot filters

Parameter Type Description
adoptionStatusFilter string[] Engaged, Disengaged, Inactive
adoptionBlockerFilter string[] Adoption blocker values
tenantCountryFilter string[] Country codes (US, GB, DE)
tenantSegmentFilter string[] Enterprise, SMB, etc.
adoptionReadyOpportunityFilter enum[] High, Medium, Low
expansionReadyOpportunityFilter enum[] High, Medium, Low
mciFilter enum Eligible, NotEligible
cporClaimFilter enum[] Active, Pending
eaRenewalDateFilter enum Next30Days, Next60Days, Next90Days
largestSeatCspRenewalDateFilter enum Calendar filter
expiringCspRenewalDateFilter enum Calendar filter
incentiveEligibleTenantsOnly bool true = only incentive-eligible tenants
hasPotentialEarningsOnly bool true = only tenants with potential earnings
hasCopilotLicenses bool true = only tenants with Copilot licenses
adoptionReadyTenantsOnly bool true = adoption-ready tenants only
expansionReadyTenantsOnly bool true = expansion-ready tenants only
isCpor bool Filter by CPOR claim status
isCsp bool Filter by CSP status
isUpor bool Filter by UPOR status
isCharityOffer bool Filter by charity offer
mciWorkshopNameFilter string[] MCI workshop names
associationType string[] CPOR, CSP, etc.
copilotTargetingScenario enum[] Targeting scenarios
industryVerticalFilter string[] Healthcare, Finance, etc.
customerSubSegmentFilter string[] Strategic, Major, etc.
dominantSkuGroupFilter string[] E3, E5, Business Premium
dataSecurityMaturityFilter string[] Advanced, Basic, etc.
e7TargetingScenarioFilters string[] E7 targeting scenarios
requireE7Eligible bool Require E7 eligibility

Secure productivity opportunities

Method Endpoint Definition
GET /opportunities/secureproductivity?category={categoryId} Returns paginated workload opportunity data for a specific secure productivity workload category

Sample Request

GET https://m365partner.microsoft.com/abss/v1.5/api/opportunities/secureproductivity?category=E3Opportunities&page=1&pageSize=25&include=all 

Secure productivity category values

  • category: E3Opportunities
  • category: E5Opportunities
  • category: E5ExpansionOpportunities

Secure Productivity Filters

Parameter Type Description
category string REQUIRED: E3Opportunities, E5Opportunities, E5ExpansionOpportunities
lXPWorkloadIdFilter int[] Filters results by specific workload IDs.
lxpWorkloadRecommendationFilter enum[] Filters workloads by recommendation type.
lxpWorkloadHealthFilter enum[] Filters workloads based on health (for example Healthy, AtRisk).
lXPClaimFilter enum[] Filters by claim status (Active, Pending).
requirePotentialEarnings bool When true, returns only tenants with potential earnings.
requireSeatWhitespace bool When true, returns only tenants with available seat whitespace.
requireOpportunityUnits bool When true, returns only tenants with measurable opportunity units.
usageThresholdFilter enum[] Filters by usage threshold buckets.
tenantSegmentFilter string[] Filters tenants by segment (Enterprise, SMB, etc.).
tenantCountryFilter string[] Filters tenants by country codes.
lXPTenantStateFilter enum[] Filters tenants by lifecycle or state values.
eaRenewalDateFilter enum Filters by EA renewal window.
mciEligibilityFilter enum Filters by MCI eligibility status.
associationType string[] Filters by association types (CPOR, CSP, etc.).
requireIncentiveEligible bool When true, returns only incentive-eligible tenants.
dominantSkuGroup string[] Filters by SKU group (E3, E5, etc.).
tenantRecommendation string[] Filters by recommendation values.
tenantHealth string[] Filters by tenant health classification.
largestCspSeatRenewalFilter enum Filters by largest CSP renewal window.
earliestCspSeatRenewalFilter enum Filters by earliest CSP renewal window.
isCspFilter bool Filters by CSP status.
isCporFilter bool Filters by CPOR claim status.
isUporFilter bool Filters by UPOR status.
isCharityOfferFilter bool Filters by charity offer flag.
industryVerticalFilter string[] Filters by industry verticals (Healthcare, Finance, etc.).
customerSubSegmentFilter string[] Filters by customer sub-segments (Strategic, Major, etc.).
requireE7Eligible bool When true, returns only E7 eligible tenants.
e7TargetingScenarioFilters string[] Filters by E7 targeting scenarios.

Metadata

Method Endpoint Definition
GET /metadata Returns field definitions, row counts, and data freshness for all tabs. Supports ETag-based conditional requests.

Notes

  • Supports If-None-Match header for ETag validation
  • Returns 304 Not Modified when data has not changed

Sample Request

GET https://m365partner.microsoft.com/abss/v1.5/api/metadata 
GET https://m365partner.microsoft.com/abss/v1.5/api/metadata?tab=copilot 

Metadata Parameters

Parameter Type Description
tab string Optional. Filter to: copilot, cloud, E3Opportunities, E5Opportunities, E5ExpansionOpportunities

Metadata response

Returns per-tab metadata:

  1. totalRows – Number of rows visible to the caller's MPN scope
  2. lastRefreshed – UTC timestamp of most recent data refresh
  3. dataVersion – Opaque version token (changes on data reload)
  4. fields[] – Array of { name, type, description } representing valid values for the ?fields= parameter
  5. fieldCount – Number of available fields

Use the fields[].name values in ?fields= to select specific columns from grid endpoints.

Download functionality

Two download modes are available: synchronous (output=sync) for small/immediate exports, and asynchronous (output=async) for large exports that run as a background job and are retrieved once ready. Both modes apply to the Copilot, Workload (Secure Productivity), and Cloud Endpoints grid endpoints.

Synchronous export (small results)

Use output=sync to open data in Excel instead of working with JSON. The response is returned as a streamed file.

GET https://m365partner.microsoft.com/abss/v1.5/api/opportunities/cloudEndpoints?output=sync&format=csv&tenantSegmentFilter=Enterprise

In tools like Insomnia, Postman, or Bruno:

  1. Select Save Response → Save as File
  2. Save the file with a .csv extension (for example, output.csv)
  3. Open the file in Excel

Asynchronous export (large results, jsonl + zip)

For larger exports — for example, pulling all Copilot/Workload/Cloud Endpoints growth opportunities — use output=async together with format=jsonl and compressAsZip=true. This queues a background export job instead of streaming the response inline, and returns a requestId that's used to poll for completion and then download the compressed result.

Step 1 — Request the export

Submit one export request per opportunity area/category. compressAsZip=true packages the .jsonl output into a .zip archive.

GET https://m365partner.microsoft.com/abss/v1.5/api/opportunities/copilot?output=async&format=jsonl&compressAsZip=true
GET https://m365partner.microsoft.com/abss/v1.5/api/opportunities/secureproductivity?category=E3Opportunities&output=async&format=jsonl&compressAsZip=true
GET https://m365partner.microsoft.com/abss/v1.5/api/opportunities/secureproductivity?category=E5Opportunities&output=async&format=jsonl&compressAsZip=true
GET https://m365partner.microsoft.com/abss/v1.5/api/opportunities/secureproductivity?category=E5ExpansionOpportunities&output=async&format=jsonl&compressAsZip=true
GET https://m365partner.microsoft.com/abss/v1.5/api/opportunities/cloudEndpoints?output=async&format=jsonl&compressAsZip=true

Each request returns a requestId (with an initial status such as Pending or InProgress) used in the next step.

Step 2 — Poll for status

Poll the export job until it reports completion. Polling and download are identical across all three areas — only the initial export request in Step 1 differs.

GET https://m365partner.microsoft.com/abss/v1.5/api/exports/status/{requestId}

The status response includes the current job state (for example Pending, InProgress, Completed, Failed) and, once completed, the expiryUtc for the download link. Poll on an interval (for example every 5–10 seconds) rather than in a tight loop.

Step 3 — Download the result

Once the status reports Completed, download the compressed export:

GET https://m365partner.microsoft.com/abss/v1.5/api/exports/download/{requestId}

The response is a .zip archive containing one or more .jsonl files (one JSON object per line).

Note

The download link expires. Check expiryUtc in the status response and download the file before that time. After it expires, the same requestId can no longer be downloaded and the export must be re-run from Step 1.

Supported output formats

The format parameter controls how the same underlying fields and values are serialized — it never changes which data is returned, only the on-disk encoding. format is case-insensitive and applies to both output=sync and output=async requests. If omitted, it defaults to csv.

format token Aliases File extension Content-Type Description
csv (default) — .csv text/csv; charset=utf-8 Comma-separated values with a header row. Best for Excel.
json — .json application/json; charset=utf-8 A single JSON array containing every row as an object.
jsonl ndjson .jsonl application/x-ndjson; charset=utf-8 One JSON object per line (newline-delimited JSON). Best for streaming pipelines, CLI tools (jq), and large exports since consumers can process row-by-row without buffering the whole array.
parquet — .parquet application/vnd.apache.parquet Columnar binary format optimized for BI tools (Power BI, Synapse) and data warehouses. Not human-readable.

An unrecognized format value falls back to csv.

How compressAsZip works with each format

compressAsZip=true wraps the exported file (in whichever format you requested) inside a single .zip archive instead of returning it as a bare file:

  • Uncompressed (compressAsZip omitted or false): the response/download is the raw csv/json/jsonl/parquet file directly, with the format-specific Content-Type and extension from the preceding table.
  • Compressed (compressAsZip=true): the response/download is a .zip archive (Content-Type: application/zip, .zip extension) containing a single file named with the same format extension (for example ABSSInsights_Copilot_08_11_2026_050612.jsonl inside the zip). The rows and field values inside are identical to the uncompressed version — only the outer wrapper changes.
  • compressAsZip works with every format (csv, json, jsonl, parquet) — it isn't limited to jsonl.
  • For output=async, the downloaded filename follows ABSSInsights_{Tab}_{MM_dd_yyyy}_{HHmmss}.{zip | csv | json | jsonl | parquet}, where the extension is zip whenever compressAsZip=true, otherwise the chosen format's extension.
GET https://m365partner.microsoft.com/abss/v1.5/api/opportunities/copilot?output=async&format=jsonl&compressAsZip=true
GET https://m365partner.microsoft.com/abss/v1.5/api/opportunities/copilot?output=async&format=parquet&compressAsZip=false

Limit the response to specific fields using the fields parameter (applies to both sync and async requests, and to any format).

GET https://m365partner.microsoft.com/abss/v1.5/api/opportunities/cloudEndpoints?output=sync&format=csv&fields=tenantId,tenantName,customerName,potentialEarnings

Contacts

Method Endpoint Definition
GET /contactTypes Contact types and IDs
GET /skillTypes Contact skill types
GET /surveyLanguages Survey languages for contacts
GET /tenants/{tenantId}/contactTypes/{contactTypeId}/contacts Tenant contacts by contact type (paged)
GET /PartnerTenants/contactTypes/{contactTypeId}/contacts Tenant contacts by contact type

Current usage

Method Endpoint Definition
GET /usage/current Current usage for claimed and unclaimed workloads

Entitlements

Method Endpoint (relative to /abss/v1.3/api/) Definition
GET /partnerTenants/maxEntitlements Max entitlement info per tenant (batched by tenantIds)
GET /tenants/{tenantId}/services/maxEntitlements License cap (max entitled license count) per service for tenant
GET /entitlements/l1l2l3s All combinations of service/L1/L2/L3
GET /entitlements/l1s Top-level entitlement statuses (L1)
GET /entitlements/services/{serviceId}/l1s/{l1Id}/l2s L2 statuses by service and L1
GET /entitlements/services/{serviceId}/l1s/{l1Id}/l2s/{l2Id}/l3s L3 statuses by service/L1/L2
GET /tenants/{tenantId}/services/entitlements Tenant's entitlement status (multi-service)
GET /tenants/{tenantId}/services/{serviceId}/entitlements Tenant's entitlement status (single service)
PATCH /tenants/{tenantId}/services/{serviceId}/entitlements Update all statuses for a service entitlement

Identity

Method Endpoint (relative to /abss/v1.3/api/) Definition
GET /currentUser Authenticated user profile & access flags

Partner performance (MCI)

Method Endpoint (relative to /abss/v1.3/api/) Definition
GET /mci/partnerPerformance MCI Partner Performance data
GET /mci/partnerPerformance/solutions/{mciSolution} MCI Partner Performance data for a specific solution
GET /mci/partnerPerformance/summary Returns a summary of MCI performance
GET /mci/partnerPerformance/concurrentCaps/claims Concurrent-cap claim details for a specific engagement group

Notes

Method Endpoint Definition
GET /noteCategories Note categories (lookup)
GET /tenants/{tenantId}/notes Tenant notes (paged)
GET /partnerTenants/notes Tenant notes

Partner Center Data

Method Endpoint (relative to /abss/v1.3/api/) Definition
GET /partnerCenter/summary Partner summary (MPN IDs, flags, notifications)

Reference lookups

Method Endpoint Definition
GET /adminTypes Admin types and IDs. Used with contacts
GET /contactTypes Contact types and IDs
GET /countryRegions Countries/regions and IDs
GET /currentUser Profile + access details for authenticated Partner Center user
GET /opportunities/categories Opportunity categories and IDs (E3,E5, E5Expansion, Se)
GET /admin/MPNIDs MPN IDs enrolled in the First Party Integration
GET /noteCategories Note categories and IDs
GET /services All service types (lookup)
GET /skillTypes Contact skill types
GET /surveyLanguages Survey languages for contacts
GET /timezones List of time zones

FastTrack referrals

Method Endpoint Definition
GET /partnerReferrals Paged list of partner referrals (filters/sort)
GET /partnerReferrals/AcceptanceStatuses Acceptance statuses (lookup)
GET /partnerReferrals/DeclineReasons Decline reasons (lookup)
GET /partnerReferrals/ReferralStatuses Referral statuses (lookup)
GET /partnerReferrals/ServicesValues Service value ranges (lookup)
PATCH /partnerReferrals/{partnerReferralId} Accept/decline or update a referral
GET /referralSources List available referral sources

Tenants

Method Endpoint Definition
GET /tenants/{tenantId} Basic tenant info (tenantId, name, TPID)
GET /tenants/{tenantId}/assignments Assignments at tenant/service level
GET /tenants/{tenantId}/subscriptions Paged tenant subscriptions (filters/sort)
GET /tenants/{tenantId}/services/entitlements Tenant's entitlement status (multi-service)
GET /tenants/{tenantId}/services/{serviceId}/entitlements Tenant's entitlement status (single service)
GET /tenants/{tenantId}/services/maxEntitlements License cap (max entitled license count) per service for tenant
GET /tenants/{tenantId}/contactTypes/{contactTypeId}/contacts Tenant contacts by contact type (paged)
GET /tenants/{tenantId}/notes Tenant notes (paged)

Acceptance statuses

Returns the list of valid acceptance statuses for partner referrals, including their unique IDs and display names.

GET https://m365partner.microsoft.com/abss/v1.5/api/partnerReferrals/AcceptanceStatuses

Acceptance Statuses: URI parameters

None

Acceptance statuses: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
id string uuid No
name string Yes

Admin types

Retrieves a list of admin types along with their corresponding IDs. To be used with Contacts.

GET https://m365partner.microsoft.com/abss/v1.5/api/adminTypes

Admin types: URI parameters

None

Admin types: Request header

Admin Types uses the common request header.

Admin types: Response codes

Admin Types uses the common request codes.

Admin Types: Definitions

Name Type Format Length Nullable
<root> array No
<array item> object No
id string int32 No
name string Yes

Adoption Statuses

Retrieves the list of valid adoption status values that can be used for filtering.

Note

Returned as filters.adoptionStatuses in the consolidated Copilot response (include=filters). There is no standalone v1.5 route.

Adoption Statuses: Definitions

Name Type Nullable
<root> array No
Adoption Status string No

Adoption Summary

Returns a health classification summary, showing the number of tenants in each health state.

Note

Returned as summaries.adoptionSummary in the consolidated Copilot response (include=summaries). There is no standalone v1.5 route.

Adoption Summary: Definitions

Name Type Nullable Definition
<root> object No
Failure to Launch/Start integer Haven't broken 10% MAU / Potential Active Usage (PAU) in history
Failure to Thrive/Adopt integer Not on track to hit 80% MAU / PAU by one year
Healthy integer Tenant on track to hit 80% MAU / PAU by one year
Starting integer Recent purchase and more data is needed
Failure to Adopt but Last Month Gain integer Failing to thrive but bump in usage last month
Healthy but Last Month Drop integer Is healthy but drop in usage last month
Healthy but Negative Slope integer Is healthy but sloping downwards
Big Gain & Big Drop integer Big gain and big drop observed in the past

Assignments

Gets the assignments for a tenant at a tenant and service level.

GET https://m365partner.microsoft.com/abss/v1.5/api/tenants/{tenantId}/assignments

Assignments: Request Header

Adoption Summary uses the common request header.

Assignments: Response Codes

Adoption Summary uses the common request codes.

Assignments: URI parameters

Name Location Required Type Format Nullable
tenantId PATH Yes string uuid No

Assignments: Definitions

Name Type Format Nullable
<root> object No
<array item> object No
id string uuid No
email string email No
name string No
isPrimary boolean No
primaryServices array
<array item> object No
id (service) integer int32 No
name (service) string No
additionalServices array
<array item> object No
id (service) integer int32 No
name (service) string No

Categories

In v1.5, Secure Productivity (workload) opportunity categories are a fixed set of three values — they aren't partner- or tenant-specific data, so v1.5 doesn't expose a lookup/list endpoint for them. Pass one of these values directly as the category query parameter on /opportunities/secureproductivity:

category value Description
E3Opportunities E3 upsell/workload opportunities
E5Opportunities E5 upsell/workload opportunities
E5ExpansionOpportunities E5 Expansion upsell/workload opportunities

category is required — omitting it, or passing any value other than the three above, returns 400 Bad Request listing the allowed values.

Note

The v1.3 GET /opportunities/categories lookup endpoint below remains available under v1.3 only, for callers still on that version.

GET https://m365partner.microsoft.com/abss/v1.3/api/opportunities/categories

Categories: Definitions

Name Type Nullable Definition
<root> array No
<array item> object No Describes a particular category for partner opportunities such as E3, E5, etc.
categoryId string Yes The ID of the category for use by API calls
categoryName string Yes The friendly name of the category

Copilot

See Copilot Opportunities above for the endpoint, sample request, and full filter parameter list. The tables below describe the response shape returned in items[].

Copilot: Definitions

Name Type Format Length Nullable Enum Description
<root> object No A class representing paged data from the API.
rfaId integer int32 Yes The RFA ID associated with the request, if any.
count integer int32 No The total number of items available in the dataset.
hasMore boolean No Flag indicating whether additional data is available.
items array Yes The items included within the page.
<array item> object No Represents a single opportunity record.
tpid integer int32 Yes Tenant Partner ID associated with the customer.
customerName string Yes Name of the customer organization.
customerRenewalDate string date-time Yes Renewal date for the customer subscription.
tenantId string Yes Unique identifier of the tenant.
tenantName string Yes Friendly name of the tenant.
tenantCountryRegion string Yes Country or region of the tenant.
tenantHostName string Yes Tenant domain or host name.
tenantSubsegment string Yes Customer subsegment classification.
tenantParentSegment string Yes Parent segment grouping for the tenant.
licensedMau integer int32 Yes Monthly active users with licenses assigned.
pau integer int32 Yes Paid active users metric.
utilizationPercent number double Yes Percentage of license utilization.
freeMau integer int32 Yes Monthly active users without paid licenses.
allMau integer int32 Yes Total monthly active users.
freeToPaidWhitespace number double Yes Opportunity gap between free and paid usage.
adoptionReadyOpportunity string Yes Indicates adoption readiness level.
expansionReadyOpportunity string Yes Indicates expansion readiness level.
eligibleMciEngagements integer int32 No Number of eligible MCI engagements.
claimStatus string No Claimed, ClaimedByOthers, NotClaimed, NotAvailable, Ineligible The claim status associated with a tenant workload.
potentialEarnings number double Yes Estimated earnings potential.
startingHwm integer int32 Yes Starting high-water mark for usage baseline.
priorHwm integer int32 Yes Previous high-water mark reference.
opportunityUnits integer int32 Yes Units representing opportunity volume.
ratePerUnit integer int32 Yes Value per opportunity unit.
maxCompUnits integer int32 Yes Maximum compensable units.
adoptionStatus string Yes Current adoption status of the tenant.
mciPotentialEarnings number double Yes Estimated earnings tied to MCI engagements.
cporPotentialEarnings number double Yes Estimated earnings tied to CPOR claims.
retentionReasons string Yes Reasons influencing customer retention.
growthReasons string Yes Reasons influencing customer growth opportunities.
cporClaimId integer int32 Yes Identifier for CPOR claim.
advancedDeploymentGuideName string Yes Name of the advanced deployment guide.
advancedDeploymentGuideLink string Yes URL to the deployment guide.
workloadMau object No Monthly active usage breakdown by workload.
teams integer int32 Yes MAU for Microsoft Teams.
outlook integer int32 Yes MAU for Outlook.
word integer int32 Yes MAU for Word.
excel integer int32 Yes MAU for Excel.
powerpoint integer int32 Yes MAU for PowerPoint.
engage integer int32 Yes MAU for Engage.
onenote integer int32 Yes MAU for OneNote.
sales integer int32 Yes MAU for Sales-related workloads.
claimWorkloadLink string Yes Link to claim workload opportunity.
claimedByOthers boolean No Indicates if the workload is claimed by another partner.
resourceName string Yes Name of supporting resource.
resourceLink string Yes Link to supporting resource.
extensibility object No Extensibility metrics for Copilot agents.
agentsAllUp.total number double Yes Total agents count.
agentsAllUp.licensed number double Yes Licensed agents count.
agentsAllUp.unlicensed number double Yes Unlicensed agents count.
copilotTargetingScenario string No Acquire, Monetize, Grow, Other Targeting scenario classification.
copilotEligibleAllUpSeats integer int32 Yes Total eligible seats for Copilot.
m365CopilotAllUpPenetration number double Yes Overall Copilot penetration rate.
chatPenetration number double Yes Copilot chat penetration rate.
m365CopilotAllUpWhitespace number double Yes Remaining whitespace opportunity for Copilot licenses.
chatWhitespace number double Yes Remaining whitespace for Copilot chat usage.
isCpor boolean Yes Indicates CPOR association.
isCpsp boolean Yes Indicates CPSP association.

Copilot Targeting Scenario Summary

Returns a summary of Copilot opportunities by targeting scenario.

Note

Returned as summaries.targetingScenariosSummary in the consolidated Copilot response (include=summaries). There is no standalone v1.5 route.

Copilot Targeting Scenario Summary: Definitions

Name Type Format Nullable
<root> object No
acquire integer int32 No
monetize integer int32 No
grow integer int32 No
other integer int32 No

Copilot Tenant Segment

Returns the available tenant segments for Copilot opportunities.

Note

Returned as filters.tenantSegments in the consolidated Copilot response (include=filters). There is no standalone v1.5 route.

Copilot Tenant Segment: Definitions

Name Type Nullable
<root> array No
<array item> string No

Contacts

Retrieves contacts for a single tenant, filtered by contact type.

GET https://m365partner.microsoft.com/abss/v1.5/api/tenants/{tenantId}/contactTypes/{contactTypeId}/contacts

Contacts: Request Header

Contacts uses the common request header.

Contacts: Response Codes

Contacts uses the common request codes.

Contacts: URI parameters

Name Location Required Type Format Nullable
tenantId PATH Yes string uuid No
rfaId QUERY No integer int32 No
partnerReferralId QUERY No string uuid No
partnerReferralNumber QUERY No string No
contactTypeId PATH Yes integer int32 No
page QUERY No integer int32 No
pageSize QUERY No integer int32 No

Contacts: Definitions

Contact Response Schema

Name Type Format Nullable Definition
<root> object No Root response object containing paginated contact results and metadata.
<array item> object No Wrapper object containing pagination metadata and result set.
rfaId integer int32 Yes The RFA ID associated with the request, if applicable.
count integer int32 No Total number of items available in the dataset.
hasMore boolean No Indicates whether additional data is available for retrieval.
items array Yes Collection of contact records included in the current page.
<array item> object No Represents a single contact record.
contactId string uuid No Unique identifier for the contact.
tenantId string uuid No Unique identifier of the associated tenant.
name string Yes Full name of the contact.
email string Yes Email address of the contact.
phone string Yes Phone number of the contact.
managerName string Yes Name of the contact's manager.
managerEmail string Yes Email address of the contact's manager.
title string Yes Job title or role of the contact.
evidence string Yes Supporting evidence or notes related to the contact.
surveyEligible boolean Yes Indicates whether the contact is eligible for surveys.
note string Yes Another notes about the contact.
created string date-time No Timestamp when the record was created.
createdBy string Yes Identifier or name of the user who created the record.
modified string date-time No Timestamp when the record was last modified.
modifiedBy string Yes Identifier or name of the user who last modified the record.
timeZone object No Time zone information associated with the contact.
id string uuid No Unique identifier for the time zone.
name string Yes Display name of the time zone.
countryRegion object No Country or region associated with the contact.
id string uuid No Unique identifier for the country or region.
name string Yes Display name of the country or region.
adminType object No Administrative classification for the contact.
id integer int32 No Identifier for the admin type.
name string Yes Display name of the admin type.
surveyLanguage object No Language preference for surveys.
id string uuid No Identifier for the survey language.
name string Yes Display name of the survey language.
contactType object No Classification of the contact type.
id integer int32 No Identifier for the contact type.
name string Yes Display name of the contact type.
services array Yes List of services associated with the contact.
<array item> object No Represents a single service.
id integer int32 No Unique identifier for the service.
name string Yes Display name of the service.
tenantId string uuid No Unique identifier for the tenant (duplicate reference at item level).
tenantName string Yes Display name of the tenant.

Contacts – multiple tenants

Retrieves contact information for multiple tenants. Limited to 25 tenant IDs per call.

GET https://m365partner.microsoft.com/abss/v1.5/api/partnerTenants/contactTypes/{contactTypeId}/contacts

Contacts – multiple tenants: Request Header

Contacts– multiple tenants uses the common request header.

Contacts – multiple tenants: Response Codes

Contacts– multiple tenants uses the common request codes.

Contacts – multiple tenants: URI parameters

Name Location Required Type Format Nullable
tenantIds QUERY Yes array No
contactTypeId PATH Yes integer int32 No
page QUERY No integer int32 No
pageSize QUERY No integer int32 No

Contacts – multiple tenants: Definitions

Name Type Format Nullable Definition
<root> object No A class representing paged data from the API.
rfaId integer int32 Yes The RFAID associated with the request, if any.
count integer int32 No The total number of items available in the dataset.
hasMore boolean No Flag marking if there's more data to be retrieved.
items array Yes The items included within the page.
<array item> object No
contactId string uuid No
tenantId string uuid No
name string Yes
email string Yes
phone string Yes
managerName string Yes
managerEmail string Yes
title string Yes
evidence string Yes
surveyEligible boolean Yes
note string Yes
created string date-time No
createdBy string Yes
modified string date-time No
modifiedBy string Yes
timeZone object No
id string uuid No
name string Yes
countryRegion object No
id string uuid No
name string Yes
adminType object No
id integer int32 No
name string Yes
surveyLanguage object No
id string uuid No
name string Yes
contactType object No
id integer int32 No
name string Yes
services array Yes
<array item> object No
id integer int32 No
name string Yes

Contacts – specific tenant or contact type tenants

Creates a new contact under a specified tenant and contact type.

POST https://m365partner.microsoft.com/abss/v1.5/api/tenants/{tenantId}/contactTypes/{contactTypeId}/contacts

Contacts – specific tenant or contact type tenants: Request Header

Contacts – specific tenant or contact type uses the common request header.

Contacts – specific tenant or contact type tenants: Response Codes

Contacts – specific tenant or contact type uses the common request codes.

Contacts – specific tenant or contact type tenants: URI parameters

Name Location Required Type Format Nullable
tenantId PATH Yes string uuid No
contactTypeId PATH Yes integer int32 No

Contacts – specific tenant or contact type tenants: Definitions

Name Type Format Nullable
<root> object No
contactId string uuid No
tenantId string uuid No
name string Yes
email string Yes
phone string Yes
managerName string Yes
managerEmail string Yes
title string Yes
isEngaged boolean Yes
isFastTrackContact boolean Yes
evidence string Yes
surveyEligible boolean Yes
approvedSurvey string Yes
note string Yes
created string date-time No
createdBy string Yes
modified string date-time No
modifiedBy string Yes
timeZone object No
id string uuid No
name string Yes
countryRegion object No
id string uuid No
name string Yes
adminType object No
id integer int32 No
name string Yes
surveyLanguage object No
id string uuid No
name string Yes
contactType object No
id integer int32 No
name string Yes
skillTypes array Yes
<array item> object No
id integer int32 No
name string Yes
services array Yes
<array item> object No
id integer int32 No
name string Yes

Contact Types

Retrieves a list of contact types along with their corresponding IDs.

GET https://m365partner.microsoft.com/abss/v1.5/api/contactTypes

Contact Types: Request Header

Contact Types uses the common request header.

Contact Types: Response Codes

Contact Types uses the common request codes.

Contact Types: URI parameters

None

Contact Types: Definitions

Name Type Format Length Nullable
<root> array No
<array item> object No
id integer int32 No
name string Yes

Countries/Regions

Retrieves a list of countries/regions along with their corresponding IDs.

GET https://m365partner.microsoft.com/abss/v1.5/api/countryRegions

Countries/Regions: Request Header

Countries/Regions uses the common request header.

Countries/Regions: Response Codes

Countries/Regions uses the common request codes.

Countries/Regions: URI parameters

None

Countries/Regions: Definitions

Name Type Format Length Nullable
<root> array No
<array item> object No
id string uuid No
name string Yes

Current User

Retrieves profile and access details for the currently authenticated Partner Center user. This includes basic identity information (name, email, IDs), partner role details, and flags for specific access permissions

GET https://m365partner.microsoft.com/abss/v1.5/api/currentUser

Current User: Request Header

Current User uses the common request header.

Current User: Response Codes

Current User uses the common request codes.

Current User: URI parameters

None

Current User: Definitions

Name Type Format Nullable Enum
<root> object No
userName string Yes
userEmail string Yes
userId string Yes
tenantId string Yes
userType integer int32 No 0, 1, 2, 3, 4
hasWoboAccess boolean No
hasPortalAccess boolean No
mpnIds array Yes
<array item> string No

Customers

This Response provides a comprehensive data model for workloads, customers, and opportunities, including performance, incentive tracking, and adoption metrics.

GET https://m365partner.microsoft.com/abss/v1.5/api/partnerCenter/customers

Customers: Request Header

Customers uses the common request header.

Customers: Response Codes

Customers uses the common request codes.

Customers: URI parameters

None

Decline Reasons

Returns the list of decline reasons for partner referrals, including unique IDs and reasons.

GET https://m365partner.microsoft.com/abss/v1.5/api/partnerReferrals/DeclineReason

Decline Reasons: Request Header

Decline Reasons uses the common request header.

Decline Reasons: Response Codes

Decline Reasons uses the common request codes.

Decline Reasons: URI parameters

None

Decline Reasons: Definitions

Name Type Format Length Nullable
<root> array No
<array item> object No
id string uuid No
name string Yes

Entitlements

Retrieves entitlement records for specified tenant IDs, including details such as service intent, entitlement hierarchy levels (L1–L3), entitlement counts, ownership, target/next action dates, related notes, and tenant associations.

GET https://m365partner.microsoft.com/abss/v1.5/api/partnerTenants/entitlements

Entitlements: Request Header

Entitlements uses the common request header.

Entitlements: Response Codes

Entitlements uses the common request codes.

Entitlements: URI parameters

Name Location Required Type Nullable
tenantIds QUERY Yes array No

Entitlements: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
moreRecords boolean No
items array Yes
<array item> object No
serviceIntentId string uuid Yes
l1 object No
id string uuid No
name string Yes
l2 object No
id string uuid No
name string Yes
l3 object No
id string uuid No
name string Yes
entitlementsCount integer int32 No
targetDate string date-time Yes
owner string Yes
nextActionDate string date-time Yes
notes string Yes
tenantId string uuid Yes
tenantId string uuid No

Entitlements – multiple services

Gets a tenant's entitlement status records for multiple services.

GET https://m365partner.microsoft.com/abss/v1.5/api/tenants/{tenantId}/services/entitlements

Entitlements – multiple services: Request Header

Entitlements – multiple services uses the common request header.

Entitlements – multiple services: Response Codes

Entitlements – multiple services uses the common request codes.

Entitlements – multiple services: URI parameters

Name Location Required Type Format Nullable
tenantId PATH Yes string uuid No
serviceIds QUERY No array No

Entitlements – multiple services: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
serviceIntentId string uuid Yes
l1 object No
id string uuid No
name string Yes
l2 object No
id string uuid No
name string Yes
l3 object No
id string uuid No
name string Yes
entitlementsCount integer int32 No
targetDate string date-time Yes
owner string Yes
nextActionDate string date-time Yes
notes string Yes
tenantId string uuid Yes

Entitlements – single service

Gets a tenant's entitlement status records for a single service.

GET https://m365partner.microsoft.com/abss/v1.5/api/tenants/{tenantId}/services/{serviceId}/entitlements

Entitlements – single service: Request Header

Entitlements – single service uses the common request header.

Entitlements – single service: Response Codes

Entitlements – single service uses the common request codes.

Entitlements – single service: URI parameters

Name Location Required Type Format Nullable
tenantId PATH Yes string uuid No
serviceId PATH Yes integer int32 No

Entitlements – single service: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
serviceIntentId string uuid Yes
l1 object No
id string uuid No
name string Yes
l2 object No
id string uuid No
name string Yes
l3 object No
id string uuid No
name string Yes
entitlementsCount integer int32 No
targetDate string date-time Yes
owner string Yes
nextActionDate string date-time Yes
notes string Yes
tenantId string uuid Yes

Entitlements - specific services

Updates all the statuses for a particular service entitlement.

PATCH https://m365partner.microsoft.com/abss/v1.5/api/tenants/{tenantId}/services/{serviceId}/entitlements

Entitlements - specific services: Request Header

Entitlements- specific services uses the common request header.

Entitlements- specific services: Response Codes

Entitlements- specific services uses the common request codes.

Entitlements - specific services: URI parameters

Name Location Required Type Format Nullable
tenantId PATH Yes string uuid No
serviceId PATH Yes integer int32 No

Entitlements - specific services: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
serviceIntentId string uuid Yes
l1 object No
id string uuid No
name string Yes
l2 object No
id string uuid No
name string Yes
l3 object No
id string uuid No
name string Yes
entitlementsCount integer int32 No
targetDate string date-time Yes
owner string Yes
nextActionDate string date-time Yes
notes string Yes
tenantId string uuid Yes

Opportunity Category ID

Returns category opportunity count, license utilization, whitespace, tenant metrics, potential earnings, and category details for a particular category (for example, E3, E5, E5 Expansion).

Note

Direct consolidated category-summary replacement. Returned as summaries in the consolidated Workload response.

Opportunity Category ID: Definitions

Name Type Nullable Definition
<root> object No Represents a category-level summary of partner opportunities (for example E3, E5, Copilot, etc.), including usage, risk, and earnings indicators.
categoryOpportunityCount integer No Total number of opportunity records in this category.
SeatUtilization integer No Number of actively utilized seats within the category. Indicates overall usage adoption.
WhiteSpace integer No Number of unassigned or unused seats representing potential growth opportunities.
upsellReadyTenants integer No Count of tenants identified as strong candidates for upsell based on usage and readiness signals.
lowUsageTenants integer No Count of tenants with low product usage, indicating potential engagement or adoption gaps.
atRiskTenants integer No Count of tenants at risk of churn or reduced engagement based on usage or subscription signals.
upcomingRenewalTenants integer No Number of tenants with upcoming renewal dates, representing near-term engagement opportunities.
incentiveEligibleTenants integer No Number of tenants eligible for partner incentives tied to this category.
potentialEarnings integer No Estimated revenue opportunity associated with this category based on current insights and signals.
categoryId string Yes Unique identifier for the category, used in API queries and filtering.
categoryName string Yes Human-readable name of the category displayed in reports and UI.

Max Entitlements

Retrieved max entitlement information for multiple tenants. Limited to 25 tenant IDs per call.

GET https://m365partner.microsoft.com/abss/v1.5/api/partnerTenants/maxEntitlements

Max Entitlements: Request Header

Max Entitlements uses the common request header.

Max Entitlements: Response Codes

Max Entitlements uses the common request codes.

Max Entitlements: URI parameters

Name Location Required Type Nullable
tenantIds QUERY Yes array No

Max Entitlements: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
moreRecords boolean No
items array Yes
<array item> object No
id string uuid No
tenantId string uuid No
serviceId integer int32 No
maxEntitledSeatCount integer int32 No
tenantId string uuid No

Max Entitlements – license count

Gets a tenant's license count data status records for multiple services.

GET https://m365partner.microsoft.com/abss/v1.5/api/tenants/{tenantId}/services/maxEntitlements

Max Entitlements – license count : Request Header

Max Entitlements – license count uses the common request header.

Max Entitlements – license count: Response Codes

Max Entitlements – license count uses the common request codes.

Max Entitlements – license count: URI parameters

Name Location Required Type Format Nullable
tenantId PATH Yes string uuid No
serviceIds QUERY No array No

Max Entitlements – license count: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
id string uuid No
tenantId string uuid No
serviceId integer int32 No
maxEntitledSeatCount integer int32 No

MCI Engagements

Gets a list of MCI engagements.

GET https://m365partner.microsoft.com/abss/v1.3/api/opportunities/MciEngagements

Note

There's no direct v1.5 endpoint. The consolidated Workload grid (items[].eligibleMciEngagements) shows only the eligible count, not detailed MCI engagement records. This v1.3 operation remains the only source for full engagement records.

MCI Engagements: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
tenantId string uuid No
workloadId integer int32 No
engagementName string Yes
engagementId string Yes
claimId integer int64 Yes
solutionArea string Yes
enrolled boolean No
eligibilityStartDate string date Yes
eligibilityEndDate string date Yes
segment string Yes
area string Yes
subsidiary string Yes
potentialEarnings number double Yes

MCI Performance Summary

Returns a summary of MCI performance eligibility and engagement outcomes by solution play.

GET https://m365partner.microsoft.com/abss/v1.5/api/mci/partnerPerformance/summary

MCI Performance Summary: Request Header

MCI Performance Summary uses the common request header.

MCI Performance Summary: Response Codes

MCI Performance Summary uses the common request codes.

MCI Performance Summary: URI parameters

None

MCI Performance Summary: Definitions

Name Type Format Nullable Description
<root> object No Describes summary information of performance for a specific partner
copilotDeploy object No
eligibility string Yes The status of eligibility
claimsPercentage string Yes The percentage of passing engagements with claims
passingCount integer int32 Yes The number of passing engagements
failingCount integer int32 Yes The number of failing engagements
totalEngagements integer int32 Yes Number of total engagements
qualifiedEngagements integer int32 Yes Number of qualified engagements
copilotEnvision object No
eligibility string Yes The status of eligibility
claimsPercentage string Yes The percentage of passing engagements with claims
passingCount integer int32 Yes The number of passing engagements
failingCount integer int32 Yes The number of failing engagements
totalEngagements integer int32 Yes Number of total engagements
qualifiedEngagements integer int32 Yes Number of qualified engagements
teamPhoneDeploy object No
eligibility string Yes The status of eligibility
claimsPercentage string Yes The percentage of passing engagements with claims
passingCount integer int32 Yes The number of passing engagements
failingCount integer int32 Yes The number of failing engagements
totalEngagements integer int32 Yes Number of total engagements
qualifiedEngagements integer int32 Yes Number of qualified engagements
teamPhoneEnvision object No
eligibility string Yes The status of eligibility
claimsPercentage string Yes The percentage of passing engagements with claims
passingCount integer int32 Yes The number of passing engagements
failingCount integer int32 Yes The number of failing engagements
totalEngagements integer int32 Yes Number of total engagements
qualifiedEngagements integer int32 Yes Number of qualified engagements
cloudEndpointEnvision object No
eligibility string Yes The status of eligibility
claimsPercentage string Yes The percentage of passing engagements with claims
passingCount integer int32 Yes The number of passing engagements
failingCount integer int32 Yes The number of failing engagements
totalEngagements integer int32 Yes Number of total engagements
qualifiedEngagements integer int32 Yes Number of qualified engagements
secureProductivityEnvision object No
eligibility string Yes The status of eligibility
claimsPercentage string Yes The percentage of passing engagements with claims
passingCount integer int32 Yes The number of passing engagements
failingCount integer int32 Yes The number of failing engagements
totalEngagements integer int32 Yes Number of total engagements
qualifiedEngagements integer int32 Yes Number of qualified engagements

MCI Potential Earnings

Returns a list of potential earnings of the specific MCI engagement based on program rates and geography of the partner.

Note

Returned as summaries.mciPotentialEarningsSummary in the consolidated Copilot response (include=summaries). There is no standalone v1.5 route.

MCI Potential Earnings: Definitions

Name Type Nullable
<root> object No
Copilot+Power Deployment Accelerator (S) integer
Copilot+Power Deployment Accelerator (XS) integer
Copilot+Power Envisioning & PoC (M) integer
Copilot+Power Envisioning & PoC (S) integer
Copilot+Power Envisioning & PoC (XS) integer

Notes

Retrieves notes associated with partner tenants.

GET https://m365partner.microsoft.com/abss/v1.5/api/partnerTenants/notes

Notes: Request Header

Notes uses the common request header.

Notes: Response Codes

Notes uses the common request codes.

Notes: URI parameters

Name Location Required Type Format Nullable Definition
tenantIds QUERY Yes array No
orderByCreated QUERY No string No Sort direction for results.
page QUERY No integer int32 No
pageSize QUERY No integer int32 No

Notes: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
moreRecords boolean No
items array Yes
<array item> object No
noteId string uuid Yes
text string Yes
author string Yes
created string date-time Yes
noteCategory object No
id integer int32 No
name string Yes
serviceIds array Yes
<array item> integer int32 No
tenantId string uuid No

Partner Details Summary

Returns partner details, including MPN IDs, address info, feature flags, active notifications, and whether user flags.

GET https://m365partner.microsoft.com/abss/v1.5/api/partnerCenter/summary

Partner Details Summary: Request Header

Partner Details Summary uses the common request header.

Partner Details Summary: Response Codes

Partner Details Summary uses the common request codes.

Partner Details Summary: URI parameters

None

Partner Details Summary: Definitions

Name Type Nullable
<root> object No
claimCustomersLink string Yes
enrolledMpns array Yes
<array item> object No
mpnId string Yes
addressModel object No
country string Yes
city string Yes
state string Yes
addressLine1 string Yes
addressLine2 string Yes
postalCode string Yes
countryRegionLabel string Yes
featureFlags array Yes
<array item> string No
activeNotifications array Yes
<array item> object No
id string Yes
titleKey string Yes
DefinitionsKey string Yes
linkKey string Yes
linkUrl string Yes
hasRequiredRolesForExport boolean No

Partner Performance

Returns MCI Partner Performance data, including engagement details, milestones, attainment metrics, and solution-specific KPIs.

GET https://m365partner.microsoft.com/abss/v1.5/api/mci/partnerPerformance

Partner Performance: Request Header

Partner Performance uses the common request header.

Partner Performance: Response Codes

Partner Performance uses the common request codes.

Partner Performance: URI parameters

Name Location Required Type Format Nullable Description
engagementNameFilters QUERY No array No Filters for Engagement Names
partnerAreaFilters QUERY No array No Filters for Partner Areas
milestoneFilters QUERY No array No Filters for Milestones
stageFilter QUERY No string No Filters for Stage
consentFlag QUERY No string No Filter for the Consent Flag
page QUERY No integer int32 No Page number
pageSize QUERY No integer int32 No Page size
searchTerm QUERY No string No Search term
sortColumn QUERY No string No Sort by a particular column
sortDirection QUERY No string No Sort Direction
mciPerformanceTabs QUERY No string

Partner Performance: URI Request Header

None

Partner Performance: Definitions

Name Type Format Nullable
<root> object No
partnerPerformanceDetails object No
count integer int32 No
hasMore boolean No
items array Yes
<array item> object No
stage string Yes
tpidName string Yes
tpid integer int32 Yes
tenantName string Yes
tenantID string Yes
partnerArea string Yes
solutionPlay string Yes
claimID integer int32 Yes
engagementName string Yes
dateInitiated string date-time Yes
poeCompletionDate string date-time Yes
monthCount number double Yes
monthsSinceCompletion number double Yes
milestone string Yes
claimTarget integer int32 Yes
claimWinFlag string Yes
claimAttainment number double Yes
claimRevisedAttainment number double Yes
revenueAttainment number double Yes
quarterlyRevenueTarget number double Yes
seatsAttainment number double Yes
quarterlySeatsTarget number double Yes
m365CopilotAdjRevAttainment number double Yes
m365CopilotAdjRevRevisedAttainment number double Yes
quarterlyM365CopilotAdjRevRevisedTarget number double Yes
quarterlyM365CopilotAdjRevTarget number double Yes
copilotChatMAUAttainment number double Yes
copilotChatMAURevisedAttainment number double Yes
quarterlyCopilotChatMAUTarget number double Yes
quarterlyCopilotChatMAURevisedTarget number double Yes
copilotStudioACRAttainment number double Yes
copilotStudioACRRevisedAttainment number double Yes
quarterlyCopilotStudioACRTarget number double Yes
quarterlyCopilotStudioACRRevisedTarget number double Yes
powerPlatformAdjRevAttainment number double Yes
powerPlatformAdjRevRevisedAttainment number double Yes
quarterlyPowerPlatformAdjRevRevisedTarget number double Yes
quarterlyPowerPlatformAdjRevTarget number double Yes
totalAttainment number double Yes
consentFlag string Yes
repeatCustomerFlag string Yes
availablePartnerAreas array Yes
<array item> string No
availableEngagementNames array Yes
<array item> string No
availableMilestones array Yes
<array item> string No
availableStages array Yes
<array item> string No

Partner Performance Solutions

Returns MCI Partner Performance data for a specific solution, including engagement details, milestones, attainment metrics, and available filter values.

GET https://m365partner.microsoft.com/abss/v1.5/api/mci/partnerPerformance/solutions/{mcisolution}

Partner Performance Solutions: Request Header

Partner Performance uses the common request header.

Partner Performance Solutions: Response Codes

Partner Performance Solutions uses the common request codes.

Partner Performance Solutions: URI parameters

Name Location Required Type Format Nullable Description
mciSolution PATH Yes string No SolutionPlay/Tab filter. List of solutions: MciCopilot, MciTeams, MciSecurity, MciCloud
engagementNameFilters QUERY No array No Filters for Engagement Names
partnerAreaFilters QUERY No array No Filters for Partner Areas
milestoneFilters QUERY No array No Filters for Milestones
stageFilter QUERY No string No Filters for Stage
consentFlag QUERY No string No Filter for the Consent Flag
page QUERY No integer int32 No Page number
pageSize QUERY No integer int32 No Page size
searchTerm QUERY No string No Search term
sortColumn QUERY No string No Sort by a particular column
sortDirection QUERY No string No Sort Direction

Partner Performance Solutions: Definitions

Name Type Format Length
<root> object
partnerPerformanceDetails object
count integer int32
hasMore boolean
items array
<array item> object
stage string
tpidName string
tpid integer int32
tenantName string
tenantID string
partnerArea string
solutionPlay string
claimID integer int32
engagementName string
dateInitiated string date-time
poeCompletionDate string date-time
monthCount number double
monthsSinceCompletion number double
milestone string
claimTarget integer int32
claimWinFlag string
claimAttainment number double
claimRevisedAttainment number double
revenueAttainment number double
quarterlyRevenueTarget number double
seatsAttainment number double
quarterlySeatsTarget number double
m365CopilotAdjRevAttainment number double
m365CopilotAdjRevRevisedAttainment number double
quarterlyM365CopilotAdjRevRevisedTarget number double
quarterlyM365CopilotAdjRevTarget number double
copilotChatMAUAttainment number double
copilotChatMAURevisedAttainment number double
quarterlyCopilotChatMAUTarget number double
quarterlyCopilotChatMAURevisedTarget number double
copilotStudioACRAttainment number double
copilotStudioACRRevisedAttainment number double
quarterlyCopilotStudioACRTarget number double
quarterlyCopilotStudioACRRevisedTarget number double
powerPlatformAdjRevAttainment number double
powerPlatformAdjRevRevisedAttainment number double
quarterlyPowerPlatformAdjRevRevisedTarget number double
quarterlyPowerPlatformAdjRevTarget number double
totalAttainment number double
consentFlag string
repeatCustomerFlag string
availablePartnerAreas array
<array item> string
availableEngagementNames array
<array item> string
availableMilestones array
<array item> string
availableStages array
<array item> string

Partner Referrals Summary

Gets a list of any referrals currently being offered to your account, if any.

GET https://m365partner.microsoft.com/abss/v1.5/api/partnerReferrals

Partner Referrals Summary: Request Header

Partner Referrals Summary uses the common request header.

Partner Referrals Summary: Response Codes

Partner Referrals Summary uses the common request codes.

Partner Referrals Summary: URI parameters

Name Location Required Type Format Nullable Definition
page QUERY No integer int32 No
pageSize QUERY No integer int32 No
showDeclinedReferrals QUERY No boolean No
partnerReferralSourceIds QUERY No array No
searchTerm QUERY No string No
sortColumn QUERY No string No
sortDirection QUERY No string No Sort direction for results

Partner Referrals Summary: Definitions

Name Type Format Nullable
<root> object No
count integer int32 No
hasMore boolean No
items array Yes
<array item> object No
id integer int32 Yes
partnerReferralId string uuid Yes
created string date-time No
tenantId string Yes
tenantName string Yes
tenantDomain string Yes
referralSource object No
id integer int32 No
name string Yes
workloads array Yes
<array item> object No
id integer int32 No
name string Yes
claimed boolean No
partnerReferralNumber string Yes
acceptance object No
id string uuid No
name string Yes
declineReason object No
id string uuid No
name string Yes
referralStatus object No
id string uuid No
name string Yes
valueAddedServicesSold boolean Yes
servicesEstimatedValue object No
id string uuid No
name string Yes
requestorContact object No
id string uuid No
name string Yes
primaryContact object No
id string uuid No
name string Yes
secondaryContact object No
id string uuid No
name string Yes
referralState object No
id string uuid No
name string Yes
referralStage string Yes
outreachStatus object No
id string uuid No
name string Yes
engagementStatus object No
id string uuid No
name string Yes
engagementUpdateDate string date-time Yes
callToAction string Yes

Partner Referral ID

Patches a referral by accepting or declining the referral.

PATCH https://m365partner.microsoft.com/abss/v1.5/api/partnerReferrals/{partnerReferralId}

Partner Referral ID: Request Header

Partner Referral ID uses the common request header.

Partner Referral ID: Response Codes

Partner Referral ID uses the common request codes.

Partner Referral ID: URI parameters

Name Location Required Type Format Nullable
partnerReferralId PATH Yes string uuid No

Partner Referral ID: Definitions

Name Type Format Nullable
<root> object No
id integer int32 Yes
partnerReferralId string uuid Yes
created string date-time No
tenantId string Yes
tenantName string Yes
tenantDomain string Yes
referralSource object No
id integer int32 No
name string Yes
workloads array Yes
<array item> object No
id integer int32 No
name string Yes
claimed boolean No
partnerReferralNumber string Yes
acceptance object No
id string uuid No
name string Yes
declineReason object No
id string uuid No
name string Yes
referralStatus object No
id string uuid No
name string Yes
valueAddedServicesSold boolean Yes
servicesEstimatedValue object No
id string uuid No
name string Yes
requestorContact object No
id string uuid No
name string Yes
primaryContact object No
id string uuid No
name string Yes
secondaryContact object No
id string uuid No
name string Yes
referralState object No
id string uuid No
name string Yes
referralStage string Yes
outreachStatus object No
id string uuid No
name string Yes
engagementStatus object No
id string uuid No
name string Yes
engagementUpdateDate string date-time Yes
callToAction string Yes

Partner Tenants

Retrieves all tenants for which your partner has a claimed workload along with a list of workloads you have claimed for that tenant.

GET https://m365partner.microsoft.com/abss/v1.3/api/partnerTenants

Partner Tenants: Request Header

Partner Tenants uses the common request header.

Partner Tenants: Response Codes

Partner Tenants uses the common request codes.

Partner Tenants: URI parameters

Name Location Required Type Format Nullable
page QUERY No integer int32 No
pageSize QUERY No integer int32 No

Partner Tenants: Definitions

Name Type Format Nullable
<root> object No
count integer int32 No
hasMore boolean No
items array Yes
<array item> object No
tenantId string Yes
name string Yes
tpid integer int32 Yes
claimedWorkloads array Yes
<array item> object No
id integer int32 No
name string Yes

Potential Earnings

Returns the potential earnings for each workload within a specified opportunity category.

Note

Returned as charts.potentialEarnings in the consolidated Workload response (include=charts).

Potential Earnings: Definitions

Name Type Format Nullable Definition
<root> array No
<array item> object No
categoryId string Yes The ID of the category for use by API calls.
categoryName string Yes The friendly name of the category.
workloadId integer int32 No The ID of the workload.
workloadName string Yes The name of the workload.
potentialEarnings number double No The potential earnings for the workload.

Potential Workloads – workload ID

Gets a list of potential workloads along with the workload ID associated with each.

GET https://m365partner.microsoft.com/abss/v1.3/api/opportunities/PotentialWorkloads

Note

There is no direct v1.5 response section. The global potential-workload lookup isn't returned by the consolidated Workload operation. This v1.3 operation remains the only source.

Potential Workloads – workload ID: Definitions

Name Type Format Nullable Definition
<root> array No
<array item> object No Contains information about a workload that is part of the opportunity endpoints.
workloadId integer int32 No The ID of the workload.
workloadName string Yes The name of the workload.

Potential Workloads – specific opportunity

Returns a list of potential workloads for a specific opportunity category.

Note

There is no direct v1.5 response section. v1.5 accepts lXPWorkloadIdFilter, but its consolidated filters object does not return the potential-workload lookup list. This v1.3 operation remains the only source.

Potential Workloads – specific opportunity: Definitions

Name Type Format Nullable Definition
<root> array No
<array item> object No Contains information about a workload that is part of the opportunity endpoints.
workloadId integer int32 No The ID of the workload.
workloadName string Yes The name of the workload.

Referral Sources

Returns a list of all available referral sources, each identified by a unique numeric ID, and a descriptive name.

GET https://m365partner.microsoft.com/abss/v1.5/api/referralSources

Referral Sources: Request Header

Referral Sources uses the common request header.

Referral Sources: Response Codes

Referral Sources uses the common request codes.

Referral Sources: URI parameters

None

Referral Sources: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
id integer int32 No
name string Yes

Referral Statuses

Gets a list of all referral statuses for a partner referral.

GET https://m365partner.microsoft.com/abss/v1.5/api/partnerReferrals/ReferralStatuses

Referral Statuses: Request Header

Referral Statuses uses the common request header.

Referral Statuses: Response Codes

Referral Statuses uses the common request codes.

Referral Statuses: URI parameters

None

Referral Statuses: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
id string uuid No
name string Yes

Segments

Returns a list of tenant segment names for the specified opportunity category.

Note

Returned as filters.tenantSegments in the consolidated Workload response (include=filters), scoped by category.

Segments: Definitions

Name Type Format Nullable Definition
<root> array No
<array item> string No Name of the tenant segment (for example, "SMC," "Enterprise")

Services

Lookup for services, a list of all service types.

GET https://m365partner.microsoft.com/abss/v1.5/api/services

Services: Request Header

Services uses the common request header.

Services: Response Codes

Segments uses the common request codes.

Services: URI parameters

Name Location Required Type Nullable
searchTerm QUERY No string No

Services: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
id integer int32 No
name string Yes

Services Values

Returns the list of possible service value ranges for a referral.

GET https://m365partner.microsoft.com/abss/v1.5/api/partnerReferrals/ServicesValues

Services Values: Request Header

Services Values uses the common request header.

Services Values: Response Codes

Segments uses the common request codes.

Services Values: URI parameters

None

Services Values: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
id string uuid No
name string Yes

Skill Types

This endpoint returns a list of potential skill types for use with contacts.

GET https://m365partner.microsoft.com/abss/v1.5/api/skillTypes

Skill Types: Request Header

Skill Types uses the common request header.

Skill Types: Response Codes

Skill Types uses the common request codes.

Skill Types: URI parameters

None

Skill Types: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
id integer int32 No
name string Yes

Subscriptions

Returns a list of tenant subscription.

GET https://m365partner.microsoft.com/abss/v1.5/api/tenants/{tenantId}/subscriptions

Subscriptions: Request Header

Subscriptions uses the common request header.

Subscriptions: Response Codes

Subscriptions uses the common request codes.

Subscriptions: URI parameters

Name Location Required Type Format Nullable Definition
tenantId PATH Yes string uuid No
searchTerm QUERY No string No
sortDirection QUERY No string No Sort direction for results.
sortColumn QUERY No integer int32 No
page QUERY No integer int32 No
pageSize QUERY No integer int32 No

Subscriptions: Definitions

Name Type Format Nullable
<root> object No
count integer int32 No
hasMore boolean No
items array Yes
<array item> object No
skuName string Yes
status string Yes
subscriptionCurrentStateEndDate string date-time Yes
includedQuantity integer int32 Yes
subscriptionId string Yes
subscriptionStartDate string date-time Yes
subscriptionEndDate string date-time Yes
workloadNames array Yes
<array item> string No

Survey Languages

This endpoint returns a list of potential survey languages for use with contacts.

GET https://m365partner.microsoft.com/abss/v1.5/api/surveyLanguages

Survey Languages: Request Header

Survey Languages uses the common request header.

Survey Languages: Response Codes

Survey Languages uses the common request codes.

Survey Languages: URI parameters

None

Survey Languages: Definitions

Name Type Format Nullable
<root> array No
<array item> object No
id string uuid No
name string Yes

Tenant ID

Gets some basic information about the provided tenant.

GET https://m365partner.microsoft.com/abss/v1.5/api/tenants/{tenantId}

Tenant ID: Request Header

Tenant ID uses the common request header.

Tenant ID: Response Codes

Tenant ID uses the common request codes.

Tenant ID: URI parameters

Name Location Required Type Format Nullable
tenantId PATH Yes string uuid No

Tenant ID: Definitions

Name Type Format Nullable
<root> object No
tenantId string Yes
name string Yes
tpid integer int32 Yes

Tenant Countries/Regions – opportunity category

Gets a list of tenant countries/regions relevant for a particular opportunity category.

Note

Returned as filters.tenantCountries in the consolidated Workload response (include=filters), scoped by category.

Tenant Countries/Regions – opportunity category: Definitions

Name Type Format Nullable Definition
<root> array No
<array item> string No Name of a country/region (for example, "United States," "Germany")

Tenant Countries/Regions – current user MPN IDs

Gets a list of tenant countries/regions available for the current user's MPN IDs.

Note

v1.5 returns category-scoped values rather than the old global list. Returned as filters.tenantCountries in the consolidated Workload response (include=filters).

Tenant Countries/Regions – current user MPN IDs: Definitions

Name Type Format Nullable
<root> array No
<array item> string No

Tenant Countries/Regions - filtering

Retrieves the list of valid tenant countries/regions that can be used for filtering.

Note

Returned as filters.tenantCountries in the consolidated Copilot response (include=filters). There is no standalone v1.5 route.

Tenant Countries/Regions - filtering: Definitions

Name Type Nullable
<root> array No
Tenant countries/regions string No

Tenant Health

Returns the tenant health distribution within an opportunity category.

Note

Returned as charts.tenantHealth in the consolidated Workload response (include=charts).

Tenant Health: Definitions

Name Type Format Nullable Enum Definition
<root> array No
<array item> object No
categoryId string Yes ID of the category for use by API calls
categoryName string Yes Friendly name of the category
tenantHealth string No UpsellReady, AtRisk, LowUsage
healthPercentage number double No

Tenant ID - claimed workloads

Retrieves details about a single tenant for which your partner possesses a claimed workload.

GET https://m365partner.microsoft.com/abss/v1.5/api/partnerTenants/{tenantId}

Tenant ID: Request Header

Tenant ID uses the common request header.

Tenant ID: Response Codes

Tenant ID uses the common request codes.

Tenant ID - claimed workloads: URI parameters

Name Location Required Type Format Nullable
tenantId PATH Yes string uuid No

Tenant ID - claimed workloads: Definitions

Name Type Format Nullable
<root> object No
tenantId string Yes
name string Yes
tpid integer int32 Yes
claimedWorkloads array Yes
<array item> object No
id integer int32 No
name string Yes

Tenant Penetration

Returns the number of tenants with Copilot enabled and the number of tenants without Copilot.

Note

Returned as summaries.penetrationSummary in the consolidated Copilot response (include=summaries). There is no standalone v1.5 route.

Tenant Penetration: Definitions

Name Type Format Length Nullable
<root> object No
tenantsWithCopilot integer int32 No
tenantsWithoutCopilot integer int32 No

Time Zones

Lookup for contacts, a list of time zones.

GET https://m365partner.microsoft.com/abss/v1.5/api/timezones

Time Zones: Request Header

Time Zones uses the common request header.

Time Zones: Response Codes

Time Zones uses the common request codes.

Time Zones: URI parameters

None

Time Zones: Definitions

Name Type Format Length Nullable
<root> array No
<array item> object No
id string uuid No
name string Yes

Usage by Product Monthly Snapshot

Retrieves usage data, broken down by licensed MAU, unlicensed MAU, and all MAU.

Note

Returned as summaries.usageByProduct in the consolidated Copilot response (include=summaries). There is no standalone v1.5 route.

Usage by Product Monthly Snapshot: Definitions

Name Type Nullable
<root> object No
unlicensedMau integer
licensedMau integer
allMau integer

Workload Health

Note

Returned as charts.workloadHealth in the consolidated Workload response (include=charts).

Workload Health: Definitions

Name Type Format Nullable Enum Definition
<root> array No Collection of workload health summaries across opportunity categories.
<array item> object No Represents a single workload health record for a category.
categoryId string Yes The ID of the category for use by API calls.
categoryName string Yes The friendly name of the category.
workloadHealth string Yes The health classification of the workload (for example Healthy, AtRisk, LowUsage).
healthPercentage number double No Percentage score representing overall workload health within the category.

Secure Productivity opportunities

Note

This is the same consolidated workload-grid endpoint as Secure Productivity Opportunities near the top of this page (/opportunities/secureproductivity?category={categoryId}&include=grid). See that section for the endpoint, sample request, and full filter parameter list. The table below describes the response shape returned in items[].

Secure Productivity opportunities: Definitions

Name Type Format Nullable Definition
<root> object No A class representing paged data from the API.
rfaId integer int32 Yes The RFAID associated with the request, if any.
count integer int32 No The total number of items available in the dataset.
hasMore boolean No Flag marking if there's more data to be retrieved.
items array Yes The items included within the page.
<array item> object No
categoryId string Yes The ID of the category for use by API calls.
categoryName string Yes The friendly name of the category.
workloadId integer int32 No The ID of the workload.
workloadName string Yes The name of the workload.
tenantId string uuid No The Tenant ID that holds the workload.
tpid integer int32 Yes The TPID for the Tenant
tenantName string Yes The name of the tenant that holds the workload.
tenantDomain string Yes The Domain for the Tenant
tenantParentSegment string Yes Tenant Segment
mau integer int64 Yes Monthly Active Usage
pau integer int64 Yes Potential Active Usage
seatWhitespace integer int64 Yes The calculated amount of available unused licenses.
opportunityUnits integer int32 Yes The calculated amount of available opportunity units.
usageThreshold string Yes Gets and sets the usage threshold state.
usagePercent number double Yes The usage percentage.
tippingPoint number double Yes The usage tipping point percentage.
workloadRecommendation string Yes The recommendation for the workload, if any.
workloadHealth string Yes Represents the health of the workload. It can hold a string value or be null.
claimStatus string No The claim status associated with a tenant workload.
claimId integer int32 Yes The ID of the partner's claim on the workload if any.
claimedByOthers boolean No Flag marked if the workload has been claimed by other partner.
startingHWM integer int32 Yes The Highwater Mark on the first month the workload was active.
priorHWM integer int32 Yes The Highwater Mark for the previous period/month.
cporPotentialEarnings number double Yes CPOR Only Potential Earnings
mciPotentialEarnings number double Yes The MCI Workshop Potential Earnings.
totalPotentialEarnings number double Yes The available total potential earnings associated with the workload, if any.
resourceName string Yes Name of the link for help with this workload, if any.
resourceLink string Yes URL for the help link for the workload, if any.
claimWorkloadLink string Yes URL for users to claim the workload if it's unclaimed.
customerName string Yes The name of the customer that holds the workload.
customerParentSegment string Yes Customer Segment
customerCountry string Yes The Country/Region of the customer
tenantCountry string Yes The Country/Region of the tenant
eaRenewalDate string date-time Yes The EA Renewal Date of the customer
eligibleMciEngagements integer int32 No The eligible engagements for this tenant, partner, and workload combination.
hasEnrolledEngagements boolean No Whether there are any claimed engagements for this tenant, partner, and workload combination.
advancedDeploymentGuideName string Yes The name of an advanced deployment guide for this workload, if any.
advancedDeploymentGuideLink string Yes URL for an advanced deployment guide for this workload, if any.
ratePerUnit integer int32 Yes The compensation rate per entitlement unit
maxCompUnits integer int32 Yes Maximum compensable units for the workload.

Workload Recommendations

Returns a list of workload recommendations within the specified opportunity category, with the count of recommendations for each.

Note

Returned as charts.recommendations in the consolidated Workload response (include=charts).

Workload Recommendations: Definitions

Name Type Format Nullable Enum Definition
<root> array No
<array item> object No
categoryId string Yes The ID of the category for use by API calls.
categoryName string Yes The friendly name of the category.
workloadRecommendation string Yes
recommendationCount integer int32 No

Workload Utilization

Note

Returned as charts.utilization in the consolidated Workload response (include=charts).

Workload Utilization: Definitions

Name Type Format Nullable Definition
<root> array No
<array item> object No
categoryId string Yes ID of the category for use by API calls
categoryName string Yes Friendly name of the category
workloadId integer int32 No ID of the workload
workloadName string Yes Name of the workload
workloadUtilization number double No Percentage of licenses utilized

Workload Whitespace

Note

Returned as charts.whitespace in the consolidated Workload response (include=charts).

Workload Whitespace: Definitions

Name Location Required Type Definition
opportunityCategoryId PATH Yes string Unique identifier for the opportunity category used to scope the request.
lXPWorkloadIdFilter QUERY No array Filters results by specific LXP workload IDs.
lxpWorkloadRecommendationFilter QUERY No array Filters workloads based on recommendation types or actions.
lxpWorkloadHealthFilter QUERY No array Filters workloads by health status (for example healthy, at risk).
lXPClaimFilter QUERY No array Filters results based on claim or ownership status.
requirePotentialEarnings QUERY No boolean When true, returns only records with potential earnings.
requireSeatWhitespace QUERY No boolean When true, returns only records with available unused seats.
requireOpportunityUnits QUERY No boolean When true, ensures results include measurable opportunity units.
usageThresholdFilter QUERY No array Filters results based on defined usage thresholds.
tenantSegmentFilter QUERY No array Filters tenants by segment (for example Enterprise, SMB).
tenantCountryFilter QUERY No array Filters tenants by country or region codes.
lXPTenantStateFilter QUERY No array Filters tenants based on lifecycle or engagement state.
searchTerm QUERY No string Free-text search across tenant and workload fields.
eaRenewalDateFilter QUERY No string Calendar-based filter for Enterprise Agreement renewal windows.
mciEligibilityFilter QUERY No string Filters results by MCI eligibility status (Eligible, NotEligible).
requireIncentiveEligible QUERY No boolean When true, returns only tenants eligible for incentives.

Support

If you encounter issues with onboarding or API access, contact our support team at: PXPartnerSupport@microsoft.com

Please include:

  • Partner name
  • MPN ID(s)
  • The Tenant ID of your program membership
  • A brief description of your issue