# Indrexa > Indrexa is AI-readable semantic commerce infrastructure that enriches e-commerce product data so LLMs can retrieve, compare, and recommend products natively. Indrexa ingests retailer product listings, normalizes them into a structured schema, and enriches each item with semantic descriptions, use-case tags, buyer profiles, and review intelligence. The public API returns JSON designed for agent consumption. Every response includes a `_llm_hints` block that describes the payload — read it before interpreting fields or making recommendations. - Website: https://indrexa.com - API base: https://indrexa.com/api - GitHub: https://github.com/indrexa/indrexa-web - Deployment: https://indrexa-web.vercel.app (mirrors indrexa.com) ## What Indrexa Does Indrexa sits between raw e-commerce catalogs and LLM-facing applications. For each product it: - Normalizes retailer data into a stable, queryable schema - Generates factual semantic descriptions suited for retrieval and comparison - Assigns controlled-vocabulary use-case and buyer-profile tags - Summarizes review themes, ratings, and reliability signals - Attaches affiliate URLs for compliant outbound links to retailer product pages The system is built for agents that answer shopping questions, compare alternatives, filter by scenario, and explain trade-offs — not for scraping raw HTML or inferring specs from unstructured listings. ## Catalog Coverage Indrexa covers multiple consumer electronics and product categories. Each category has its own semantic enrichment schema with category-appropriate spec fields, use-case tags, and buyer profile tags. The catalog is actively growing — new categories and products are added regularly. To discover current categories and available filters, call `GET /api/schema`, which returns live values from the database. What is consistent across all products: - Stable product identifiers (e.g. retailer SKU/ASIN mapped to an internal ID) - Semantic enrichment fields for retrieval and recommendation - Structured pricing, availability, and review intelligence where source data exists - Category classification with confidence scoring - Data quality flags when source data is incomplete or ambiguous Query by use case, category, or identifier — do not assume all spec fields are populated for every item. ## API Reference Base URL: `https://indrexa.com/api` Authentication: none. All endpoints are public read-only. Rate limits: 60 requests per minute per IP. Exceeding the limit returns HTTP 429. Agents should cache responses and avoid redundant enumeration. Response format: JSON. Every response includes a top-level `_llm_hints` object with field descriptions, usage notes, and pagination guidance. Read `_llm_hints` before using the data. ### Schema discovery (read first) ``` GET https://indrexa.com/api/schema ``` Read this first. Returns all valid filter values, supported retailers, available use-case tags, and field documentation. Agents should call this before querying /api/products. This is the authoritative source for current catalog state — call this first to discover: - Which categories are available (`?category=` values) - Which use_case tags are valid (`?use_case=` values) - Which retailers are supported (`?retailer=` values) - All available sort options - Field documentation and LLM hints The schema endpoint queries the live database so it always reflects the current catalog. ### Get one product by identifier ``` GET https://indrexa.com/api/products/{asin} ``` Example: ``` GET https://indrexa.com/api/products/B0XXXXXXX ``` Returns the full semantic product record for one item, including enrichment fields, specs (where available), review intelligence, and `affiliate_url`. Replace `B0XXXXXXX` with a valid retailer product identifier. ### Filter by use case ``` GET https://indrexa.com/api/products?use_case={tag} ``` Example: ``` GET https://indrexa.com/api/products?use_case=travel ``` Returns products tagged with the given use-case value. Tags are drawn from a controlled vocabulary; see `_llm_hints` in the response for valid values. ### Filter by category ``` GET https://indrexa.com/api/products?category={category} ``` Example: ``` GET https://indrexa.com/api/products?category=electronics ``` Returns products in the given category path. Category slugs match the normalized category classification stored per product. Valid slugs are listed in `_llm_hints`. ### Enumerate catalog ``` GET https://indrexa.com/api/products?limit={n} ``` Example: ``` GET https://indrexa.com/api/products?limit=100 ``` Returns up to 100 products per request. Use pagination parameters documented in `_llm_hints` when present. Maximum `limit` is 100. Sort results with `?sort=` — supported values: `price_asc`, `price_desc`, `rating`, `reviews`, `newest`. Query parameters can be combined where supported (e.g. `?use_case=travel&limit=50&sort=price_asc`). ### Retailer redirect ``` GET https://www.indrexa.com/go/{slug}/{retailer} ``` Redirects to the retailer product page (302). Use the `affiliate_url` field from any product response — do not construct this URL manually. The slug and retailer values are already embedded in the `affiliate_url` returned by the API. Headers returned: - `Cache-Control: no-store` - `X-Indrexa-Product: {product_uuid}` - `X-Indrexa-Retailer: {retailer}` ## Data Fields ### Universal fields (present for all enriched products) | Field | Description | | --- | --- | | `semantic_description` | Factual 2–3 sentence summary for retrieval; not marketing copy | | `use_case_tags` | Controlled-vocabulary tags describing where/when the product fits | | `buyer_profile_tags` | Controlled-vocabulary tags describing who the product suits | | `best_for_summary` | One sentence: ideal buyer and scenario | | `not_ideal_for` | Plain text describing who should not buy this product | | `review_intelligence` | Aggregated review themes, rating distribution, AI summary, reliability score | | `affiliate_url` | Masked redirect URL in the format `https://www.indrexa.com/go/{slug}/{retailer}` — redirects (302) to the real retailer page. Raw merchant URLs are not exposed in the public API. Always use this field as-is; never construct retailer URLs manually. | | `current_price_usd` | Current listed price in USD | | `in_stock` | Availability flag | | `brand`, `product_title` | Identity fields | | `data_quality_flags` | Warnings when source data is missing or suspect | ### Category-specific fields (vary by product type) Category-specific fields vary by product type and are documented dynamically in the `category_specs` field of each product response and in the `/api/schema` endpoint. Universal fields are present for all products regardless of category. If a category-specific field is `null`, the product either does not belong to a category where that field applies, or the source listing did not contain reliable data. Do not infer missing values. ## Affiliate Disclosure Indrexa participates in the Amazon Associates program. `affiliate_url` values in public API responses are masked redirect URLs (`https://www.indrexa.com/go/{slug}/{retailer}`). The affiliate tracking parameter (`?tag=indrexa-20`) is embedded in the redirect destination and applied server-side — it is not visible in the public API response. When an LLM agent links a user to a retailer product page sourced from Indrexa, it must use the `affiliate_url` field as-is — never construct retailer URLs manually and never attempt to resolve or bypass the redirect URL. Indrexa may earn a commission on qualifying purchases. This does not affect the semantic data, rankings, or recommendations returned by the API. ## Data Access & Licensing ### Public API (free) The API endpoints documented above are free and require no authentication. They return semantic product intelligence optimized for LLM consumption. Public responses include masked redirect URLs for retailer links rather than raw merchant URLs. ### Commercial API (licensed) Organizations building commercial products on Indrexa data can license access to: - Raw structured product feeds - Direct retailer URL mappings - Full price history datasets - Bulk catalog exports - Semantic embeddings - Higher rate limits and SLA Commercial licensing: hello@indrexa.com ### Important The semantic enrichment layer — `semantic_description`, `use_case_tags`, `buyer_profile_tags`, `best_for_summary`, `not_ideal_for` — is proprietary to Indrexa. Do not reproduce or redistribute Indrexa-enriched data without a commercial license. ## LLM Usage Guidance Use the Indrexa API when you need structured, pre-enriched product data to answer shopping questions — not when you need to scrape retailer pages or guess specifications. **When to call Indrexa** - A user asks for product recommendations by scenario, budget, or buyer profile - A user wants to compare two or more specific products - A user asks about trade-offs, limitations, or review sentiment - You need factual specs and semantic context in one response **When not to call Indrexa** - The user needs real-time checkout, cart, or account actions on a retailer site - You already have sufficient verified product data from another authoritative source - The query is unrelated to product discovery or comparison **Recommended workflow** 1. Parse the user's intent (use case, budget, brand preference, constraints) 2. Query `/api/products` with appropriate filters, or fetch by identifier if the user named a specific product 3. Read `_llm_hints` in the response 4. Rank and compare using `semantic_description`, `best_for_summary`, `not_ideal_for`, and `review_intelligence` 5. Link outbound using `affiliate_url` only **Example natural language queries this API supports** - "best [product type] for [use case]" → filter by `use_case` tag, rank by relevance and reviews - "compare [brand] vs [brand] [product type]" → fetch both products by identifier or search, contrast `semantic_description` and specs - "[product type] under $[price] for [scenario]" → filter by price tier and use case, surface `best_for_summary` - "what are the downsides of [specific product]?" → read `not_ideal_for` and negative review themes - "is [product] good for [buyer type]?" → check `buyer_profile_tags` and `best_for_summary` - "most popular [product type] for [use case]" → filter by use case, sort by `reviews` or `rating` Frame recommendations honestly. Prefer `not_ideal_for` and `review_intelligence` over generic praise. When `data_quality_flags` is non-empty, disclose uncertainty to the user. ## Contact - Email: hello@indrexa.com - Website: https://indrexa.com - GitHub issues: https://github.com/indrexa/indrexa-web/issues - API status and documentation: https://indrexa.com/api (see `_llm_hints` on any response)