Skip to main content
The Catalog API enables AI-powered product search across the web, discovery and indexing of product listings, real-time extraction of rich product data, and affiliate link generation for monetization. All endpoints return JSON responses.

Base URL

https://api.getcatalog.ai

Authentication

All requests require an API key in the x-api-key header. See Authentication for details.

Endpoints

Crawl

EndpointMethodDescription
/v2/crawlPOSTAsync discovery of collections and product listings for a vendor
/v2/crawlGETList all crawls with status
/v2/crawl/{execution_id}GETGet crawl status and results
/v2/crawl/{execution_id}DELETECancel a running crawl

Catalog

EndpointMethodDescription
/v2/vendorsGETList your crawled vendors
/v2/collectionsPOSTGet collections for a vendor
/v2/listingsPOSTGet product listings

Extract

EndpointMethodDescription
/v2/extractPOSTAsync extraction of product data from URLs or a vendor
/v2/extractGETList all extracts with status
/v2/extract/{execution_id}GETGet extract status and results
/v2/extract/{execution_id}DELETECancel a running extract
EndpointMethodDescription
/v2/agentic-search-miniPOSTFast synchronous search returning up to 10 products
/v2/agentic-searchPOSTAsync AI-powered search with customer profile personalization
/v2/agentic-searchGETList all agentic searches with status
/v2/agentic-search/{execution_id}GETGet agentic search status and results
/v2/agentic-search/{execution_id}DELETECancel a running agentic search

Affiliate

EndpointMethodDescription
/v2/affiliatePOSTConvert URLs to affiliate links

Usage

EndpointMethodDescription
/v2/usageGETGet credit usage and API call statistics

Response format

All successful responses follow a consistent structure with a data array and pagination object:
{
  "data": [...],
  "pagination": {
    "page": 1,
    "page_size": 10,
    "total_items": 100,
    "total_pages": 10,
    "has_next": true,
    "has_prev": false
  },
  "meta": {}
}
/{execution_id} endpoints also include execution_id and status fields:
{
  "execution_id": "...",
  "status": "completed",
  "data": [...],
  "pagination": {
    "page": 1,
    "page_size": 50,
    "total_items": 100,
    "total_pages": 2,
    "has_next": true,
    "has_prev": false
  },
  "meta": {
    "progress": {...},
    "result": {
      "products_requested": 100,
      "products_successful": 98,
      "products_failed": 2
    }
  }
}

Error handling

Errors return appropriate HTTP status codes with structured error details:
{
  "error": {
    "code": "ERROR_CODE",
    "message": "Human-readable error description",
    "request_id": "req_..."
  }
}
Additional fields may be included for specific error types. For example, validation errors may include:
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "One or more URLs have invalid format",
    "request_id": "req_..."
  },
  "invalid_urls": [
    "Index 0: https://invalid-url - invalid format"
  ]
}
All error responses include a Request-ID header that matches the request_id in the response body. See Error Codes for the complete reference.