Catalog Scan API
Base URL: https://www.scrapingsmart.com
POST a URL → poll status → get products → get artifacts.
Authentication
Send a ScrapingSmart access token with every request. Create it from a signed-in session and keep it private.
Authorization: Bearer YOUR_ACCESS_TOKEN
Catalog Scan API playground
Sign in to test the API
- Scan ID
- —
- Status
- —
- Pages scanned
- —
- Products found
- —
Products JSON preview
[]
Artifacts
- —
Start scan
POST /api/v1/catalog-scans
Submit the catalog or ecommerce URL to scan.
curl -X POST https://www.scrapingsmart.com/api/v1/catalog-scans \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "url": "https://example.com/collections/all" }'
{
"scan_id": "scan_123",
"status": "queued"
}
Check status
GET /api/v1/catalog-scans/:scanId
Poll until the status is completed or failed.
curl https://www.scrapingsmart.com/api/v1/catalog-scans/scan_123 \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Get products
GET /api/v1/catalog-scans/:scanId/products
Read the normalized products JSON after the scan completes.
[
{
"title": "Example product",
"url": "https://example.com/products/example-product",
"price": "$24.99"
}
]
Get artifacts
GET /api/v1/catalog-scans/:scanId/artifacts
List the generated files for the completed scan.
{
"artifacts": [
{ "type": "products_csv", "filename": "export.csv" },
{ "type": "summary_json", "filename": "summary.json" }
]
}
Complete curl example
BASE_URL="https://www.scrapingsmart.com"
TOKEN="YOUR_ACCESS_TOKEN"
SCAN_ID="scan_123"
curl -X POST "$BASE_URL/api/v1/catalog-scans" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "url": "https://example.com/collections/all" }'
curl "$BASE_URL/api/v1/catalog-scans/$SCAN_ID" -H "Authorization: Bearer $TOKEN"
curl "$BASE_URL/api/v1/catalog-scans/$SCAN_ID/products" -H "Authorization: Bearer $TOKEN"
curl "$BASE_URL/api/v1/catalog-scans/$SCAN_ID/artifacts" -H "Authorization: Bearer $TOKEN"
Errors / limits
- Use a valid URL and a current access token.
- Treat non-2xx responses as actionable; do not retry failed scans indefinitely.
- Poll only while a scan is queued or running, then retrieve products and artifacts after completion.