Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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
mpnIdslist (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:
items[]– Paginated grid rows with all tenant fieldspagination–{ page, pageSize, totalCount, hasMore, cursor }filters– Distinct values for all filter dropdownssummaries– 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-Matchheader for ETag validation - Returns
304 Not Modifiedwhen 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:
totalRows– Number of rows visible to the caller's MPN scopelastRefreshed– UTC timestamp of most recent data refreshdataVersion– Opaque version token (changes on data reload)fields[]– Array of{ name, type, description }representing valid values for the?fields=parameterfieldCount– 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:
- Select Save Response → Save as File
- Save the file with a .csv extension (for example, output.csv)
- 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
expiryUtcin the status response and download the file before that time. After it expires, the samerequestIdcan 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 (
compressAsZipomitted orfalse): the response/download is the rawcsv/json/jsonl/parquetfile directly, with the format-specificContent-Typeand extension from the preceding table. - Compressed (
compressAsZip=true): the response/download is a.ziparchive (Content-Type: application/zip,.zipextension) containing a single file named with the same format extension (for exampleABSSInsights_Copilot_08_11_2026_050612.jsonlinside the zip). The rows and field values inside are identical to the uncompressed version — only the outer wrapper changes. compressAsZipworks with every format (csv,json,jsonl,parquet) — it isn't limited tojsonl.- For
output=async, the downloaded filename followsABSSInsights_{Tab}_{MM_dd_yyyy}_{HHmmss}.{zip | csv | json | jsonl | parquet}, where the extension iszipwhenevercompressAsZip=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 | 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