Guide

How to Export Google Form Questions, Types, Required Settings, and Choices

日本語版あり
How to Export Google Form Questions, Types, Required Settings, and Choices

Last updated: 2026-08-13

The Google Forms response download contains submissions. It does not give you a complete inventory of the questions and settings that make the form work.

If you need a list of question titles, types, required settings, choices, and help text, use one of two methods:

  • For a short form, copy the structure into a spreadsheet while reviewing the editor.
  • For a long form or a portfolio of forms, use Google Apps Script to read the form items, then verify the result against the live form.

This distinction matters during a migration. A response CSV may preserve a question title as a column heading, but it does not preserve every possible choice, whether the question was required, its validation rule, or where branching sends the respondent.

A response export contains submitted values, while a question-structure export contains titles, types, required settings, choices, and help text

The short answer: Google Forms has no question-list CSV button

Google Forms lets you view responses in Forms, send them to Google Sheets, and download response data. It does not provide a standard editor button that exports the full question structure as a CSV inventory.

Choose the method based on the job:

MethodBest forWhat you getMain limitation
Manual inventoryOne short formExactly the details you choose to recordEasy to miss a setting
Copy the formReusing the same form in Google FormsA working Google Forms copyNot a portable inventory
Apps ScriptMany questions or multiple formsItem titles, types, help text, and type-specific settingsRequires code and manual verification
Forms APIA maintained migration toolStructured form resources and item IDsMore authentication and implementation work

If your only goal is to make another Google Form, use the form-copy function. If you need a review sheet, a migration map, or a comparison across several forms, create an explicit inventory.

Do not confuse question structure with response data

There are four different things you may be trying to move.

DataExamplesAppropriate method
Submitted responsesTimestamp, name, email, selected answerResponses tab, Google Sheets, or CSV
Question structureTitle, type, required status, choices, help textManual inventory, Apps Script, or Forms API
PresentationTheme, images, spacing, section appearanceSeparate visual review
BehaviorBranching, validation, quiz scoring, notificationsSeparate behavior map and test plan

The first row of a response CSV can look like a question list. It is not one. It only exposes labels used for collected columns. It cannot reliably tell you every allowed option, whether a blank value was permitted, or what would have happened after a particular choice.

For response export instructions, use Export Google Forms Responses to CSV. This page stays on the question side of the boundary.

Method 1: inventory a short form manually

For a form with ten or twenty questions, manual review is often faster than writing and validating a script.

Create a spreadsheet with these columns:

OrderQuestionTypeRequiredChoicesHelp textBehavior to verify
1Full nameShort answerYes-Enter your legal namePersonal data
2Inquiry typeMultiple choiceYesPricing, Setup, OtherChoose oneBranches to sections
3DetailsParagraphNo-Up to 500 wordsLength validation

Then work from top to bottom:

  1. Open the Google Form editor.
  2. Record every item in order, including section headings.
  3. Record whether each question is required.
  4. Copy every choice, including an “Other” option.
  5. Record help text, response validation, and file restrictions.
  6. Mark branching, quiz behavior, images, and videos for separate review.
  7. Open the responder preview and compare the inventory against what a respondent can actually see.

The final preview step catches a common mistake: editor items and respondent-visible behavior are related, but they are not interchangeable.

Method 2: read the question structure with Apps Script

Google's Apps Script Forms Service can open a form by ID or URL. Each Item exposes methods such as getTitle(), getType(), and getHelpText(). Type-specific interfaces expose settings such as isRequired() and getChoices().

The following example exports a useful starting inventory to the execution log:

function exportQuestionStructure() {
  const formId = 'PASTE_FORM_ID_HERE';
  const form = FormApp.openById(formId);

  const rows = form.getItems().map((item, index) => {
    const type = item.getType();
    let required = '';
    let choices = [];

    if (type === FormApp.ItemType.MULTIPLE_CHOICE) {
      const question = item.asMultipleChoiceItem();
      required = question.isRequired();
      choices = question.getChoices().map((choice) => choice.getValue());
    } else if (type === FormApp.ItemType.CHECKBOX) {
      const question = item.asCheckboxItem();
      required = question.isRequired();
      choices = question.getChoices().map((choice) => choice.getValue());
    } else if (type === FormApp.ItemType.LIST) {
      const question = item.asListItem();
      required = question.isRequired();
      choices = question.getChoices().map((choice) => choice.getValue());
    } else if (type === FormApp.ItemType.TEXT) {
      required = item.asTextItem().isRequired();
    } else if (type === FormApp.ItemType.PARAGRAPH_TEXT) {
      required = item.asParagraphTextItem().isRequired();
    }

    return {
      order: index + 1,
      title: item.getTitle(),
      type: String(type),
      required,
      choices: choices.join(' | '),
      helpText: item.getHelpText(),
    };
  });

  console.log(JSON.stringify(rows, null, 2));
}

This is deliberately a small script. If your form uses dates, times, scales, grids, ratings, file uploads, or quiz questions, add an explicit branch for each type you need. A generic cast can throw an error when an item is not the expected type.

