Quote3D ドキュメントへようこそ!⏳

основные — コアコンセプト:ファイル、見積もり、ジョブ

このページでは、プラットフォームを支える基本的なアイデアとパターンを紹介します。これらのコンセプトを理解することで、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 エンドポイント統計、材料の使用量、および時間ベースのトレンドを含む、詳細な使用状況分析を取得

3. ファイル管理

3Dモデルファイル(STL、3MF、OBJ形式)のアップロード、ダウンロード、および管理:

  • 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モデルでない場合、またはプラットフォームのファイルサイズ上限(既定50MB)を超える場合、アップロードは拒否されます。両方のアップロードルートで同じ検査が適用されます。

ファイルの保存方法

アップロードされたモデルは暗号化されて保存され、公開されることはありません。保存されたファイルを直接配信するリンクは存在しません。レスポンスに含まれる 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 のみが対象です。レジンおよびパウダー系のテクノロジーにはノズルもヒートベッドもありません。プリンター側の制限を未設定のままにすると、このチェックは省略されます。
  • 有効なテクノロジー: グローバル設定でテクノロジーを制限している場合、無効化されたテクノロジーに対する見積もりリクエストは拒否されます。この設定を空のままにすると、3 種類すべてが受け付けられます。
  • 材料価格のフィールド: 課金に使われる値は price_per_gram です。材料プロファイルを保存すると price_per_kg がそこから自動的に再計算され(キログラム単価のみを指定した場合は price_per_gram が price_per_kg から算出されます)、両者が食い違うことはありません。

ルートパラメータ

パラメータタイプ説明
technologystring任意。製造技術:'FDM'、'SLA'、'SLS'('RESIN'は'SLA'の別名として受け付けられます)。どの技術固有パラメータが適用されるか、量産時に部品をどう配置するかを決定します。省略した場合は選択したプリンターの技術が使われ、それもなければ'FDM'になります。
printer_idstringオプション。デフォルトのプリンターの代わりに使うプリンターのID。
quantitynumberオプション。製造する数量(デフォルト:1)。

数量とバッチ生産のロジック

当社のシステムは、指定された'quantity'に基づいて高度なパッキングアルゴリズムを使用します。

  • FDMテクノロジー:パーツは、スペースがある限り、造形板(X軸とY軸)に並べて配置されます。
  • SLAテクノロジー:パーツは、レジン槽(X軸とY軸)に並べて配置されます。
  • SLSテクノロジー:パーツは、粉末ベッドの容量を最大限に活用するために、すべての軸(X、Y、Z)に積み重ねることができます。

この最適化されたパッキングにより、複数のパーツを1つのバッチに収めることができれば、予熱、冷却、レイヤー変更などの固定費は必要なバッチごとにのみ適用されます。これにより、大量注文に対して非常に現実的で費用対効果の高い価格設定が保証されます。

printer_config

プリンター構成パラメータ。すべてのフィールドはオプションであり、指定しない場合はデフォルトのプリンタープロファイルの値が使用されます。

