RequestId back immediately, and
receive the finished layout later — either pushed to your webhook or streamed over SignalR.
This page explains the full lifecycle and the two ways to receive results.
The lifecycle
1
Submit
POST to a nesting endpoint with your parts, sheets, settings, and a ResultsWebhookUri.
The API validates the request and returns a RequestId.2
Nest
The job is queued and processed by a nester. Compute time scales with part count and
complexity — from seconds to minutes.
3
Deliver
On completion the
ApiNestingResult is delivered to your webhook (and/or streamed over
SignalR). You can also poll for it with the RequestId.Choosing an endpoint
All nesting endpoints share the same async model; they differ in how you describe the parts:/v1 is the canonical path. Each nesting route is also still served unversioned (e.g.
/nesting), frozen as the implicit v1 so existing integrations keep working. New code should
use /v1; that is what the API Reference documents.Common request fields
The DXF, geometry, and parametric requests share three top-level fields:Receiving results — two options
Option A: Webhook (simplest)
SetAutomaticallyStartNesting: true and provide ResultsWebhookUri. When the nest
finishes, NestAPI POSTs the ApiNestingResult to that URL. This is the recommended
default for server-to-server integrations. See Webhooks.
Option B: SignalR + delayed start (live progress)
To show live progress, connect before the nest runs:1
Submit with start disabled
Send your request with
AutomaticallyStartNesting: false. You receive a RequestId,
but nesting does not begin yet.2
Connect to SignalR
Open a SignalR connection and subscribe using the
RequestId, so no progress events are
missed.3
Start the nest
Call
POST /v1/nesting/delayedstart (ReadyForNesting) with the RequestId. The nester
begins and streams progress over your SignalR connection.Delayed start exists to close the race where a fast nest could complete before your client
finished connecting. Use it whenever you rely on live progress.
Fetching results and status
Even with webhooks you can query a job byRequestId:
Job status
GET /v1/nesting/status?RequestId=… reports where a job has got to, and the
ResultIdentity once one is available:
Exporting
Once complete, generate production output from the nest:
See export types for details.