typeform
SKILL.md
Typeform
Access the Typeform API with managed OAuth authentication. Create and manage forms, retrieve responses, and access insights.
Quick Start
# List forms
curl -s -X GET 'https://gateway.maton.ai/typeform/forms?page_size=10' \
-H 'Authorization: Bearer YOUR_API_KEY'
Base URL
https://gateway.maton.ai/typeform/{endpoint}
The gateway proxies requests to api.typeform.com and automatically injects your OAuth token.
Authentication
All requests require the Maton API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
Environment Variable: Set your API key as MATON_API_KEY:
export MATON_API_KEY="YOUR_API_KEY"
Getting Your API Key
- Sign in at maton.ai
- Go to maton.ai/settings
- Copy your API key
Connection Management
Manage your Typeform OAuth connections at https://ctrl.maton.ai.
List Connections
curl -s -X GET 'https://ctrl.maton.ai/connections?app=typeform&status=ACTIVE' \
-H 'Authorization: Bearer YOUR_API_KEY'
Create Connection
curl -s -X POST 'https://ctrl.maton.ai/connections' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{"app": "typeform"}'
Get Connection
curl -s -X GET 'https://ctrl.maton.ai/connections/{connection_id}' \
-H 'Authorization: Bearer YOUR_API_KEY'
Response:
{
"connection": {
"connection_id": "21fd90f9-5935-43cd-b6c8-bde9d915ca80",
"status": "ACTIVE",
"url": "https://connect.maton.ai/?session_token=...",
"app": "typeform"
}
}
Open the returned url in a browser to complete OAuth authorization.
Delete Connection
curl -s -X DELETE 'https://ctrl.maton.ai/connections/{connection_id}' \
-H 'Authorization: Bearer YOUR_API_KEY'
API Reference
User
GET /typeform/me
Forms
List Forms
GET /typeform/forms?page_size=10
Get Form
GET /typeform/forms/{formId}
Create Form
POST /typeform/forms
Content-Type: application/json
{
"title": "Customer Survey",
"fields": [
{"type": "short_text", "title": "What is your name?"},
{"type": "email", "title": "What is your email?"}
]
}
Update Form
PUT /typeform/forms/{formId}
Content-Type: application/json
{
"title": "Updated Survey Title",
"fields": [...]
}
Delete Form
DELETE /typeform/forms/{formId}
Responses
List Responses
GET /typeform/forms/{formId}/responses?page_size=25
With filters:
GET /typeform/forms/{formId}/responses?since=2024-01-01T00:00:00Z&until=2024-12-31T23:59:59Z&completed=true
Insights
GET /typeform/insights/{formId}/summary
Workspaces
GET /typeform/workspaces
GET /typeform/workspaces/{workspaceId}
Field Types
short_text- Single line textlong_text- Multi-line textemail- Email addressnumber- Numeric inputrating- Star ratingopinion_scale- 0-10 scalemultiple_choice- Single or multiple selectionyes_no- Booleandate- Date pickerdropdown- Dropdown selection
Code Examples
JavaScript
const response = await fetch(
'https://gateway.maton.ai/typeform/forms?page_size=10',
{
headers: {
'Authorization': `Bearer ${process.env.MATON_API_KEY}`
}
}
);
Python
import os
import requests
response = requests.get(
'https://gateway.maton.ai/typeform/forms',
headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'},
params={'page_size': 10}
)
Notes
- Form IDs are alphanumeric strings
- Response pagination uses
beforetoken - Timestamps are in ISO 8601 format
- DELETE operations return HTTP 204
Error Handling
| Status | Meaning |
|---|---|
| 400 | Missing Typeform connection |
| 401 | Invalid or missing Maton API key |
| 429 | Rate limited (10 req/sec per account) |
| 4xx/5xx | Passthrough error from Typeform API |
Resources
Weekly Installs
1
Repository
openclaw/skillsGitHub Stars
3.8K
First Seen
Feb 3, 2026
Installed on
openclaw1
opencode1
codex1
claude-code1