Product Page Detector & Extractor (by URL)
omnial/brand-ai-product
Given a URL, determines whether the page is a product page and, when it is, returns a normalized product record: name, description, price, currency, availability, category, SKU, features, tags, and target audience. A URL that is not a product page (an article, a homepage, a search result) returns is_product_page: false with no product data.
Price
Up to $0.0346 per call; you pay what the call used
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.
Data source
Data from the web page you request.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/brand-ai-product" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/brand-ai-product" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/brand-ai-product", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/brand-ai-product", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0346 |
- Updated
- Oct 25, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "The product page URL to extract from. The upstream service first decides whether the URL really is a product page."
},
"maxAgeMs": {
"type": "integer",
"default": 86400000,
"maximum": 2592000000,
"minimum": 0,
"description": "Reuse a cached result younger than this many milliseconds. Default 86400000 (1 day), max 2592000000 (30 days). Set 0 to always fetch fresh."
},
"timeoutMS": {
"type": "integer",
"maximum": 300000,
"minimum": 1000,
"description": "Upstream timeout in milliseconds (max 300000). The upstream service aborts the call with a 408 when exceeded. Keep it below the endpoint's requestTimeoutMs so the provider answers before the platform's own budget expires."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"sku": {
"type": "string"
},
"name": {
"type": "string",
"description": "The product's own name/title, as listed."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Free-form descriptive tags for the product."
},
"price": {
"type": [
"number",
"null"
],
"description": "The current listed price, in `currency`."
},
"category": {
"type": "string"
},
"currency": {
"type": "string",
"description": "ISO 4217 currency code, e.g. \"USD\"."
},
"features": {
"type": "array",
"items": {
"type": "string"
},
"description": "Short bullet-point product features/highlights, extracted from the page."
},
"dimensions": {
"type": "array",
"description": "Physical product dimensions. Usually an empty array; populated shape not documented."
},
"description": {
"type": "string"
},
"availability": {
"type": "string",
"description": "Observed value: \"in_stock\". Other states (e.g. out of stock) unconfirmed."
},
"pricing_model": {
"type": "string",
"description": "Observed value: \"flat\". Other pricing models are unconfirmed."
},
"regular_price": {
"type": [
"number",
"null"
],
"description": "The non-discounted list price, when the page shows one. Null when no separate regular price is shown (no sale/regular split)."
},
"target_audience": {
"type": "array",
"items": {
"type": "string"
},
"description": "Short phrases describing who the product is aimed at."
},
"billing_frequency": {
"type": "string",
"description": "Observed value: \"one_time\". A subscription product's value is unconfirmed."
}
},
"description": "The normalized product record. Absent entirely when is_product_page is false -- not present as null or {}.",
"additionalProperties": true
},
"platform": {
"type": [
"string",
"null"
],
"description": "The detected commerce platform, e.g. \"generic\". Null on a non-product page -- platform detection appears tied to product-page detection."
},
"cache_metadata": {
"type": "object",
"properties": {
"age_ms": {
"type": "number",
"description": "Age of the cached result in milliseconds, 0 on a fresh fetch (miss)."
},
"status": {
"type": "string",
"description": "Observed values: \"miss\" (freshly fetched), \"hit\" (served from cache)."
}
},
"description": "Whether this result was served from cache or freshly fetched.",
"additionalProperties": true
},
"is_product_page": {
"type": "boolean",
"description": "Whether the upstream service classified the URL as a product page."
}
},
"description": "The detection-and-extraction result. `product` is only present when `is_product_page` is true -- a non-product URL (e.g. a Wikipedia article) returns no `product` key at all.",
"additionalProperties": true
}