Browse all documentation

GET STARTED

API happy path

Canonical paid-key call: POST /api/v1/responses with model rowe-1.0 and a four-cad.cad_scene.v1 input. Use an existing entitled key; this page does not walk Stripe Checkout.

Canonical paid-key call

Use an entitled key ($FOUR_ECHELON_API_KEY). This page does not run Stripe Checkout. Prefer cad_scene for engineering demos.

POST → https://fourechelon.com/api/v1/responses
Terminal
$ curl https://fourechelon.com/api/v1/responses \
-H "Authorization: Bearer $FOUR_ECHELON_API_KEY" \
-H "Content-Type: application/json" \
-d '{
$ "model": "rowe-1.0",
$ "input": {
$ "task_type": "optimize",
$ "object_id": "bracket",
$ "cad_scene": {
$ "scene_id": "bracket-review",
$ "schema_version": "four-cad.cad_scene.v1",
$ "source_format": "step",
$ "units": "millimeter",
$ "structure": {
$ "kind": "brep",
$ "solids": [
$ {
$ "id": "solid-1",
$ "volume": 1250,
$ "bounding_box": {
$ "x_min": 0,
$ "x_max": 120,
$ "y_min": 0,
$ "y_max": 55,
$ "z_min": 0,
$ "z_max": 25
$ },
$ "faces": [{ "face_type": "plane" }]
$ }
$ ],
$ "features": [
$ { "id": "base_extrude", "feature_type": "extrude", "parameters": { "depth": 25 } }
$ ],
$ "dimensions": [
$ { "dim_type": "linear", "measurement": 120, "text": "120 mm" }
$ ]
$ }
$ }
$ }
$ }'

From a CAD file

Extract first, wrap the extraction structure as four-cad.cad_scene.v1, then call Responses. Full curl sequence: CAD demo path.

Terminal
$ curl https://fourechelon.com/api/v1/cad/extract \
-H "Authorization: Bearer $FOUR_ECHELON_API_KEY" \
-F "file=@bracket.step" \
-F "target_contract=both"

Point-cloud variant

Still valid for sampled geometry and legacy spatial workflows.

Terminal
$ curl https://fourechelon.com/api/v1/responses \
-H "Authorization: Bearer $FOUR_ECHELON_API_KEY" \
-H "Content-Type: application/json" \
-d '{
$ "model": "rowe-1.0",
$ "input": {
$ "task_type": "fit",
$ "object_id": "case",
$ "secondary_id": "shelf",
$ "point_cloud_scene": {
$ "point_clouds": [
$ {
$ "object_id": "case",
$ "kind": "box",
$ "points": [
$ { "x": 0, "y": 0, "z": 0 },
$ { "x": 1, "y": 0, "z": 0 },
$ { "x": 0, "y": 1, "z": 1 }
$ ]
$ }
$ ]
$ }
$ }
$ }'