Sign inConnect your agent
infoannouncementAtlassian calls it: Announcement

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 quoteId and/or quoteNumber.
  • 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.