API docs

External integration

Upload drawing → 3DText / image → drawingPartsMy Page
External API

Drawing Agent API

2D図面を受け取り、3D成果物または数量拾いの構造化データを返します。


APIキーエンドポイント数量拾い変換開始進捗確認成果物取得パラメータ

Markdown版は docs/external-api.md にあります。

App

/

API Docs

外部システムから2D図面を処理する

3D変換は長時間処理を前提にした非同期ジョブ形式です。数量拾いは画像、PDF、DXF、DWGを投入し、 工種・数量・単位・計算式・根拠をJSONで同期取得できます。

APIキー

APIキーはログインユーザーがマイページから発行・失効できます。平文キーは 発行時だけ表示され、サーバにはSHA-256ハッシュとメタデータだけを保存します。 ユーザーごとに環境変数やSecrets Managerを更新する必要はありません。

画面から発行する場合は マイページの「外部APIキー」を使います。APIで発行する場合はAuth0のアクセストークンで ユーザー認証を行います。

curl -X POST "https://drawing-agent.com/api/users/me/api-keys" \
  -H "Authorization: Bearer <Auth0 access token>" \
  -H "Content-Type: application/json" \
  -d '{"label":"Production integration"}'
curl -X DELETE "https://drawing-agent.com/api/users/me/api-keys/{key_id}" \
  -H "Authorization: Bearer <Auth0 access token>"

リクエストでは X-API-Key ヘッダー、またはAuthorization: Bearerでキーを送れます。

エンドポイント

MethodPath説明
POST/api/v1/conversions変換ジョブを作成します。レスポンスは202 Acceptedです。
POST/api/v1/conversions/takeoff図面の数量拾い結果を構造化JSONで同期返却します。
GET/api/v1/conversions/{id}変換状態と成果物URLを返します。
GET/api/v1/conversions/{id}/artifacts/{fmt}glb, stl, step, ifc, inpを取得します。
GET/api/v1/conversions/{id}/events詳細な生成イベントログをJSONで返します。

数量拾い

curl -X POST "https://drawing-agent.com/api/v1/conversions/takeoff" \
  -H "X-API-Key: da_live_partner-a.xxxxx" \
  -F "file=@drawing.pdf" \
  -F 'target_items=["コンクリート","鉄筋","掘削"]' \
  -F "description=10m当たりの代価数量を拾ってください"

レスポンスは 200 OK で、resultに数量拾い結果を返します。

{
  "id": "00000000-0000-0000-0000-000000000000",
  "status": "completed",
  "result": {
    "schema_version": "quantity_takeoff_v1",
    "structures": [
      {
        "structure_id": "S1",
        "name": "見切壁",
        "items": [
          {
            "item_id": "S1:I1",
            "item_name": "コンクリート",
            "spec": "18-8-25-BB",
            "quantity": 0.675,
            "unit": "m3",
            "formula": "wall_thickness * wall_height * basis_length",
            "computed_quantity": 0.675,
            "calculation_status": "recomputed_from_formula"
          }
        ]
      }
    ],
    "totals_by_item": [
      {
        "item_name": "コンクリート",
        "spec": "18-8-25-BB",
        "quantity": 0.675,
        "unit": "m3",
        "source_item_ids": ["S1:I1"]
      }
    ]
  }
}

変換開始

curl -X POST "https://drawing-agent.com/api/v1/conversions" \
  -H "X-API-Key: da_live_partner-a.xxxxx" \
  -F "file=@drawing.png" \
  -F "output_formats=glb,stl,step" \
  -F "quality_target=85" \
  -F "max_iterations=6"

レスポンスは 202 Accepted です。

{
  "id": "00000000-0000-0000-0000-000000000000",
  "status": "processing",
  "urls": {
    "status": "/api/v1/conversions/00000000-0000-0000-0000-000000000000",
    "events": "/api/v1/conversions/00000000-0000-0000-0000-000000000000/events"
  },
  "artifacts": {}
}

進捗確認

curl "https://drawing-agent.com/api/v1/conversions/{id}" \
  -H "X-API-Key: da_live_partner-a.xxxxx"

statuscompleted になると、artifactsに取得用URLが入ります。

{
  "id": "00000000-0000-0000-0000-000000000000",
  "status": "completed",
  "final_score": 91,
  "artifacts": {
    "glb": "/api/v1/conversions/{id}/artifacts/glb",
    "stl": "/api/v1/conversions/{id}/artifacts/stl",
    "step": "/api/v1/conversions/{id}/artifacts/step"
  }
}

成果物取得

curl -L "https://drawing-agent.com/api/v1/conversions/{id}/artifacts/glb" \
  -H "X-API-Key: da_live_partner-a.xxxxx" \
  -o model.glb
  • 対応形式は glb, stl, step, ifc, inp です。
  • 指定形式が生成されていない場合、取得エンドポイントは 404 を返します。
  • 詳細な生成ログが必要な場合だけイベントエンドポイントを使います。
curl "https://drawing-agent.com/api/v1/conversions/{id}/events" \
  -H "X-API-Key: da_live_partner-a.xxxxx"

パラメータ

Field説明
file / drawing / imageアップロードする2D図面。PNG, JPEG, PDF, DXF, DWGを受け付けます。
target_items / item_names数量拾い対象。JSON配列またはカンマ区切りで指定できます。
takeoff_model数量拾い用モデル。標準はサーバ設定のTAKEOFF_MODEL、未設定時はgpt-5.5です。
quality_target50-100。標準は85。高いほど評価ループが厳しくなります。
max_iterations1-30。標準は6。LLM/CAD生成の最大反復回数です。
max_render_views3-50。評価レンダリングの上限です。
output_formatsglb,stl,step のようにカンマ区切りで指定します。
cad_enginetrimesh, cadquery, build123d。通常は未指定で問題ありません。
drawing_modeauto, single_part, assembly。アセンブリ図面では assembly を指定できます。
workflowauto, three_d_generation, cleanup_then_three_d など。
llm_enginegpt-5.5, kimi-k2.7-code, claude-opus-4-8。
generation_configGenerationConfig互換のJSON文字列。個別フィールドを同時指定すると個別指定が優先されます。
Drawing Agent — 2D drawings to 3D CAD, automatically