API 參考
程式碼範例
cURL、JavaScript、Python 的 API 使用範例
以下範例示範常見的 API 操作。將 YOUR_API_KEY 替換為你的實際 API 金鑰,YOUR_DOMAIN 替換為你的部署網址。
建立表單
cURL
curl -X POST https://YOUR_DOMAIN/api/forms \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "產品回饋問卷",
"slug": "product-feedback"
}'JavaScript (fetch)
const response = await fetch('https://YOUR_DOMAIN/api/forms', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: '產品回饋問卷',
slug: 'product-feedback',
}),
});
const { form } = await response.json();
console.log('建立成功,表單 ID:', form.id);Python (requests)
import requests
response = requests.post(
'https://YOUR_DOMAIN/api/forms',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
json={
'title': '產品回饋問卷',
'slug': 'product-feedback',
},
)
form = response.json()['form']
print(f"建立成功,表單 ID:{form['id']}")更新表單 Schema
先取得草稿端點,再更新 schema。
JavaScript (fetch)
const formId = 'clx1234';
const schema = {
version: 1,
title: '產品回饋問卷',
description: '請分享您對我們產品的看法',
mode: 'immersive',
questions: [
{
key: 'overall',
type: 'rating',
title: '您對產品的整體滿意度?',
required: true,
scaleMin: 1,
scaleMax: 5,
},
{
key: 'feedback',
type: 'long-text',
title: '有任何改善建議嗎?',
placeholder: '請詳細描述...',
},
],
};
await fetch(`https://YOUR_DOMAIN/api/forms/${formId}/version/draft`, {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify(schema),
});列出所有表單
cURL
curl https://YOUR_DOMAIN/api/forms \
-H "Authorization: Bearer YOUR_API_KEY"Python (requests)
import requests
response = requests.get(
'https://YOUR_DOMAIN/api/forms',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
forms = response.json()['forms']
for form in forms:
print(f"{form['title']} — {form['status']} ({form['responseCount']} 份回覆)")查詢回覆資料
JavaScript (fetch)
const formId = 'clx1234';
const response = await fetch(
`https://YOUR_DOMAIN/api/forms/${formId}/responses?limit=50&page=1`,
{
headers: { 'Authorization': 'Bearer YOUR_API_KEY' },
},
);
const { responses } = await response.json();
responses.forEach((r) => {
console.log(r.submittedAt, r.answers);
});發布表單
cURL
curl -X POST https://YOUR_DOMAIN/api/forms/clx1234/publish \
-H "Authorization: Bearer YOUR_API_KEY"Python (requests)
import requests
response = requests.post(
'https://YOUR_DOMAIN/api/forms/clx1234/publish',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
result = response.json()
print(f"公開網址:https://YOUR_DOMAIN/s/{result['form']['slug']}")下載 CSV 回覆
cURL
curl https://YOUR_DOMAIN/api/forms/clx1234/responses/export \
-H "Authorization: Bearer YOUR_API_KEY" \
-o responses.csvPython (requests)
import requests
response = requests.get(
'https://YOUR_DOMAIN/api/forms/clx1234/responses/export',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
with open('responses.csv', 'wb') as f:
f.write(response.content)
print('已下載回覆資料至 responses.csv')