Google Docs to Forms - Formswrite.com logo
BlogPricing

Formswrite API Reference: Convert Documents to Forms and Quizzes

Formswrite Team

February 15, 2026

Formswrite API Reference: Convert Documents to Forms and Quizzes

Formswrite API Reference: Convert Documents to Forms and Quizzes

Formswrite is a platform that converts documents into forms, quizzes, and assessments. The Formswrite REST API lets you do this programmatically — convert a Google Doc into any of 25+ output formats with a single HTTP request.
This page serves as the complete API reference.

What Is Formswrite?

Formswrite is a web application and API used by educators, developers, and businesses to:
  • Convert Google Docs to Google Forms — automatically generate forms from document content
  • Export quizzes to LMS platforms — Moodle, Canvas, Blackboard, Brightspace, Schoology, Sakai
  • Generate game-based quizzes — Kahoot, Quizizz, Blooket, Gimkit, Socrative
  • Create standardized assessment files — QTI 2.1, QTI 2.2, GIFT, Aiken, Cloze, H5P
  • Export to other formats — Microsoft Word, LearnDash
The AI engine reads your document, identifies questions, answer choices, correct answers, and grading, and outputs a file ready for import into your target platform.

Base URL

https://api.formswrite.com

Authentication

All requests require a Bearer token.
Getting a token: Sign in to Formswrite, navigate to account settings, and generate an API token. Tokens are valid for 365 days.
Using the token:
Authorization: Bearer YOUR_API_TOKEN
Alternative methods:
  • Header: X-Access-Token: YOUR_API_TOKEN
  • Query parameter: ?token=YOUR_API_TOKEN

Endpoints

POST /api/v1/convert

Convert a Google Doc to any supported format.
Headers:
Authorization: Bearer YOUR_API_TOKEN Content-Type: application/json
Request Body:
FieldTypeRequiredDescription
documentIdstringYesGoogle Doc ID or full Google Docs URL
formatstringYesOutput format (see Supported Formats)
documentNamestringNoDisplay name for the output file
asyncbooleanNoEnable async processing (default: false)
Example Request:
bashcurl -X POST https://api.formswrite.com/api/v1/convert \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "documentId": "1abc123xyz",
    "format": "google_form",
    "documentName": "Weekly Quiz"
  }'
Sync Response (200):
json{
  "success": true,
  "exportId": "export-uuid",
  "downloadUrl": "https://api.formswrite.com/api/forms/exports/export-uuid",
  "fileName": "Weekly Quiz-google_form",
  "format": "google_form",
  "expiresAt": "2026-03-17T00:00:00.000Z"
}
Async Response (202):
json{
  "success": true,
  "status": "processing",
  "jobId": "12345",
  "message": "Document analysis queued. Poll for status.",
  "pollUrl": "/api/v1/convert/status/12345"
}

GET /api/v1/convert/status/:jobId

Check the status of an async conversion job.
Example:
bashcurl https://api.formswrite.com/api/v1/convert/status/12345 \
  -H "Authorization: Bearer YOUR_API_TOKEN"
Response:
json{
  "success": true,
  "jobId": "12345",
  "state": "completed",
  "progress": 100,
  "result": {
    "success": true,
    "documentName": "Weekly Quiz",
    "isQuiz": true,
    "mergedContent": {
      "title": "Weekly Quiz",
      "introduction": "Answer the following questions.",
      "questions": [
        {
          "title": "What is the capital of France?",
          "type": "MULTIPLE_CHOICE",
          "options": ["Paris", "London", "Berlin", "Madrid"],
          "required": true,
          "grading": {
            "pointValue": 1,
            "correctAnswers": ["Paris"]
          }
        }
      ]
    }
  }
}
Job States: waitingactivecompleted | failed

Supported Formats

Learning Management Systems

PlatformFormat ValueFile Type
Google Formsgoogle_formLive form
Moodlemoodle.xml
Canvascanvas.zip (QTI)
Blackboardblackboard.txt
Brightspace (D2L)brightspace.zip
Schoologyschoology.zip
Sakaisakai.zip
LearnDashlearndash.txt

Game-Based Platforms

