The Reports API
This section facilitates the request and retrieval of reports with data
for different aspects of a seller’s account. You can either request a
one-off report or create a report schedule where Amazon will generate a
report at the specified frequency.
More information on the Reports API can be found in below link:
ReportType Enumeration types can be found here:
Requesting and Downloading a Report:
Request the report using RequestReport operation for a specific Report Type
Check the status using GetReportRequestList, if many reports are requested filter the results by providing the ReportType, ReportRequestIdList in the request query.
Once the status is Done, the same GetReportRequestList operation will return the Report id
Use GetReport with the Report id to download the report.
Downloading a Scheduled Report:
ManageReportSchedule operation allows supported report types to be generated on a predetermined frequency. These reports are automatically generated by Amazon.
Periodically check for the generated reports using GetReportRequestList. To narrow down the results provide filters like Report type, ReportRequestIdList, AvailableFromDate and AvailableToDate in the request query.
GetReportRequestList returns the Report id
Download the report using GetReport and providing the Report id returned from GetReportRequestList.
Note: You should provide only Generated Report id to download the report not the ReportRequestId.
Scheduling a report with Amazon, as opposed to making report requests on a schedule of your own, is preferred. Using Amazon’s scheduling mechanism lowers your volume of RequestReport operations and (in the case of Order Reports) Amazon ensures that each report picks up only the new records since the last report completed; this removes the necessity for requesting overlapping reports.
Why are my reports cancelled?
FBA Reports: Amazon recommends that you do not request FBA reports at a frequency greater than the data for that report can be refreshed.
Real-time FBA reports can be requested no more than once every 30 minutes and daily FBA reports no more than once every four hours. Please refer to the Report Type Enumeration documentation to know how frequently a report can be called. If you are requesting a FBA report at a frequency greater than it can support, the GetReportRequestList operation will either:
A) return a ReportProcessingStatus value of CANCELLED, or
B) the report will be generated, but the body will only include a short error message that the report was requested too frequently.
Multiple requests for the same report: Multiple applications do not need to request the same report. Before requesting a report, make sure to check (GetReportList) for a recent copy of the type you need, in case it already exists. This will reduce the number of requests that end in a CANCELLED state.
If all requests for a report are failing, the most common causes are:
Another application is already requesting the same report.
Solution: Check the GetReportList for existing reports of that type rather than attempting to request new versions.
Requesting a report faster than that particular type allows.
Solution: Check the documentation for that enumeration.
The report being requested is not currently supported for that particular seller (some reports are only available/relevant to certain programs or regions), or the date ranges are too broad. *Category Listings Reports (aka Reverse Feeds) must be enabled by contacting Seller Support and are only available for a limited time window; they \ must be requested individually by category, from the Manage Inventory Reports UI in Seller Central. Once the reports have generated, they can be retrieved from Seller Central or via MWS.
Requesting a report that can only be scheduled, example - GET_ORDERS_DATA
Requesting a report using a time range that is not supported.
For Example: GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA report will be successfully generated only if there is a minimum of 72 hours between StartDate and EndDate, where EndDate should be current timestamp (Now).
Reports that support variable inputs: You should validate the report ID of the report that you want to download by matching it with a prior request from your application to see if it is one your application requested. That way you know exactly what the input parameters were and you can be sure of the marketplace the report was requested for. In general, you should be cautious about downloading any report that your application didn’t request, which supports variable inputs, because you can’t be sure what the input parameters were.