パラメータタイプ説明
nozzle_diameternumberFDM nozzle diameter (mm). Drives extrusion width, so it changes both print time and material use.
support_materialbooleanEnable support generation. When omitted, the profile value is used.
bed_size_xnumberBuild volume X dimension (mm)
bed_size_ynumberBuild volume Y dimension (mm)
bed_size_znumberBuild volume Z dimension (mm)
print_speednumberDefault print speed (mm/s)
max_print_speednumberMaximum print speed (mm/s)
travel_speednumberTravel speed (mm/s)
first_layer_speednumberFirst layer speed (mm/s)
layer_heightnumberLayer height (mm)
min_layer_heightnumberMinimum layer height (mm)
max_layer_heightnumberMaximum layer height (mm)
perimetersnumberNumber of perimeters/walls
top_solid_layersnumberTop solid layers count
bottom_solid_layersnumberBottom solid layers count
min_wall_countnumberMinimum wall count
max_wall_countnumberMaximum wall count
fill_densitynumberInfill density (0-100%)
infill_patternstringインフィルパターン。デフォルト: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_anglenumberSupport overhang angle (degrees)
support_densitynumberSupport density (0-100%)
brim_enabledbooleanEnable brim generation for FDM quotes
brim_widthnumberBrim width in millimeters when brim is enabled
acceleration_printnumberPrint acceleration (mm/s²)
acceleration_travelnumberTravel acceleration (mm/s²)
acceleration_retractionnumberRetraction acceleration (mm/s²)
acceleration_outer_wallnumberOuter wall acceleration (mm/s²). 0 uses acceleration_print.
acceleration_inner_wallnumberInner wall acceleration (mm/s²). 0 uses acceleration_print.
acceleration_sparse_infillnumberSparse infill acceleration (mm/s²). 0 uses acceleration_print.
acceleration_solid_infillnumberSolid infill acceleration (mm/s²). 0 uses acceleration_print.
acceleration_top_surfacenumberTop surface acceleration (mm/s²). 0 uses acceleration_print.
acceleration_bridgenumberBridge acceleration (mm/s²). 0 uses acceleration_print.
acceleration_first_layernumberFirst layer acceleration (mm/s²). 0 uses acceleration_print.
retraction_minimum_travelnumberTravel moves shorter than this do not retract (mm). Reference default 1.
z_hop_mmnumberNozzle lift before a travel move (mm). 0 disables it. Reference default 0.4.
bed_exclude_xnumberUnusable bed edge margin on X (mm), removed from the packing area.
bed_exclude_ynumberUnusable bed edge margin on Y (mm), removed from the packing area.
jerk_printnumberPrint jerk (mm/s)
jerk_travelnumberTravel jerk (mm/s)
jerk_retractionnumberRetraction jerk (mm/s)
min_hotend_tempnumberMinimum hotend temperature (°C)
max_hotend_tempnumberMaximum hotend temperature (°C)
min_bed_tempnumberMinimum bed temperature (°C)
max_bed_tempnumberMaximum bed temperature (°C)
hourly_costnumberMachine hourly cost
SLA専用
sla_exposure_timenumberSLA: レイヤーごとの露光時間 (秒)
sla_bottom_exposure_timenumberSLA: ベースライン露光時間 (秒)
sla_bottom_layer_countnumberSLA: ボトムレイヤーの数
sla_lift_distancenumberSLA: リフト距離 (mm)
sla_lift_speednumberSLA: リフト速度 (mm/min)
sla_retract_speednumberSLA: リトラクト速度 (mm/min)
sla_cleaning_costnumberSLA:プリントごとの固定洗浄費用(IPA、消耗品)
sla_pad_enabledbooleanSLA: モデルをパッド/ラフト上にプリントします。デフォルトはオフ。パッドのレジンはサポート材としてカウントされます。
sla_pad_wall_thicknessnumberSLA: パッドの壁の厚さ (mm)。エイリアス: sla_pad_height。
sla_pad_wall_heightnumberSLA: パッドの壁の高さ (mm)(パッドの空洞周囲の立ち上がった縁)。
sla_pad_wall_slopenumberSLA: パッドの壁の傾斜角度 (45-90度)。パッドはこの角度で下に向かって細くなります。
sla_pad_brim_sizenumberSLA: パッドのブリムサイズ (mm)。エイリアス: sla_pad_expansion。
sla_pad_max_merge_distancenumberSLA: これより近いサポートの足は、1つのパッドアイランドに結合されます (mm)。
sla_support_head_front_diameternumberSLA: サポートヘッド先端(前方)の直径 (mm)。
sla_support_head_penetrationnumberSLA: サポートヘッドがモデル表面に沈み込む深さ (mm)。
sla_support_head_widthnumberSLA: サポートヘッドのロッドの長さ (mm)。
sla_support_pillar_diameternumberSLA: サポートピラーの直径 (mm)。サポートレジンの体積の大部分を決定します。
sla_support_base_diameternumberSLA: サポートピラーのベース(足)の直径 (mm)。
sla_support_base_heightnumberSLA: サポートピラーのベース(足)の高さ (mm)。
sla_support_object_elevationnumberSLA: ビルドプレートからのオブジェクトの高さ(mm)。プリント層も追加されるため、プリント時間に影響します。サポートが生成される場合にのみ適用されます。
sla_support_critical_anglenumberSLA: サポート配置時に使用されるブリッジの傾斜角(度)。support_overhang_angleとは異なります。
sla_support_max_pillar_link_distancenumberSLA: この距離より離れたピラーは連結されません (mm)。
sla_support_max_bridge_lengthnumberSLA: サポートヘッドがプレートに到達するために形成する、最長の横方向ブリッジの長さ (mm)。
sla_support_max_bridges_on_pillarnumberSLA: 1つのピラーが受け入れ可能なブリッジの数。
sla_support_points_densitynumberSLA: サポートポイント密度(パーセンテージ、100 = 標準)。FDMのサポートインフィル率であるsupport_densityとは異なります。
sla_elephant_foot_compensationnumberSLA: 底部の広がりを打ち消すために、最初の数層をどれだけ内側に引き込むかを設定します。すべての付属SLAプリンターにおける基準値は0.2です。0に設定すると無効になります。
sla_elephant_foot_min_widthnumberSLA: 細い形状が消失しないよう、これより狭い輪郭には補正を適用しません。基準値は0.2です。
sla_faded_layersnumberSLA: 何レイヤーかけて補正をゼロに減衰させるかを設定します。これは最下層のレイヤー数ではありません。基準となるMSLAプロファイルでは8が使用されています。
SLS 専用
sls_laser_speednumberSLS: レーザー速度 (mm/s)
sls_hatch_spacingnumberSLS: ハッチ間隔 (mm)
sls_layer_thicknessnumberSLS: レイヤー厚 (mm)
sls_layer_recoat_timenumberSLS: レイヤーリコート時間 (秒)
sls_preheat_timenumberSLS: 予熱時間 (分)
sls_cooling_timenumberSLS: 冷却時間 (分)
sla_light_off_delaynumberSLA: Light-off delay for each layer (seconds).
sla_transition_layer_countnumberSLA: Number of transition layers.
sla_drain_holesarraySLA: Drainage holes configuration to prevent suction cups.
sls_bb_multipliernumberSLS:パーツが占有するビルドスロットのグラム相当あたりのマシンスペース追加料金。スロットは、パーツの最小体積ボックスにパウダーギャップと使用不能なチャンバー端の占有分を加えたものであるため、モデルが回転して配置されても変動しません。0に設定すると追加料金が無効になります。
sls_contour_countnumberSLS:各スライスの外形に沿ってレーザーが描く輪郭(ボーダー)パスの数。0に設定すると輪郭パスが無効になります。
sls_contour_speednumberSLS:輪郭スキャン速度(mm/s)。0の場合、輪郭はsls_laser_speedでスキャンされます。
sls_jump_speednumberSLS:スキャンベクトル間の非焼結再配置移動におけるガルバノジャンプ速度(mm/s)。0の場合、上限値であるsls_laser_speedでジャンプします。
sls_part_spacingnumberSLS:パーツ周囲の最小パウダーギャップ(mm)。パーツ間およびチャンバー壁の両方に適用されます。これにより1回のビルドに収まるパーツ数が決まるため、マシンスペースの占有率と固定費の按分に影響します。0の場合、エンジンのデフォルト値である3mmが使用されます。
max_volumetric_flownumberMaximum 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_typestringFilament type (PLA, ABS, PETG, etc.)
colorstringオプション:色の名前(例:'白'、'黒'、'#FFFFFF')。注:SLA / SLSテクノロジーの場合、色は'post_processing'が'painted'に設定されている場合にのみ適用されます。
densitynumberMaterial density (g/cm³)
diameternumberFilament diameter (mm)
filament_flow_rationumberFDMフロー比の倍率。1.0は流量100%を意味します。リクエスト値は、選択されたユーザーの材料プロファイル(Material Profile)を上書きします。値が指定されていない場合は、デフォルトの1.0の前にグローバルプロファイルの値を適用します。
powder_bulk_densitynumberSLS: Bulk density of loose powder in g/cm³. Used for reusable powder and refresh calculations.
temperaturenumberPrint temperature (°C)
print_temp_minnumberMinimum print temperature (°C)
print_temp_maxnumberMaximum print temperature (°C)
bed_temperaturenumberBed temperature (°C)
bed_temp_minnumberMinimum bed temperature (°C)
bed_temp_maxnumberMaximum bed temperature (°C)
fan_speednumberFan speed (0-100%)
min_fan_speednumberMinimum fan speed (0-100%)
retraction_distancenumberRetraction distance (mm)
retraction_speednumberRetraction speed (mm/s)
slow_down_min_speednumberLower speed bound for layer cooling (mm/s). Reference default 20.
retraction_minimum_travelnumberOverrides the printer value for this material (mm).
z_hop_mmnumberOverrides the printer value for this material (mm).
price_per_kgnumberPrice per kilogram
price_per_gramnumberPrice per gram
support_cost_multipliernumberSupport material cost multiplier
sls_refresh_factornumberSLS powder refresh rate ratio (e.g. 0.3 = 30% fresh powder).
max_volumetric_flownumberMaterial specific volumetric flow limit in mm³/s.
min_layer_timenumberMinimum layer time in seconds for cooling.

