Skip to main content
POST
/
v1
/
svgs
/
vectorizations
Image to SVG
curl --request POST \
  --url https://api.quiver.ai/v1/svgs/vectorizations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "arrow-preview",
  "stream": false,
  "image": {
    "url": "https://example.com/uploads/logo.png"
  }
}
'
{
  "id": "resp_01J9AZ3XJ7D5S9ZV2Q5Z8E1A4N",
  "created": 1704067200,
  "data": [
    {
      "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 2l8 20H4z\"/></svg>",
      "mime_type": "image/svg+xml"
    }
  ],
  "usage": {
    "total_tokens": 1640,
    "input_tokens": 1200,
    "output_tokens": 440
  }
}

Authorizations

Authorization
string
header
required

Authentication via Bearer token API key

Body

application/json
model
string
required

Model identifier to use for generation or vectorization.

Minimum string length: 1
Example:

"arrow-preview"

image
object
required
n
integer
default:1

Number of outputs to generate.

Required range: 1 <= x <= 16
Example:

1

top_p
number
default:1

Nucleus sampling probability.

Required range: 0 <= x <= 1
Example:

0.95

max_output_tokens
integer

Upper bound for output token count.

Required range: 1 <= x <= 131072
Example:

4096

stream
boolean
default:false

When true, emits a Server-Sent Events stream.

Example:

false

temperature
number
default:1

Sampling temperature.

Required range: 0 <= x <= 2
Example:

0.4

presence_penalty
number | null
default:0

Penalty for tokens already present in prior output.

Required range: -2 <= x <= 2
Example:

0.2

auto_crop
boolean
default:false

Auto-crop image to the dominant subject before vectorization.

Example:

true

target_size
integer

Square resize target in pixels before inference.

Required range: 128 <= x <= 4096
Example:

1024

Response

When stream is false, returns application/json with the full SVG response. When stream is true, returns text/event-stream with Server-Sent Events. Each SSE message contains an event: line (reasoning, draft, or content) and a data: line with a JSON payload. The stream terminates with data: [DONE].

id
string
required
Minimum string length: 1
Example:

"resp_01J9AZ3XJ7D5S9ZV2Q5Z8E1A4N"

created
integer
required
Required range: x >= 0
Example:

1704067200

data
object[]
required
Minimum array length: 1
usage
object