Postman execution.runRequest : コレクションの連続実行をスクリプトで制御する
先日こちらの記事で、2つのAPIコールを連続実行する手順を作成してみました。
APIコールのPost-responseスクリプトの中で以下を指定し、レスポンスをさらにつぎのAPIのPOSTパラメータに用いる、という処理を行いました。
// レスポンスから text を抽出
let response = pm.response.json();
let textFromResponse = response.text;
if (!textFromResponse) {
console.warn("text フィールドがレスポンスに存在しません");
} else {
// API呼び出し
pm.sendRequest({
url: 'https://api.ai.sakura.ad.jp/v1/chat/completions',
method: 'POST',
header: {
'Accept': 'application/json',
'Authorization': 'Bearer <TOEKN>',
'Content-Type': 'application/json'
},
body: {
mode: 'raw',
raw: JSON.stringify({
model: 'gpt-oss-120b',
messages: [
{ role: 'user', content: "次の文をサマーりしてください"+textFromResponse }
],
temperature: 0.7,
max_tokens: 200,
stream: false
})
}
}, function (err, res) {
if (err) {
console.error('API呼び出しエラー:', err);
return;
}
let chatResponse = res.json();
console.log('gpt-oss-120b 応答:', chatResponse);
// 必要なら保存
pm.environment.set("chat_response_content", JSON.stringify(chatResponse));
});
}
この方式ではpm.sendRequestを用いて単純にスクリプトで外部APIを呼び出しています。ただせっかくPostmanを使うのであればやっぱりAPIコールはコレクションという形で管理し、Post-resposneスクリプトの中で次のコレクションを呼び出す、という形態が取れれば様々なPostmanのテスト機能が使えるため便利です。
調べていたところ2025年10月1日にタイムリーなアップデートが来ていました。
Post-responseの中でexecution.runRequestを使えばコレクションに保存されているAPIコールのIDを指定することで呼び出せるようです。
さっそくやってみる
まずコレクションには2つのAPIコールが設定されています。

whisper : さくらのAI Engineに対して音声の文字起こしリクエストを出す
requestcatcher : testというローカル変数に格納されている文字列をPOSTする。
https://kameda.requestcatcher.com/?test={{test}}
{{test}}というのはPostman独自のローカル変数書式です。
つまりwhisperのレスポンスボディを{{test}}にセットしてrequestcatcherコレクションをexecution.runRequestを使って呼び出す、というものを作ります。
1. whisper 側のPost-response 設定
以下のスクリプトを挿入します。
try {
// 今のリクエストのレスポンス本文(文字列)
const bodyText = pm.response.text();
const runRes = await pm.execution.runRequest(
"13003149-9df94cda-68fe-4b21-835b-fac215a708eb",
{
variables: {
test: bodyText
}
}
);
console.log("Response received with status:", runRes.code, runRes.json());
}
catch (error) {
console.error("Failed to send a request from the collection", error);
}
13003149-9df94cda-68fe-4b21-835b-fac215a708ebはrequestcatcherのコレクションIDです。PostmanのエディターではこのようにIDを調べなくても事前に挿入してくれるようになっています。便利!

以下の部分でレスポンスボディがローカル変数(test)にセットされます。
variables: {
test: bodyText
}
2. requestcatcherのPre-request設定
次に呼び出される側でローカル変数(test)を読み取りリクエストにセットするためPre-requestに以下のスクリプトをセットします。
const v = pm.variables.get('test'); // "hello"
console.log('test =', v);
3. テスト実行
whisper を実行すると以下の様にそのあと連続的にrequestcatcherが実行されていることがわかります。

Discussion