quote_config

見積価格の構成パラメータ。すべてのフィールドはオプションであり、指定しない場合はデフォルトのグローバル設定の値が使用されます。通貨はデフォルトでダッシュボードの設定になります(例:'USD'、'TRY'、'EUR')。

パラメータタイプ説明
currencystringCurrency code (USD, TRY, EUR, GBP, JPY, CNY, RUB). Defaults to your dashboard preference.
tax_ratenumberTax rate percentage (0-100)
fixed_feenumberFixed fee per quote
energy_cost_per_kwhnumberEnergy cost per kWh
hollowingstringSLA/SLS 専用: 'solid'、'2mm' または '3mm'。SLA では、設定で SLA 中空化が有効なときの既定値は '2mm' です。SLS では、SLS 中空化が有効なときの既定値は '2mm' です。SLS パーツは排粉穴なしで中空化されるため、未焼結の粉末が内部に残ります。この粉末はパウダーベッド密度で課金され、回収できません。壁厚が設定された壁厚の 2 倍より薄いパーツは中実のままになります。
post_processingstringSLA/SLS固有:'standard'、'sanding'、'painting'、'painted'(既定:'standard')。値は見積もりに記録されます。SLA/SLS部品に指定色を適用させるのも'painted'です。
sla_post_processing_fee_standardnumberSLA standard post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sla_post_processing_fee_sandingnumberSLA sanding post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sla_post_processing_fee_paintingnumberSLA painting post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sla_post_processing_fee_paintednumberSLA painted post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sls_post_processing_fee_standardnumberSLS standard post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sls_post_processing_fee_sandingnumberSLS sanding post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sls_post_processing_fee_paintingnumberSLS painting post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sls_post_processing_fee_paintednumberSLS painted post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
enable_batch_systembooleanEnable/disable batch calculation system (default: true)
sls_min_build_fillnumberSLS:0から1までの分数で指定する最小ビルド充填率。注文は、ビルドランの少なくともこの割合を占有したとして請求されます。0の場合は他のジョブとビルドを共有し、1の場合はビルド全体が請求されます。enable_batch_system が false の場合は無視されます。
material_wastage_factornumberFactor for calculating material wastage (e.g. 1.10 for 10% wastage).
volume_discount_tiersarrayQuantity discount tiers, e.g. [{"minVolume": 100, "discount": 5}]. Falls back to your Global Settings tiers.

