ARCNM

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 the X-API-Key header (see Authentication).

Part Revision Drawing Url

GET /api/v1/geometry/{part_revision_id}/drawing-url

Short-lived 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/geometry/{part_revision_id}/drawing-url \
  -H "X-API-Key: $ARCNM_API_KEY"
import requests

resp = requests.get(
    "https://api.arcnm.io/api/v1/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/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/geometry/{part_revision_id}/faces-url

Short-lived URL for the revision's per-face GLB.

The model is prepared once per CAD upload and served from cache here, so this call is cheap and safe to poll. Every B-rep face is its own glTF primitive carrying its stable face_uuid in primitive.extras — a picked primitive maps straight onto the face a cost driver refers to.

Only STEP carries B-rep faces; a mesh upload answers unsupported. See FacesUrl for the full status set.

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/geometry/{part_revision_id}/faces-url \
  -H "X-API-Key: $ARCNM_API_KEY"
import requests

resp = requests.get(
    "https://api.arcnm.io/api/v1/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/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
data_source_id string
status string
url string

Example response

{
  "data_source_id": "string",
  "status": "string",
  "url": "string"
}