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
/v1/crawlPOSTAsync discovery of collections and product listings for a vendor
/v1/crawlGETList all crawls with status
/v1/crawl/{execution_id}GETGet crawl status and results
/v1/crawl/{execution_id}DELETECancel a running crawl

Catalog

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

Extract

EndpointMethodDescription
/v1/productsPOSTAsync extraction of product data from product URLs (up to 1000)
/v1/productsGETList all extracts with status
/v1/products/{execution_id}GETGet extract status and results
/v1/products/{execution_id}DELETECancel a running extract
EndpointMethodDescription
/v1/agentic-searchPOSTAI-powered natural language search with customer profile personalization
/v1/agentic-search-miniPOSTFast synchronous search returning up to 10 products

Affiliate

EndpointMethodDescription
/v1/affiliatePOSTConvert URLs to affiliate links

Usage

EndpointMethodDescription
/v1/usageGETGet credit usage and API call statistics

Response format

Response structures vary by endpoint: Listings endpoints (vendors, collections, listings) return:
{
  "data": [...],
  "pagination": {
    "page": 1,
    "page_size": 10,
    "total_items": 100,
    "total_pages": 10,
    "has_next": true,
    "has_prev": false
  },
  "meta": {}
}
Search endpoints (agentic-search, agentic-search-mini) return:
{
  "products": [...],
  "meta": {
    "totalItems": 100,
    "urls": [...]
  }
}
/{execution_id} endpoints also include execution_id and status fields:
{
  "status": "completed",
  "results": {
    "products": [...],
    "meta": {
      "total_requested": 100,
      "total_successful": 98,
      "total_failed": 2
    }
  },
  "pagination": {
    "page": 1,
    "limit": 50,
    "total_items": 100,
    "total_pages": 2,
    "has_next": true
  }
}

Error handling

Errors return appropriate HTTP status codes with structured error details: Standard error responses (400, 401, 402, 403, 404, 409, 429, 500):
{
  "error": {
    "code": "ERROR_CODE",
    "message": "Human-readable error description",
    "request_id": "req_..."
  }
}
All error responses include a Request-ID header that matches the request_id in the response body. See Error Codes for the complete reference.