ヒント: 見積もりは自動的にアカウントに保存され、APIの履歴エンドポイントからいつでも確認できます。

6. プリンターと見積もりプロファイル

正確な見積もりを得るために、プリンターの設定と価格を設定します。APIリクエストでパラメータを指定しない場合に自動的に使用されるデフォルトプロファイルは、ダッシュボードのスライスプロファイルセクションで管理できます。

プロファイルタイプ

  • プリンタープロファイル - ベッドサイズ、ノズル径、印刷速度、レイヤー高さ、加速度、ジャーク、温度など、実際のプリンターに一致するようにプリンター設定を構成します。これをダッシュボードでデフォルトプロファイルとして設定すると、特定のパラメータを上書きしない限り、すべての見積もりリクエストに使用されます。
  • マテリアルプロファイル - 使用する各マテリアルの材料特性(フィラメントタイプ、密度、直径、温度、ファン速度、リトラクション設定、価格)を設定します。APIは、リクエストで指定したfilament_typeに一致するマテリアルプロファイルを自動的に使用します。
  • グローバル設定 - 税率、固定料金、エネルギーコスト、デフォルトの通貨など、グローバルな見積もり設定を構成します。これらの設定は、リクエストで上書きされない限り、すべての見積もりに適用されます。

ベストプラクティス:デフォルトプロファイルはダッシュボードのスライスプロファイルセクションで設定してください。これにより、すべてのパラメータを指定せずに簡単な見積もりリクエストを作成でき、APIは構成されたデフォルトを自動的に使用します。必要に応じて、リクエストごとにパラメータを上書きすることもできます。

