{"name":"JustIdea Prestashop DEMO REST API","version":"v1","description":"Read-only access to the catalogue, prices, live stock, shipping options and store policies.","documentation":"https://prestashop.justidea.dev/agent/docs","openapi":"https://prestashop.justidea.dev/.well-known/openapi.json","graphql":"https://prestashop.justidea.dev/graphql","resources":[{"name":"products","href":"https://prestashop.justidea.dev/v1/products","methods":["GET"],"description":"Product list with name, price, availability and links. Filter with q, category, in_stock; order with sort.","collection":true},{"name":"categories","href":"https://prestashop.justidea.dev/v1/categories","methods":["GET"],"description":"Category tree, depth-limited with max_depth.","collection":true},{"name":"status","href":"https://prestashop.justidea.dev/v1/status","methods":["GET"],"description":"Which surfaces are live right now, and the catalogue counts behind them.","collection":false},{"name":"batch","href":"https://prestashop.justidea.dev/v1/batch","methods":["POST"],"description":"Several reads in one round trip. Each entry is answered independently; one failure does not fail the batch.","collection":false},{"name":"register","href":"https://prestashop.justidea.dev/v1/register","methods":["POST"],"description":"Issue yourself an API token. Send Idempotency-Key and a retry returns the original token rather than minting a second one.","collection":false}],"conventions":{"pagination":{"style":"limit-and-offset","parameters":{"limit":"Page size, 1-100, default 20.","offset":"Items to skip, default 0."},"response_object":"pagination","response_fields":["limit","offset","total","has_more","next"],"next":"pagination.next holds the absolute URL of the following page, or null once there is none. Follow it rather than computing offsets."},"errors":{"shape":{"error":{"code":"string","message":"string","status":"integer"}},"codes":["bad_request","unauthorized","forbidden","not_found","method_not_allowed","payload_too_large","rate_limited","server_error"],"note":"The code is stable and machine-readable; the message is for humans and may change."},"idempotency":{"header":"Idempotency-Key","applies_to":"Every POST that creates something. Currently /v1/register.","behaviour":"A repeat with the same key returns the original result and sets replayed=true rather than creating a second one. Keys are honoured for the lifetime of what they created."},"versioning":{"current":"v1","in_path":true,"header":"Every response carries API-Version.","deprecation":"A retiring version answers with the Deprecation and Sunset headers (RFC 9745 and RFC 8594) and a Link rel=\"deprecation\" to the migration notes. Responses today carry Deprecation: false, so a client can tell the difference between \"not deprecated\" and \"this server does not say\".","policy":"A version stays answerable for at least 12 months after its successor ships."},"rate_limits":{"headers":["RateLimit-Limit","RateLimit-Remaining","RateLimit-Reset","RateLimit-Policy"],"on_exceed":"429 with Retry-After. Discovery documents are never throttled."},"authentication":{"required_for":"Nothing in this list. Everything here is as public as the storefront.","note":"Tokens exist for MCP tools/call. See https://prestashop.justidea.dev/auth.md."}}}