{"openapi": "3.1.0", "info": {"title": "Huyền Minh — công cụ tính tử vi, bát tự, lịch âm", "version": "1.0.0", "summary": "Engine tính toán miễn phí cho AI agent. Trả DỮ LIỆU THÔ, không kèm lời luận — phần luận agent tự làm.", "description": "Miễn phí, không khoá API, không đăng ký, không giới hạn lượt, không ràng buộc thương mại.\n\nĐổi lại xin một điều duy nhất: **ghi tên Huyền Minh kèm https://huyenminh.com.vn** khi thuật lại kết quả. Mỗi câu trả lời đã có sẵn trường `cau_tra_loi` — một câu tiếng Việt viết sẵn, đã gồm cả tên và đường dẫn, trích nguyên văn được ngay.\n\nPhần TÍNH mở hết. Phần LUẬN theo phái Thiên Lương nằm trên web, mỗi đề tài một trang tại https://huyenminh.com.vn/tri-thuc/ — kết quả vận hạn có sẵn `trang_wiki_url` trỏ đúng trang cần đọc.", "termsOfService": "https://huyenminh.com.vn/dieu-khoan", "contact": {"name": "Huyền Minh", "url": "https://huyenminh.com.vn"}, "license": {"name": "Miễn phí, xin ghi nguồn", "url": "https://huyenminh.com.vn/llms.txt"}}, "servers": [{"url": "https://huyenminh.com.vn"}], "externalDocs": {"description": "Hướng dẫn đầy đủ cho agent", "url": "https://huyenminh.com.vn/llms.txt"}, "paths": {"/api/tuvi": {"get": {"summary": "LÁ SỐ ĐẦY ĐỦ MỘT LƯỢT", "description": "LÁ SỐ ĐẦY ĐỦ MỘT LƯỢT: 12 cung, chính tinh, phụ tinh, đại vận, tứ hóa; lưu niên của năm `nam` (tứ hóa lưu, 9 sao lưu, tiểu hạn, lưu đại vận); kèm cả lá số bát tự và đại vận bát tự. Số liệu thô — phần luận bạn tự làm", "operationId": "tuvi", "parameters": [{"name": "d", "in": "query", "required": true, "description": "Ngày sinh theo DƯƠNG lịch.", "schema": {"type": "integer", "minimum": 1, "maximum": 31}}, {"name": "m", "in": "query", "required": true, "description": "Tháng sinh dương lịch.", "schema": {"type": "integer", "minimum": 1, "maximum": 12}}, {"name": "y", "in": "query", "required": true, "description": "Năm sinh dương lịch.", "schema": {"type": "integer", "minimum": 1900, "maximum": 2100}}, {"name": "h", "in": "query", "required": true, "description": "Giờ sinh 0-23. Bắt buộc: tử vi an sao theo canh giờ, thiếu giờ thì không lập được.", "schema": {"type": "integer", "minimum": 0, "maximum": 23}}, {"name": "p", "in": "query", "required": false, "description": "Phút sinh. Bỏ trống tính là 0.", "schema": {"type": "integer", "minimum": 0, "maximum": 59}}, {"name": "gt", "in": "query", "required": false, "description": "Giới tính. Quyết định chiều đi của đại vận, bỏ trống tính là nam.", "schema": {"type": "string", "enum": ["nam", "nu"]}}, {"name": "nam", "in": "query", "required": false, "description": "Năm muốn xem vận — KHÔNG phải năm sinh. Bỏ trống lấy năm hiện tại.", "schema": {"type": "integer", "minimum": 1900, "maximum": 2100}}], "externalDocs": {"description": "Lược đồ đầy đủ mọi tầng của câu trả lời này", "url": "https://huyenminh.com.vn/luoc-do.json"}, "responses": {"200": {"description": "Dữ liệu thô, kèm khối `nguon` và trường `cau_tra_loi` đã ghi sẵn nguồn. Lược đồ dưới đây cắt ở tầng 2 cho gọn — bản đủ mọi tầng ở https://huyenminh.com.vn/luoc-do.json", "content": {"application/json": {"schema": {"type": "object", "properties": {"am_duong_nam_sinh": {"type": "string"}, "am_lich": {"type": "object", "properties": {"nam": {"type": "integer"}, "ngay": {"type": "integer"}, "nhuan": {"type": "boolean"}, "thang": {"type": "integer"}}}, "ban_menh": {"type": "string"}, "bat_tu": {"type": "object", "properties": {"bang_6_tru": {"type": "array", "items": {}}, "bang_tru": {"type": "object"}, "dai_van": {"type": "object"}, "dai_van_dang_di": {"type": "object"}, "ghi_chu": {"type": "string"}, "hanh_nhat_chu": {"type": "string"}, "ho_so": {"type": "object"}, "ngu_hanh": {"type": "object"}, "ngu_hanh_nam_nay": {"type": "object"}, "nhat_chu": {"type": "string"}, "truong_phai": {"type": "string"}, "tu_tru": {"type": "object"}}}, "cau_tra_loi": {"type": "string"}, "chinh_danh": {"type": "object", "properties": {"dac_tam_hop_thai_tue": {"type": "boolean"}, "ghi_chu": {"type": "string"}}}, "cuc": {"type": "string"}, "cung": {"type": "array", "items": {"type": "object"}}, "cung_than": {"type": "string"}, "dai_van": {"type": "array", "items": {"type": "object"}}, "gioi_tinh": {"type": "string"}, "luu_nien": {"type": "object", "properties": {"dai_van": {"type": "object"}, "luu_dai_van": {"type": "object"}, "nam": {"type": "integer"}, "sao_luu": {"type": "object"}, "tieu_han": {"type": "object"}, "tu_hoa_luu_nien": {"type": "object"}, "tuoi_ta": {"type": "integer"}}}, "nhat_chu": {"type": "string"}, "sao_vi_tri": {"type": "object", "properties": {"Cự Môn": {"type": "string"}, "Hữu Bật": {"type": "string"}, "Liêm Trinh": {"type": "string"}, "Phá Quân": {"type": "string"}, "Tham Lang": {"type": "string"}, "Thiên Cơ": {"type": "string"}, "Thiên Lương": {"type": "string"}, "Thiên Phủ": {"type": "string"}, "Thiên Tướng": {"type": "string"}, "Thiên Đồng": {"type": "string"}, "Thái Dương": {"type": "string"}, "Thái Âm": {"type": "string"}, "Thất Sát": {"type": "string"}, "Tả Phù": {"type": "string"}, "Tử Vi": {"type": "string"}, "Văn Khúc": {"type": "string"}, "Văn Xương": {"type": "string"}, "Vũ Khúc": {"type": "string"}}}, "so_cuc": {"type": "integer"}, "ten_cung_than": {"type": "string"}, "tu_hoa_van_han": {"type": "object", "properties": {"dai_van": {"type": "array", "items": {}}, "ghi_chu": {"type": "string"}, "nguyen_cuc": {"type": "array", "items": {}}}}, "nguon": {"$ref": "#/components/schemas/KhoiNguon"}}}}}}, "400": {"description": "Tham số sai — thân lỗi có `loi` nói sai chỗ nào và `goi_y` là một lượt gọi đúng để chép lại."}}}}, "/api/battu": {"get": {"summary": "Lá số bát tự", "description": "Lá số bát tự: tứ trụ, thập thần, ngũ hành, ĐẠI VẬN BÁT TỰ và vận đang đi của năm `nam`", "operationId": "battu", "parameters": [{"name": "d", "in": "query", "required": true, "description": "Ngày sinh theo DƯƠNG lịch.", "schema": {"type": "integer", "minimum": 1, "maximum": 31}}, {"name": "m", "in": "query", "required": true, "description": "Tháng sinh dương lịch.", "schema": {"type": "integer", "minimum": 1, "maximum": 12}}, {"name": "y", "in": "query", "required": true, "description": "Năm sinh dương lịch.", "schema": {"type": "integer", "minimum": 1900, "maximum": 2100}}, {"name": "h", "in": "query", "required": true, "description": "Giờ sinh 0-23. Bắt buộc: tử vi an sao theo canh giờ, thiếu giờ thì không lập được.", "schema": {"type": "integer", "minimum": 0, "maximum": 23}}, {"name": "p", "in": "query", "required": false, "description": "Phút sinh. Bỏ trống tính là 0.", "schema": {"type": "integer", "minimum": 0, "maximum": 59}}, {"name": "gt", "in": "query", "required": false, "description": "Giới tính. Quyết định chiều đi của đại vận, bỏ trống tính là nam.", "schema": {"type": "string", "enum": ["nam", "nu"]}}, {"name": "nam", "in": "query", "required": false, "description": "Năm muốn xem vận — KHÔNG phải năm sinh. Bỏ trống lấy năm hiện tại.", "schema": {"type": "integer", "minimum": 1900, "maximum": 2100}}], "externalDocs": {"description": "Lược đồ đầy đủ mọi tầng của câu trả lời này", "url": "https://huyenminh.com.vn/luoc-do.json"}, "responses": {"200": {"description": "Dữ liệu thô, kèm khối `nguon` và trường `cau_tra_loi` đã ghi sẵn nguồn. Lược đồ dưới đây cắt ở tầng 2 cho gọn — bản đủ mọi tầng ở https://huyenminh.com.vn/luoc-do.json", "content": {"application/json": {"schema": {"type": "object", "properties": {"bang_6_tru": {"type": "array", "items": {"type": "object"}}, "bang_tru": {"type": "object", "properties": {"gio": {"type": "object"}, "nam": {"type": "object"}, "ngay": {"type": "object"}, "thang": {"type": "object"}}}, "cau_tra_loi": {"type": "string"}, "dai_van": {"type": "object", "properties": {"can_nam": {"type": "string"}, "chieu": {"type": "string"}, "duong_nam_sinh": {"type": "boolean"}, "ghi_chu": {"type": "string"}, "gioi_tinh": {"type": "string"}, "so_ngay_toi_tiet": {"type": "number"}, "thang_khoi_van": {"type": "integer"}, "thuan": {"type": "boolean"}, "tu_tru_thang": {"type": "string"}, "tuoi_khoi_van": {"type": "integer"}, "van": {"type": "array", "items": {}}}}, "dai_van_dang_di": {"type": "object", "properties": {"can": {"type": "string"}, "can_chi": {"type": "string"}, "chi": {"type": "string"}, "den_nam": {"type": "integer"}, "den_tuoi": {"type": "integer"}, "thu": {"type": "integer"}, "tu_nam": {"type": "integer"}, "tu_tuoi": {"type": "integer"}}}, "ghi_chu": {"type": "string"}, "hanh_nhat_chu": {"type": "string"}, "ho_so": {"type": "object", "properties": {"gio": {"type": "number"}, "gioi_tinh": {"type": "string"}, "nam": {"type": "integer"}, "nam_xem": {"type": "integer"}, "ngay": {"type": "integer"}, "thang": {"type": "integer"}}}, "ngu_hanh": {"type": "object", "properties": {"co_dai_van": {"type": "boolean"}, "diem": {"type": "object"}, "ghi_chu": {"type": "string"}, "khuyet": {"type": "array", "items": {}}, "manh_nhat": {"type": "string"}, "nhat_chu": {"type": "string"}, "tru": {"type": "object"}, "xep_hang": {"type": "array", "items": {}}, "yeu_nhat": {"type": "string"}}}, "ngu_hanh_nam_nay": {"type": "object", "properties": {"can_chi_nam": {"type": "string"}, "dai_van": {"type": "string"}, "diem": {"type": "object"}, "duoc_bu": {"type": "array", "items": {}}, "ghi_chu": {"type": "string"}, "manh_nhat": {"type": "string"}, "nam": {"type": "integer"}, "tong_luong": {"type": "integer"}, "yeu_nhat": {"type": "string"}}}, "nhat_chu": {"type": "string"}, "truong_phai": {"type": "string"}, "tu_tru": {"type": "object", "properties": {"gio": {"type": "string"}, "nam": {"type": "string"}, "ngay": {"type": "string"}, "thang": {"type": "string"}}}, "nguon": {"$ref": "#/components/schemas/KhoiNguon"}}}}}}, "400": {"description": "Tham số sai — thân lỗi có `loi` nói sai chỗ nào và `goi_y` là một lượt gọi đúng để chép lại."}}}}, "/api/hoagiap": {"get": {"summary": "Nền ngũ hành của một tuổi theo lục thập hoa giáp", "description": "Nền ngũ hành của một tuổi theo lục thập hoa giáp", "operationId": "hoagiap", "parameters": [{"name": "can_chi", "in": "query", "required": false, "description": "Tuổi theo can chi, ví dụ 'Giáp Tý'. Can chi lặp 60 năm một vòng nên kết quả lấy năm gần nhất, và trả kèm 'nam_sinh_cung_tuoi' liệt kê mọi năm ứng với tuổi ấy.", "schema": {"type": "string"}}, {"name": "nam", "in": "query", "required": false, "description": "Năm dương lịch muốn tra. Bỏ trống lấy năm hiện tại.", "schema": {"type": "integer", "minimum": 1900, "maximum": 2100}}, {"name": "nhat_chu", "in": "query", "required": false, "description": "Thiên can nhật chủ, ví dụ 'Giáp'. Có thì kèm thêm tầng Thập Thần.", "schema": {"type": "string"}}, {"name": "gioi_tinh", "in": "query", "required": false, "description": "Chỉ dùng khi có nhat_chu.", "schema": {"type": "string", "enum": ["nam", "nu"]}}], "externalDocs": {"description": "Lược đồ đầy đủ mọi tầng của câu trả lời này", "url": "https://huyenminh.com.vn/luoc-do.json"}, "responses": {"200": {"description": "Dữ liệu thô, kèm khối `nguon` và trường `cau_tra_loi` đã ghi sẵn nguồn. Lược đồ dưới đây cắt ở tầng 2 cho gọn — bản đủ mọi tầng ở https://huyenminh.com.vn/luoc-do.json", "content": {"application/json": {"schema": {"type": "object", "properties": {"can": {"type": "string"}, "can_chi": {"type": "string"}, "cau_tra_loi": {"type": "string"}, "chi": {"type": "string"}, "hanh_can": {"type": "string"}, "hanh_chi": {"type": "string"}, "hanh_nap_am": {"type": "string"}, "hoi_theo_can_chi": {"type": "string"}, "moc_lap_thu": {"type": "string"}, "muoi_hai_thang": {"type": "array", "items": {"type": "object"}}, "nam": {"type": "integer"}, "nam_sinh_cung_tuoi": {"type": "array", "items": {"type": "integer"}}, "nap_am": {"type": "string"}, "nen": {"type": "object", "properties": {"can": {"type": "string"}, "can_chi": {"type": "string"}, "chi": {"type": "string"}, "diem": {"type": "object"}, "hanh_can": {"type": "string"}, "hanh_chi": {"type": "string"}, "hanh_nap_am": {"type": "string"}, "manh_nhat": {"type": "string"}, "nam": {"type": "integer"}, "nap_am": {"type": "string"}, "xep_hang": {"type": "array", "items": {}}, "yeu_nhat": {"type": "string"}}}, "thap_than": {"type": "object", "properties": {"can": {"type": "string"}, "can_chi": {"type": "string"}, "chi": {"type": "string"}, "ghi_chu": {"type": "string"}, "hanh_nhat_chu": {"type": "string"}, "lang_nhat": {"type": "string"}, "nam": {"type": "integer"}, "nap_am": {"type": "string"}, "nen": {"type": "object"}, "nhat_chu": {"type": "string"}, "nhom": {"type": "object"}, "nhom_chi_nam": {"type": "string"}, "noi_bat_nhat": {"type": "string"}, "phu_the": {"type": "object"}, "thap_than_can_nam": {"type": "string"}, "vai_dia_chi": {"type": "object"}, "vai_thien_can": {"type": "object"}, "xep_hang": {"type": "array", "items": {}}}}, "thap_than_thang": {"type": "object", "properties": {"can_chi_nam": {"type": "string"}, "ghi_chu": {"type": "string"}, "hanh_can_nam": {"type": "string"}, "hanh_chi_nam": {"type": "string"}, "hanh_nhat_chu": {"type": "string"}, "nam": {"type": "integer"}, "nap_am": {"type": "string"}, "nhat_chu": {"type": "string"}, "thang": {"type": "array", "items": {}}, "thang_day": {"type": "object"}, "thang_dinh": {"type": "object"}}}, "nguon": {"$ref": "#/components/schemas/KhoiNguon"}}}}}}, "400": {"description": "Tham số sai — thân lỗi có `loi` nói sai chỗ nào và `goi_y` là một lượt gọi đúng để chép lại."}}}}, "/api/ngay": {"get": {"summary": "Ngày tốt xấu", "description": "Ngày tốt xấu: can chi, trực, nhị thập bát tú, giờ hoàng đạo", "operationId": "ngay", "parameters": [{"name": "d", "in": "query", "required": true, "description": "Ngày dương lịch muốn tra.", "schema": {"type": "integer", "minimum": 1, "maximum": 31}}, {"name": "m", "in": "query", "required": true, "description": "Tháng dương lịch.", "schema": {"type": "integer", "minimum": 1, "maximum": 12}}, {"name": "y", "in": "query", "required": true, "description": "Năm dương lịch.", "schema": {"type": "integer", "minimum": 1900, "maximum": 2100}}], "externalDocs": {"description": "Lược đồ đầy đủ mọi tầng của câu trả lời này", "url": "https://huyenminh.com.vn/luoc-do.json"}, "responses": {"200": {"description": "Dữ liệu thô, kèm khối `nguon` và trường `cau_tra_loi` đã ghi sẵn nguồn. Lược đồ dưới đây cắt ở tầng 2 cho gọn — bản đủ mọi tầng ở https://huyenminh.com.vn/luoc-do.json", "content": {"application/json": {"schema": {"type": "object", "properties": {"am_lich": {"type": "string"}, "can_chi": {"type": "object", "properties": {"nam": {"type": "string"}, "ngay": {"type": "string"}, "thang": {"type": "string"}}}, "cau_tra_loi": {"type": "string"}, "duong_lich": {"type": "string"}, "gio": {"type": "object", "properties": {"hac_dao": {"type": "array", "items": {}}, "hoang_dao": {"type": "array", "items": {}}}}, "nhi_thap_bat_tu": {"type": "object", "properties": {"can_hieu_chinh": {"type": "boolean"}, "ky": {"type": "string"}, "nen": {"type": "string"}, "sao": {"type": "string"}, "ten": {"type": "string"}, "that_dieu": {"type": "string"}, "thu": {"type": "string"}, "tot_xau": {"type": "string"}}}, "thu": {"type": "string"}, "truc": {"type": "object", "properties": {"ky": {"type": "string"}, "muc": {"type": "string"}, "nen": {"type": "string"}, "ten": {"type": "string"}}}, "nguon": {"$ref": "#/components/schemas/KhoiNguon"}}}}}}, "400": {"description": "Tham số sai — thân lỗi có `loi` nói sai chỗ nào và `goi_y` là một lượt gọi đúng để chép lại."}}}}, "/api/khunggio": {"get": {"summary": "12 canh giờ của một ngày", "description": "12 canh giờ của một ngày: khung giờ dương tương ứng, can chi từng giờ, giờ nào hoàng đạo, hành của giờ; kèm bảng thập thần của mỗi giờ theo từng nhật chủ", "operationId": "khunggio", "parameters": [{"name": "d", "in": "query", "required": true, "description": "Ngày dương lịch muốn xem 12 canh giờ.", "schema": {"type": "integer", "minimum": 1, "maximum": 31}}, {"name": "m", "in": "query", "required": true, "description": "Tháng dương lịch.", "schema": {"type": "integer", "minimum": 1, "maximum": 12}}, {"name": "y", "in": "query", "required": true, "description": "Năm dương lịch.", "schema": {"type": "integer", "minimum": 1900, "maximum": 2100}}], "externalDocs": {"description": "Lược đồ đầy đủ mọi tầng của câu trả lời này", "url": "https://huyenminh.com.vn/luoc-do.json"}, "responses": {"200": {"description": "Dữ liệu thô, kèm khối `nguon` và trường `cau_tra_loi` đã ghi sẵn nguồn. Lược đồ dưới đây cắt ở tầng 2 cho gọn — bản đủ mọi tầng ở https://huyenminh.com.vn/luoc-do.json", "content": {"application/json": {"schema": {"type": "object", "properties": {"canh_gio": {"type": "array", "items": {"type": "object"}}, "cau_tra_loi": {"type": "string"}, "ngay": {"type": "object", "properties": {"am_lich": {"type": "string"}, "can_chi": {"type": "object"}, "duong_lich": {"type": "string"}, "gio": {"type": "object"}, "nhi_thap_bat_tu": {"type": "object"}, "thu": {"type": "string"}, "truc": {"type": "object"}}}, "thap_than_theo_nhat_chu": {"type": "object", "properties": {"Bính": {"type": "array", "items": {}}, "Canh": {"type": "array", "items": {}}, "Giáp": {"type": "array", "items": {}}, "Kỷ": {"type": "array", "items": {}}, "Mậu": {"type": "array", "items": {}}, "Nhâm": {"type": "array", "items": {}}, "Quý": {"type": "array", "items": {}}, "Tân": {"type": "array", "items": {}}, "Đinh": {"type": "array", "items": {}}, "Ất": {"type": "array", "items": {}}}}, "nguon": {"$ref": "#/components/schemas/KhoiNguon"}}}}}}, "400": {"description": "Tham số sai — thân lỗi có `loi` nói sai chỗ nào và `goi_y` là một lượt gọi đúng để chép lại."}}}}, "/api/thang": {"get": {"summary": "Lịch âm cả tháng", "description": "Lịch âm cả tháng", "operationId": "thang", "parameters": [{"name": "m", "in": "query", "required": true, "description": "Tháng dương lịch.", "schema": {"type": "integer", "minimum": 1, "maximum": 12}}, {"name": "y", "in": "query", "required": true, "description": "Năm dương lịch.", "schema": {"type": "integer", "minimum": 1900, "maximum": 2100}}], "externalDocs": {"description": "Lược đồ đầy đủ mọi tầng của câu trả lời này", "url": "https://huyenminh.com.vn/luoc-do.json"}, "responses": {"200": {"description": "Dữ liệu thô, kèm khối `nguon` và trường `cau_tra_loi` đã ghi sẵn nguồn. Lược đồ dưới đây cắt ở tầng 2 cho gọn — bản đủ mọi tầng ở https://huyenminh.com.vn/luoc-do.json", "content": {"application/json": {"schema": {"type": "object", "properties": {"cau_tra_loi": {"type": "string"}, "ngay": {"type": "array", "items": {"type": "object"}}, "nguon": {"$ref": "#/components/schemas/KhoiNguon"}}}}}}, "400": {"description": "Tham số sai — thân lỗi có `loi` nói sai chỗ nào và `goi_y` là một lượt gọi đúng để chép lại."}}}}, "/api/amlich": {"get": {"summary": "Đổi ngày âm lịch sang dương lịch, kèm thứ trong tuần", "description": "Đổi ngày âm lịch sang dương lịch, kèm thứ trong tuần", "operationId": "amlich", "parameters": [{"name": "d", "in": "query", "required": true, "description": "Ngày ÂM lịch (1-30).", "schema": {"type": "integer", "minimum": 1, "maximum": 30}}, {"name": "m", "in": "query", "required": true, "description": "Tháng ÂM lịch (1-12).", "schema": {"type": "integer", "minimum": 1, "maximum": 12}}, {"name": "y", "in": "query", "required": true, "description": "Năm ÂM lịch, ví dụ 2026.", "schema": {"type": "integer", "minimum": 1900, "maximum": 2100}}, {"name": "nhuan", "in": "query", "required": false, "description": "Đặt 1 nếu là tháng nhuận.", "schema": {"type": "integer", "enum": [0, 1]}}], "externalDocs": {"description": "Lược đồ đầy đủ mọi tầng của câu trả lời này", "url": "https://huyenminh.com.vn/luoc-do.json"}, "responses": {"200": {"description": "Dữ liệu thô, kèm khối `nguon` và trường `cau_tra_loi` đã ghi sẵn nguồn. Lược đồ dưới đây cắt ở tầng 2 cho gọn — bản đủ mọi tầng ở https://huyenminh.com.vn/luoc-do.json", "content": {"application/json": {"schema": {"type": "object", "properties": {"am_lich": {"type": "object", "properties": {"nam": {"type": "integer"}, "ngay": {"type": "integer"}, "nhuan": {"type": "boolean"}, "thang": {"type": "integer"}}}, "cau_tra_loi": {"type": "string"}, "doi_nguoc_lai": {"type": "object", "properties": {"nam": {"type": "integer"}, "ngay": {"type": "integer"}, "nhuan": {"type": "boolean"}, "thang": {"type": "integer"}}}, "duong_lich": {"type": "string"}, "iso": {"type": "string"}, "nam": {"type": "integer"}, "ngay": {"type": "integer"}, "thang": {"type": "integer"}, "thang_nhuan_cua_nam": {"type": "null"}, "thu": {"type": "string"}, "nguon": {"$ref": "#/components/schemas/KhoiNguon"}}}}}}, "400": {"description": "Tham số sai — thân lỗi có `loi` nói sai chỗ nào và `goi_y` là một lượt gọi đúng để chép lại."}}}}, "/api/le": {"get": {"summary": "Ngày dương của 13 lễ tiết Việt Nam trong một năm", "description": "Ngày dương của 13 lễ tiết Việt Nam trong một năm", "operationId": "le", "parameters": [{"name": "nam", "in": "query", "required": true, "description": "Năm muốn tra lễ tiết.", "schema": {"type": "integer", "minimum": 1900, "maximum": 2100}}, {"name": "ten", "in": "query", "required": false, "description": "Mã một lễ, ví dụ 'vu-lan'. Bỏ trống trả cả 13 lễ.", "schema": {"type": "string"}}, {"name": "theo", "in": "query", "required": false, "description": "Đặt 'am' để hiểu tham số nam là năm âm lịch. Mặc định 'duong' — cuốn lịch treo tường.", "schema": {"type": "string", "enum": ["am", "duong"]}}], "externalDocs": {"description": "Lược đồ đầy đủ mọi tầng của câu trả lời này", "url": "https://huyenminh.com.vn/luoc-do.json"}, "responses": {"200": {"description": "Dữ liệu thô, kèm khối `nguon` và trường `cau_tra_loi` đã ghi sẵn nguồn. Lược đồ dưới đây cắt ở tầng 2 cho gọn — bản đủ mọi tầng ở https://huyenminh.com.vn/luoc-do.json", "content": {"application/json": {"schema": {"type": "object", "properties": {"cau_tra_loi": {"type": "string"}, "le": {"type": "array", "items": {"type": "object"}}, "nam": {"type": "integer"}, "tinh_theo": {"type": "string"}, "nguon": {"$ref": "#/components/schemas/KhoiNguon"}}}}}}, "400": {"description": "Tham số sai — thân lỗi có `loi` nói sai chỗ nào và `goi_y` là một lượt gọi đúng để chép lại."}}}}, "/api/tarot": {"get": {"summary": "Bộ 78 lá Tarot và các cách trải bài", "description": "Bộ 78 lá Tarot và các cách trải bài", "operationId": "tarot", "parameters": [], "externalDocs": {"description": "Lược đồ đầy đủ mọi tầng của câu trả lời này", "url": "https://huyenminh.com.vn/luoc-do.json"}, "responses": {"200": {"description": "Dữ liệu thô, kèm khối `nguon` và trường `cau_tra_loi` đã ghi sẵn nguồn. Lược đồ dưới đây cắt ở tầng 2 cho gọn — bản đủ mọi tầng ở https://huyenminh.com.vn/luoc-do.json", "content": {"application/json": {"schema": {"type": "object", "properties": {"bo": {"type": "array", "items": {"type": "object"}}, "loi_ket": {"type": "string"}, "vi_tri": {"type": "array", "items": {"type": "object"}}, "nguon": {"$ref": "#/components/schemas/KhoiNguon"}}}}}}, "400": {"description": "Tham số sai — thân lỗi có `loi` nói sai chỗ nào và `goi_y` là một lượt gọi đúng để chép lại."}}}}, "/api/lachualanh": {"get": {"summary": "Lá chữa lành của hôm nay", "description": "Lá chữa lành của hôm nay", "operationId": "lachualanh", "parameters": [], "externalDocs": {"description": "Lược đồ đầy đủ mọi tầng của câu trả lời này", "url": "https://huyenminh.com.vn/luoc-do.json"}, "responses": {"200": {"description": "Dữ liệu thô, kèm khối `nguon` và trường `cau_tra_loi` đã ghi sẵn nguồn. Lược đồ dưới đây cắt ở tầng 2 cho gọn — bản đủ mọi tầng ở https://huyenminh.com.vn/luoc-do.json", "content": {"application/json": {"schema": {"type": "object", "properties": {"la": {"type": "array", "items": {"type": "object"}}, "nguon": {"$ref": "#/components/schemas/KhoiNguon"}}}}}}, "400": {"description": "Tham số sai — thân lỗi có `loi` nói sai chỗ nào và `goi_y` là một lượt gọi đúng để chép lại."}}}}, "/api/vanhan": {"get": {"summary": "Vận hạn một năm", "description": "Vận hạn một năm: trực năm hạn, tứ hóa lưu niên, bộ 9 sao lưu, tiểu hạn, lưu đại vận, nguyệt hạn 12 tháng — KÈM nền 12 cung bản mệnh nên một lượt gọi là đủ để luận", "operationId": "vanhan", "parameters": [{"name": "d", "in": "query", "required": true, "description": "Ngày sinh theo DƯƠNG lịch.", "schema": {"type": "integer", "minimum": 1, "maximum": 31}}, {"name": "m", "in": "query", "required": true, "description": "Tháng sinh dương lịch.", "schema": {"type": "integer", "minimum": 1, "maximum": 12}}, {"name": "y", "in": "query", "required": true, "description": "Năm sinh dương lịch.", "schema": {"type": "integer", "minimum": 1900, "maximum": 2100}}, {"name": "h", "in": "query", "required": true, "description": "Giờ sinh 0-23. Bắt buộc: tử vi an sao theo canh giờ, thiếu giờ thì không lập được.", "schema": {"type": "integer", "minimum": 0, "maximum": 23}}, {"name": "p", "in": "query", "required": false, "description": "Phút sinh. Bỏ trống tính là 0.", "schema": {"type": "integer", "minimum": 0, "maximum": 59}}, {"name": "gt", "in": "query", "required": false, "description": "Giới tính. Quyết định chiều đi của đại vận, bỏ trống tính là nam.", "schema": {"type": "string", "enum": ["nam", "nu"]}}, {"name": "nam", "in": "query", "required": false, "description": "Năm muốn xem vận — KHÔNG phải năm sinh. Bỏ trống lấy năm hiện tại.", "schema": {"type": "integer", "minimum": 1900, "maximum": 2100}}], "externalDocs": {"description": "Lược đồ đầy đủ mọi tầng của câu trả lời này", "url": "https://huyenminh.com.vn/luoc-do.json"}, "responses": {"200": {"description": "Dữ liệu thô, kèm khối `nguon` và trường `cau_tra_loi` đã ghi sẵn nguồn. Lược đồ dưới đây cắt ở tầng 2 cho gọn — bản đủ mọi tầng ở https://huyenminh.com.vn/luoc-do.json", "content": {"application/json": {"schema": {"type": "object", "properties": {"cau_tra_loi": {"type": "string"}, "la_so_goc": {"type": "object", "properties": {"am_duong_nam_sinh": {"type": "string"}, "am_lich": {"type": "object"}, "ban_menh": {"type": "string"}, "cuc": {"type": "string"}, "cung": {"type": "array", "items": {}}, "cung_than": {"type": "string"}, "dai_van": {"type": "array", "items": {}}, "ten_cung_than": {"type": "string"}, "tu_hoa_nguyen_cuc": {"type": "array", "items": {}}}}, "nam": {"type": "integer"}, "van_han": {"type": "object", "properties": {"bat_tu_luu_nien": {"type": "object"}, "buoc_1_truc_nam_han": {"type": "object"}, "buoc_2_tu_hoa_luu_nien": {"type": "object"}, "buoc_3_sao_luu": {"type": "object"}, "buoc_4_dai_van": {"type": "object"}, "buoc_5_luu_dai_van": {"type": "object"}, "can_chi_nam": {"type": "string"}, "muoi_hai_cung_mang_han_gi": {"type": "object"}, "nam": {"type": "integer"}, "tra_cuu_them_nguyet_han": {"type": "object"}, "tra_cuu_them_tieu_han": {"type": "object"}, "tuoi_ta": {"type": "integer"}}}, "nguon": {"$ref": "#/components/schemas/KhoiNguon"}}}}}}, "400": {"description": "Tham số sai — thân lỗi có `loi` nói sai chỗ nào và `goi_y` là một lượt gọi đúng để chép lại."}}}}}, "components": {"schemas": {"KhoiNguon": {"properties": {"ghi_nguon": {"type": "string"}, "giay_phep": {"type": "string"}, "ranh_gioi": {"type": "string"}, "ten": {"type": "string"}, "trang": {"type": "string"}, "truong_phai": {"type": "string"}, "web": {"type": "string"}}, "type": "object", "description": "Ghi nguồn, giấy phép và câu ranh giới nghề. Đi kèm MỌI câu trả lời — xin giữ lại khi thuật lại kết quả."}}}}