API Reference
AI
Extract Products

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

ParameterTypeRequiredDescription
domainstringYesDomain 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

CodeStatusDescription
INPUT_VALIDATION_ERROR400Invalid or missing domain
UNAUTHORIZED401Missing or invalid API key
RATE_LIMITED429Rate limit exceeded
USAGE_EXCEEDED402Insufficient credits
WEBSITE_ACCESS_ERROR502Product extraction failed
INTERNAL_ERROR500AI 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 null for products without public pricing (enterprise plans, contact sales, etc.).
  • The availability field can be: available, coming_soon, beta, deprecated, or null.