Extract Products
Discover and extract all products or services from a domain using AI. Orsa crawls the site, identifies product pages, and returns structured product data.
Endpoint: GET /v1/brand/ai/products
Credits: 10 per request
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain to extract products from (e.g., linear.app) |
Response Schema
{
"success": true,
"products": [
{
"name": "Linear",
"description": "Plan and build products with modern project management. Streamline issues, projects, and product roadmaps.",
"price": {
"amount": 8,
"currency": "USD",
"formatted": "$8/user/month"
},
"image_url": "https://linear.app/static/og-image.png",
"url": "https://linear.app",
"category": "Project Management",
"availability": "available"
},
{
"name": "Linear Asks",
"description": "AI-powered initiative tracking and status updates for your team.",
"price": null,
"image_url": null,
"url": "https://linear.app/asks",
"category": "AI Productivity",
"availability": "available"
}
],
"domain": "linear.app",
"count": 2,
"cached": false,
"credits_used": 10,
"request_id": "e1f2a3b4-c5d6-7890-4567-901234567890"
}Code Examples
cURL
curl -X GET "https://api.orsa.dev/v1/brand/ai/products?domain=linear.app" \
-H "Authorization: Bearer YOUR_API_KEY"TypeScript
const result = await client.ai.products({
domain: 'linear.app',
});
console.log(result.count); // 2
console.log(result.products[0].name); // "Linear"
console.log(result.products[0].price?.formatted); // "$8/user/month"Python
result = client.ai.products(domain="linear.app")
print(result.count) # 2
print(result.products[0].name) # "Linear"
print(result.products[0].price.formatted) # "$8/user/month"Error Codes
| Code | Status | Description |
|---|---|---|
INPUT_VALIDATION_ERROR | 400 | Invalid or missing domain |
UNAUTHORIZED | 401 | Missing or invalid API key |
RATE_LIMITED | 429 | Rate limit exceeded |
USAGE_EXCEEDED | 402 | Insufficient credits |
WEBSITE_ACCESS_ERROR | 502 | Product extraction failed |
INTERNAL_ERROR | 500 | AI pipeline error |
Notes
- The AI navigates to pricing, product, and feature pages automatically to discover all offerings.
- Extraction may take 30-90 seconds for the first request. Subsequent requests hit cache.
- For a single product page, use Extract Product instead.
- Price data may be
nullfor products without public pricing (enterprise plans, contact sales, etc.). - The
availabilityfield can be:available,coming_soon,beta,deprecated, ornull.