● Headless digitizing API

Turn SVG vectors into machine-ready embroidery

Stitch is a single API call that converts an SVG into stitch-ready .DST and .PES files — fills, outlines, pull compensation, tie-offs and per-colour thread stops included. Built for n8n and automation pipelines.

One POST /api/v1/digitize → a zip with both machine formats.

terminal
# Upload an SVG, get back a stitch-ready zip
curl -X POST "https://stitch.y99.tech/api/v1/digitize?hoop_mm=100" \
     -F "file=@logo.svg" \
     -o output.zip

# → output.zip
#    ├── logo.dst
#    └── logo.pes
Try it now

Upload an SVG, get your stitch files

Drop a vector file below and Stitch returns a zip containing the .DST and .PES — straight from your browser.

🎨 Design preview

2D shows the artwork · drag to orbit in 3D · click a swatch to recolour that thread (live in both views).

Posts to /api/v1/digitize. The digitizing service must be running for this to work.

0

Design Analysis

Based on stitch density, jump counts, and stability.

Density & Problem Map
Why Stitch

Production digitizing, fully automated

No desktop punching software, no manual export. Drop an SVG in, get a hoop-ready stitch file out.

🧵

Real stitch logic

Tatami scan-line fills for closed shapes, running-stitch outlines, and arc-length sampling so curves stay smooth.

🎯

Pull compensation

Objects are expanded about their centroid to counter fabric draw-in, so the sewn result matches the artwork.

🔒

Tie-offs & trims

Every object is bracketed with tie-on/tie-off knots; jumps and trims handle travel between shapes.

🎨

Colour stops

Each distinct SVG colour becomes its own thread with a colour change — preserved in the .PES output.

📐

Hoop scaling

Designs are uniformly scaled and centred to fit any square hoop (10–400 mm) with a safe margin.

n8n-ready

A plain multipart endpoint that returns a binary zip — wire it straight into a webhook workflow.

Pipeline

From vector to needle in four stages

A clean data flow: parse the SVG DOM, plan the stitches, export both machine formats, return a zip.

Parse SVG

The XML DOM is walked, paths are flattened and sampled into X/Y arrays, and fill/stroke colours are resolved.

Scale to hoop

Geometry is uniformly scaled, Y-flipped and centred into embroidery units (0.1 mm) for your chosen hoop.

Digitize

Fills, outlines, pull compensation and tie-offs are generated per colour with pyembroidery.

Export

Both .DST and .PES are written and streamed back to you in a single zip.

API reference

One endpoint, two files

Send an SVG as multipart form-data. Receive a zip containing the machine files.

Method
POST
Path
/api/v1/digitize
Body field
file (.svg)
Query
hoop_mm = 10–400
Returns
application/zip
curl
curl -X POST \
  "https://stitch.y99.tech/api/v1/digitize?hoop_mm=100" \
  -F "file=@design.svg" \
  -o design_embroidery.zip

# Health check
curl https://stitch.y99.tech/health
# → {"status":"ok"}

Wire it into your workflow

n8n: an HTTP Request node — POST, form-data field file, binary response. That's the whole integration.

Start digitizing