# Open Sports > Magento 2 e-commerce store powered by Breeze AI. AI agents can query the product catalog via GraphQL and generate content via the BreezeAI REST API. ## Catalog GraphQL API - [GraphQL endpoint](https://www.opensports.com.ar/graphql): catalog queries, no authentication required - [Schema introspection](https://www.opensports.com.ar/graphql?query={__schema{types{name}}}): list all available GraphQL types ### Product search Full-text search with optional price filter and pagination: ```graphql { products(search: "blue shoes", filter: {price: {from: "0", to: "100"}}, pageSize: 10, currentPage: 1) { total_count page_info { current_page page_size total_pages } items { sku name url_key price_range { minimum_price { regular_price { value currency } final_price { value currency } } } small_image { url label } short_description { html } } } } ``` ### Filter by category and attributes ```graphql { products( filter: { category_id: { eq: "24" } price: { from: "50", to: "500" } } sort: { price: ASC } pageSize: 20 ) { total_count items { sku name url_key price_range { minimum_price { final_price { value currency } } } } } } ``` ### Browse category tree ```graphql { categories(filters: { parent_id: { in: ["2"] } }) { items { id name url_key product_count children { id name url_key product_count } } } } ``` ### Category with products ```graphql { category(id: 24) { name description products(pageSize: 10) { total_count items { sku name url_key price_range { minimum_price { final_price { value currency } } } } } } } ``` ### Store configuration ```graphql { storeConfig { store_code store_name base_currency_code locale weight_unit } } ``` ## BreezeAI Content Generation API Generate AI content for product or category fields. - [Content generation endpoint](https://www.opensports.com.ar/rest/V1/breezeai/generate): `POST`, admin Bearer token required (`Authorization: Bearer `), ACL resource `Swissup_BreezeAi::manage` ### Request body ```json { "entityType": "product", "entityId": 42, "skill": "generate", "options": { "prompt_id": 1 }, "history": [] } ``` | Field | Type | Values | Required | |--------------|----------|---------------------------------|----------| | `entityType` | string | `product`, `category` | yes | | `entityId` | int | Magento entity ID | yes | | `skill` | string | `generate`, `translate` | no | | `options` | object | `prompt_id`, `model_id`, `attribute` | no | | `history` | array | `[{role, content}, ...]` | no | ### Multi-turn chat Pass previous turns in `history` to continue a conversation: ```json { "entityType": "product", "entityId": 42, "skill": "generate", "options": {}, "history": [ {"role": "user", "content": "Write a product description"}, {"role": "assistant", "content": "Here is a draft..."}, {"role": "user", "content": "Make it shorter"} ] } ``` ### Response Plain text string containing the generated content. ## Notes - Catalog GraphQL: no auth, guest scope. This file documents read queries; the endpoint is the storefront API and also accepts guest mutations such as cart operations - BreezeAI REST: admin Bearer token, write operations - Supports OpenAI, Anthropic Claude, and Google Gemini providers - Prompt templates and AI models are configurable in Magento admin → Breeze AI