コアコンセプト: ファイル、見積もり、ジョブ
このページでは、プラットフォームを支える基本的なアイデアとパターンを紹介します。これらのコンセプトを理解することで、API を最大限に活用し、3D プリンティングワークフローのための堅牢な連携を構築することができます。
API ベースルート
外部 API 呼び出しを行う場合は、https://api.quote3d.com/v2/... へ直接リクエストを送信してください (例: GET https://api.quote3d.com/v2/user)。
ソフトウェア内で、https://api.quote3d.com を API ホスト / ベース URL として設定し、/v2/user、/v2/file、/v2/quotes などの v2パスを呼び出してください。
1. 認証とセキュリティ
すべてのエンドポイントで Quote3D API トークンによる認証が必要です。唯一の例外は、ファイル管理に記載された公開アップロードルートです。外部からの呼び出しには https://api.quote3d.com/v2 をベースルートとして使用してください。トークンは Authorization: Bearer YOUR_TOKEN または X-API-Token として送信します。トークンは Quote3D ダッシュボードで生成し、秘密に保管してください。
トークンにはスコープを設定できます。フルアクセストークンはすべてのエンドポイントに到達しますが、ウィジェットスコープのトークンは埋め込みウィジェットが必要とするエンドポイントに限定されます。スコープ外の呼び出しは403を返します。トークンのスコープはダッシュボードのトークンページで確認・変更できます。
リマインダー: API トークンを安全に保管してください。公開したり、バージョン管理システムにコミットしたりしないでください。
2. アカウント管理
専用のエンドポイントを通じて、アカウント、アップロード、および使用状況統計を管理します:
GET /v2/userアカウント情報、プラン、月間割り当てを取得します — quotes_used、quotes_limit、storage_used、storage_limit、reset_date はここにありますGET /v2/user/uploadsアカウントにアップロードしたファイルを、最新のものから古いものの順にリスト表示します。GET /v2/quotaレート制限の割り当てを取得します — グローバル上限に加え、残り呼び出し数とリセット時刻を含むエンドポイント別の内訳、さらに本日・今月・今年・累計のリクエスト数もあわせて返しますGET /v2/usageエンドポイント統計、材料の使用量、および時間ベースのトレンドを含む、詳細な使用状況分析を取得GET /v2/configアカウントで有効なテクノロジー、プリンター、色 (在庫の有無を含む) 付きの材料、価格の既定値など、ウィジェットが提供する内容です。ウィジェット用トークンでも読み取れます。
3. ファイル管理
3D モデルファイル (STL、3MF、OBJ、STEP 形式) のアップロード、ダウンロード、および管理:
GET /v2/file/upload-id— 新しいファイルをパブリックアップロードルートでアップロードするための、一時的な upload_id を取得します。POST /v2/file/public/{upload_id}— このルートは認証を必要としません。クライアント側で使用して、ファイルをストレージに直接アップロードできます。パブリックアップロードルートを使用すると、大きなファイルをバックエンドサーバーにルーティングする必要がなくなります。これにより、API トークンが公開されるのを防ぎ、サーバーの負荷を軽減できます。
POST /v2/file— サーバー側からファイルをアップロードします (認証が必要です。バックエンドからアップロードしたい場合に利用します)。GET /v2/file/{file_id}— file_id を使用してファイルをダウンロードします。DELETE /v2/file/{file_id}— 不要になったファイルを削除します。
ファイルが有効な STL、3MF、OBJ、STEP モデルでない場合、またはプラットフォームのファイルサイズ上限 (既定50MB) を超える場合、アップロードは拒否されます。STEP ファイル (.step/.stp) はサーバー上で OrcaSlicer と同じ設定 (線形偏差0.003 mm、角度偏差0.5 rad) でメッシュ化され、アセンブリのすべてのボディが統合され、長さはミリメートルに換算されます。両方のアップロードルートで同じ検査が適用されます。
ファイルの保存方法
アップロードされたモデルは暗号化されて保存され、公開されることはありません。保存されたファイルを直接配信するリンクは存在しません。レスポンスに含まれる file_path フィールドは、ディスク上の場所ではなく、認証済みのダウンロードパス (GET /v2/file/{file_id}) です。そのため、共有可能な URL ではなく、エンドポイントとして扱ってください。ファイルを削除すると、リストからだけでなく、ストレージからも削除されます。
4. 部品情報と技術分析
モデルが印刷可能かどうかを確認し、部品寸法と高度なテクニカルメトリクスを取得します:
POST /v2/printability/{file_id}インスタント分析 – 見積もりを生成する前に、寸法、体積、表面積、幾何学的整合性 (オープンエッジ / 非多様体) を確認します。
Quote3D は単なる寸法確認に留まりません。モデルの多様体 (manifold) としての整合性を分析し、3D プリントにおいて重要な定着リスクを評価します。これらのメトリクスは、Printability と Quote の両方のレスポンスで提供されます。
5. 見積もり操作
3D プリントの見積もりを即座に生成し、見積もり履歴を管理します。
POST /v2/file/quote/{file_id}— 3D モデルの非同期見積もり計算を開始します。ジョブ ID を返します。ジョブエンドポイントを使用して、完了した結果を取得してください。POST /v2/file/quote/{file_id}/async— 別の非同期見積もりエンドポイントです。ステータスを確認し、完了した結果を取得するために使用できるジョブ ID を返します。GET /v2/jobs/{job_id}— 非同期見積もりジョブのステータスを確認します。進捗率と完了ステータスを返します。GET /v2/quotes— ページネーションをサポートして、すべての見積もり履歴を取得します。GET /v2/quotes/{quote_id}— 特定の見積もりの詳細情報を取得します。DELETE /v2/quotes/{quote_id}— 履歴から見積もりを削除します。
非同期ワークフロー: POST /v2/file/quote/{file_id} 最初にジョブ ID を返します。完了したコンパクトな結果には GET /v2/jobs/{job_id} を、保存された詳細な見積もりデータが利用可能な場合は GET /v2/quotes/{quote_id} をご利用ください。
見積もりリクエストパラメータ
見積もりを生成する際に、リクエストボディでカスタム構成を指定できます。指定しないパラメータはすべて、ダッシュボードのスライスプロファイル設定から自動的に取得されます。これにより、他の設定をデフォルトのままにして、見積もりごとに特定の設定を上書きできます。
重要: リクエストにパラメータを提供しない場合、API はダッシュボードのスライスプロファイル (プリンタープロファイル、マテリアルプロファイル、またはグローバル設定) の値を適用します。一貫した見積もりのために、ダッシュボードでデフォルトプロファイルをセットアップしてください。また、ダッシュボードの特定のプリンタープロファイルですべてのパラメータを設定し、リクエストで 'printer_id' を渡すだけで、それらの設定を個別に渡すことなく即座に適用できます。
設定の優先順位: V2 API リクエストで送信された値は、選択されたユーザープロファイルの値よりも優先されます。まだ値が欠落しているフィールドは、ユーザー / グローバルデフォルトプロファイルにフォールバックします。
以下の表は、連携で最も頻繁に上書きされるパラメータを扱っています。これは全リストではありません — 見積もりエンジンはさらに多くのプリンター、材料、価格関連フィールドを受け付け、そのいずれもリクエストごとに送る代わりにダッシュボードのスライスプロファイルで一度設定できます。プロファイルをそこで構成し、見積もりごとに変わる項目だけを送ってください。完全なフィールド一覧は OpenAPI スキーマにあります。
Request Validation
printer_config、material_config、quote_config の数値フィールドは、ジョブがキューに入る前に範囲チェックされます。範囲外の値、有限でない数値 (NaN、Infinity)、誤った型、あるいはゼロ以上のみが意味を持つ箇所での負の値は、HTTP 400と該当フィールド名を含む VALIDATION_ERROR で拒否されます。意味を持つ箇所では0も引き続き受け付けられます。ロールごとの速度や加速度の0は「プリンターの既定値を使用する」という意味で、OrcaSlicer と同じ規約です。
- 温度の制限: 材料の温度 (temperature と bed_temperature。リクエストで送信された場合も、材料プロファイルから読み込まれた場合も対象) は、プリンターの min_hotend_temp / max_hotend_temp および min_bed_temp / max_bed_temp と照合されます。選択したプリンターが供給できる以上の熱を必要とする材料は、見積もりされずに拒否されます。FDM のみが対象です。レジンおよびパウダー系のテクノロジーにはノズルもヒートベッドもありません。プリンター側の制限を未設定のままにすると、このチェックは省略されます。
- 有効なテクノロジー: グローバル設定でテクノロジーを制限している場合、無効化されたテクノロジーに対する見積もりリクエストは拒否されます。この設定を空のままにすると、すべてのテクノロジーが受け付けられます。
- 材料価格のフィールド: 課金に使われる値は price_per_gram です。材料プロファイルを保存すると price_per_kg がそこから自動的に再計算され (キログラム単価のみを指定した場合は price_per_gram が price_per_kg から算出されます)、両者が食い違うことはありません。
ルートパラメータ
| パラメータ | タイプ | 説明 |
|---|---|---|
| technology | string | 任意。製造技術: 'FDM'、'SLA'、'SLS'、'SLM'、'MJF' ('RESIN' は 'SLA' の、'DMLS' と 'LPBF' は 'SLM' の別名として受け付けられます)。どの技術固有パラメータが適用されるか、量産時に部品をどう配置するかを決定します。省略した場合は選択したプリンターの技術が使われ、それもなければ 'FDM' になります。 |
| printer_id | string | オプション。デフォルトのプリンターの代わりに使うプリンターの ID。 |
| quantity | number | オプション。製造する数量 (デフォルト: 1)。 |
数量とバッチ生産のロジック
当社のシステムは、指定された 'quantity' に基づいて高度なパッキングアルゴリズムを使用します。
- FDM テクノロジー: パーツは、スペースがある限り、造形板 (X 軸と Y 軸) に並べて配置されます。
- SLA テクノロジー: パーツは、レジン槽 (X 軸と Y 軸) に並べて配置されます。
- SLS テクノロジー: パーツは、粉末ベッドの容量を最大限に活用するために、すべての軸 (X、Y、Z) に積み重ねることができます。
この最適化されたパッキングにより、複数のパーツを1つのバッチに収めることができれば、予熱、冷却、レイヤー変更などの固定費は必要なバッチごとにのみ適用されます。これにより、大量注文に対して非常に現実的で費用対効果の高い価格設定が保証されます。
printer_config
プリンター構成パラメータ。すべてのフィールドはオプションであり、指定しない場合はデフォルトのプリンタープロファイルの値が使用されます。
| パラメータ | タイプ | 説明 |
|---|---|---|
| nozzle_diameter | number | FDM nozzle diameter (mm). Drives extrusion width, so it changes both print time and material use. |
| support_material | boolean | Enable support generation. When omitted, the profile value is used. |
| bed_size_x | number | Build volume X dimension (mm) |
| bed_size_y | number | Build volume Y dimension (mm) |
| bed_size_z | number | Build volume Z dimension (mm) |
| print_speed | number | Default print speed (mm/s) |
| max_print_speed | number | Maximum print speed (mm/s) |
| travel_speed | number | Travel speed (mm/s) |
| first_layer_speed | number | First layer speed (mm/s) |
| layer_height | number | Layer height (mm) |
| min_layer_height | number | Minimum layer height (mm) |
| max_layer_height | number | Maximum layer height (mm) |
| perimeters | number | Number of perimeters/walls |
| top_solid_layers | number | Top solid layers count |
| bottom_solid_layers | number | Bottom solid layers count |
| min_wall_count | number | Minimum wall count |
| max_wall_count | number | Maximum wall count |
| fill_density | number | Infill density (0-100%) |
| infill_pattern | string | インフィルパターン。デフォルト: rectilinear。基本 (rectilinear, alignedrectilinear, zigzag, crosszag, lockedzag, line, grid)、三角形 (triangles, trihexagon)、立方体 (cubic, adaptivecubic, supportcubic)、ハニカム (honeycomb, honeycomb3d, lateralhoneycomb)、高度 (gyroid)、特殊 (monotonic, monotonicline)、空間充填 (hilbertcurve, archimedeanchords, octagramspiral)。hilbertcurve, archimedeanchords, octagramspiral は受け付けられますが、専用のジェネレーターがないため、rectilinear として処理されます。値は大文字小文字を区別せず、セパレーターは無視して照合されるため、tri-hexagon や Zig Zag も利用可能です。また、OrcaSlicer の表記である3dhoneycomb も受け付けられます。lightning, quartercubic, laterallattice, crosshatch, concentric, tpmsd, tpmsfk はサポートされておらず、400エラーを返します。 |
| support_overhang_angle | number | Support overhang angle (degrees) |
| support_density | number | Support density (0-100%) |
| brim_enabled | boolean | Enable brim generation for FDM quotes |
| brim_width | number | Brim width in millimeters when brim is enabled |
| acceleration_print | number | Print acceleration (mm/s²) |
| acceleration_travel | number | Travel acceleration (mm/s²) |
| acceleration_retraction | number | Retraction acceleration (mm/s²) |
| acceleration_outer_wall | number | Outer wall acceleration (mm/s²). 0 uses acceleration_print. |
| acceleration_inner_wall | number | Inner wall acceleration (mm/s²). 0 uses acceleration_print. |
| acceleration_sparse_infill | number | Sparse infill acceleration (mm/s²). 0 uses acceleration_print. |
| acceleration_solid_infill | number | Solid infill acceleration (mm/s²). 0 uses acceleration_print. |
| acceleration_top_surface | number | Top surface acceleration (mm/s²). 0 uses acceleration_print. |
| acceleration_bridge | number | Bridge acceleration (mm/s²). 0 uses acceleration_print. |
| acceleration_first_layer | number | First layer acceleration (mm/s²). 0 uses acceleration_print. |
| retraction_minimum_travel | number | Travel moves shorter than this do not retract (mm). Reference default 1. |
| z_hop_mm | number | Nozzle lift before a travel move (mm). 0 disables it. Reference default 0.4. |
| bed_exclude_x | number | Unusable bed edge margin on X (mm), removed from the packing area. |
| bed_exclude_y | number | Unusable bed edge margin on Y (mm), removed from the packing area. |
| jerk_print | number | Print jerk (mm/s) |
| jerk_travel | number | Travel jerk (mm/s) |
| jerk_retraction | number | Retraction jerk (mm/s) |
| min_hotend_temp | number | Minimum hotend temperature (°C) |
| max_hotend_temp | number | Maximum hotend temperature (°C) |
| min_bed_temp | number | Minimum bed temperature (°C) |
| max_bed_temp | number | Maximum bed temperature (°C) |
| hourly_cost | number | Machine hourly cost |
| SLA 専用 | ||
| sla_exposure_time | number | SLA: レイヤーごとの露光時間 (秒) |
| sla_bottom_exposure_time | number | SLA: ベースライン露光時間 (秒) |
| sla_bottom_layer_count | number | SLA: ボトムレイヤーの数 |
| sla_lift_distance | number | SLA: リフト距離 (mm) |
| sla_lift_speed | number | SLA: リフト速度 (mm/min) |
| sla_retract_speed | number | SLA: リトラクト速度 (mm/min) |
| sla_cleaning_cost | number | SLA: プリントごとの固定洗浄費用 (IPA、消耗品) |
| sla_pad_enabled | boolean | SLA: モデルをパッド / ラフト上にプリントします。デフォルトはオフ。パッドのレジンはサポート材としてカウントされます。 |
| sla_pad_wall_thickness | number | SLA: パッドの壁の厚さ (mm)。エイリアス: sla_pad_height。 |
| sla_pad_wall_height | number | SLA: パッドの壁の高さ (mm) (パッドの空洞周囲の立ち上がった縁)。 |
| sla_pad_wall_slope | number | SLA: パッドの壁の傾斜角度 (45-90度)。パッドはこの角度で下に向かって細くなります。 |
| sla_pad_brim_size | number | SLA: パッドのブリムサイズ (mm)。エイリアス: sla_pad_expansion。 |
| sla_pad_max_merge_distance | number | SLA: これより近いサポートの足は、1つのパッドアイランドに結合されます (mm)。 |
| sla_support_head_front_diameter | number | SLA: サポートヘッド先端 (前方) の直径 (mm)。 |
| sla_support_head_penetration | number | SLA: サポートヘッドがモデル表面に沈み込む深さ (mm)。 |
| sla_support_head_width | number | SLA: サポートヘッドのロッドの長さ (mm)。 |
| sla_support_pillar_diameter | number | SLA: サポートピラーの直径 (mm)。サポートレジンの体積の大部分を決定します。 |
| sla_support_base_diameter | number | SLA: サポートピラーのベース (足) の直径 (mm)。 |
| sla_support_base_height | number | SLA: サポートピラーのベース (足) の高さ (mm)。 |
| sla_support_object_elevation | number | SLA: ビルドプレートからのオブジェクトの高さ (mm)。プリント層も追加されるため、プリント時間に影響します。サポートが生成される場合にのみ適用されます。 |
| sla_support_critical_angle | number | SLA: サポート配置時に使用されるブリッジの傾斜角 (度)。support_overhang_angle とは異なります。 |
| sla_support_max_pillar_link_distance | number | SLA: この距離より離れたピラーは連結されません (mm)。 |
| sla_support_max_bridge_length | number | SLA: サポートヘッドがプレートに到達するために形成する、最長の横方向ブリッジの長さ (mm)。 |
| sla_support_max_bridges_on_pillar | number | SLA: 1つのピラーが受け入れ可能なブリッジの数。 |
| sla_support_points_density | number | SLA: サポートポイント密度 (パーセンテージ、100 = 標準)。FDM のサポートインフィル率である support_density とは異なります。 |
| sla_elephant_foot_compensation | number | SLA: 底部の広がりを打ち消すために、最初の数層をどれだけ内側に引き込むかを設定します。すべての付属 SLA プリンターにおける基準値は0.2です。0に設定すると無効になります。 |
| sla_elephant_foot_min_width | number | SLA: 細い形状が消失しないよう、これより狭い輪郭には補正を適用しません。基準値は0.2です。 |
| sla_faded_layers | number | SLA: 何レイヤーかけて補正をゼロに減衰させるかを設定します。これは最下層のレイヤー数ではありません。基準となる MSLA プロファイルでは8が使用されています。 |
| SLS 専用 | ||
| sls_laser_speed | number | SLS: レーザー速度 (mm/s) |
| sls_hatch_spacing | number | SLS: ハッチ間隔 (mm) |
| mjf_layer_time | number | MJF: 1層あたりの秒数。HP が公表するビルドレートはベッド面積 x 層厚 / 層時間と厳密に一致するため、この1つの数値がビルド時間全体を決めます。XY 形状は関与しません。4200のデータシートは0.08 mm 層で7.55秒と記載しています。 |
| mjf_layer_thickness | number | MJF: 層厚 (mm)。HP は4200/5200シリーズを0.08 mm で出荷しています。 |
| mjf_preheat_time | integer | MJF: ビルド開始前の予熱時間 (分)。ビルド内のすべての部品で共有し、按分して課金します。 |
| mjf_cooling_time | integer | MJF: ビルド後の冷却時間 (分)。パウダーケーキは取り出す前に冷却が必要です。すべての部品で共有し、按分して課金します。 |
| mjf_power | number | MJF: 装置の平均消費電力 (W)。電力コスト項目に使用します。 |
| mjf_bb_multiplier | number | MJF: 部品に課金されるビルド容積 (ケーキ) の取り分に掛ける係数。0 = ケーキ内で部品が占めるパウダー分は課金しません。 |
| mjf_part_spacing | number | MJF: パウダーケーキ内の部品間の最小間隔 (mm)。1回のビルドに入る部品数を決め、したがって予熱・冷却・パウダーの部品あたりの取り分を左右します。 |
| slm_laser_speed | number | SLM: レーザーのスキャン速度 (mm/s)。メーカーのビルドレート恒等式は層厚 x スキャン速度 x ハッチ間隔 x レーザー本数であり、この4項目が一緒にスキャン時間を決めます。 |
| slm_hatch_spacing | number | SLM: 隣り合うスキャンライン間の距離 (mm)。 |
| slm_layer_thickness | number | SLM: 層厚 (mm)。金属パウダーベッド装置は通常0.02~0.06 mm で動作します。 |
| slm_laser_count | integer | SLM: レーザー本数。メーカーのビルドレート式と同様に、スキャン項全体を割る除数です。再コーティング時間は短縮されません。 |
| slm_contour_count | integer | SLM: 各層の輪郭 (境界) パスの回数。0 = 輪郭パスなし。 |
| slm_contour_speed | number | SLM: 輪郭パスの速度 (mm/s)。通常はハッチ速度より遅くなります。 |
| slm_jump_speed | number | SLM: スキャンベクトル間でレーザーを移動 (ジャンプ) させる速度 (mm/s)。 |
| slm_recoat_time | number | SLM: リコーターが1層に要する秒数。メーカーのビルドレートの数値は再コーティングを含まないため、SLS とは異なり公表ビルドレートからは導出できません。装置で実測してください。 |
| slm_preheat_time | integer | SLM: ビルドチャンバーの予熱と不活性ガスパージの時間 (分)。プレート上のすべての部品で共有します。 |
| slm_cooldown_time | integer | SLM: ビルド後の冷却時間 (分)。プレート上のすべての部品で共有します。 |
| slm_power | number | SLM: 装置の平均消費電力 (W)。電力コスト項目に使用します。 |
| slm_part_spacing | number | SLM: ビルドプレート上の部品間の最小間隔 (mm)。SLM の部品は Z 方向に積層できず、どの部品もプレートに溶着されるため、この値がプレート上のネスティングとビルドあたりの部品数を直接決めます。 |
| slm_build_plate_cost | number | SLM: 1回のビルドあたりのビルドプレート費用。そのビルドの部品で分担します。0 = 課金しません。 |
| slm_plate_removal_cost | number | SLM: 部品をプレートから切り離す費用 (ワイヤ放電加工またはバンドソー)。1回のビルドあたりで、そのビルドの部品で分担します。0 = 課金しません。 |
| slm_stress_relief_cost | number | SLM: 1回のビルドあたりの応力除去炉サイクル費用。そのビルドの部品で分担します。0 = 課金しません。 |
| slm_inert_gas_flow | number | SLM: ビルド中のアルゴンまたは窒素の消費量 (リットル / 分)。0 = 課金しません。 |
| slm_inert_gas_cost_per_liter | number | SLM: 不活性ガス1リットルの価格 (見積もり通貨)。0 = 課金しません。 |
| slm_support_removal_cost_per_cm3 | number | SLM: サポート1 cm3あたりの手作業による除去費用。金属サポートは荷重と熱を受け持ち、手で剥がすのではなく切断します。0 = 課金しません。 |
| sls_layer_thickness | number | SLS: レイヤー厚 (mm) |
| sls_layer_recoat_time | number | SLS: レイヤーリコート時間 (秒) |
| sls_preheat_time | number | SLS: 予熱時間 (分) |
| sls_cooling_time | number | SLS: 冷却時間 (分) |
| sla_light_off_delay | number | SLA: Light-off delay for each layer (seconds). |
| sla_transition_layer_count | number | SLA: Number of transition layers. |
| sla_drain_holes | array | SLA: Drainage holes configuration to prevent suction cups. |
| sls_bb_multiplier | number | SLS: パーツが占有するビルドスロットのグラム相当あたりのマシンスペース追加料金。スロットは、パーツの最小体積ボックスにパウダーギャップと使用不能なチャンバー端の占有分を加えたものであるため、モデルが回転して配置されても変動しません。0に設定すると追加料金が無効になります。 |
| sls_contour_count | number | SLS: 各スライスの外形に沿ってレーザーが描く輪郭 (ボーダー) パスの数。0に設定すると輪郭パスが無効になります。 |
| sls_contour_speed | number | SLS: 輪郭スキャン速度 (mm/s)。0の場合、輪郭は sls_laser_speed でスキャンされます。 |
| sls_jump_speed | number | SLS: スキャンベクトル間の非焼結再配置移動におけるガルバノジャンプ速度 (mm/s)。0の場合、上限値である sls_laser_speed でジャンプします。 |
| sls_part_spacing | number | SLS: パーツ周囲の最小パウダーギャップ (mm)。パーツ間およびチャンバー壁の両方に適用されます。これにより1回のビルドに収まるパーツ数が決まるため、マシンスペースの占有率と固定費の按分に影響します。0の場合、エンジンのデフォルト値である3mm が使用されます。 |
| max_volumetric_flow | number | Maximum volumetric flow rate in mm³/s. |
material_config
マテリアル構成パラメータ。すべてのフィールドはオプションであり、指定しない場合はデフォルトのマテリアルプロファイルの値が使用されます。
マテリアルプロファイル統合: filament_type パラメータは、ダッシュボードのマテリアルプロファイルにあるマテリアル名と一致する必要があります。filament_type (例: "PLA"、"ABS"、"PETG") を指定すると、API は密度、温度、リトラクション設定、価格を含む、そのマテリアルプロファイルからすべてのプロパティを自動的にロードします。
価格の正確性: 材料コストは price_per_gram から計算されます。材料プロファイルでは price_per_kg か price_per_gram のどちらか一方を設定すれば十分で、もう一方は自動的に同期されます。リクエストごとに価格を上書きしたい場合は、material_config で price_per_gram または price_per_kg を指定してください。
例: ダッシュボードに price_per_kg: 20.0と price_per_gram: 0.02の "PLA" マテリアルプロファイルがある場合、リクエストで {"filament_type": "PLA"} を送信するだけで、すべての価格が自動的に計算されます。
| パラメータ | タイプ | 説明 |
|---|---|---|
| filament_type | string | Filament type (PLA, ABS, PETG, etc.) |
| color | string | 色名 (例: 'White'、'Black'、'#FFFFFF')。注意: 体積ベースの技術 (SLA、SLS、SLM、MJF) では、'post_processing' が 'painting' または 'painted' に設定されている場合にのみ色が適用されます。 |
| density | number | Material density (g/cm³) |
| diameter | number | Filament diameter (mm) |
| filament_flow_ratio | number | FDM フロー比の倍率。1.0は流量100% を意味します。リクエスト値は、選択されたユーザーの材料プロファイル (Material Profile) を上書きします。値が指定されていない場合は、デフォルトの1.0の前にグローバルプロファイルの値を適用します。 |
| powder_bulk_density | number | SLS: Bulk density of loose powder in g/cm³. Used for reusable powder and refresh calculations. |
| temperature | number | Print temperature (°C) |
| print_temp_min | number | Minimum print temperature (°C) |
| print_temp_max | number | Maximum print temperature (°C) |
| bed_temperature | number | Bed temperature (°C) |
| bed_temp_min | number | Minimum bed temperature (°C) |
| bed_temp_max | number | Maximum bed temperature (°C) |
| fan_speed | number | Fan speed (0-100%) |
| min_fan_speed | number | Minimum fan speed (0-100%) |
| retraction_distance | number | Retraction distance (mm) |
| retraction_speed | number | Retraction speed (mm/s) |
| slow_down_min_speed | number | Lower speed bound for layer cooling (mm/s). Reference default 20. |
| retraction_minimum_travel | number | Overrides the printer value for this material (mm). |
| z_hop_mm | number | Overrides the printer value for this material (mm). |
| price_per_kg | number | Price per kilogram |
| price_per_gram | number | Price per gram |
| support_cost_multiplier | number | Support material cost multiplier |
| sls_refresh_factor | number | SLS powder refresh rate ratio (e.g. 0.3 = 30% fresh powder). |
| mjf_refresh_factor | number | MJF パウダーのリフレッシュ比 (例: 0.2 = 新品パウダー20%)。HP はパウダーごとに個別の比率を公表しており、同じポリマーの SLS 比率とは測定方法が異なります。省略すると sls_refresh_factor にフォールバックします。 |
| mjf_fusing_agent_ml_per_cm3 | number | MJF: 溶融部品の体積1 cm3あたりに消費する溶融剤 (mL/cm3)。現場での実測値です。0にすると薬剤コストを見積もりから除外します。 |
| mjf_detail_agent_ml_per_cm2 | number | MJF: 溶融された輪郭面積1 cm2あたりに消費する詳細化剤 (mL/cm2)。同じ測定方法で、体積ではなく輪郭面積を基準にします。0で除外します。 |
| mjf_agent_cost_per_liter | number | MJF: 見積もり通貨での薬剤1リットルの価格。0で薬剤コスト項目を無効にします。 |
| metal_powder_loss_factor | number | SLM: 部品とサポートの体積に対する、ふるい分けと取り扱いの損失割合 (0.05 = 5%)。未使用の金属パウダーはふるい分けて再利用するため、SLS や MJF と違って周囲のパウダーは課金されません。 |
| max_volumetric_flow | number | Material specific volumetric flow limit in mm³/s. |
| min_layer_time | number | Minimum layer time in seconds for cooling. |
quote_config
見積価格の構成パラメータ。すべてのフィールドはオプションであり、指定しない場合はデフォルトのグローバル設定の値が使用されます。通貨はデフォルトでダッシュボードの設定になります (例: 'USD'、'TRY'、'EUR')。
| パラメータ | タイプ | 説明 |
|---|---|---|
| currency | string | Currency code, one of TRY, USD, EUR, GBP, JPY, CNY, RUB, CAD, AUD, CHF, SEK, NOK, DKK, SGD, HKD, NZD, MXN, BRL, INR; case does not matter. Defaults to your dashboard preference. |
| tax_rate | number | Tax rate percentage (0-100) |
| fixed_fee | number | Fixed fee per quote |
| minimum_price | number | 最低見積価格: 見積全体に対する税抜の下限です。これより安い見積は引き上げられ、高い見積は変わりません。既定値は見積の技術に設定した最低価格で、0 = なし。 |
| energy_cost_per_kwh | number | Energy cost per kWh |
| hollowing | string | SLA、SLS、MJF 固有: 'solid'、'2mm'、'3mm'。SLA では設定で SLA の中空化が有効なときに '2mm' が既定値になります。SLS と MJF もそれぞれの設定で同様です。FDM では無視されます (空洞は fill_density で決まるため)。SLM でも無視されます (密閉された空洞は排出できないパウダーを閉じ込めるため)。SLS と MJF の部品は排出穴なしで中空化されます。未溶融のパウダーは内部に残り、固体密度ではなくパウダーベッド密度で課金され、回収はできません。 |
| post_processing | string | 体積ベースの技術 (SLA、SLS、SLM、MJF): 'standard'、'sanding'、'painting'、'painted' (既定値: 'standard')。値は見積もりに記録され、グローバル設定の技術ごとの後処理料金で価格計算されます。SLM の料金は全体的に高めです。'standard' でも部品をビルドプレートから切り離し、表面を清掃する作業を含むためです。 |
| sla_post_processing_fee_standard | number | SLA standard post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| sla_post_processing_fee_sanding | number | SLA sanding post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| sla_post_processing_fee_painting | number | SLA painting post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| sla_post_processing_fee_painted | number | SLA painted post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| sls_post_processing_fee_standard | number | SLS standard post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| sls_post_processing_fee_sanding | number | SLS sanding post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| sls_post_processing_fee_painting | number | SLS painting post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| sls_post_processing_fee_painted | number | SLS painted post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| mjf_post_processing_fee_standard | number | MJF: post_processing が 'standard' のときに適用される料金。 |
| mjf_post_processing_fee_sanding | number | MJF: post_processing が 'sanding' のときに適用される料金。 |
| mjf_post_processing_fee_painting | number | MJF: post_processing が 'painting' のときに適用される料金。 |
| mjf_post_processing_fee_painted | number | MJF: post_processing が 'painted' のときに適用される料金。 |
| slm_post_processing_fee_standard | number | SLM: post_processing が 'standard' のときに適用される料金。 |
| slm_post_processing_fee_sanding | number | SLM: post_processing が 'sanding' のときに適用される料金。 |
| slm_post_processing_fee_painting | number | SLM: post_processing が 'painting' のときに適用される料金。 |
| slm_post_processing_fee_painted | number | SLM: post_processing が 'painted' のときに適用される料金。 |
| mjf_min_build_fill | number | MJF: 1件の注文が負担するビルドの最小割合。0 = ビルドを他の注文と共有、1 = 注文がビルド全体を負担。 |
| enable_batch_system | boolean | Enable/disable batch calculation system (default: true) |
| sls_min_build_fill | number | SLS: 0から1までの分数で指定する最小ビルド充填率。注文は、ビルドランの少なくともこの割合を占有したとして請求されます。0の場合は他のジョブとビルドを共有し、1の場合はビルド全体が請求されます。enable_batch_system が false の場合は無視されます。 |
| material_wastage_factor | number | Factor for calculating material wastage (e.g. 1.10 for 10% wastage). |
| volume_discount_tiers | array | Quantity discount tiers, e.g. [{"minVolume": 100, "discount": 5}]. Falls back to your Global Settings tiers. |
ヒント: 見積もりは自動的にアカウントに保存され、API の履歴エンドポイントからいつでも確認できます。
6. プリンターと見積もりプロファイル
正確な見積もりを得るために、プリンターの設定と価格を設定します。API リクエストでパラメータを指定しない場合に自動的に使用されるデフォルトプロファイルは、ダッシュボードのスライスプロファイルセクションで管理できます。
プロファイルタイプ
- プリンタープロファイル - ベッドサイズ、ノズル径、印刷速度、レイヤー高さ、加速度、ジャーク、温度など、実際のプリンターに一致するようにプリンター設定を構成します。これをダッシュボードでデフォルトプロファイルとして設定すると、特定のパラメータを上書きしない限り、すべての見積もりリクエストに使用されます。
- マテリアルプロファイル - 使用する各マテリアルの材料特性 (フィラメントタイプ、密度、直径、温度、ファン速度、リトラクション設定、価格) を設定します。API は、リクエストで指定した filament_type に一致するマテリアルプロファイルを自動的に使用します。
- グローバル設定 - 税率、固定料金、エネルギーコスト、デフォルトの通貨など、グローバルな見積もり設定を構成します。これらの設定は、リクエストで上書きされない限り、すべての見積もりに適用されます。
ベストプラクティス: デフォルトプロファイルはダッシュボードのスライスプロファイルセクションで設定してください。これにより、すべてのパラメータを指定せずに簡単な見積もりリクエストを作成でき、API は構成されたデフォルトを自動的に使用します。必要に応じて、リクエストごとにパラメータを上書きすることもできます。
プロファイルのマージ方法
見積もりリクエストを行うと、API は次の優先順位でリクエストパラメータとダッシュボードプロファイルをマージします。
- リクエストパラメータ - API リクエストで明示的に提供する値が最優先されます
- ユーザープロファイル - ユーザー固有のプロファイルをデフォルトとして設定している場合、次にそれが使用されます
- グローバルプロファイル - ユーザープロファイルが存在しない場合、システムはグローバルデフォルトにフォールバックします
つまり、ダッシュボードプロファイルの設定を維持しながら、必要なパラメータ (例: layer_height または fill_density のみ) を上書きできます。
7. Webhooks
アカウントでイベントが発生したときにリアルタイム通知を受け取ります:
POST /v2/webhooks- 新しい Webhook エンドポイントを作成GET /v2/webhooks- すべての Webhook をリスト表示GET /v2/webhooks/{webhook_id}- Webhook の詳細と配信統計を取得PUT /v2/webhooks/{webhook_id}- Webhook 設定を更新DELETE /v2/webhooks/{webhook_id}- Webhook を削除POST /v2/webhooks/{webhook_id}/deliveries/{delivery_id}/resend- 過去の配信を再送します。たとえばエンドポイントを修正した後に使います
サポートされているイベント: quote.completed, quote.failed, file.uploaded, file.deleted, job.status_changed, widget.added_to_cart, usage.alert. Webhook には、セキュリティ検証のための HMAC-SHA256署名が含まれています。
8. 分析とレポート
API の使用状況と見積もり統計に関する分析情報をご覧ください。
GET /v2/analytics/quotes- 総見積もり数、平均価格、材料使用量の傾向など、包括的な見積もり統計を取得できます。GET /v2/analytics/popular- 最も人気のある材料とプリンター構成を確認できます。GET /v2/analytics/cost-trends- 日次、週次、または月次でグループ化して、経時的なコストトレンドを分析します。GET /v2/analytics/export- 見積もりと使用状況データを CSV または JSON 形式でエクスポートします。
9. カタログと在庫
サーバートークンで、アカウント独自のプリンター、材料、色、色ごとの在庫、価格設定、テクノロジーを管理します。ウィジェットは同じカタログを読むため、変更はすぐに見積フォームに反映されます。ウィジェット用トークンは拒否され、これらの呼び出しは月間リクエスト枠に数えられません:
GET /v2/store/catalog- アカウントが提供するすべての内容。テクノロジーごとの準備状況と残り少ない色を含みますGET /v2/store/catalog/schema- ダッシュボードのプリンター・材料・価格設定フォーム。上下限、単位、指定言語のヘルプテキスト付きPOST /v2/store/catalog/adopt- グローバルのプリンターと材料を、選んだ色・価格・初期在庫とともにアカウントへコピーしますPOST /v2/store/catalog/materials- 材料を作成します。グローバルの材料をもとにすることもできますGET · PATCH · DELETE /v2/store/catalog/materials/{id}- 材料を1件、在庫設定を含めて読み取り・変更・削除しますPUT /v2/store/catalog/materials/{id}/colors- 材料の色一覧を置き換えます。既存の色の在庫は保持されますGET · PATCH · DELETE /v2/store/catalog/printers/{id}- プリンターを1台読み取り・変更・削除しますGET · PATCH · DELETE /v2/store/catalog/pricing- 価格設定を読み取り・変更・リセットします。通貨を変えるとアカウントの通貨が変わり、金額は換算されませんGET · PUT /v2/store/catalog/technologies- プランで使えるテクノロジーと、有効になっているテクノロジーGET · POST /v2/store/stock/movements- 入庫・棚卸し・廃棄を記録し、在庫履歴を一覧表示しますPOST /v2/store/stock/orders- 支払い済み注文の材料を差し引く・戻す・確認します。見積ごとに最大1回です
PATCH の本文には values と updated_at を含めます。values はカタログ一覧と同じ snake_case のフィールド名を使います (フォームにない名前は400で拒否されます)。読み取った後にプロファイルが変更されていた場合は、error_key stale とともに409が返ります。
10. レート制限とクォータ
Quote3D は、公平な利用とシステム安定性を確保するためにレート制限を使用しています。
- レート制限は API トークンごとに適用され、エンドポイントによって異なります
- レート制限の情報は、レスポンスヘッダーに含まれています。
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset,X-RateLimit-Window - レート制限に達すると、Retry-After ヘッダーとともに429 Too Many Requests レスポンスが返されます。
- プランでは、請求期間ごとにリセットされる見積もり枠と、リセットされずファイルを削除したときにのみ空くストレージ枠が決まります
- 上限はデプロイごとに設定可能なので、ハードコードせず現在の値を読み取ってください。上記のレスポンスヘッダーとこのエンドポイントの両方が値を返します:
GET /v2/quota
ベストプラクティス: API に過負荷をかけないように、レート制限エラーを処理する際に指数バックオフを実装してください。
11. レスポンスとエラー
成功時のレスポンスには2つの形があります。見積、ジョブ、保存済み見積の詳細、Webhook、分析、使用量、クォータ、設定の呼び出しは、内容を success: true で包み、結果を data の下に置きます。ファイル、アップロード ID、ユーザー、アップロード一覧、見積一覧、印刷可能性、カタログと在庫の呼び出しは、フィールドを最上位で返します。各呼び出しの正確なスキーマは API リファレンスを参照してください。ファイルのダウンロードと CSV エクスポートはファイル本体をそのまま返します。
{
"success": true,
"data": { "...": "endpoint-specific payload" }
}ページネーションと並べ替え
/v2/quotes や /v2/user/uploads などの一覧エンドポイントは、limit と offset クエリパラメータでページ分割されます (既定50件、最大100件)。結果と併せて total、limit、offset、has_more、page、total_pages を含む pagination オブジェクトを返すので、自分で末尾を計算せず has_more を使ってください。並べ替えは field: direction 形式の反復可能な単一パラメータを使います。例: ?sort=created_at: desc&sort=total_price: asc。アップロードは既定で新しい順です。
エラーレスポンス
エラーはすべて同じ形です。パラメーターまたはフィールドを示す detail リスト (loc、msg、code)、AUTH_001のような error_code、error_summary、必要に応じて recovery_suggestions と documentation_url が含まれます。文言は変わる可能性があるため、HTTP ステータスと error_code で分岐してください。
| ステータス | 意味 |
|---|---|
| 400 | リクエストボディまたはクエリパラメータが不正です — 形式の誤ったフィールド、非対応のファイル形式、または選択したプリンターに収まらないモデルです。 |
| 401 | API トークンが欠落、形式不正、期限切れ、または失効しています。 |
| 403 | トークンは有効ですが、この呼び出しは許可されていません。原因はスコープの制限、トークンの一覧にないオリジンまたは IP アドレス (AUTH_004)、あるいはプランの枠の使い切り (RATE_002、X-Quota-* ヘッダー付き) です。 |
| 404 | 要求されたファイル、見積もり、ジョブ、Webhook が存在しないか、お客様のアカウントに属していません。 |
| 429 | レート制限を超えました。Retry-After ヘッダーを読み、待機してから再試行してください。 |
| 500 | 予期しないサーバー側エラーです。バックオフして再試行して構いません。継続する場合はタイムスタンプを添えてサポートにご連絡ください。 |
非同期見積もりは異なります。ジョブの投入は202で成功し、その後に失敗した計算は HTTP エラーではなく、ジョブエンドポイント上でエラーメッセージを伴う failed ステータスとして現れます。開始時に得たステータスコードだけでなく、必ずジョブのステータスを確認してください。
12. RESTful でバージョン管理された API
- すべてのエンドポイントはバージョン管理されています (例: /v2/)
- 標準的な HTTP メソッドを使用します:
GET,POST,PUT,DELETE - 独自ツールにインポートできる OpenAPI 3.0.3スキーマで記述されています
- 破壊的変更と追加は次に記録されます: API 変更履歴