← vectorize.erpfit.com

Vectorize API

Bitmap → SVG tracing. One endpoint, multipart upload, SVG back. Machine-readable summary at /llms.txt, full parameter schema at /api/schema.

POST /api/vectorize

fieldtypenotes
imagefilepng / jpeg / webp / bmp / tiff — max 10MB
settingsJSON stringoptional — preset, engine, per-engine params

Optional header X-API-Key: requests run on a dedicated processing lane and are usage-tracked per key.

curl -X POST https://vectorize.erpfit.com/api/vectorize \
  -F "image=@logo.png" \
  -F 'settings={"preset":"auto"}'
curl -X POST https://vectorize.erpfit.com/api/vectorize \
  -H "X-API-Key: ef_vectorize_…" \
  -F "image=@photo.jpg" \
  -F 'settings={"engine":"tracecraft","tracecraft":{"maxColors":32}}'

Response: {"svg", "engine", "originalSize", "svgSize"}. Errors: 400 invalid input, 401 bad API key, 429 queue full (honor Retry-After), 503 job timeout.

Presets

presetbest for
auto (default)let the service pick engine + settings from the image
logoflat logos, icons, brand marks
photophotographs, smooth gradients
posterillustrations, bold flat shapes
lineartsketches, engravings, monochrome

Engines

enginewhat it is
autotracecraft — it wins on quality and size on every benchmark image
tracecraftin-house engine — planar shared-edge topology, render-and-refine
tracecraft2primitive recognition (rect/circle/ellipse) — smallest files
potrace2color potrace via tracecraft segmentation
vtracer / potraceclassic tracers

"detectFonts": true also returns fonts.regions[] — each text region's box (uploaded-image pixels) with its closest font families. Logo symbols come back as fonts.marks[], without a font.

"editableText": true also reads each line (fonts.regions[].text) and appends an invisible <g id="editable-text"> to the SVG: real <text> in the matched font, sized to the traced glyphs. The SVG looks the same; in an editor, show the layer to retype the wordmark.

Per-engine parameters, ranges and defaults: GET /api/schema.

Operational

GET /api/health — status, queue lanes, workers. Jobs are processed through a bounded queue; on 429 retry after the indicated delay.