3D変換は長時間処理を前提にした非同期ジョブ形式です。数量拾いは画像、PDF、DXF、DWGを投入し、 工種・数量・単位・計算式・根拠をJSONで同期取得できます。
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でキーを送れます。
| Method | Path | 説明 |
|---|---|---|
| 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"status が completed になると、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.glbglb, 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_target | 50-100。標準は85。高いほど評価ループが厳しくなります。 |
max_iterations | 1-30。標準は6。LLM/CAD生成の最大反復回数です。 |
max_render_views | 3-50。評価レンダリングの上限です。 |
output_formats | glb,stl,step のようにカンマ区切りで指定します。 |
cad_engine | trimesh, cadquery, build123d。通常は未指定で問題ありません。 |
drawing_mode | auto, single_part, assembly。アセンブリ図面では assembly を指定できます。 |
workflow | auto, three_d_generation, cleanup_then_three_d など。 |
llm_engine | gpt-5.5, kimi-k2.7-code, claude-opus-4-8。 |
generation_config | GenerationConfig互換のJSON文字列。個別フィールドを同時指定すると個別指定が優先されます。 |