Google's Apps Script Forms Service lists the available item interfaces. The Forms API form resource is the better primary reference when you are building a maintained integration rather than a one-off inventory.

How to run the script safely

  1. Confirm that you have permission to edit the form.
  2. Create a project at script.google.com.
  3. Paste the example into the editor.
  4. Copy the form ID from the URL between /d/ and /edit.
  5. Replace PASTE_FORM_ID_HERE.
  6. Run exportQuestionStructure.
  7. Review the authorization request. Do not bypass an organization policy.
  8. Copy the JSON from the execution log.
  9. Test the result on a small form before adding direct spreadsheet output.

Some Google Workspace organizations restrict Apps Script or its authorization scopes. If the authorization flow is blocked, ask the Workspace administrator. A migration inventory is not a reason to work around an access policy.

What the sample does not preserve

An item list is useful, but it is not a restorable backup.

Review these details separately:

[ ] Section order and section descriptions
[ ] Branch destinations for each applicable choice
[ ] Response validation rules and custom error text
[ ] Quiz answers, points, and feedback
[ ] File type, count, and size restrictions
[ ] Images and videos attached to items
[ ] Email collection and response-copy settings
[ ] Add-ons, notifications, triggers, and linked spreadsheets
[ ] Theme, header image, and presentation

Branching deserves particular care. A choice value and its destination are two pieces of information. Even if an API exposes the source behavior, the destination platform may model sections and conditions differently. Verify each path with test submissions after migration.

A practical migration workflow

Use the inventory as a contract between the old form and the new one.

  1. Freeze edits to the source form or record the extraction time.
  2. Export the question structure.
  3. Create a separate behavior map for branching and validation.
  4. Build an unpublished destination form.
  5. Compare labels, types, required settings, and choices.
  6. Test every branch with representative submissions.
  7. Only then move response operations, links, and traffic.

Do not mix this with historical response import. Building the destination questions and importing past submissions are separate changes with different failure modes.

Using a public form URL with FORMLOVA

FORMLOVA can inspect the visible fields of a public form URL and use them as the basis of an unpublished draft.

For example:

List the visible questions, field types, required settings, and choices on this public form.

After reviewing the result:

Create an unpublished draft with the same visible fields.

This is not a promise of complete Google Forms migration. A public page may not reveal questions behind later branches, editor-only validation, quiz configuration, add-ons, notification rules, or the original theme. Sign-in-gated forms may not be inspectable at all.

The safe sequence is still extract, review, draft, configure behavior, test, and publish.

For field design decisions, read Form Field Examples and Selection Guide. For the wider Google Forms, Sheets, and Apps Script operating boundary, return to Google Forms + Sheets + Apps Script Operations.

Use the inventory to improve the form, not just copy it

Migration is a good time to remove accidental complexity.

Review questionWarning signBetter decision
Are labels consistent?“Details,” “Message,” and “Request” mean the same thingUse one clear label
Is every required field necessary?Phone, address, and company are all mandatory before first contactRequire only what the next step needs
Are choices current?Old products or departments remainAlign choices with current routing
Does free text have a purpose?Several open-ended fields ask similar questionsExplain what belongs in one field
Can every branch be tested?Nobody owns the path mapAssign test cases before launch

Once the destination form is verified, How to Start Form Automation with FORMLOVA explains how notifications, ownership, and post-submission work fit around it.

FAQ

Can I download only the questions from Google Forms as CSV?

There is no standard Google Forms editor button for a complete question-structure CSV. Use a manual spreadsheet for a short form, Apps Script for a larger inventory, or the Forms API for a maintained migration tool.

Can a response CSV rebuild the form?

No. Column headings may preserve question titles, but the file does not reliably preserve the question type, required setting, all possible choices, branching, validation, quiz settings, or presentation.

Can Apps Script export branching?

Apps Script can expose some navigation behavior through type-specific methods, but a reusable migration requires additional logic and destination-specific mapping. Treat branching as a separate behavior map and test every path.

Is copying the Google Form enough?

It is enough when you only need another Google Form. It does not create a portable inventory for review, standardization, or migration to a different system.

Can FORMLOVA reproduce a Google Form completely?

No complete reproduction is promised. FORMLOVA can extract visible fields from an accessible public form and create an unpublished draft, but hidden branches, validation, quizzes, add-ons, notifications, and visual details require separate review.

Read next

When your inventory is ready, create a free FORMLOVA account, connect through the setup guide, and create a test draft before touching the live form.

Disclosure and Verification

The author develops FORMLOVA. This article was verified on 2026-08-13 against the current FORMLOVA public-form extraction boundary and Google's Apps Script Forms Service and Forms API documentation. Product and API behavior can change; verify the current Google documentation and test with a non-production form before migration.

Primary sources:

Next step

Turn this guide into a working form workflow

Use FORMLOVA to create the form, manage responses, and test MCP-assisted operations from one place.

Last verified on:

Share this article

Written by

@Lovanaut
@Lovanaut

Creator of Sapolova, Lovai, Molelava, and FORMLOVA. Building kind services with love.

More in this category