Quotes reporting is now available via Marketplace reporting APIs
- Announced
- APIs
- marketplace-platform
- Endpoints
/rest/2/vendors/{vendorId}/.../rest/3/reporting/developer-space/{developerId}/...- Severity
- info, set by
reef/atlassian-rule-v1 - Source
- https://developer.atlassian.com/changelog/#CHANGE-3306
Description
Quotes reporting is now available via Marketplace reporting APIs. We're introducing Quotes reporting to the Atlassian Marketplace reporting APIs. Partners can now programmatically retrieve their accepted quotes and export quotes data in bulk.
What's changing
You can now access accepted-quote data for your apps through the reporting APIs:
- List accepted quotes — a paginated list of accepted quotes for your apps, with filtering by product, creation date, acceptance date, and entitlement period.
- Quote details — line-level detail for a single quote (including schedules and discounts), looked up by
quoteIdand/orquoteNumber. - Async export — initiate a bulk export of accepted quotes, poll its status, and download the resulting CSV/JSON file (recommended for large datasets).
API changes
The following endpoints are available for Quotes reporting.
Vendor (v2):
GET rest/2/vendors/{vendorId}/reporting/quotes(link)GET rest/2/vendors/{vendorId}/reporting/quotes/details(link)POST rest/2/vendors/{vendorId}/reporting/quotes/async/export(link)GET rest/2/vendors/{vendorId}/reporting/quotes/async/export/{exportId}/status(link)GET rest/2/vendors/{vendorId}/reporting/quotes/async/export/{exportId}(link)
Developer-space (v3):
GET rest/3/reporting/developer-space/{developerId}/quotes(link)GET rest/3/reporting/developer-space/{developerId}/quotes/details(link)POST rest/3/reporting/developer-space/{developerId}/quotes/async/export(link)GET rest/3/reporting/developer-space/{developerId}/quotes/async/export/{exportId}/status(link)GET rest/3/reporting/developer-space/{developerId}/quotes/async/export/{exportId}(link)
Key query parameters (list endpoint): productId, startDate, endDate, acceptedStartDate, acceptedEndDate, entitlementStartDate, entitlementEndDate, limit, offset.
Quote details: provide quoteId and/or quoteNumber (optionally entitlementNumber).
Async export: filter by createdStartDate/createdEndDate, acceptedStartDate/acceptedEndDate, entitlementStartDate/entitlementEndDate, and choose accept=csv or accept=json. At least one complete date range pair is required.
Sample API response
GET rest/3/reporting/developer-space/{developerId}/quotes?startDate=2025-01-01&endDate=2025-01-31
{
"_links": {
"self": {
"href": "/rest/3/reporting/developer-space/{developerId}/quotes?startDate=2025-01-01&endDate=2025-01-31"
},
"query": {
"href": "/rest/3/reporting/developer-space/{developerId}/quotes{?productId*,startDate,endDate,acceptedStartDate,acceptedEndDate,entitlementStartDate,entitlementEndDate,limit,offset}",
"templated": true
},
"next": {
"href": "/rest/3/reporting/developer-space/{developerId}/quotes?startDate=2025-01-01&endDate=2025-01-31&offset=10&limit=10"
}
},
"quotes": [
{
"quoteId": "Q-12345",
"quoteNumber": "QT-000123",
"quoteStatus": "ACCEPTED",
"quoteCreatedDate": "2025-01-05",
"acceptedDate": "2025-01-10",
"quoteExpiryDate": "2025-02-05",
"entitlementNumber": "E-111-AAA-AAA-11A",
"productId": "acd011b1-1111-45bc-902a-247046a11111",
"productName": "Test App",
"appEdition": "Advanced",
"technicalContactCompany": "Test Company",
"technicalEmail": "test@example.com",
"startDate": "2025-02-01",
"endDate": "2026-02-01",
"userTier": 100,
"listPrice": 1200.00,
"discounts": [
{
"promotionId": "PROMO-1",
"amount": 120.00,
"percent": 10.0,
"reasonCode": "LOYALTY",
"type": "EXPERT",
"promoCode": "SAVE10"
}
],
"createdBy": "partner@example.com",
"vendorId": "1213041",
"productPlatform": "cloud",
"commerceSystem": "CART"
}
]
}
Action required
No action is required to keep existing integrations working.
If you want to consume quotes data:
- Use the vendor endpoints (
/rest/2/vendors/{vendorId}/...) for vendor-scoped access, or the developer-space endpoints (/rest/3/reporting/developer-space/{developerId}/...) for developer-scoped access across all your apps. - For large result sets, prefer the async export flow (initiate → poll status → download) rather than the synchronous list endpoint.
The text above is Atlassian's. reef added the severity, the dates it could read from the text, and the endpoints and scopes named in code.