{"data":{"name":"Thien Furniture - Public Read-Only API","version":"1.1.0","description":"Public, read-only, unauthenticated JSON API for tubepthien.vn (Tủ Bếp Thiên). It exposes only content that is already public on the website: legal-entity details, published products and product categories, published posts/services/projects, and the Owner-approved reference price list. GET only; no API key; 60 requests per minute per IP.","endpoints":[{"method":"GET","path":"/api/v1/","operationId":"get_api_index","description":"This self-describing index."},{"method":"GET","path":"/api/v1/company","operationId":"get_company","description":"Public legal entity: legal name, tax code, hotline, email, addresses, official Facebook pages."},{"method":"GET","path":"/api/v1/products","operationId":"list_products","description":"Published products. Query: limit (<=50, default 20), offset, category."},{"method":"GET","path":"/api/v1/products/{slug}","operationId":"get_product","description":"One product by its public slug (404 JSON when unknown)."},{"method":"GET","path":"/api/v1/categories","operationId":"list_categories","description":"Published product categories."},{"method":"GET","path":"/api/v1/posts","operationId":"list_posts","description":"Published articles, services and projects. Query: limit (<=50, default 20), offset."},{"method":"GET","path":"/api/v1/pricing","operationId":"get_pricing","description":"Owner-approved reference price list, mirroring /pricing.md."}],"spec":"https://tubepthien.vn/openapi.json","auth":"https://tubepthien.vn/auth.md","docs":"https://tubepthien.vn/docs/","rate_limit":"60 requests per minute per IP address; IETF RateLimit-* headers on every response, Retry-After on 429","rate_limit_headers":["RateLimit","RateLimit-Limit","RateLimit-Remaining","RateLimit-Reset","RateLimit-Policy"],"pagination":"offset (?limit=&offset=) and cursor (?limit=&cursor=) paging; pass meta.next_cursor back as ?cursor= until meta.has_more is false","versioning":"URL path versioning (/api/v1). Breaking changes require a new major path. Deprecation: 90 days notice, RFC 9745 Deprecation + RFC 8594 Sunset headers; policy at https://tubepthien.vn/deprecation-policy.md","error_model":"one typed error object for every 4xx/5xx: { error: { code, message, status, documentation, request_id } }","catalog":"https://tubepthien.vn/.well-known/api-catalog","protected_resource_metadata":"https://tubepthien.vn/.well-known/oauth-protected-resource","deprecation_policy":"https://tubepthien.vn/deprecation-policy.md"}}