Re:port Flow API クイックスタート
Re:port Flow APIへようこそ!
Re:port Flow は、日本語帳票にネイティブ対応した国産のPDF生成サービスです。REST API と MCP サーバーの両方から呼び出せて、無料プラン(月30ファイルまで)から試せます。このドキュメントでは、5分でPDF生成を始める方法を説明します。
⚡ 5分でPDFを生成するには?
アプリケーションキーとデザインIDの2つを控えて、POST /v1/file/sync/single に投げるだけです。管理画面での準備が約2分、cURL 1本でのPDF生成が約3分で終わります。以下のステップを上から順に実行してください。
APIキーの取得には Re:port Flow のアカウントが必要です。まだお持ちでない場合は、無料でアカウントを登録してから進めてください。
ステップ1: APIキーを取得(1分)
Re:port Flow管理画面にアクセスして、以下の情報を取得します:
- ワークスペース設定 → API連携 へ移動
- 以下をコピー:
- アプリケーションキー:
ak_xxxxxxxxxxxxxxxx
- アプリケーションキー:
ステップ2: デザインIDを確認(1分)
- デザイン管理 へ移動
- 使用するデザインを選択
- デザインID をコピー(例:
550e8400-e29b-41d4-a716-446655440000)
ステップ2.5: パラメータ構造を確認(1分、オプション)
デザインが必要とするパラメータの構造を確認します:
curl -X GET https://api.re-port-flow.com/v1/file/design/parameter/550e8400-e29b-41d4-a716-446655440000 \
-H "appkey: your-app-key"
レスポンス例:
{
"customerName": "string",
"invoiceNumber": "string",
"amount": "number"
}
パラメータ構造の詳細は デザインパラメータ取得ガイド を参照してください。
ステップ3: 最初のPDFを生成(3分)
以下のcURLコマンドをターミナルで実行します:
curl -X POST https://api.re-port-flow.com/v1/file/sync/single \
-H "Content-Type: application/json" \
-H "appkey: your-app-key" \
-d '{
"designId": "550e8400-e29b-41d4-a716-446655440000",
"version": 1,
"content": {
"fileName": "invoice.pdf",
"params": {
"customerName": "山田太郎",
"invoiceNumber": "INV-2024-001",
"amount": 10000
}
}
}' \
--output my-first-pdf.pdf
成功すると my-first-pdf.pdf がカレントディレクトリに保存されます!
🎯 Re:port Flow API はどんなときに使う?
「アプリの画面からその場でPDFを落とさせたい」「月末に全顧客ぶんのレポートを一括生成してメール送信したい」「保存する前に仕上がりを確認させたい」——この3つが代表的な用途です。それぞれで使うエンドポイントを併記しているので、近いものから読んでください。
ユースケース1: 請求書の即時生 成
ユーザーがボタンをクリックしたときに、即座にPDFをダウンロードさせる。
使用エンドポイント: 単一PDF同期生成
// ボタンクリック時
async function downloadInvoice(invoiceId) {
const pdf = await generatePDF({
designId: 'invoice-template',
version: 1,
fileName: `invoice_${invoiceId}.pdf`,
data: invoiceData
});
// ブラウザでダウンロード
downloadFile(pdf, `invoice_${invoiceId}.pdf`);
}
ユースケース2: 月次レポートの一括生成
毎月末に全顧客のレポートを一括生成してメール送信。
使用エンドポイント: 複数PDF非同期生成
// バッチ処理
async function generateMonthlyReports(customers) {
const contents = customers.map(customer => ({
fileName: `report_${customer.id}.pdf`,
params: customer.data
}));
const result = await generateMultiplePDFsAsync('report-template', contents);
// 各顧客にメール送信
await sendEmailsWithPDFs(result);
}
ユースケース3: プレビュー機能
デザインエディタでリアルタイムプレビュー。
使用エンドポイント: 単一PDF同期生成
// プレビューボタ ンクリック時
async function showPreview(designId, params) {
const pdf = await generatePDF({
designId,
version: 1,
fileName: 'preview.pdf',
data: params
});
// ブラウザで表示
openPDFInNewTab(pdf);
}
🧭 API概要
PDF生成エンドポイント
| エンドポイント | 用途 | タイムアウト | レスポンス |
|---|---|---|---|
| POST /file/sync/single | 単一PDF同期生成 | 120秒 | PDFファイル |
| POST /file/async/single | 単一PDF非同期生成 | なし | URL + fileId |
| POST /file/sync/multiple | 複数PDF同期生成 | 120秒 | ZIPファイル |
| POST /file/async/multiple | 複数PDF非同期生成 | なし | URL + fileId |
その他のエンドポイント
| エンドポイント | 説明 |
|---|---|
| GET /file/download/{uuid} | ZIP一括ダウンロード |
| GET /file/download/{uuid}/{fileId} | 個別 ファイルダウンロード |
| GET /file/design/parameter/{designId} | デザインパラメータ取得 |
🧪 Postmanで試す
APIをすぐに試したい場合は、公式のPostmanコレクションを使用できます:
Postman Public Workspace
公式のPostmanコレクションには以下が含まれています:
- ✅ 全7エンドポイントの実行可能なリクエスト
- ✅ 認証設定(アプリケーションキー)の自動適用
- ✅ 実行可能なサンプルパラメータ
- ✅ レスポンス検証の自動テストスクリプト
- ✅ エラーケース(412、401、400)のサンプル
📚 次のステップ
- デザインパラメータ取得 - パラメータ構造の確認方 法
- 認証方法の詳細
- PDF生成ガイド
- API 事実まとめ - ベースURL・認証・レート制限・データ地域を1ページで確認
🔧 制限事項
詳細は 制限事項ページ を参照してください。
主な制限
- リクエストサイズ: 最大50MB(Base64エンコード後、実質約37MB相当)
- タイムアウト: 同期エンドポイント120秒、非同期は制限なし
- Rate Limit: Workspace単位で適用(同期30 req/min、非同期100 req/min)
- ファイル名:
/ \ : * ? " < > |および制御文字以外は使用可能 - 認証: アプリケーションキー(
appkeyヘッダー)が必須 - HTTPS通信: 必須(HTTP通信は自動的にHTTPSへリダイレクトされます)
💡 サンプルコード
JavaScript (Node.js)
import axios from 'axios';
async function generatePDF() {
const response = await axios.post(
'https://api.re-port-flow.com/v1/file/sync/single',
{
designId: '550e8400-e29b-41d4-a716-446655440000',
version: 1,
content: {
fileName: 'invoice.pdf',
params: {
customerName: '山田太郎',
invoiceNumber: 'INV-2024-001',
amount: 10000
}
}
},
{
headers: {
'appkey': 'your-app-key'
},
responseType: 'arraybuffer'
}
);
return response.data;
}
Python
import requests
def generate_pdf():
url = 'https://api.re-port-flow.com/v1/file/sync/single'
headers = {
'appkey': 'your-app-key',
'Content-Type': 'application/json'
}
data = {
'designId': '550e8400-e29b-41d4-a716-446655440000',
'version': 1,
'content': {
'fileName': 'invoice.pdf',
'params': {
'customerName': '山田太郎',
'invoiceNumber': 'INV-2024-001',
'amount': 10000
}
}
}
response = requests.post(url, headers=headers, json=data)
return response.content