Home › Bulk Upload Questions to Google Forms

Bulk Upload Questions to Google Forms: Add Dozens of Questions at Once

Updated November 12, 2026 · ~10 min read

"Bulk add questions to Google Forms" is the problem every teacher hits when a question bank already exists: 50 questions in a document, and the Forms editor only lets you add them one at a time. There is no bulk import button in Google Forms. This guide lays out the three methods that actually work — manual entry, a script against the Forms API, and a one-click importer that parses your existing text — with runnable code, a column layout, and the traps that break a large import.

Short version: Google Forms cannot import a question bank by itself. To bulk upload questions you either script the Forms API (you write and maintain the code) or use a converter that reads your existing text/spreadsheet and writes the whole form in one pass. Either way the source needs a predictable structure — not AI-generated questions.

Why Google Forms has no bulk import

The Forms editor creates one item at a time. Its only native "import" is duplicating an existing Form in Drive — not reading a document, CSV or text file. Google's help centre confirms there is no built-in way to bulk upload questions from a file. That gap is why people search "bulk add questions to google forms" and "bulk upload questions to google forms".

Three consequences: (1) typing 50 questions takes an hour and invites typos; (2) the answer key, marks and option order are easy to lose when copying manually; (3) any automation must map your source into the item types Forms understands (multiple choice, checkbox, short answer, paragraph, etc.).

Three methods compared

MethodSetupKeeps answer key / points?Best for
Manual: add question, repeatNoneOnly if you set each one by hand3–5 questions
Apps Script / Forms APICode, OAuth, your own sheetYes, if you script itDevelopers, custom rules
One-click importer (ExamParser)Upload the fileYes — key and marks travel with the questionAny volume, no code

Method 1 — bulk-create items with Apps Script (runnable)

If you want to own the automation, put your question bank into a sheet with columns Type, Stem, A…E, Answer, Points, then run this complete script from a spreadsheet-bound Apps Script project. It creates every item in one pass, with the correct-answer flag attached to the choice.

function bulkAddQuestions() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const rows = sheet.getDataRange().getValues();
  const h = rows[0].map(x => String(x).trim());
  const c = n => h.indexOf(n);
  const form = FormApp.openById("YOUR_FORM_ID");
  let n = 0;

  for (let r = 1; r < rows.length; r++) {
    const v = rows[r];
    const stem = String(v[c("Stem")] || "").trim();
    if (!stem) continue;
    const opts = ["A","B","C","D","E"]
      .map(k => String(v[c(k)] == null ? "" : v[c(k)]).trim())
      .filter(Boolean);
    const answer = String(v[c("Answer")] == null ? "" : v[c("Answer")]).trim();
    const pts = Number(v[c("Points")]) || 1;
    const type = String(v[c("Type")] || "mcq").toLowerCase();

    let item;
    if (opts.length && (type === "mcq" || type === "multiple choice")) {
      const choices = opts.map(o => form.newChoice(o, o === answer));
      item = form.addMultipleChoiceItem().setTitle(stem).setChoices(choices);
      item.setPoints(pts);
    } else if (opts.length && type === "checkbox") {
      const correct = answer.split(",").map(x => x.trim());
      const choices = opts.map(o => form.newChoice(o, correct.includes(o)));
      item = form.addCheckboxItem().setTitle(stem).setChoices(choices);
      item.setPoints(pts);
    } else {
      item = form.addTextItem().setTitle(stem);
    }
    item.setRequired(false);
    n++;
  }
  Logger.log("Added " + n + " items");
  // Turn on quiz mode + answer key in Settings > Quizzes afterwards.
}

Notes: form.newChoice(value, isCorrect) is how the answer key is attached; without quiz mode enabled in Settings, correct flags are ignored. Forms caps an individual item's options and has a practical limit on total items per form, so split very large banks into sections or multiple forms. Running the script twice duplicates everything — clear the form or track IDs.

Method 2 — one-click import from the file you already have

If you do not want to maintain code, the direct route is to upload the source file (PDF, Word, Excel, Google Docs, Google Sheets, plain text or RTF) and let a converter parse it into rows, then write the whole form under your own Google account. The important property is that questions, choices, the correct answer and marks stay together in one row, so a 200-question bank behaves exactly like a 5-question one. See How to Import Questions into Google Forms for the full method map, and Convert File to Google Form for the umbrella workflow.

Bulk upload questions to Google Forms in 5 steps

Troubleshooting a large import

1

Gather the question bank

One row per question: Type, Stem, Option A–E, Answer, Marks.

2

Choose a method

Apps Script (own the code) or a one-click importer (no code).

3

Check the source

UTF-8, no merged cells, no blank stems, numeric marks.

4

Run the bulk import

Create all items in one pass; enable quiz mode for the answer key.

5

Verify a sample

Check first/middle/last question for order, options, key and points before sharing.

Frequently asked questions

Can I bulk upload questions to Google Forms?

Not with a built-in button — Google Forms has no bulk import of questions from a file. The two working routes are scripting the Forms API (Apps Script) to create many items at once, or using a converter that parses your existing document or spreadsheet and writes the whole form in one pass.

How do I bulk add questions to Google Forms without re-typing them?

Put your question bank into a fixed-column layout (Type, Stem, Option A–E, Answer, Points), then either run an Apps Script that calls addMultipleChoiceItem / addTextItem for each row, or upload the file to a converter that creates the form under your Google account. Both keep the original wording instead of regenerating it.

Does a bulk import keep the answer key and points?

Yes if the source has an Answer and Points column and the destination is in quiz mode. Without quiz mode enabled in Settings, Forms ignores the correct-answer flags. That is the single most common cause of a bulk import that looks right but does not grade.

Is there a limit to how many questions I can add at once?

Forms does not publish a simple bulk cap, but very large forms become slow and individual items have option limits. For several hundred questions, split into sections or multiple forms, and verify a sample rather than assuming every row landed.

Why did my questions import twice?

Bulk creation is not idempotent: running the script or upload again appends a second copy. Clear the destination form, or add a run marker / item-ID check before retrying.

Question importers

ExamParser has a dedicated importer for each source format. Pick the one your questions currently live in — PDF, Word, Excel, Google Sheets or a quiz file — and the questions, options and answer key are carried into a Google Form you own.

Related guides

Import the whole question bank in one pass

Stop adding questions one at a time. Upload the file you already have and get a Google Form you own, with the questions, options, answer key and points carried over exactly as written. Deterministic, no AI rewriting.

Import my questions into Google Forms →