API văn bản pháp luật

Phần mềm của bạn cần biết một văn bản còn hiệu lực không, ai ban hành, ban hành ngày nào — hay cần danh sách thông tư mới của một bộ để nhắc người dùng? API văn bản pháp luật trả những thông tin đó dưới dạng JSON, gọi thẳng từ hệ thống của bạn.

Dùng được cho: gắn căn cứ pháp lý vào hợp đồng, quy trình, hồ sơ; kiểm tra tình trạng hiệu lực của các văn bản đang viện dẫn; dựng màn hình tra cứu văn bản trong phần mềm nội bộ; theo dõi văn bản mới theo lĩnh vực.

Hai endpoint chính

EndpointViệc nó làm
GET /v1/legal-documentsTìm và lọc văn bản, trả danh sách có phân trang.
GET /v1/legal-documents/{id}Lấy chi tiết một văn bản theo id nhận từ danh sách.

Ví dụ: tìm văn bản có tên "Luật Đất đai"

Lệnh gọi (thay dlpl_live_xxx bằng key của bạn)
curl -s "https://api.dulieuphapluat.vn/v1/legal-documents?q=Lu%E1%BA%ADt%20%C4%90%E1%BA%A5t%20%C4%91ai&search_in=name&per_page=2" \
  -H "Authorization: Bearer dlpl_live_xxx"
Dạng kết quả trả về
{
    "success": true,
    "data": [
        {
            "id": "…",
            "code": "…",
            "name": "…",
            "database": "…",
            "type": "…",
            "field": "…",
            "agency": "…",
            "status": "…",
            "issued_date": "…",
            "effective_date": "…",
            "expired_date": "…",
            "source_url": "…"
        }
    ],
    "meta": {
        "page": 1,
        "per_page": 2,
        "has_more": true
    }
}

Lấy chi tiết văn bản đầu tiên

Lệnh gọi (thay dlpl_live_xxx bằng key của bạn)
curl -s "https://api.dulieuphapluat.vn/v1/legal-documents/{id}" \
  -H "Authorization: Bearer dlpl_live_xxx"
Dạng kết quả trả về
{
    "success": true,
    "data": [
        {
            "id": "…",
            "code": "…",
            "name": "…",
            "status": "…",
            "issued_date": "…",
            "effective_date": "…",
            "has_word_file": "…",
            "has_pdf_file": "…",
            "content_preview": "…"
        }
    ],
    "meta": {
        "page": 1,
        "per_page": 2,
        "has_more": true
    }
}

Tham số tìm kiếm chính

Phải có ít nhất một trong các tham số q, type_id, field_id, agency_id, status_id, issued_from, issued_to.

Tham sốÝ nghĩa
qTừ khoá tìm kiếm.
search_inname (mặc định) tìm trong tên văn bản; code tìm theo số hiệu.
databaseKho dữ liệu: vbqppl (văn bản quy phạm pháp luật, mặc định), cong-van, dieu-uoc, tieu-chuan, ban-an (từ gói Starter).
type_idLoại văn bản (luật, nghị định, thông tư…), lấy mã từ /v1/catalogs/document-types.
field_idLĩnh vực, lấy mã từ /v1/catalogs/law-fields.
agency_idCơ quan ban hành, lấy mã từ /v1/catalogs/agencies?q=….
status_idTình trạng hiệu lực, lấy mã từ /v1/catalogs/statuses.
issued_from, issued_toKhoảng ngày ban hành, dạng YYYY-MM-DD.
sortrelevance (độ khớp), newest (mới nhất), oldest (cũ nhất).
page, per_pagePhân trang. per_page mặc định 10, tối đa theo gói.

Các trường trả về

TrườngÝ nghĩa
idMã văn bản trong API (dạng vb_…), dùng để gọi chi tiết.
codeSố hiệu văn bản, ví dụ 31/2024/QH15.
nameTên (trích yếu) văn bản.
databaseKho dữ liệu chứa văn bản.
type, field, agencyLoại văn bản, lĩnh vực, cơ quan ban hành — mỗi trường gồm id và name.
statusTình trạng hiệu lực (id, name), ví dụ "Còn hiệu lực".
issued_date, effective_date, expired_dateNgày ban hành, ngày có hiệu lực, ngày hết hiệu lực.
source_urlLink tới trang văn bản trên dulieuphapluat.vn.
signerNgười ký (chỉ ở endpoint chi tiết).
has_word_file, has_pdf_fileVăn bản có file Word / PDF gốc hay không (chi tiết).
content_preview500 ký tự đầu của nội dung (chi tiết, gói Free).
content_htmlToàn văn dạng HTML (chi tiết, từ gói Starter).

Dữ liệu lấy từ đâu

Từ cùng kho văn bản đang hiển thị trên dulieuphapluat.vn. Mỗi bản ghi có source_url trỏ về trang văn bản tương ứng, nên bạn đối chiếu được từng kết quả với bản đang đăng trên web.

Gói nào dùng được

Phần dữ liệuGói thấp nhất
Tìm kiếm, lọc, thuộc tính văn bản, content_previewFree
Toàn văn content_html; kho bản án (database=ban-an)Starter
Văn bản thay thế / bị thay thế, endpoint /v1/legal-documents/{id}/relationsPro
GóiGiá / thángLượt gọi / thángLượt gọi / ngàyBản ghi / trang
Free0đ1.00010010
Starter199.000đ20.0002.00020
Pro699.000đ120.0008.00050
Business2.490.000đ600.00030.000100

Giá chưa gồm VAT, theo bảng giá ngày 01/10/2026. Bảng giá đang áp dụng: xem trên trang API.

Câu hỏi thường gặp khi tích hợp

Gói miễn phí có lấy được toàn văn văn bản không?

Không. Gói Free trả đủ thuộc tính văn bản và trường content_preview (500 ký tự đầu). Toàn văn dạng HTML (content_html) mở từ gói Starter, giới hạn 500 văn bản mỗi ngày; gói Pro 2.000 và Business 5.000 văn bản mỗi ngày.

Tìm một văn bản theo số hiệu thế nào?

Truyền số hiệu vào q và đặt search_in=code, ví dụ q=31/2024/QH15&search_in=code. Mặc định q tìm trong tên văn bản.

Lấy mã loại văn bản, lĩnh vực, cơ quan ban hành ở đâu?

Gọi GET /v1/catalogs/document-types, /v1/catalogs/law-fields, /v1/catalogs/statuses hoặc /v1/catalogs/agencies?q=…. Giá trị id trả về dùng cho các tham số type_id, field_id, status_id, agency_id.

Một lần gọi lấy được bao nhiêu văn bản?

Số bản ghi mỗi trang và số trang tối đa tuỳ gói: Free 10 bản ghi × 5 trang, Starter 20 × 20, Pro 50 × 50, Business 100 × 100. Vượt số trang tối đa thì API trả lỗi 422 page_limit; khi cần duyệt nhiều, chia nhỏ theo khoảng ngày ban hành bằng issued_from và issued_to.

Có phải ghi nguồn khi hiển thị dữ liệu không?

Gói Free bắt buộc ghi nguồn dulieuphapluat.vn. Mỗi bản ghi có sẵn source_url trỏ về trang văn bản tương ứng để bạn đặt link.

Bắt đầu với gói miễn phí

Đăng ký bằng email, lấy key và gọi thử ngay — không cần thanh toán.