{"openapi":"3.1.0","info":{"title":"Roliki Public Catalog and Agent Registration API","version":"1.3.0","description":"Публичные товары и материалы федерации на румынском и русском. Для русского языка передавайте language=ru. Регистрация агента необязательна и не дает доступа к заказам или данным клиентов."},"servers":[{"url":"https://roliki.md/wp-json/roliki-ai/v1"}],"security":[],"paths":{"/products":{"get":{"operationId":"search_products","summary":"Поиск товаров: цены MDL, варианты, размеры и наличие.","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"category","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"brand","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"language","in":"query","required":false,"schema":{"type":"string","maxLength":2,"enum":["ro","ru"],"default":"ro","description":"Content language: ro (Romanian, default) or ru (Russian). Use language=ru and returned Russian category slugs and canonical URLs."},"description":"Язык данных: ro по умолчанию; укажите ru для русского каталога.","example":"ru"}],"responses":{"200":{"description":"Public catalog or site data","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters"},"404":{"description":"Published product not found"}}}},"/products/{id}":{"get":{"operationId":"get_product","summary":"Описание товара и точных вариантов по выбранному языку.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}},{"name":"language","in":"query","required":false,"schema":{"type":"string","maxLength":2,"enum":["ro","ru"],"default":"ro","description":"Content language: ro (Romanian, default) or ru (Russian). Use language=ru and returned Russian category slugs and canonical URLs."},"description":"Язык данных: ro по умолчанию; укажите ru для русского каталога.","example":"ru"}],"responses":{"200":{"description":"Public catalog or site data","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters"},"404":{"description":"Published product not found"}}}},"/content":{"get":{"operationId":"search_site","summary":"Поиск страниц федерации, новостей, тренеров и ответов на вопросы.","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"language","in":"query","required":false,"schema":{"type":"string","maxLength":2,"enum":["ro","ru"],"default":"ro","description":"Content language: ro (Romanian, default) or ru (Russian). Use language=ru and returned Russian category slugs and canonical URLs."},"description":"Язык данных: ro по умолчанию; укажите ru для русского каталога.","example":"ru"}],"responses":{"200":{"description":"Public catalog or site data","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters"},"404":{"description":"Published product not found"}}}},"/categories":{"get":{"operationId":"list_categories","summary":"Категории и бренды с локализованными адресами.","parameters":[{"name":"language","in":"query","required":false,"schema":{"type":"string","maxLength":2,"enum":["ro","ru"],"default":"ro","description":"Content language: ro (Romanian, default) or ru (Russian). Use language=ru and returned Russian category slugs and canonical URLs."},"description":"Язык данных: ro по умолчанию; укажите ru для русского каталога.","example":"ru"}],"responses":{"200":{"description":"Public catalog or site data","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters"},"404":{"description":"Published product not found"}}}},"/health":{"get":{"operationId":"health","summary":"Read service status","responses":{"200":{"description":"Service status"}}}},"/agents/register":{"post":{"operationId":"register_agent","summary":"Provision an anonymous agent credential for public catalog research. Creates an expiring registration; does not create a customer or WordPress account.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","method"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":80},"method":{"type":"string","enum":["anonymous"]}}}}}},"responses":{"201":{"description":"Bearer credential issued once, valid for 24 hours","content":{"application/json":{"schema":{"type":"object","required":["agent_id","access_token","token_type","expires_in","scope"],"properties":{"agent_id":{"type":"string"},"access_token":{"type":"string"},"token_type":{"type":"string","const":"Bearer"},"expires_in":{"type":"integer"},"scope":{"type":"string"}}}}}},"400":{"description":"Invalid registration"},"413":{"description":"Body exceeds 8 KiB"},"429":{"description":"Registration rate limit reached"},"503":{"description":"Retry later"}}}},"/agents/me":{"get":{"operationId":"get_agent_registration","summary":"Read the registration belonging to the supplied agent token","security":[{"agentToken":[]}],"responses":{"200":{"description":"Own registration, scopes and expiry; never returns the token"},"401":{"description":"Missing, expired, revoked or invalid token"}}}},"/agents/revoke":{"post":{"operationId":"revoke_agent_registration","summary":"Revoke the supplied agent token","security":[{"agentToken":[]}],"responses":{"200":{"description":"Credential revoked"},"401":{"description":"Missing, expired, revoked or invalid token"}}}}},"components":{"securitySchemes":{"agentToken":{"type":"http","scheme":"bearer","description":"Opaque credential issued by POST /agent/auth or /agents/register. Scopes: catalog:read content:read. Not a WordPress login or customer identity."}}}}
