Overview of Changes
The main improvements in v2 include:- Consistent Response Format: All endpoints now follow a unified response structure with
data,pagination, andmetafields - Enhanced Extract Endpoints: New vendor-based extraction mode and improved URL extraction
- Better Execution Management: More detailed execution status tracking with progress, timing, and step information
- Improved Error Handling: Enhanced error responses with additional context fields
- HTTP Status Codes: Better adherence to REST standards (e.g., 202 Accepted for async operations)
Discover Endpoints
The Discover endpoints have undergone moderate changes, primarily in response format consistency and enhanced status tracking.Major Changes
1. Crawl Endpoint
v1:- Removed
successfield - Added
statusfield (always"pending"in POST response) - Added
metaobject withcredits_used - HTTP status code changed to
202 Accepted(was200 OK)
2. Get Crawl Status Endpoint
v1 Response:total_listings_foundmoved tometa.result.listings_total- Added
execution_idin response - Added
errorfield (always present, null if no error) - Added comprehensive
metaobject with:vendor: The vendor hostnamestart_date,stop_date,duration_ms: Timing informationprogress: Real-time progress (only when running)steps: Array of step statuses showing crawl phase progressresult: Final statistics (collections_total, listings_total)
- Step-by-step progress tracking via
meta.steps - Real-time progress via
meta.progresswhen status is"running" - Timing information for performance monitoring
3. List Crawl Executions Endpoint
v1:limitparameter renamed topage_sizein v2
- Response field changed from
executionstodata - Added full
paginationobject - Added
metaobject
4. Get Products (Listings) Endpoint
v1:- Response field changed from
listingstodata metapagination fields moved topaginationobjectcurrent_pagerenamed topagein paginationmetaobject is now separate and empty for this endpoint
5. Get Collections Endpoint
v1:- Response field changed from
collectionstodata metapagination fields moved topaginationobjectcurrent_pagerenamed topagein pagination- Default
page_sizechanged from 10 to 20 in v2 metaobject is now separate and empty for this endpoint
6. Get Vendors Endpoint
No Changes: The Get Vendors endpoint response format remains identical between v1 and v2. Only the endpoint path changes from/v1/vendors to /v2/vendors.
Migration Steps for Discover Endpoints
- Update response parsing: Change
listingstodata, pagination fields topaginationobject - Update response parsing: Change
collectionstodata, pagination topaginationobject - Update query parameters: Change
limittopage_sizein list endpoints - Update crawl status handling: Access
meta.result.listings_totalinstead oftotal_listings_found - Utilize new features: Consider using
meta.stepsandmeta.progressfor better crawl monitoring - Update POST response handling: Remove
successfield checks, use HTTP status codes instead - Note default change: Get Collections default
page_sizechanged from 10 to 20
Extract Endpoints
The Extract endpoints have undergone significant changes in v2. Both/v1/products (URLs) and /v1/extract (vendor-based) endpoints have been unified into a single /v2/extract endpoint that offers two distinct modes of operation.
Major Changes
1. Endpoint Path Changed
v1:/v2/extract). The input source is determined by the request body: use urls for product URLs, or vendor for extracting from a vendor.
2. Unified Extraction Endpoint
v2 unifies both v1 extraction endpoints (/v1/products and /v1/extract) into a single /v2/extract endpoint with two input source options:
Using urls parameter (Migrated from v1 /v1/products):
- Use when you have specific product URLs
- Post to
/v2/extractwithurlsarray in the request body - Works the same way as v1
/v1/productsbut with updated response format - Execution ID format:
extract-urls-{uuid}
vendor parameter (Migrated from v1 /v1/extract):
- Use when you want to extract all products from a vendor
- Post to
/v2/extractwithvendorfield in the request body - Requires prior crawl or can wait for a crawl using
crawl_idparameter - Useful for bulk extraction from discovered listings
- Execution ID format:
extract-{vendor}-{uuid}
3. Request Body Changes
v1 Request (POST /v1/products):urls (POST /v2/extract):
vendor (POST /v2/extract):
- Parameter name changed:
domain→vendorin v2 enable_enrichmentdefault changed fromtruetofalsein v2enable_reviewsdefault changed fromtruetofalsein v2enable_image_tagsdefault changed fromtruetofalsein v2- New optional parameters:
enable_brand_pdp,enable_similar_products,enable_reddit_insights
4. Response Format Changes
v1 POST Response:- Removed
successfield (HTTP status code indicates success) - Added
statusfield (always"pending"in POST response) - Added
metaobject withcredits_usedandurl_count(orlistings_count,products_to_processfor vendor-based) - HTTP status code changed to
202 Accepted(was200 OK) - Execution ID format changed from
products-batch-{uuid}toextract-urls-{uuid}orextract-{vendor}-{uuid}
5. Execution ID Format Changes
v1:- Format:
products-batch-{uuid}
- When using
urls:extract-urls-{uuid} - When using
vendor:extract-{vendor}-{uuid}(dots in vendor replaced with dashes)
6. List Executions Endpoint Changes
v1:- Response format is consistent between v1 and v2
- Status values: v1 uses
"processing", v2 distinguishes"pending"and"running"(both included when filtering by"processing")
7. Get Execution Status Changes
v1:limit and page_size query parameters for backward compatibility.
v2:
limitparameter renamed topage_sizein v2 (v1 accepts both)- Default
page_sizeis 50 (same as v1’s defaultlimit)
results.productsmoved to top-leveldataarrayresults.metamoved tometa.resultprogressmoved tometa.progress- Progress field names changed:
urls_completed/total_urls→products_processed/products_total - Added
execution_idin response - Added timing fields:
meta.start_date,meta.stop_date,meta.duration_ms - Added
meta.waiting_forfor vendor-based extractions waiting for crawl pagination.limitrenamed topagination.page_size- Added
pagination.has_prevfield - Status values: v2 distinguishes
"pending"(waiting) and"running"(actively processing)
8. Cancel Execution Changes
v1:- Cannot cancel executions waiting for crawl (status
"pending"withwaiting_for) - Better error messages for different failure scenarios
Migration Steps for Extract Endpoints
- Update endpoint paths:
- Change
/v1/productsto/v2/extract(for URLs) - Change
/v1/extractto/v2/extract(for vendor-based extraction)
- Change
- Update request parameters:
- For vendor-based: Change
domainparameter tovendorin request body - Set
enable_enrichment,enable_reviews, andenable_image_tagsexplicitly if you were relying on v1 defaults
- For vendor-based: Change
- Update execution ID handling:
- URLs: Change format from
products-batch-{uuid}toextract-urls-{uuid} - Vendor-based: Execution ID format remains
extract-{vendor}-{uuid}(unchanged)
- URLs: Change format from
- Update response parsing: Change
results.productstodata,results.metatometa.result - Update query parameters: Change
limittopage_sizein status endpoint - Unified endpoint: Both extraction modes now use the same
/v2/extractendpoint - choose mode via request body (urlsfor URLs,vendorfor vendor-based)
Search Endpoints
The Search endpoints have undergone significant changes in v2. The most important change is that Agentic Search is now asynchronous in v2 (it was synchronous in v1).Major Changes
1. Agentic Search Endpoint - Now Asynchronous
v1 (Synchronous):- Returns products immediately in the response
- HTTP status:
200 OK - Blocks until search completes
- Returns an
execution_idimmediately - HTTP status:
202 Accepted - Search processes asynchronously in the background
- Use the status endpoint to check progress and retrieve results
- v2 is asynchronous: POST endpoint returns
execution_idinstead of products - HTTP status code: Changed from
200 OKto202 Accepted - Response structure: No products in POST response; use status endpoint to retrieve results
- Execution management: New endpoints for checking status, listing executions, and canceling
2. New v2 Endpoints for Agentic Search
v2 introduces new endpoints to manage asynchronous search executions: Get Execution Status:- Check execution progress and retrieve results when complete
- Returns products in
dataarray when status is"completed" - Includes progress tracking via
meta.progress - Supports pagination for results
- View all your search executions
- Filter by status (
processing,completed,failed) - See execution IDs and creation timestamps
- Cancel a running search execution
- Only works for executions with status
"pending"or"running"
3. Get Execution Status Response Format
When checking status in v2, the response format whenstatus is "completed":
- Products are in
dataarray (notproducts) - Added
paginationobject - Added
execution_idin response - Added
meta.progressfor real-time progress tracking - Added timing information (
start_date,stop_date,duration_ms) - Added
meta.resultwith execution statistics
4. Agentic Search Mini Endpoint
Similar changes as Agentic Search but the endpoint is still synchronous:- Response field changed from
productstodata - Added
paginationobject metastructure updated
Migration Steps for Search Endpoints
- Implement async pattern:
- POST endpoint now returns
execution_idinstead of products - Store the
execution_idfrom the POST response - Poll the GET status endpoint to check for completion
- POST endpoint now returns
- Update status checking:
- Use
GET /v2/agentic-search/{execution_id}to check status - Handle status values:
"pending","running","completed","failed" - Implement polling logic (recommended: 5-10 second intervals)
- Use
- Update response parsing:
- Products are now in
dataarray (notproducts) when retrieved from status endpoint - Access pagination from
paginationobject - Original
metafields liketotalItemsandurlsare inmetaobject (when available)
- Products are now in
- Handle new features:
- Monitor
meta.progressfor real-time progress updates - Use timing information (
duration_ms) for performance monitoring - Consider using the list executions endpoint for execution management
- Monitor
- Update error handling:
- Check
statusfield for"failed"state - Read
errorfield for error messages - Handle HTTP
202 Acceptedstatus code for POST requests
- Check
Affiliate Endpoints
The Affiliate endpoint has undergone response format standardization.Major Changes
Generate Affiliate Links Endpoint
v1:- Response field changed from
resultstodata - Top-level summary fields (
total_processed,successful,failed) moved tometaobject - Added
paginationobject for consistency
Migration Steps for Affiliate Endpoints
- Update response parsing: Change
resultstodata - Update summary statistics: Access
total_processed,successful, andfailedfrommetaobject instead of top-level
Usage Endpoints
The Usage endpoint has no changes.General Changes
Response Format Standardization
All v2 endpoints follow a consistent response structure:HTTP Status Codes
- v2 uses
202 Acceptedfor async operations (POST requests that start async processing) - v1 used
200 OKfor all successful requests
Error Handling
v1 Error Response:- v2 may include additional error context fields for specific error types (e.g.,
invalid_urlsfor validation errors) - All error responses still include
Request-IDheader matching therequest_idin the response body
Pagination Consistency
v1:- Mixed pagination structures across endpoints
- Some used
page,page_size,total_items,total_pages - Some used
current_page,limit, etc.
- Consistent pagination structure across all endpoints:
page: Current page numberpage_size: Number of items per pagetotal_items: Total number of itemstotal_pages: Total number of pageshas_next: Boolean indicating if next page existshas_prev: Boolean indicating if previous page exists
Query Parameter Naming
limit→page_size(in list and status endpoints)- All pagination-related parameters now consistently use
pageandpage_size
Execution Status Values
v1:"pending","running","completed","failed","processing"(ambiguous)
"pending": Execution created but not started (may be waiting for crawl)"running": Execution actively processing"completed": Execution finished successfully"failed": Execution failed or was aborted
"processing" in v2 includes both "pending" and "running" states.