Trộn đề trắc nghiệm API

Đảo câu hỏi và phương án thành N mã đề kèm bảng đáp án, tái lập được bằng seed. Trả về JSON hoặc file zip gồm các đề .docx.

POSThttps://apibox.io.vn/v1/vn-exam-mix

Gửi danh sách câu hỏi trả về từ /v1/vn-quiz-parse (hoặc chính file Word / văn bản đề thi), API tạo versions mã đề, mỗi đề có mã (mã ngẫu nhiên 3 chữ số, code_start=101 để đánh 101, 102… hoặc tự đặt bằng codes), câu hỏi và phương án theo thứ tự mới, ánh xạ về số câu và chữ cái gốc, kèm đáp án. answer_table là bảng đáp án của mọi câu theo từng mã đề, in ra hoặc nạp vào phần mềm chấm được ngay.

Các quy tắc giáo viên cần: câu hỏi chỉ đảo trong phần của nó (PHẦN I, II, III giữ thứ tự, đánh số lại từ đầu mỗi phần nếu đề gốc làm vậy), các câu của cùng một đoạn đọc hiểu đi liền nhau, phương án kiểu "Tất cả đều đúng", "Không có đáp án nào" giữ nguyên vị trí, câu có phương án nhắc tới chữ cái khác ("Cả A và B") giữ nguyên thứ tự phương án. Các ý đúng sai không bị đảo trừ khi shuffle_statements=true. Cùng một seed luôn cho cùng bộ đề, nên có thể dựng lại về sau.

format=docx trả file zip gồm mỗi mã đề một file .docx (tiêu đề có tên trường, tên bài, môn, thời gian và mã đề; giữ ảnh), dap_an.docx (bảng đáp án) và dap_an.csv.

Tham số

TênVị tríKiểuBắt buộcMặc định
questionsbodyarraykhôngquestions từ /v1/vn-quiz-parse (kèm sections, groups, images nếu có).
filebodyfilekhôngHoặc đề dạng .docx / văn bản (text), đọc như vn-quiz-parse.
versionsbodynumberkhông4Số mã đề (1–50).
codesbodyarraykhôngMã đề tự đặt, ví dụ ["101","102"] (nếu không: mã ngẫu nhiên 3 chữ số hoặc code_start).
code_startbodynumberkhôngĐánh mã đề liên tiếp từ số này (101, 102…).
seedbodystringkhôngSeed để tái lập bộ đề (mặc định ngẫu nhiên, có trả về).
shuffle_questionsbodybooleankhôngtrueĐảo câu hỏi trong từng phần.
shuffle_optionsbodybooleankhôngtrueĐảo phương án A–D.
formatbody|querystringkhôngjsonjson, docx (zip các đề .docx + đáp án) hoặc docx_base64.
headerbodyobjectkhôngTiêu đề đề thi .docx: school, department, title, subject, time.

Ví dụ

curl -X POST "https://apibox.io.vn/v1/vn-exam-mix" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Câu 1. Thủ đô của Việt Nam là\nA. TP. Hồ Chí Minh\t*B. Hà Nội\nC. Đà Nẵng\tD. Huế\nCâu 2. 2 + 2 = ?\nA. 3\nB. 4\nC. 5\nD. 6\nĐáp án: B\nLời giải: 2 + 2 = 4.","versions":2,"seed":"demo-2026","code_start":101}'

Kết quả trả về

{
  "seed": "demo-2026",
  "version_count": 2,
  "codes": [
    "101",
    "102"
  ],
  "question_count": 2,
  "settings": {
    "shuffle_questions": true,
    "shuffle_options": true,
    "shuffle_statements": false,
    "numbering_restarts_per_part": false
  },
  "answer_table": [
    [
      "Câu",
      "101",
      "102"
    ],
    [
      "1",
      "D",
      "A"
    ],
    [
      "2",
      "D",
      "B"
    ]
  ],
  "versions": [
    {
      "code": "101",
      "questions": [
        {
          "number": 1,
          "original_number": 1,
          "section": 0,
          "type": "multiple_choice",
          "points": null,
          "stem": "Thủ đô của Việt Nam là",
          "options": [
            {
              "label": "A",
              "text": "TP. Hồ Chí Minh",
              "original_label": "A"
            },
            {
              "label": "B",
              "text": "Huế",
              "original_label": "D"
            },
            {
              "label": "C",
              "text": "Đà Nẵng",
              "original_label": "C"
            },
            {
              "label": "D",
              "text": "Hà Nội",
              "original_label": "B"
            }
          ],
          "answer": [
            "D"
          ],
          "answer_text": null,
          "group": null
        },
        {
          "…": "…"
        }
      ],
      "answer_key": "1.D 2.D"
    },
    {
      "code": "102",
      "questions": [
        {
          "…": "…"
        }
      ],
      "answer_key": "1.A 2.B"
    }
  ],
  "note": "Same seed + same questions + same codes = same versions. Options such as \"Tất cả đều đúng\" keep their position; questions whose options refer to other letters (\"Cả A và B\") keep their option order; reading groups stay together."
}

Ứng dụng

  • In nhiều mã đề cho lớp mà không cần phần mềm trộn đề cài máy
  • Sinh bảng đáp án cho máy chấm trắc nghiệm hoặc app chấm
  • Thi online, mỗi học sinh một đề đã đảo
  • Dựng lại bộ đề cũ từ seed khi thất lạc đáp án

Hỏi đáp

Có tạo lại đúng bộ đề cũ được không?

Có. Lưu seed trả về cùng kết quả: cùng seed, cùng câu hỏi và mã đề thì luôn ra cùng bộ đề.

Phương án nào không bị đảo?

Các phương án như "Tất cả đều đúng", "Cả A và B", "Không có phương án nào" giữ nguyên vị trí; nếu phương án nhắc tới chữ cái khác thì cả câu giữ nguyên thứ tự.

File .docx có giữ công thức không?

Giữ nội dung chữ, ảnh và cấu trúc câu hỏi; công thức Word thành chữ thường. Có thể chỉnh lại file sinh ra nếu cần định dạng đặc biệt.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →