BYTETOOLS

Vector Express API

Convert between SVG, DXF, DWG, EPS, PDF, AI, CDR, HPGL and more over HTTP with no key. Query the converter matrix first to find a valid conversion path.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the Vector Express API?

Vector Express is a free API for converting vector graphics between formats. `GET https://vector.express/api/v2/public/convert/` returns the full converter matrix listing every input and output format each engine supports, which you then use to build a conversion path such as `svg/cad/dxf`.

Vector conversion is a graph problem, not a function call, and Vector Express is one of the few APIs honest enough to expose that. There is no single converter that turns a CDR file into a DXF; instead there is a chain of engines, each with its own supported inputs and outputs. The public converter endpoint returns that whole matrix, so your code can find a valid route rather than guessing at a magic parameter.

The engines behind it are the familiar open source ones, and the matrix tells you which is which: `librsvg` and `pdf2svg` for SVG work, `gs` (Ghostscript) for PostScript and PDF, `libcdr` for CorelDRAW, `hp2xx` for HPGL plotter files, and a `cad` family for DXF and DWG. Free public use is rate limited to single digits per window, reported in `X-RateLimit-*` headers, which is generous enough for occasional conversions and deliberately not enough for a batch pipeline.

Quick facts

Base URL
https://vector.express/api/v2/public
Authentication
The public tier needs no key. Paid tiers exist for higher volume and are authenticated; nothing documented here requires a credential.
Rate limit
Observed as 5 requests per window on the public tier, reported in `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset` headers.
Pricing
Free public tier with paid plans for volume.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Vector Express API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. List every available converter and its formats

GET https://vector.express/api/v2/public/convert/

curl
curl 'https://vector.express/api/v2/public/convert/'
JavaScript (fetch)
const res = await fetch("https://vector.express/api/v2/public/convert/");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://vector.express/api/v2/public/convert/", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "converters": [
    {
      "name": "cad",
      "inputFormats": [
        "svg"
      ],
      "outputFormats": [
        "dxf",
        "dwg"
      ]
    },
    {
      "name": "cad2svg",
      "inputFormats": [
        "dxf",
        "dwg"
      ],
      "outputFormats": [
        "svg"
      ]
    },
    {
      "name": "cad2pdf",
      "inputFormats": [
        "dxf",
        "dwg"
      ],
      "outputFormats": [
        "pdf"
      ]
    },
    {
      "name": "cadlib",
      "inputFormats": [
        "dxf",
        "dwg"
      ],
      "outputFormats": [
        "dxf",
        "svg"
      ]
    },
    {
      "name": "emf2svg",
      "inputFormats": [
        "emf"
      ],
      "outputFormats": [
        "svg"
      ]
    },
    {
      "name": "svg2cad",
      "inputFormats": [
        "svg"
      ],
      "outputFormats": [
        "dxf",
        "dwg"
      ]
    },
    {
      "name": "gs",
      "inputFormats": [
        "ai",
        "eps",
        "pdf",
        "ps"
      ],
      "outputFormats": [
        "eps",
        "pdf",
        "ps"
      ]
    },
    {
      "name": "libcdr",
      "inputFormats": [
        "cdr"
      ],
      "outputFormats": [
        "svg"
      ]
    },
    {
      "name": "librsvg",
      "inputFormats": [
        "svg"
      ],
      "outputFormats": [
        "eps",
        "pdf",
        "ps"
      ]
    },
    {
      "name": "hp2xx",
      "inputFormats": [
        "hpgl",
        "plt"
      ],
      "outputFormats": [
        "eps",
        "svg"
      ]
    },
    {
      "name": "pdf2svg",
      "inputFormats"

Parameters

ParameterTypeRequiredDescription
(convert path)pathOptionalThe listing endpoint takes no parameters. To convert, POST the file to `/convert/{input}/{engine}/{output}`, e.g. `/convert/svg/cad/dxf`. /convert/
{input}pathOptionalSource format extension, taken from a converter's `inputFormats`. svg
{output}pathOptionalTarget format extension, taken from the same converter's `outputFormats`. dxf

Response fields

convertersarray
Every available conversion engine. There is no single universal converter; you choose one whose input and output formats match your need.
converters[].namestring
Engine identifier used in the conversion path, such as `cad`, `gs`, `librsvg`, `libcdr` or `hp2xx`.
converters[].inputFormatsarray of strings
Formats this engine accepts, as bare extensions without a dot.
converters[].outputFormatsarray of strings
Formats it can produce. If your pair does not appear on one engine, you may need to chain two conversions.

What you can build with the Vector Express API

  • Accept CorelDRAW or Illustrator uploads and normalise them to SVG
  • Convert SVG designs to DXF for laser cutters and CNC machines
  • Rasterise or flatten EPS and PostScript files to PDF in a document pipeline
  • Discover programmatically whether a given format pair is convertible at all
  • Migrate a library of legacy plotter files to a modern vector format

Common errors and how to fix them

429

The public tier allowance is exhausted.

Fix: Check `X-RateLimit-Remaining` before converting and wait for `X-RateLimit-Reset`. For batch work, use a paid tier or run the underlying open source tools yourself.

400 on a conversion path

The engine in the path does not support that input or output combination.

Fix: Fetch the converter matrix first and pick an engine whose `inputFormats` and `outputFormats` both match.

Corrupt output file

The source file uses features the engine cannot represent in the target format, such as gradients into DXF.

Fix: Vector formats are not equivalent. Test conversions against real files and expect to simplify artwork for CAD targets.

Vector Express API — frequently asked questions

Is Vector Express free?

There is a free public tier that needs no key, rate limited to a handful of requests per window. Paid plans exist for higher throughput.

Which formats can it convert?

The converter matrix is the authoritative answer and includes SVG, DXF, DWG, EPS, PS, PDF, AI, CDR, EMF and HPGL among others. Availability depends on the engine you route through.

Why do I need to pick a converter?

Because there is no single engine that handles every pair. The API exposes the engines individually so you can choose a valid route, and chain two conversions when no direct route exists.

Does the conversion endpoint require an upload?

Yes, converting a file means POSTing its bytes. The listing endpoint documented here is a plain read-only GET, which is why it is the example shown.

Tools that pair with this API

Vector Express is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.