On Request Reports API Overview
The On Request Reports API lets users request item reports.
Request a report at any time, subscribe to notifications when the report is ready, and download the requested report.
Report generation time
Reports take 15 to 45 minutes to generate and are available for download after they are generated.
Report retention period
Requested reports are retained for 30 days. Request a report for up to 30 days with the requestId
for the report. There is no need to request a new one each time.
Request limit
Request one report for each report type per hour. Although users can request multiple report types at the same time, they can make a request for each report type only once per hour.
Report request workflow
The following is the report request workflow:
- Create a report request with the Create report request (POST /v3/reports/reportRequests). For each request, the system creates a
requestId
that the supplier uses to track the status of the requested report. - Check the report request submission status with the Retrieve details on single report request (GET /v3/reports/reportRequests/{requestId}), which returns all details about the report status.
- (Optional): Users can retrieve a list of all report requests with the Retrieve all report request (GET /v3/reports/reportRequests).
- Once the report has a READY status, users can download the report with the Download report URL request (GET /v3/reports/downloadReport).
The following diagram details the report request workflow.

How to request a report
Step 1: Request an item report
To request an item report, call the Create report request (POST /v3/reports/reportRequests).
For example, call v3/reports/reportRequests?reportType=REPORT-TYPE&reportVersion=v1
Replace REPORT-TYPE
with the report type to request; for example, INVENTORY_DSV
or ITEM_CONFIGURATION_DATA
.
Specify values for all required parameters, as detailed in the following list:
reportType
: Specifies which report to request; for example,reportType=INVENTORY_DSV
.reportVersion
: Specifies the report version; for example,reportVersion=v1
.
Upon success, the API call returns a requestId. Use that value to find out if the report is ready for download and the status of the request. Statuses include: RECEIVED
, INPROGRESS
, READY
, and ERROR
.
The API call also returns values for requestSubmissionDate
in ISO 8601 format: YYYY-MM-DDTHH:mm:ssZ.
Step 2: Get report availability status
To find out if the report is ready for download, call the Retrieve details on single report request (GET /v3/reports/reportRequests/{requestId}) to retrieve report request status. Users can download the report when the status is READY
.
Note: This API call can only retrieve details of requests created in the past 30 days.
The following is an example API call:
- Call
v3/reports/reportRequests?{requestId}
with the neededrequestId
. - Upon success, this API call retrieves the status of the specified
requestId
. Statuses include:RECEIVED
,INPROGRESS
,READY
, andERROR
.
Step 3: (Optional) Get a list of all requests
To get a list of all report requests in the last 30 days, call the Retrieve all report requests request (GET /v3/reports/reportRequests).
Note: The request log does not continue to store requests past 30 days.
The following is an example API call:
- Call
/v3/reports/reportRequests
directly to retrieve a list of all requests. - Filter the list with these query parameters:
reportType
: Specifies the type of report; for example,reportType=DSV_INVENTORY
for DSV inventory report.requestId
: Specifies a single request ID to return.requestStatus
: Specifies report requests with one status to be returned, such asRECEIVED
,INPROGRESS
,READY
, orERROR
for example,requestStatus=READY
.requestSubmissionStartDate
: Specifies a range of report requests by providing a start date.requestSubmissionEndDate
: Specifies a range of report requests by providing an end date.
Upon success, the API call retrieves a list of all reports that were requested with the Retrieve all report requests request (GET /v3/reports/reportRequests). The response provides a list of request IDs sorted by request submission date.
Here is an example of a request for all reports in READY status:
- Call
/v3/reports/reportRequests?requestStatus=READY
. - Upon success, the response provides a list of request IDs sorted by request submission date.
Step 4: Download the report URL
To download a requested report, call the Download report URL request (GET /v3/reports/downloadReport). Specify the requestId
sent by the report status notification or from the Retrieve details on single report request (GET /v3/reports/reportRequests/{requestId}).
Here is an example call:
- Call
/v3/reports/downloadReport?requestId={requestId}
- Upon success, the user receives the URL to download the report along with the URL expiration time:
downloadURL
: Specify the URL to download the report.downloadURLExpirationTime
: Specify the download URL expiration time.
To avoid errors, make sure to check that these situations do not apply to the request:
- The request has expired. Expiration occurs after 30 days. If expired, the report is no longer available.
- The report is in
INPROGRESS
status. If the report is not available yet, check to see that status is not in theINPROGRESS
status. - The report is in an error state. Ensure system errors or data errors are not present.
- The
requestId
is invalid. The user must ensure they have the correct request ID, or that it has not expired after 30 days.
Troubleshooting and Error Codes
Here are some hints for how to solve these possible errors in the event of failures.
Notice there are several reasons why users might get an INVALID_REQUEST_PARAM
error. These reasons depend on which API the users call and which parameters are required for that API.
Error Code | Description |
---|---|
SYSTEM_ERROR | There is an error in the system. Please wait and try again later. |
INVALID_REQUEST_PARAM | A required query parameter is missing. Make sure the user specified all required parameters. (e.g. reportType , requestId ) |
INVALID_REQUEST_PARAM | If the submission start date is beyond 30 days of the report expiration time, the user will get an error. |
INVALID_REQUEST_PARAM | The request is possibly missing the start and end dates in the Retrieve all report requests request (GET /v3/reports/reportRequests). Try again with both dates provided. |
INVALID_REQUEST_PARAM | The date specified might not be in correct date format. |
MISSING_REQUEST_HEADER | The header is missing content. Make sure all required header parameters (e.g. channelType ) are specified in the API call. |
MISSING_REQUEST_PARAM | Make sure to specify the required request parameter; for example, reportType . |
CONTENT_NOT_FOUND | The requestId could not be found. Try again with correct request ID. |
Updated 11 days ago