{"openapi":"3.1.0","info":{"title":"Nexvyra Product Registry API","version":"1.0.0","description":"Machine-readable German product data for AI agents.","contact":{"url":"https://nexvyra.de/"},"license":{"name":"CC-BY-4.0","url":"https://creativecommons.org/licenses/by/4.0/"}},"servers":[{"url":"https://product.nexvyra.de/api/v1","description":"Production"}],"components":{"schemas":{"Product":{"$ref":"https://product.nexvyra.de/schemas/product-v1.json"},"Problem":{"type":"object","properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"request_id":{"type":"string"}}}},"responses":{"NotFound":{"description":"Ressource nicht gefunden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"BadRequest":{"description":"Ungueltiger Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"paths":{"/":{"get":{"summary":"API-Root — Endpoints + Dataset-Statistik","operationId":"apiRoot","responses":{"200":{"description":"OK"}}}},"/products":{"get":{"summary":"Produktliste (paginated)","operationId":"listProducts","parameters":[{"name":"q","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Product list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Product"}},"pagination":{"type":"object"}}}}}}}}},"/products/{id}":{"get":{"summary":"Einzelnes Produkt (id-Format: marketplace:external_id, z.B. amazon_de:B0F9FWV61P)","operationId":"getProduct","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Product","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"404":{"$ref":"#/components/responses/NotFound"}}}},"/search":{"get":{"summary":"Volltext-Suche ueber title/brand/category/description","operationId":"searchProducts","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Search results"},"400":{"$ref":"#/components/responses/BadRequest"}}}},"/changes":{"get":{"summary":"Aenderungen seit Zeitpunkt (fuer inkrementelles Re-Crawling)","operationId":"listChanges","parameters":[{"name":"since","in":"query","schema":{"type":"string","format":"date-time"},"description":"ISO 8601 Timestamp. Default: -24h"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":100}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Change feed"},"400":{"$ref":"#/components/responses/BadRequest"}}}},"/categories":{"get":{"summary":"Kategorienliste","operationId":"listCategories","responses":{"200":{"description":"Categories"}}}},"/brands":{"get":{"summary":"Markenliste (Top 500 nach Produktzahl)","operationId":"listBrands","responses":{"200":{"description":"Brands"}}}}}}