# フォームの全てのIDを取得するcurlコマンド

**URL:** <https://community.hubspot.com/t/id-curl/109261>\
**Category:** Tips, Tricks & Best Practices\
**Tags:** forms\
**Created:** [June 12, 2024, 11:46pm UTC](https://community.hubspot.com/t/id-curl/109261 "2024-06-12T23:46:26Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![A-imai](https://avatars.discourse-cdn.com/v4/letter/a/e9c0ed/32.png) [@A-imai](https://community.hubspot.com/u/A-imai)\
**Post date:** [June 12, 2024, 11:46pm UTC](https://community.hubspot.com/t/id-curl/109261/1 "2024-06-12T23:46:26Z")

</div>

フォーム内の特定のフォルダ内にあるフォームにアクセスしたい。

これをAccessトークンを使用してcurlコマンドで実装したいのですが

システムを記述すれば取得できます。

下記に、フォームを取得することは出来ません。

curl --request GET --url "

[

[https://api.hubapi.com/marketing/v3/forms/](https://api.hubapi.com/marketing/v3/forms/)"

]([https://api.hubapi.com/marketing/v3/forms/](https://api.hubapi.com/marketing/v3/forms/))

--header "authorization: Bearer 「Accesstoken」

---

<div class="post-metadata">

**Author:** ![natsumimori](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/natsumimori/32/39807_2.png) [@natsumimori](https://community.hubspot.com/u/natsumimori)\
**Post date:** [June 13, 2024, 1:34am UTC](https://community.hubspot.com/t/id-curl/109261/2 "2024-06-13T01:34:05Z")

</div>

@A-imai さん

CurlコマンドでAPIを叩いて全HubSpotフォームのIDを取得されたい、ということでしょうか。

@skimura さん\> そういったことは可能か、お分かりになりますか？質問の意味を完全に理解していない状態で申し訳ないのですが、もしアドバイスがあればお願いいたします！

_\*当初Developers Forumにご投稿いただきましたが、Developers Forumは英語のみ対応のため、__こちらの日本語版HubSpotコミュニティーに投稿を移動させていただきました。_

---

<div class="post-metadata">

**Author:** ![A-imai](https://avatars.discourse-cdn.com/v4/letter/a/e9c0ed/32.png) [@A-imai](https://community.hubspot.com/u/A-imai)\
**Post date:** [June 13, 2024, 1:46am UTC](https://community.hubspot.com/t/id-curl/109261/3 "2024-06-13T01:46:30Z")

</div>

現在手動で行っている事は、特定のフォルダ内にあるフォームを順次開いて、送信をエクスポート、xlsxでダウンロードしています。これを自動化しようと試みております。

一気にフォルダ内のフォームをダウンロード出来ればベストですが、難しそうなので、一旦リストで抽出して全てのフォームIDを取得してから、フォームIDで1件ずつ取得出来ないかと考えております。

---

<div class="post-metadata">

**Author:** ![skimura](https://avatars.discourse-cdn.com/v4/letter/s/9de053/32.png) [@skimura](https://community.hubspot.com/u/skimura)\
**Post date:** [June 13, 2024, 3:12am UTC](https://community.hubspot.com/t/id-curl/109261/4 "2024-06-13T03:12:12Z")

</div>

@A-imai

こんにちは、下記の方法はいかがでしょうか。

1. 下記のAPIでフォームの一覧を取得

[https://legacydocs.hubspot.com/docs/methods/forms/v2/get\_forms](https://legacydocs.hubspot.com/docs/methods/forms/v2/get_forms)

※フォーム数が多い場合はレスポンスのデータ量が多くなるので注意

レスポンスは各フォーム情報の配列なので

各フォーム毎のguidを収集します。

※フォーム情報にはフォルダー情報が無いように思います。

下記のような処理で、特定フォルダーのフォームのみにフィルターするのはいかがでしょうか。

事前にフォルダー内のフォーム名を収集し、

APIで取得したフォーム情報の「フォーム名」をみて一致したフォームのみにフィルター

```lia-code-sample
// レスポンス
[
 {
 "portalId": 62515,
 "guid": "0033cf74de6a48c4ac5d805d72d69822", // ←この値を収集
 "name": "Example Form Name",
 "action": "",
 ...,
 },
 ...
]

```

2. 下記のAPIで各フォーム毎の送信情報を取得

リクエスト：[1.]で取得したフォームのguid

> **[Accounts Dashboard | HubSpot](https://app.hubspot.com/myaccounts?next=developerdocs&redirect=%2Fapi-reference%2Flegacy%2Fforms-v1%2Fsubmissions%2Fget-form-integrations-v1-submissions-forms-form_guid)**

※おそらくですがエクスポート時の一部プロパティは

下記のように対応しているのではないでしょうか（未検証）

(エクスポート時のプロパティ：APIレスポンス）

Conversion Date：submittedAt

Conversion Page：pageUrl

```lia-code-sample
// レスポンス
{
 "results": [
 {
 "submittedAt": 1547130102576, // ←[Conversion Date]に対応してそうです。
 "values": [
 {
 "name": "email",
 "value": "example@example.com"
 },
 {
 "name": "company",
 "value": "Example Co"
 },
 {
 "name": "phone",
 "value": "123 555 4567"
 }
 ],
 "pageUrl": "https://www.example.com/form" // ← [Conversion Page]に対応してそうです。
 },
 ...
}

```

フォーム毎の情報を収集する処理としては下記の流れかと思います。

上記[1.]でフォームのguidを収集（必要に応じてフィルター）

フォームの数だけ下記を繰り返す

上記[2.] でguidをリクエストしてフォーム毎の送信情報

※必要に応じてページング、APIの呼び出し制限を考慮

Option：必要であれば下記の方法でフォームのフィールド名を取得できます。

※上記 [2.] ではフォームの内部値がレスポンスされます。

（例：{‘label’: ‘メールアドレス’, name: ‘email’, …}

各フォーム毎のフィールド情報を下記のAPIで取得します。

[https://legacydocs.hubspot.com/docs/methods/forms/v2/get\_fields](https://legacydocs.hubspot.com/docs/methods/forms/v2/get_fields)

レスポンスのフィールド情報 [label] からフィールド名を取得できます。

```lia-code-sample
// レスポンス
[
 {
 ...
 'label': 'LastName', // フィールド名
 ...
 'name': 'lastname', // 内部値
 ...
 },
 ...
]

```

参考になれば幸いです。

@natsumimori

お知らせいただきありがとうございます。

---

<div class="post-metadata">

**Author:** ![A-imai](https://avatars.discourse-cdn.com/v4/letter/a/e9c0ed/32.png) [@A-imai](https://community.hubspot.com/u/A-imai)\
**Post date:** [June 13, 2024, 4:26am UTC](https://community.hubspot.com/t/id-curl/109261/5 "2024-06-13T04:26:21Z")

</div>

ご連絡ありがとうございます。内容も分かり易く大変助かります。

試してみます。