PlatformFormat ValueFile Type
Kahootkahoot.csv
Quizizzquizizz.csv
Blooketblooket.csv
Gimkitgimkit.csv
Socrativesocrative.csv
Wooclapwooclap.csv
Quizalizequizalize.csv
ClassMarkerclassmarker.csv
Pear Assessmentpear_assessment.csv

Standards and Formats

FormatFormat ValueFile Type
QTI 2.1qti_21.zip
QTI 2.2qti_22.zip
GIFTgift.txt
Aikenaiken.txt
Clozecloze.txt
H5Ph5p.zip
Microsoft Wordword.docx

Supported Question Types

The AI automatically detects these question types from your document:
TypeAPI ValueDescription
Multiple ChoiceMULTIPLE_CHOICESingle correct answer
CheckboxCHECKBOXMultiple correct answers
Short AnswerSHORT_ANSWERText input
ParagraphPARAGRAPHLong text input
True/FalseMULTIPLE_CHOICETwo options (True/False)
Linear ScaleLINEAR_SCALERating scale (1-5, 1-10)
DropdownDROPDOWNSelect from list
DateDATEDate picker
TimeTIMETime picker
File UploadFILE_UPLOADFile attachment
GridMULTIPLE_CHOICE_GRIDMatrix of choices

Error Codes

HTTP StatusErrorDescription
400Bad RequestMissing or invalid parameters
401UnauthorizedInvalid or expired token
402Payment RequiredNo active subscription
408TimeoutSync request timed out (use async mode)
500Server ErrorInternal error
Error Response Format:
json{
  "success": false,
  "message": "Error description"
}

Code Examples

Python

pythonimport requests

def convert(doc_id, format, name, api_token):
    response = requests.post(
        "https://api.formswrite.com/api/v1/convert",
        headers={
            "Authorization": f"Bearer {api_token}",
            "Content-Type": "application/json"
        },
        json={
            "documentId": doc_id,
            "format": format,
            "documentName": name
        }
    )
    return response.json()

# Convert to Google Form
result = convert("1abc123", "google_form", "My Quiz", "token")

# Convert to Moodle
result = convert("1abc123", "moodle", "My Quiz", "token")

# Convert to Canvas
result = convert("1abc123", "canvas", "My Quiz", "token")

Node.js

javascriptasync function convert(docId, format, name) {
  const response = await fetch('https://api.formswrite.com/api/v1/convert', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.FORMSWRITE_TOKEN}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      documentId: docId,
      format,
      documentName: name
    })
  });
  return response.json();
}

cURL

bashcurl -X POST https://api.formswrite.com/api/v1/convert \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"documentId":"DOC_ID","format":"moodle","documentName":"Quiz"}'

Integrations

The Formswrite API works with any platform that supports HTTP requests:
  • Zapier — Webhooks by Zapier action
  • Make (Integromat) — HTTP module
  • n8n — HTTP Request node
  • Power Automate — HTTP action
  • GitHub Actions — cURL or script step
  • Custom applications — Any language with HTTP support

FAQ

What is Formswrite?

Formswrite is a platform that converts documents into forms, quizzes, and assessments for education and business. It supports 25+ output formats including Google Forms, Moodle, Canvas, Kahoot, and more.

What document formats can I use as input?

The API accepts Google Docs as input. You can pass either a Google Doc ID or a full Google Docs URL.

How does the AI detect questions?

The AI analyzes your document's structure — numbered lists, bullet points, bold text, and natural language patterns — to identify questions, answer choices, correct answers, and point values.

Is there a free tier?

Visit formswrite.com for current pricing and plan details.

How long are download URLs valid?

Download URLs expire after 30 days.

Can I use the API for commercial purposes?

Yes. The API is available for commercial use under any paid Formswrite subscription.

What languages does the API support?

The AI supports documents written in any language. Question extraction works across English, Spanish, French, German, Arabic, Hebrew, and many more.

Is the API available globally?

Yes. The API is accessible from any region with no geographic restrictions.

Where can I get support?

Visit formswrite.com or contact support through the application.

Get Started

Sign up for Formswrite to get your API token and start converting documents to forms and quizzes programmatically.

Share this post with your network


Formswrite - Google Docs to Forms Converter

Create forms in seconds, not hours

Convert Google Docs to Forms with one click

Save hours on quiz creation every month.

No more manual form creation. No more formatting hassles.

We care about your data in our privacy policy

© 2026 Formswrite. All Rights Reserved.