MP4 to SVG API - Convert MP4 to SVG API: Pricing, Documentation
by Pixazo
Getting SVG paths out of an MP4 takes two Pixazo calls, and this page documents both. First POST the video to /media-tools/v1/video-extract-frame to pull out a single still; then POST that still's URL to /media-tools/v1/image-vectorize, which traces it into scalable vector paths. Each call is a separate job with its own request_id and its own poll, and each costs $0.002 — $0.004 for the pair. The tracer is built for high-contrast frames such as logos, title cards and graphic overlays, not for photographic footage. Prefer a no-code option? The same conversion is available free in your browser as the MP4 to SVG Converter.

Models Version
Get $5 Free Credit on First Payment
No strings attached — add funds and get $5 bonus instantly
MP4 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.
| Header | Required | Value |
|---|---|---|
Ocp-Apim-Subscription-Key | Yes | Your Pixazo API key |
MP4 frame to SVG (step 2 of 2) generate request
There is no single endpoint that takes an MP4 and returns an SVG, and any documentation claiming otherwise is wrong: image-vectorize is a raster tracer built on potrace, and handing it a video URL simply fails. The supported route is the two-step above — extract a frame, then trace that frame — which is also the more useful shape in practice, because you choose exactly which frame gets vectorized rather than accepting whatever a hidden default picked. Step one returns a PNG still by default and lets you name a position in seconds. Step two thresholds that still to black and white and traces the shapes, so results are strongest on flat, high-contrast frames (logos, lower-thirds, title cards) and weakest on continuous-tone footage. Two calls, two polls, $0.004 in total.
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/frame.png","threshold":50}'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
| Parameter | Required | Type | Default | Allowed | Description |
|---|---|---|---|---|---|
image_url | Required | string | — | HTTP(S) URL | URL of the still image to trace — NOT the MP4. Extract a frame first with POST /media-tools/v1/video-extract-frame and pass that output URL here. |
threshold | Optional | number | 50 | 0 – 100 | Where the black/white cut falls, as a percentage. Lower keeps only the darkest pixels; higher pulls more midtones into the traced shape. |
webhook_url | Optional | string | — | HTTP(S) URL | Receive 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/frame.png","threshold":50}'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
| Header | Required | Value |
|---|---|---|
Ocp-Apim-Subscription-Key | Yes | Your Pixazo API key |
Content-Type | Yes | application/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.
| Code | Meaning |
|---|---|
| 202 | Accepted — the job was queued; poll the status URL. |
| 400 | Bad request — a parameter is missing or invalid. |
| 401 | Unauthorized — missing or wrong API key. |
| 402 | Payment required — insufficient balance. |
| 429 | Too many requests — you are being rate-limited. |
| 500 | Server 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
| Field | Type | Description |
|---|---|---|
request_id | string | Unique id for this job. |
status | string | One of the job status values below. |
output.media_url | string | URL of the converted file (when completed). |
output.media_type | string | Output format (SVG). |
error | object | null | Populated only when status is FAILED. |
Status Values
| Status | Meaning |
|---|---|
| QUEUED | Job accepted, waiting for a worker. |
| PROCESSING | Conversion in progress. |
| COMPLETED | Done — the output URL is in the response. |
| FAILED | The job could not be completed; see error. |
MP4 to SVG API Pricing
⚡ 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).
〰 Uptime
Percent of generations that succeeded over the selected period, per model version.