APIリファレンス
GleamFormでは、RESTful APIを使用してフォーム送信やデータ取得が可能です。
エンドポイント
フォーム送信
POST https://f.littlegleam.com/f/{form_id}
リクエスト
Content-Type: application/x-www-form-urlencoded または multipart/form-data
curl -X POST https://f.littlegleam.com/f/your-form-id \
-d "name=山田太郎" \
-d "[email protected]" \
-d "message=お問い合わせ内容"
レスポンス形式の判定
リクエストが以下のいずれかに該当する場合、JSON形式のレスポンスが返されます:
X-Requested-With: XMLHttpRequestヘッダーが含まれている(XHRリクエスト)Accept: application/jsonヘッダーが含まれている
それ以外の場合は、HTMLページ(成功/エラーページ)が返されます。
JSONレスポンス
成功時 (200 OK)
{
"success": true,
"message": "フォームを送信しました。ありがとうございます。",
"next": "https://example.com/thanks"
}
success: 送信が成功した場合はtruemessage: 成功メッセージnext: フォーム設定で指定されたリダイレクトURL(オプション)
エラー時 (422 Unprocessable Entity)
{
"error": "データが送信されませんでした。",
"details": "詳細なエラー情報(オプション)"
}
error: エラーメッセージdetails: 追加のエラー情報(オプション)
HTMLレスポンス
通常のHTMLフォームから送信した場合(Accept: application/jsonヘッダーがない場合):
成功時
- フォーム設定でカスタムリダイレクトURLが指定されている場合:そのURLにリダイレクト
- カスタムリダイレクトURLがない場合:成功ページ(
/f/{form_id}/success)にリダイレクト(PRGパターン)
エラー時
- エラーページが表示されます(HTTPステータスコード 422 または 403)
- エラーページには「戻る」ボタンとフォームへのリンクが表示されます
PRGパターンについて
成功時にGETリクエストでリダイレクトすることで、ブラウザのリロードボタンを押してもフォームが再送信されないようになっています(Post-Redirect-Getパターン)。これにより、ユーザーが誤ってフォームを再送信することを防ぎます。
認証
APIを使用するには、APIトークンによる認証が必要です。
APIトークンの発行
- プロフィール設定画面(
/profile)にアクセスします - 「APIトークン」セクションを開きます
- トークン名を入力して「トークンを発行」をクリックします
- 発行されたトークンをコピーして安全に保管してください(再表示はできません)
認証方法
APIリクエストには、以下のようにAuthorizationヘッダーにBearerトークンを含めてください:
curl -H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Accept: application/json" \
https://f.littlegleam.com/api/forms
データ取得API
フォーム一覧の取得
現在のチームに属するフォーム一覧を取得します。
エンドポイント: GET /api/forms
リクエスト例:
curl -H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Accept: application/json" \
https://f.littlegleam.com/api/forms
レスポンス例:
{
"data": [
{
"id": 1,
"public_id": "abc123",
"name": "お問い合わせフォーム",
"created_at": "2025-01-01T00:00:00.000000Z"
}
]
}
受信データ一覧の取得
特定のフォームの受信データ一覧を取得します。
エンドポイント: GET /api/forms/{public_id}/submissions
パラメータ:
public_id(パス): フォームの公開ID
リクエスト例:
curl -H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Accept: application/json" \
https://f.littlegleam.com/api/forms/abc123/submissions
レスポンス例:
{
"data": [
{
"id": 1,
"form_id": 1,
"data": {
"name": "山田太郎",
"email": "[email protected]",
"message": "お問い合わせ内容"
},
"created_at": "2025-01-01T00:00:00.000000Z"
}
],
"links": {
"first": "https://f.littlegleam.com/api/forms/abc123/submissions?page=1",
"last": "https://f.littlegleam.com/api/forms/abc123/submissions?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"per_page": 50,
"to": 1,
"total": 1
}
}
注意: レスポンスはページネーション対応で、1ページあたり最大50件のデータが返されます。
レート制限
無料プランでは、月間50件までの送信が可能です。Proプランでは、月間1,000件まで送信できます。