API reference
Geometry
The Geometry API lets you list geometry.
The Geometry API lets you list geometry.
Auto-generated from the public OpenAPI spec — this page never drifts from the running API. Base URL
https://api.arcnm.io. Authenticate with theX-API-Keyheader (see Authentication).
Part Revision Drawing Url
GET /api/v1/parts/geometry/{part_revision_id}/drawing-url
Presigned URL for the revision's active 2D drawing, plus its
content_type so the overlay viewer knows whether to render it as an
image or a PDF. {url, status, content_type}; status no_dataset
when no drawing is attached.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
part_revision_id |
path | string | yes | Identifier of the part revision. |
Request
curl -X GET https://api.arcnm.io/api/v1/parts/geometry/{part_revision_id}/drawing-url \
-H "X-API-Key: $ARCNM_API_KEY"
import requests
resp = requests.get(
"https://api.arcnm.io/api/v1/parts/geometry/{part_revision_id}/drawing-url",
headers={"X-API-Key": "YOUR_API_KEY"},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.arcnm.io/api/v1/parts/geometry/{part_revision_id}/drawing-url", {
method: "GET",
headers: {
"X-API-Key": process.env.ARCNM_API_KEY!,
},
})
const data = await resp.json()
Responses
| Status | Description |
|---|---|
200 |
Successful Response |
422 |
Validation Error |
Errors
Standard error responses — see the Errors catalog for the full envelope, request_id, and retry-safety table.
| Status | Code | When |
|---|---|---|
401 |
invalid_api_key |
Missing, malformed, or revoked API key. |
403 |
insufficient_scope |
The key is valid but lacks a scope this endpoint requires. |
404 |
not_found |
A referenced resource doesn't exist or isn't visible to your organisation. |
429 |
rate_limited |
Per-key or per-org rate limit exceeded — back off with jitter and retry. |
Response body 200
| Field | Type | Description |
|---|---|---|
content_type |
string | |
status |
string | |
url |
string |
Example response
{
"content_type": "string",
"status": "string",
"url": "string"
}
Part Revision Faces Url
GET /api/v1/parts/geometry/{part_revision_id}/faces-url
Presigned URL for the revision's per-face GLB (lazy-generated + cached).
Status values mirror the preview contract: ok (url present),
no_dataset (no active CAD), unsupported (non-STEP CAD or OCP
runtime missing), failed (tessellation error).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
part_revision_id |
path | string | yes | Identifier of the part revision. |
Request
curl -X GET https://api.arcnm.io/api/v1/parts/geometry/{part_revision_id}/faces-url \
-H "X-API-Key: $ARCNM_API_KEY"
import requests
resp = requests.get(
"https://api.arcnm.io/api/v1/parts/geometry/{part_revision_id}/faces-url",
headers={"X-API-Key": "YOUR_API_KEY"},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.arcnm.io/api/v1/parts/geometry/{part_revision_id}/faces-url", {
method: "GET",
headers: {
"X-API-Key": process.env.ARCNM_API_KEY!,
},
})
const data = await resp.json()
Responses
| Status | Description |
|---|---|
200 |
Successful Response |
422 |
Validation Error |
Errors
Standard error responses — see the Errors catalog for the full envelope, request_id, and retry-safety table.
| Status | Code | When |
|---|---|---|
401 |
invalid_api_key |
Missing, malformed, or revoked API key. |
403 |
insufficient_scope |
The key is valid but lacks a scope this endpoint requires. |
404 |
not_found |
A referenced resource doesn't exist or isn't visible to your organisation. |
429 |
rate_limited |
Per-key or per-org rate limit exceeded — back off with jitter and retry. |
Response body 200
| Field | Type | Description |
|---|---|---|
status |
string | |
url |
string |
Example response
{
"status": "string",
"url": "string"
}