Access Guide
Product overview
The Structured Spatial Modeling Open API is designed for third-party systems. It provides automated cloud processing that turns 3D capture data into editable models.
Workflow: upload an LCC2 scene package, a LAS point cloud, or a PLY point cloud → the cloud builds the model automatically → DXF / GLB / BLEND 3D models are produced, together with a Revit model (RVT).
Use cases
- As-built drawing delivery: Get floor plan and section base drawings directly from on-site scans, instead of manual remodeling.
- Renovation design: Get walls, doors, and windows with dimensions and design directly in CAD.
- Property and asset management: Produce floor plans and area tables in batches.
- Feasibility and quantity estimation: Read structured data to assess demolition and alterations and estimate materials.
Usage limits
| Item | Limit |
|---|---|
| API concurrency | 10 requests / second per API |
| Modeling task concurrency | Unlimited; tasks enter the queue immediately after submission |
| Batch query size | Up to 50 modelIds per task detail request |
| Polling interval | No less than 5 seconds recommended |
| Upload temporary credential validity | 12 hours |
| Maximum number of parts | 10,000 parts |
| Upload heartbeat timeout | 180 seconds; timed-out tasks are set to upload failed |
| Per-modelId rate limit | The Start Task and Get Upload Credentials Again APIs have a 3-second rate limit |
Purchase
This service is available on AWS Marketplace. Subscribe on the AWS Marketplace product page.
Obtain application credentials
Apply for an application in advance to obtain the following credentials.
| Credential | Description |
|---|---|
| APP-ID | Unique identifier of the application |
| APP-Secret | Application secret, used to generate signatures |
Note: Keep the APP-Secret safe and never disclose it. Use it only on the server side to generate signatures. Never distribute it to clients or put it in frontend code.
The data storage region is bound when you apply for the application, so you do not need to pass it when calling the APIs.
Signature mechanism
Signature elements
| Element | Source | Rule |
|---|---|---|
| httpMethod | Request method | Uppercase. All APIs in this document use POST |
| path | Request path | Full path including the /open-apis prefix |
| timestamp | X-Timestamp | Timestamp in seconds, identical to the value in the header |
| nonce | X-Nonce | Random string, identical to the value in the header |
String to sign
\n is a line feed. The request body is not included in the signature.
httpMethod + "\n" + path + "\n" + timestamp + "\n" + nonce
Example:
POST
/open-apis/spatial-model/v1/model/create
1791763200
a3f91c2d8e7b4a6590fd12cb77ae40d1
Signature algorithm
| Item | Value |
|---|---|
| Algorithm | HMAC-SHA256 |
| Key | APP-Secret |
| Output | Base64-encoded string |
Sample code
public static void main(String[] args) throws Exception {
String httpMethod = "POST";
String path = "/open-apis/spatial-model/v1/model/create";
long timestamp = System.currentTimeMillis() / 1000;
String nonce = UUID.randomUUID().toString().replaceAll("-", "");
// 1. Build the string to sign
String signContent = httpMethod + "\n" + path + "\n" + timestamp + "\n" + nonce;
// 2. HMAC-SHA256
String appSecret = "xxxxxxxxxxxxxxxxxxx";
Mac mac = Mac.getInstance("HmacSHA256");
SecretKeySpec secretKey =
new SecretKeySpec(appSecret.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
mac.init(secretKey);
byte[] rawHmac = mac.doFinal(signContent.getBytes(StandardCharsets.UTF_8));
// 3. Base64 encode
System.out.println(Base64.getEncoder().encodeToString(rawHmac));
}
Once you are set up, read Modeling Workflow for the complete call flow.