Skip to main content
Product Lookup turns one product page URL into a MerchantProductView. By default, Octogen checks the product index first. If the URL is not indexed and on-demand product resolution is available, Octogen fetches the page and returns the useful product fields it can verify. The response always identifies its source:
  • source: "indexed" returns the full indexed product record and catalog context.
  • source: "on_demand" returns a partial-safe product view without inventing an indexed UUID, catalog ownership, or lifecycle state.

Choose a resolution mode

Requests that can use on-demand resolution also accept onDemandCachePolicy: refresh does not apply to index_only requests.

Make a lookup request

On-demand resolution is synchronous and bounded. It reads the returned HTML but does not render JavaScript. Allow up to 8 seconds for a cold request, and use your normal timeout and retry policy for transient errors.

Handle indexed and on-demand results

Both sources return product: MerchantProductView, but some fields have different guarantees. For follow-up lookups, use normalizedUrl on indexed results and resolvedUrl on on-demand results: submit either on a follow-up lookup and it deterministically re-resolves the same product. Prefer storing them over the URL you originally submitted. On-demand results are ephemeral. Octogen does not add them to your catalogs or product index, and you cannot retrieve them later by UUID. Store the returned resolvedUrl and any fields your application needs.

On-demand example

resolution.completeness is complete or partial. resolution.method identifies the strongest evidence used: json_ld, open_graph, html_meta, or resolved_url. missingFields and warnings tell you which expected fields were unavailable or need attention. Do not treat partial as an error when the fields your application needs are present.

Preserve indexed-only behavior

If your integration assumes every result has a stable UUID, catalog context, and lifecycle state, opt out of the default fallback:
An index-only miss returns 404 product_not_found, matching the previous Product Lookup behavior.

Handle errors

All Product Lookup calls use the service-wide API budget described in Rate Limits. See Error Handling for the SDK exception model and general retry guidance.