プロファイルのマージ方法

見積もりリクエストを行うと、APIは次の優先順位でリクエストパラメータとダッシュボードプロファイルをマージします。

  1. リクエストパラメータ - APIリクエストで明示的に提供する値が最優先されます
  2. ユーザープロファイル - ユーザー固有のプロファイルをデフォルトとして設定している場合、次にそれが使用されます
  3. グローバルプロファイル - ユーザープロファイルが存在しない場合、システムはグローバルデフォルトにフォールバックします

つまり、ダッシュボードプロファイルの設定を維持しながら、必要なパラメータ(例: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を削除

サポートされているイベント: quote.completed, quote.failed, file.uploaded, file.deleted, job.status_changed, widget.added_to_cart. Webhookには、セキュリティ検証のためのHMAC-SHA256署名が含まれています。

Webhookリファレンス:ペイロード構造、署名検証、再試行、再配信

8. 分析とレポート

APIの使用状況と見積もり統計に関する分析情報をご覧ください。

  • GET /v2/analytics/quotes - 総見積もり数、平均価格、材料使用量の傾向など、包括的な見積もり統計を取得できます。
  • GET /v2/analytics/popular - 最も人気のある材料とプリンター構成を確認できます。
  • GET /v2/analytics/cost-trends - 日次、週次、または月次でグループ化して、経時的なコストトレンドを分析します。
  • GET /v2/analytics/export - 見積もりと使用状況データをCSVまたはJSON形式でエクスポートします。

9. レート制限とクォータ

Quote3Dは、公平な利用とシステム安定性を確保するためにレート制限を使用しています。

  • レート制限はAPIトークンごとに適用され、エンドポイントによって異なります
  • レート制限の情報は、レスポンスヘッダーに含まれています。 X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-RateLimit-Window
  • レート制限に達すると、Retry-Afterヘッダーとともに429 Too Many Requestsレスポンスが返されます。
  • 見積もりとストレージの月間クォータは、お客様のサブスクリプションプランに基づいています
  • 上限はデプロイごとに設定可能なので、ハードコードせず現在の値を読み取ってください。上記のレスポンスヘッダーとこのエンドポイントの両方が値を返します: GET /v2/quota

ベストプラクティス: APIに過負荷をかけないように、レート制限エラーを処理する際に指数バックオフを実装してください。

10. レスポンスとエラー

すべてのJSONレスポンスは同じエンベロープを使用します。成功した呼び出しはsuccess: trueを返し、エンドポイントのペイロードはdataの下に入るため、クライアントはどこでも一貫した構造を読めます。ファイルのダウンロードと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。アップロードは既定で新しい順です。

エラーレスポンス

失敗時はsuccess: falseと人が読めるエラーメッセージ、対応するHTTPステータスコードを返します。文面は変更される可能性があるため、メッセージ本文ではなく必ずステータスコードで分岐してください。

ステータス意味
400リクエストボディまたはクエリパラメータが不正です — 形式の誤ったフィールド、非対応のファイル形式、または選択したプリンターに収まらないモデルです。
401APIトークンが欠落、形式不正、期限切れ、または失効しています。
403トークンは有効ですが、この呼び出しは許可されていません — 通常はスコープ制限またはブロックされたIPアドレスです。
404要求されたファイル、見積もり、ジョブ、Webhookが存在しないか、お客様のアカウントに属していません。
429レート制限を超えました。Retry-Afterヘッダーを読み、待機してから再試行してください。
500予期しないサーバー側エラーです。バックオフして再試行して構いません。継続する場合はタイムスタンプを添えてサポートにご連絡ください。

非同期見積もりは異なります。ジョブの投入は202で成功し、その後に失敗した計算はHTTPエラーではなく、ジョブエンドポイント上でエラーメッセージを伴うfailedステータスとして現れます。開始時に得たステータスコードだけでなく、必ずジョブのステータスを確認してください。

11. RESTfulでバージョン管理されたAPI

  • すべてのエンドポイントはバージョン管理されています (例: /v2/)
  • 標準的なHTTPメソッドを使用します: GET, POST, PUT, DELETE
  • 独自ツールにインポートできるOpenAPI 3.0.3スキーマで記述されています
  • 破壊的変更と追加は次に記録されます: API変更履歴