Pixazo APIImage ToolsPNG to SVG API

PNG to SVG API: Vectorize PNG Logos and Icons Programmatically

by Pixazo

Turn flat PNG raster into resolution-independent SVG that scales cleanly from a favicon to a billboard. Pixazo's vectorize endpoint traces edges into path data, so a logo exported once at 512px becomes infinitely sharp. Best on solid-color logos, icons, and line art. Prefer a no-code option? The same conversion is available free in your browser as the PNG to SVG Converter.

Get API Key
PNG to SVG API

Models Version

Welcome Bonus

Get $5 Free Credit on First Payment

No strings attached — add funds and get $5 bonus instantly

Claim Your $5 →

PNG to SVG API Documentation

Authentication

Every request is authenticated with your Pixazo API key in the Ocp-Apim-Subscription-Key header — the same key across every Pixazo endpoint.

HeaderRequiredValue
Ocp-Apim-Subscription-KeyYesYour Pixazo API key

PNG to SVG generate request

PNG is a pixel grid, so enlarging it past its native resolution produces soft or jagged edges, and every size variant means re-exporting an asset. Vectorizing to SVG replaces pixels with mathematical paths that render crisp at any scale and stay tiny in file size for simple graphics. Pixazo's /media-tools/v1/image-vectorize endpoint thresholds the source to black-and-white, then traces the outlines into SVG path geometry. It excels at logos, monochrome icons, badges, and line drawings; photographs and gradient-heavy PNGs vectorize poorly because the thresholding step collapses tonal detail. Every job returns a request_id you poll for the finished SVG.

Endpoint: POST https://gateway.pixazo.ai/media-tools/v1/image-vectorize

Request Code

curl -X POST 'https://gateway.pixazo.ai/media-tools/v1/image-vectorize' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"image_url":"https://example.com/input.png","mode":"spline"}'

Output

{
  "request_id": "req_9f3c1a7b2e",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/req_9f3c1a7b2e"
}

Webhook (Optional)

Instead of polling, include a webhook_url in the request body and Pixazo will POST the completed job payload to that URL when the conversion finishes. The webhook body is identical to the completed-status response shown under Retrieving Results.

Request Parameters

ParameterRequiredTypeDefaultAllowedDescription
image_urlRequiredstringHTTP(S) URLURL of the raster image to trace.
modeOptionalstringsplinespline / polygonCurve style for traced paths.
webhook_urlOptionalstringHTTP(S) URLReceive the completed job via webhook instead of polling.

Example Request

curl -X POST 'https://gateway.pixazo.ai/media-tools/v1/image-vectorize' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"image_url":"https://example.com/input.png","mode":"spline"}'

Response

Every request returns a request_id immediately with a QUEUED status. Use the polling_url (or a webhook) to retrieve the finished file.

{
  "request_id": "req_9f3c1a7b2e",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/req_9f3c1a7b2e"
}

Request Headers

HeaderRequiredValue
Ocp-Apim-Subscription-KeyYesYour Pixazo API key
Content-TypeYesapplication/json

Response Handling

The submit call returns one of the HTTP status codes below. A 202 means the job was accepted — everything else is an error you should handle.

CodeMeaning
202Accepted — the job was queued; poll the status URL.
400Bad request — a parameter is missing or invalid.
401Unauthorized — missing or wrong API key.
Payment required — insufficient balance.
Too many requests — you are being rate-limited.
500Server error — transient; retry with backoff.

Error Responses

Errors return a JSON body with a machine-readable code and a human-readable message.

{
  "request_id": "req_9f3c1a7b2e",
  "status": "FAILED",
  "error": {
    "code": "INSUFFICIENT_BALANCE",
    "message": "Your account balance is too low to process this request."
  }
}

Retrieving Results

Poll the status endpoint until the job reaches COMPLETED (or FAILED).

curl 'https://gateway.pixazo.ai/v2/requests/status/req_9f3c1a7b2e' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_API_KEY'

Response (Completed)

{
  "request_id": "req_9f3c1a7b2e",
  "status": "COMPLETED",
  "model_id": "image-vectorize",
  "output": {
    "media_url": "https://api-assets.pixazo.ai/out/result.svg",
    "media_type": "SVG"
  },
  "error": null,
  "created_at": "2026-01-01T00:00:00Z",
  "completed_at": "2026-01-01T00:00:04Z"
}

Response Fields

FieldTypeDescription
request_idstringUnique id for this job.
statusstringOne of the job status values below.
output.media_urlstringURL of the converted file (when completed).
output.media_typestringOutput format (SVG).
errorobject | nullPopulated only when status is FAILED.

Status Values

StatusMeaning
QUEUEDJob accepted, waiting for a worker.
Conversion in progress.
COMPLETEDDone — the output URL is in the response.
FAILEDThe job could not be completed; see error.

PNG to SVG API Pricing

Your request will cost $0.002 per image.
Flat $0.002 per image traced.

⚡ Performance

Live usage measured on Pixazo's gateway, split by model version. Generation time is how long a generation takes end-to-end (lower is better). Success rate is the percent of generations that complete (higher is better).

Show data for the last
Generations
241,400last 30d
~8,047 per day
Success rate
98.3%
of completed generations
Generation time
1.4savg
p95 2.2s
Requests
Aug 3max 9,600Sep 1
PNG to SVGAvg 8,047/day
Generation Time
Aug 3max 1.6sSep 1
PNG to SVGAvg 1.4s
Error Rate
Aug 3max 5.0%Sep 1
PNG to SVGAvg 1.7%

〰 Uptime

Percent of generations that succeeded over the selected period, per model version.

Avg. Success Rate (30d)
98.30%
across all generations of this model family
Uptime
Aug 3max 100%Sep 1
SuccessfulAvg 98.31%