/install google-forms-with-forms-ios-app
Forms for Google Drive
Access Google Forms with managed OAuth authentication. Create forms, add questions, retrieve and export responses to Excel — all via natural language.
Quick Start
import urllib.request, os, json
req = urllib.request.Request('https://api.gformsfree.com/skill/forms/list')
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
Base URL
https://api.gformsfree.com/skill
Authentication
All requests require the API key in the Authorization header:
Authorization: Bearer $GFORMS_API_KEY
Environment Variable: Set your API key as GFORMS_API_KEY:
export GFORMS_API_KEY="YOUR_API_KEY"
Getting Your API Key
- Download the Forms for Google Drive App: https://apps.apple.com/us/app/forms-for-google-drive/id6468928038
- Sign in with your Google account
- Go to Settings → Connect AI Agent
- Copy your API key
API Reference
List Forms
GET /forms/list
import urllib.request, os, json
req = urllib.request.Request('https://api.gformsfree.com/skill/forms/list')
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
Response:
{
"forms": [
{
"formId": "1BxiM...",
"title": "Customer Feedback",
"responderUri": "https://forms.gle/xxx",
"editUri": "https://docs.google.com/forms/d/xxx/edit"
}
]
}
Get Form
GET /forms/{formId}
import urllib.request, os, json
req = urllib.request.Request('https://api.gformsfree.com/skill/forms/FORM_ID')
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
Create Form
Create a new Google Form with questions in a single request.
POST /forms/create
import urllib.request, os, json
data = json.dumps({
"title": "Customer Feedback Survey",
"description": "We'd love to hear from you.",
"questions": [
{
"type": "TEXT",
"title": "What is your name?",
"required": True
},
{
"type": "RADIO",
"title": "How satisfied are you?",
"required": True,
"options": ["Very satisfied", "Satisfied", "Neutral", "Dissatisfied"]
},
{
"type": "SCALE",
"title": "Rate your experience",
"low": 1,
"high": 5,
"lowLabel": "Poor",
"highLabel": "Excellent"
},
{
"type": "CHECKBOX",
"title": "Which features do you use?",
"options": ["Feature A", "Feature B", "Feature C"]
}
]
}).encode()
req = urllib.request.Request(
'https://api.gformsfree.com/skill/forms/create',
data=data, method='POST'
)
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
Response:
{
"formId": "1BxiM...",
"responderUri": "https://forms.gle/xxx",
"editUri": "https://docs.google.com/forms/d/xxx/edit"
}
Question types: TEXT · RADIO · CHECKBOX · SCALE · DATE · TIME
List Responses
GET /forms/{formId}/responses
import urllib.request, os, json
req = urllib.request.Request('https://api.gformsfree.com/skill/forms/FORM_ID/responses')
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
Summarize Responses
Get a natural language summary of all form responses.
GET /forms/{formId}/summary
import urllib.request, os, json
req = urllib.request.Request('https://api.gformsfree.com/skill/forms/FORM_ID/summary')
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
Use the returned summary field to present trends and insights to the user.
Export Responses to Excel
Generate a downloadable Excel file of all form responses.
POST /forms/export
import urllib.request, os, json
data = json.dumps({"formId": "FORM_ID"}).encode()
req = urllib.request.Request(
'https://api.gformsfree.com/skill/forms/export',
data=data, method='POST'
)
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
Response:
{
"downloadUrl": "https://api.gformsfree.com/skill/files/xxx.xlsx",
"expiresIn": 600
}
Return downloadUrl to the user. Remind them the link expires in 10 minutes.
Error Handling
| Status | Meaning |
|---|---|
| 400 | Missing or invalid request parameters |
| 401 | Invalid or missing API key — check GFORMS_API_KEY |
| 403 | Subscription expired — renew in the Forms for Google Drive App |
| 429 | Rate limited (10 req/sec per account) |
| 4xx/5xx | Passthrough error from Google Forms API |
Troubleshooting: API Key Issues
Verify your key is valid:
import urllib.request, os, json
req = urllib.request.Request('https://api.gformsfree.com/skill/auth/check')
req.add_header('Authorization', f'Bearer {os.environ["GFORMS_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
If invalid, regenerate in the app: Settings → Connect AI Agent → Regenerate Key
Agent Instructions
- Never expose the
GFORMS_API_KEYvalue in any message to the user - Always confirm with the user before creating or modifying a form
- When creating a form, ask for: topic, target audience, number of questions, and preferred question types
- After creating a form, always return both
responderUri(share with respondents) andeditUri(for editing) - When exporting, always remind the user the download link expires in 10 minutes
- Confirm twice before deleting any form
Resources
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install google-forms-with-forms-ios-app - After installation, invoke the skill by name or use
/google-forms-with-forms-ios-app - Provide required inputs per the skill's parameter spec and get structured output
What is Forms for Google Drive?
Google Forms API integration with managed OAuth. Create forms, add questions, export responses to Excel, and summarize response data. Use this skill when use... It is an AI Agent Skill for Claude Code / OpenClaw, with 134 downloads so far.
How do I install Forms for Google Drive?
Run "/install google-forms-with-forms-ios-app" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Forms for Google Drive free?
Yes, Forms for Google Drive is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Forms for Google Drive support?
Forms for Google Drive is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Forms for Google Drive?
It is built and maintained by dfaaa (@dfaaa); the current version is v1.0.0.