Sign in at vectorise.me, open the dashboard and create a key in the API Keys panel, then send an image. Keys use a single X-API-Key header — no OAuth, no token refresh.
# 1. Vectorize an image to SVG (preset picks the right settings)
curl -X POST https://vectorise.me/api/v1/convert \
-H "X-API-Key: $VECTORISE_API_KEY" \
-F imageFile=@logo.png \
-F preset=logo \
-F edge_recovery=auto
# Response: { "svg": "<svg ...>", "colorPalette": [...], ... }
# 2. Export the SVG to PDF (optional)
curl -X POST https://vectorise.me/api/v1/export \
-H "X-API-Key: $VECTORISE_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "svg": "<svg ...>", "format": "pdf" }'One preset field tunes the trace for your image type — the same profiles the web app uses. Web, REST, and MCP share the exact same engine and settings, so results match what you see at vectorise.me. Every preset runs with no hidden AI steps: recovery is only applied when you explicitly request it.
| Preset | Best for |
|---|---|
| auto | Engine detects the image type and picks the best settings (default) |
| logo | Logos, icons, and text — sharp edges, exact brand colours, minimal paths |
| illustration | Drawings, cartoons, and clipart — smooth curves and clean colour regions |
| photo | Photographs — rich tonal gradients and smooth colour transitions |
| pixel_art | Pixel art and retro graphics — pixel-faithful tracing with exact colours |
| technical_drawing | Blueprints, schematics, and line art — sharp black & white tracing |
Web, REST, and MCP callers use the same new engine. Set edge_recovery=off or real_esrgan, plus preprocess_sharpen=true|false and recovery_detail=low|med|high|ultra. Your client needs no WebGPU, local GPU, ONNX runtime, or model download. The server keeps one shared model, serializes heavy work on 2 GB hosts, caps working resolution under memory pressure, and falls back to the same direct VTracer profile if restoration cannot run. Check qualityDiagnostics.edgeRecoveryResolved to see what actually ran.
/api/v1/convert
Vectorize a single image to SVG with the server engine. multipart/form-data with imageFile (JPG, PNG, BMP, WEBP, AVIF — up to 15 MB) plus optional preset, quality_tier, color_mode, palette controls, and output options. Recovery is OFF unless explicitly requested (edge_recovery=real_esrgan for 2× AI restore, pixel_exact for pixel-art grid recovery). Browser-only AI features are not exposed to API callers.
/api/v1/convert-batch
Vectorize up to 10 images in one request. Repeated imageFiles form entries plus shared settings (preset, quality_tier, ...) applied to every image. Each file gets an independent result — one bad image does not fail the batch. Credits are charged per successful conversion.
/api/v1/export
Export SVG to SVG, PDF, EPS, DXF, PNG, JPG, WEBP, or AVIF. Supports colour-layer/path grouping, SVG 1.0/1.1/Tiny 1.2, fixed dimensions, clipping, non-scaling strokes, gap cleanup, and 1–8× raster scale. Unsupported server formats are reported by /capabilities.
/api/v1/batch
Export up to 20 SVGs in one call and receive a single ZIP. JSON body { items: [{ svg, format, ... }] }. Pro required.
/api/v1/usage
Plan, credit balance, and 30-day usage history for the calling API key.
/api/v1/capabilities
Available export formats and the per-format option matrix. No auth required.
/api/v1/status
API health check. Queue depths available at /health. No auth required.
X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset; 429/503/504 responses include Retry-After.GET /api/v1 for a self-describing capabilities document.Everything the web app can do — presets, quality tiers, colour and palette control, and all export formats — is available over REST and MCP. The full machine-readable spec lives at /api/v1/openapi.json. Browser-only AI features are deliberately not part of the API.
| Parameter | Values | Notes |
|---|---|---|
| imageFile | file | Required. JPG, PNG, BMP, WEBP, or AVIF up to 15 MB. |
| preset | auto | logo | illustration | photo | pixel_art | technical_drawing | Scenario profile; auto detects the image type. Default auto. |
| quality_tier | fast | balanced_crisp | high_precision | Speed/quality trade-off. Credits: fast=1, balanced_crisp=2, high_precision=5. Default balanced_crisp. |
| color_mode | color | grayscale | bw | outline | Colour handling. Default color. |
| palette_count | 2–64 | Target number of output colours. Omit for automatic. |
| preserve_exact_colors | true | false | Keep source colours exactly instead of merging near-duplicates. |
| edge_recovery | real_esrgan | pixel_exact | OFF unless set. real_esrgan = optional 2× server-side restore for degraded sources; pixel_exact = pixel-art grid recovery (not an AI model). |
| recovery_detail | low | med | high | ultra | Detail level when edge_recovery is set. |
| artifact_cleanup | 0–4 | Speckle/noise removal strength. Default 2. |
| output | svg | json | svg returns the file; json returns { svg, stats, downloadPathBasename }. Default json. |
| Parameter | Values | Notes |
|---|---|---|
| svg / sourceSvgBasename | string | The SVG markup to export, or the opaque basename returned by /convert (avoids re-posting a large SVG). |
| format | svg | pdf | eps | dxf | png | jpg | webp | avif | Target format. Per-format support is reported by /capabilities. |
| scale | 1–8 | Raster scale multiplier for PNG/JPG/WEBP/AVIF. |
| group_by | color | path | Layer grouping strategy for vector formats. |
| svg_version | 1.0 | 1.1 | tiny1.2 | SVG spec target for maximum compatibility. |
| flatten / clip_overflow / non_scaling_strokes | true | false | Output hygiene switches; see /capabilities for the per-format matrix. |
The official vectorizer-mcp package (also published as vectorise-mcp — identical, either name works) exposes vectorization as tools for any MCP-compatible client. Once configured, just ask your assistant to "vectorize logo.png as an SVG" — it handles upload, conversion, and saving the result. Tools: vectorize_image, vectorize_batch (up to 20 files), export_svg, get_usage, get_capabilities, and get_status — all with the same scenario presets and export settings as the REST API. Optional server-side recovery runs on Vectorise.Me infrastructure, never inside Claude or Cursor, and only when explicitly requested.
// claude_desktop_config.json
{
"mcpServers": {
"vectorizer": {
"command": "npx",
"args": ["-y", "vectorizer-mcp"],
"env": { "VECTORISE_API_KEY": "vm_live_..." }
}
}
}| Code | HTTP | Meaning |
|---|---|---|
| RATE_LIMITED | 429 | Request rate exceeded — respect the Retry-After header. |
| API_KEY_BUSY | 429 | Too many concurrent conversions in flight for this key. |
| QUEUE_FULL | 429 | Conversion queue is full for the requested quality tier. |
| INSUFFICIENT_CREDITS | 402 | API credit balance is empty — top up at /pricing. |
| STORAGE_FULL | 507 | Server storage temporarily full — retry after the suggested delay. |
| AT_CAPACITY | 503 | Server at capacity for the requested tier — retry shortly. |
| QUEUE_TIMEOUT | 504 | Timed out waiting for a conversion slot — retry shortly. |
Create a key, send an image, get an SVG back. First conversions cost pennies.