View & Download Results
Once a collection run finishes, MultiCartAPI stores the output as JSON files — one per page of results — plus an optional ZIP of everything together. You can grab those files straight from the dashboard or pull them programmatically with two API calls.
In the dashboard
Open the Downloads tab
- Go to Collections in the sidebar and find a collection that has completed at least one run.
- Click the row actions menu and choose Download results. The dashboard navigates to
/collections/:id/download. - The page shows a table with one row per run. Columns: Run time, Status, Records, Pages, and Archive.


Processing rows have no download buttons
A row showing Processing means the run is still in progress. Refresh the page or wait for the status to flip to Completed before downloading.
Download individual pages
Each completed product-scrape run splits results across multiple JSON files — one per page. The Pages column shows a pill button for each: Page 1, Page 2, and so on. Click any pill to download that file immediately.

Download all pages as a ZIP
The Archive column shows a ZIP button that includes the file size (for example, ZIP · 2.4 MB). Click it to download all pages for that run bundled into a single archive.

Category scrapes: JSON list and CSV
Category-scrape runs show two buttons instead of page pills: Download full list (JSON) and Download CSV. There is no ZIP for category runs. The CSV is generated from the JSON and includes these columns: asin, parent_asin, is_variant, is_brand, is_store, is_prime, seller_name, price_cents, in_stock.

Load more runs
The table loads the most recent runs first. If a collection has more than 50 completed runs, a Load more button appears at the bottom. Click it to append older rows without leaving the page.
Via the API
Downloading via the API is a two-step process: first retrieve run history and download links, then stream the file itself.
Step 1 — List run results and get download links
List Run Results
https://multicartapi.com/api/v1/schedules/collections/results/download/| Parameter | Type | Required | Description |
|---|---|---|---|
collection_id | integer | Required | Collection ID to retrieve run history for. |
skip | integer | Optional | Pagination offset (number of runner rows to skip). |
limit | integer | Optional | Page size (number of runner rows to return). |
curl https://multicartapi.com/api/v1/schedules/collections/results/download/ \
-X POST \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "collection_id": 101, "skip": 0, "limit": 5 }'{
"code": 200,
"data": [
{
"id": 88,
"collection": 101,
"is_download_generated": true,
"download_links": {
"pages": [
"https://multicartapi.com/api/v1/results/101/88/AU Laptops_88_Results_Page_1.json"
],
"all_pages": "https://multicartapi.com/api/v1/results/101/88/AU Laptops_88_Results_All_Pages.zip"
},
"total_exacted_result": 250,
"total_results": 250,
"created_at": "2026-06-20T12:00:00Z",
"updated_at": "2026-06-20T12:05:00Z"
}
],
"status": 1
}Poll until is_download_generated is true
The download_links URLs are only valid once is_download_generated is true. If the run is still being processed this field will be false and the URLs will not yet be populated. Repeat the request every few seconds until it flips.
Step 2 — Stream the result file
Use the URLs returned in download_links.pages (individual JSON files) or download_links.all_pages (ZIP) directly. Each URL resolves through the endpoint below.
Download Result File
https://multicartapi.com/api/v1/results/{collection_id}/{runner_id}/{file_name}| Parameter | Type | Required | Description |
|---|---|---|---|
collection_id | integer | Required | Collection ID. |
runner_id | integer | Required | Runner ID from the download_links response. |
file_name | string | Required | File name as returned in download_links, e.g. AU Laptops_88_Results_Page_1.json or AU Laptops_88_Results_All_Pages.zip. |
# Use the full URL from download_links.pages[0] or download_links.all_pages
curl "https://multicartapi.com/api/v1/results/101/88/AU%20Laptops_88_Results_Page_1.json" \
-H "x-api-key: YOUR_API_KEY" \
-o "page_1.json"Raw bytes — no JSON envelope
The response is the raw file bytes (Content-Type: application/octet-stream). There is no wrapping code/data/status envelope. Write the response body directly to a file. The backend validates that the collection belongs to your account before streaming, so another user's IDs will return a 403.
Understanding the result files
For more detail on what the JSON files contain — field definitions, category CSV columns, and how paging works — see the Results concept page.
