Resources
Changelog
Notable changes to the ARCNM API, SDKs, and developer platform.
Notable changes to the ARCNM API, SDKs, and developer platform. The API reference is auto-generated from the OpenAPI spec, so it always reflects the live API; this page records the changes behind it.
The public OpenAPI spec at
/api/v1/openapi-public.jsonis the machine-readable source of truth — any change to the API surface appears there first.
2026-08-13
Added — Comparisons say when calibration is uneven. Calibration
corrects prices in the environment it was fitted for, so a calibrated
environment and an uncalibrated one are not a like-for-like comparison —
and nothing in the costs shows it. Comparison cells now carry
calibration_cost_offset and calibrated; a cell corrected differently
from its row's baseline is flagged calibration_mismatch, each
environment reports calibrated_cells, and the matrix sets
mixed_calibration. Flags, not exclusions: the deltas are real and stay
in the comparison. arcnm_compare_environments carries the same caveat
into its guidance.
Added — material_ref on POST /calculations/batch, so every
calculation entry point accepts a free-form material reference.
Added — region and currency on
/calculations/upload-and-quote(-json), matching /quote and /batch.
Added — coverage on the /calculations/bulk-retry response, so a
parked retry carries the same top-up payload a batch submit does.
Fixed — One material contract everywhere. The multi-environment
forms of /quote and /upload-and-quote resolved materials through a
laxer path than their single-environment forms, so the same
material_ref was rejected with one environment and silently ignored
with two; /calculations/batch never validated material_grade_id and
returned 500 for an unknown one. All entry points now answer identically
with 422 material_unresolved plus ranked candidates.
Fixed — Identical re-runs are free again. The dedup key was computed after the run recorded the material read from the drawing, so a re-run of the same part could never match it and was billed a second time.
Fixed — Calibrating an environment retires its cached prices. Publishing a calibration left the dedup key unchanged, so identical re-runs kept returning pre-calibration prices for the rest of the billing window.
Fixed — /calculations/bulk-retry now serves an identical prior run
from the cache like /calculations/{id}/run does, instead of re-running
and re-billing it.
Fixed — /calculations/batch now honours surface_treatments,
raw_material_strategy and language, which it documented and dropped.
Fixed — material_unresolved is documented in the
errors guide and its doc_url resolves. The
quote-a-part recipe named a code (material_not_resolved) that the API
never emits.
2026-08-11
Added — Multi-environment runs. Pass costing_environment_ids
(up to 16, in comparison order) on /calculations/quote,
/calculations/upload-and-quote(-json) or /calculations/batch to
price each revision in every listed environment with one request — the
file is uploaded once, the runs share a batch_id, and the response
lists them in environment_runs. Each (revision × environment) cell is
one calculation against your plan quota; a grid the remaining quota
can't cover never runs in part — /calculations/batch rejects it whole
(402 quota_exceeded with cells_requested/cells_available), while
/quote and /upload-and-quote(-json) save the cells parked blocked
and the 402's details also carry batch_id/parked_cells so a
post-top-up retry resumes that batch.
Added — Environment comparison.
GET /calculations/batches/{batch_id}/comparison and read-only
POST /calculations/comparison return the parts × environments matrix
server-side: per-cell costs and times, the cheapest environment per
part (ties included), deltas vs the cheapest and vs your baseline
(anchored on your baseline environment when it is in the grid, else
the grid's first environment), per-environment wins and basket totals,
staleness and mixed-currency flags.
Added — POST /calculations/batches/{batch_id}/cancel cancels a
whole batch in one call; GET /calculations gains a batch_id filter
and list items now carry costing_environment_id and batch_id.
Added — MCP: curated read-only tool arcnm_compare_environments
and prompt compare_environments.
2026-06-01
Added — Public developer portal at arcnm.io/docs: quickstart, authentication, concepts, recipes, SDKs, and a full API reference.
Added — The API reference is now auto-generated from the public OpenAPI spec on every build, so it can never drift from the running API. Each endpoint ships request/response schemas, enum values, multi-language samples (cURL / Python / TypeScript), and example responses.
Added — Machine-readable docs for AI tooling: llms.txt,
llms-full.txt, per-page Markdown, and an interactive
API explorer.
Changed — Every public endpoint now declares a typed response model, so the generated schemas are complete.