# Image Vectorizer — JPG & PNG to SVG (`vero-api/img-vectorizer`) Actor

Turn logos, icons, and images (PNG, JPG, GIF, BMP, WebP, phone photos too) into clean, scalable SVG. Get crisp vector paths and the color palette, with optional background removal. Pay only for images converted.

- **URL**: https://apify.com/vero-api/img-vectorizer.md
- **Developed by:** [VeroAPIs](https://apify.com/vero-api) (community)
- **Categories:** AI, Developer tools, Automation
- **Features:** Limited permissions
- **Stats:** 7 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $2.00 / 1,000 vectorized images

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Image Vectorizer — JPG & PNG to SVG

Convert images to SVG in bulk. Paste links to your logos, icons, and graphics and get clean, scalable vector files you can resize to any dimension without losing quality, plus the full SVG markup and color palette for every image.

### Why use it

- **Crisp vectors from blurry pixels.** Turn a small PNG or JPG logo into a sharp SVG that looks perfect on a billboard or a favicon.
- **Background removal built in.** Get just the logo or subject on a transparent background in the same step.
- **Ready for your tools.** Each result comes as a downloadable SVG file and as markup in the results, so apps, APIs, and AI agents can use it directly.
- **Bulk friendly.** Convert one image or hundreds in a single run.
- **Fair pricing.** Pay only for the images you convert. Images that are skipped are free.

### What you can do

- Convert PNG, JPG, GIF, BMP, and WebP images to SVG.
- Rebuild an old or low-resolution logo as a vector for print, signage, and merch.
- Make SVG files for Cricut, Silhouette, and laser-cutting software.
- Prepare designs for print-on-demand shops, stickers, and t-shirts.
- Create web icons that stay sharp on every screen size.
- Give an AI agent or automation an image-to-SVG step.

### How to use it

1. Paste one or more image links into **Image URLs**.
2. Turn on **Remove background** if you want just the subject, with no backdrop.
3. Click **Start**.
4. Download each SVG file, or export the results table as JSON, CSV, or Excel.

### Input example

```json
{
  "imageUrls": [
    "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"
  ],
  "removeBackground": false
}
```

Links without `https://` work too, so `upload.wikimedia.org/wikipedia/commons/a/a9/Example.jpg` is fine.

### What you get

One row per converted image. Several images convert at once, so each row arrives the moment its image is done: match rows to your list by `imageUrl`. SVG file names keep your list's order (`svg-001-…`, `svg-002-…`).

| Field | What it is |
|---|---|
| `imageUrl` | The image link you entered. |
| `svgUrl` | Direct link to the SVG file. Opens without an API token, ready to download or share. |
| `svg` | The full SVG markup, ready to save or embed. |
| `width`, `height` | Size of the SVG in pixels: the source image shown upright, scaled to 3 megapixels when larger. |
| `colors` | Every fill color used in the SVG. |

```json
{
  "imageUrl": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png",
  "svgUrl": "https://api.apify.com/v2/key-value-stores/kV7dQm2xRt9LpZ4wB/records/svg-001-googlelogo_color_272x92dp.svg?signature=3Xk9pQ2mZt7LwR4vB8nY",
  "svg": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 544 184\" width=\"544\" height=\"184\">...</svg>\n",
  "width": 544,
  "height": 184,
  "colors": ["#ea4335", "#4285f4", "#fbbc05", "#34a853"]
}
```

All SVG files from the run are also listed under **SVG files** in the Output tab.

Detailed photos can produce SVGs of several megabytes. For spreadsheets, export the **Overview** view, which links to each SVG file instead of including the markup.

### Images that were skipped

Every image that couldn't be converted is listed under **Images not converted** in the Output tab, with the reason, and is never charged. The run's status line sums it up, for example: *Converted 4 of 5 images. Skipped 1, free of charge (link could not be opened: 1). See "Images not converted" in the Output tab for each reason.*

### Tips for the best results

- **Logos, icons, and flat graphics** give the cleanest, sharpest SVGs.
- **Any image size works.** Large photos are scaled to 3 megapixels (for example 2048 x 1536) automatically, keeping their shape, so there's nothing to resize first.
- **Phone photos come out upright**, just as they look in your gallery.
- **Remove background** works best on logos and products on a plain backdrop. Images that already have a transparent background stay as they are.

### Pricing

You pay only for the images you convert: no subscriptions, no surprises.

- One converted image counts as one result.
- Links that can't be opened, files that aren't images, and images that can't be converted cost nothing.
- The run stops right at the spending limit you set.

### Integrations

Send your SVGs wherever you work: connect the actor to Make, Zapier, n8n, Google Drive, Slack, or your own webhook with Apify integrations, or schedule it to run on its own.

### Run it from your code

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('vero-api/img-vectorizer').call({
  imageUrls: ['https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png'],
  removeBackground: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((item) => item.svgUrl));
```

```python
from apify_client import ApifyClient

client = ApifyClient('<YOUR_APIFY_TOKEN>')
run = client.actor('vero-api/img-vectorizer').call(run_input={
    'imageUrls': ['https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png'],
})
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item['svgUrl'])
```

### Use it from your AI assistant (MCP)

Ask Claude, Cursor, VS Code, or any assistant that supports MCP to vectorize an image in plain words. Add this server to its MCP settings:

```json
{
  "mcpServers": {
    "img-vectorizer": {
      "url": "https://mcp.apify.com?tools=vero-api/img-vectorizer"
    }
  }
}
```

Then just ask, for example:

- *"Turn this PNG logo into an SVG and remove the background."*
- *"Convert these five icons to SVG and give me the download links."*

### FAQ

**Which images work best?** Logos, icons, and flat graphics give the cleanest, sharpest results. Photos work too and come out with a stylized, painted look.

**What formats can I use?** PNG, JPG, GIF, BMP, and WebP. For animated GIFs, the first frame is converted.

**How large can an image be?** Any size up to a 30 MB file. Larger photos are scaled to 3 megapixels (for example 2048 x 1536) automatically, keeping their shape, so phone and camera photos work as they are.

**Can I remove the background?** Yes. Turn on **Remove background** and the backdrop is cut out automatically, leaving your logo or subject on a transparent background.

**Do I pay for images that fail?** No. You pay only for images that are converted. Skipped images are listed with the reason, free of charge.

**Can I resize the SVG afterward?** Yes. SVGs scale to any size with no loss of quality.

**Can I open the SVG in Illustrator, Inkscape, Figma, or Cricut Design Space?** Yes. The result is a standard SVG file that any vector editor or cutting software can open.

**Can I get the same image with and without the background?** Yes. Run it once with **Remove background** on and once with it off.

**Which links work?** Any public link that opens the image file itself, such as a link from your website, CDN, or file host. Links to a web page that only shows the image are listed under **Images not converted**, free of charge.

### More tools from us

- [Website Screenshot Generator](https://apify.com/vero-api/website-screenshot): full-page screenshots and PDFs of any website on desktop and mobile.
- [Instagram Reels & Posts Downloader](https://apify.com/vero-api/instagram-reels-posts-downloader): download videos and photos from Instagram posts and reels.
- [Google Ads Transparency Scraper](https://apify.com/vero-api/google-ads-transparency-scraper): see the ads any brand runs on Google, with their images and videos.
- [YouTube Transcript Scraper](https://apify.com/vero-api/youtube-transcript-scraper): get the full transcript of any YouTube video.
- [DNS Tools](https://apify.com/vero-api/dns-tools): WHOIS, domain age, and DNS records for any domain.

# Actor input Schema

## `imageUrls` (type: `array`):

Links to the images you want as SVG, one per line. Works with PNG, JPG, GIF, BMP, and WebP images of any size, including phone photos. Logos, icons, and other flat graphics give the sharpest results.

## `removeBackground` (type: `boolean`):

Turn on to get just the logo or subject on a transparent background. The background is found and cut out automatically; images that already have a transparent background stay as they are.

## Actor input object example

```json
{
  "imageUrls": [
    "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"
  ],
  "removeBackground": false
}
```

# Actor output Schema

## `results` (type: `string`):

One row per converted image: imageUrl, svgUrl (a direct link to the SVG file), svg (the full markup), width, height, and colors.

## `svgFiles` (type: `string`):

Every SVG file from the run, one per converted image, named svg-<number>-<image name>.svg.

## `failedImages` (type: `string`):

Images that were skipped, free of charge: imageUrl and reason for each. An empty list when every image was converted.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "imageUrls": [
        "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("vero-api/img-vectorizer").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "imageUrls": ["https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"] }

# Run the Actor and wait for it to finish
run = client.actor("vero-api/img-vectorizer").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "imageUrls": [
    "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"
  ]
}' |
apify call vero-api/img-vectorizer --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,vero-api/img-vectorizer"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/XkIL7kpwZnZkV23wp/builds/RvVFdiCpRUuqGZqtn/openapi.json
