Bắt đầu nhanh
Chỉ ba bước là bạn có thể chuyển đổi hình ảnh sang SVG từ thiết bị đầu cuối, tập lệnh hoặc ứng dụng của mình.
1 · Tạo tài khoản
Đăng ký trên cổng thông tin khách hàng bằng email và mật khẩu của bạn (10 ký tự trở lên). Không cần thẻ tín dụng.
2 · Tạo khóa API
Trong cổng thông tin, hãy tạo một khóa. Nó chỉ được hiển thị một lần — hãy lưu giữ cẩn thận. Khóa có dạng ptp_live_… và có thể thu hồi bất cứ lúc nào.
3 · Gọi /v1/convert
Gửi hình ảnh của bạn dưới dạng multipart/form-data cùng khóa của bạn trong tiêu đề Authorization. Tệp SVG sẽ được trả về trong nội dung phản hồi.
Chuyển đổi đầu tiên của bạn
curl -sS -f -X POST https://api.pixel-to-path.com/v1/convert \
-H "Authorization: Bearer ptp_live_YOUR_KEY" \
-F "[email protected]" \
-F "colormode=binary" \
-o logo.svg
Tài liệu tham khảo tương tác: pixel-to-path.com/v1/docs (OpenAPI/Swagger).
Xác thực
Mọi yêu cầu đều được xác thực bằng mã thông báo Bearer trong tiêu đề Authorization:
Authorization: Bearer ptp_live_0123abc…
- Khóa là bí mật: chúng được lưu trữ dưới dạng băm trên máy chủ và chỉ hiển thị một lần khi tạo. Mất khóa? Hãy thu hồi nó và tạo khóa mới.
- Một tài khoản, nhiều khóa: tạo tối đa 5 khóa đang hoạt động để phân chia các dự án của bạn. Hạn ngạch miễn phí hàng tháng được tính trên mỗi tài khoản, không phải trên mỗi khóa.
- Thu hồi ngay lập tức: khóa bị thu hồi sẽ ngừng hoạt động ngay lập tức, từ cổng thông tin hoặc phản hồi API của một tài khoản bị cấm.
POST /v1/convert
Tải lên + chuyển đổi trong một lệnh gọi không trạng thái duy nhất. Một lệnh gọi thành công tiêu tốn tối đa 1 tín dụng — các lệnh gọi thất bại, không hợp lệ hoặc bị giới hạn tốc độ sẽ không tính phí.
Yêu cầu (multipart/form-data)
| Trường dữ liệu | Loại | Mặc định | Mô tả |
|---|---|---|---|
file |
file | — | Hình ảnh cần chuyển đổi. PNG, JPEG, BMP hoặc WebP · tối đa 20 MB · tối đa 50 Mpx · tối thiểu 64×64 px. |
colormode |
string | color |
<code>color</code> sử dụng công cụ VTracer, <code>binary</code> sử dụng Potrace (đen & trắng). |
mode |
string | spline |
Chỉ dành cho chế độ màu (VTracer) — bỏ qua ở chế độ binary. spline | polygon | none |
hierarchical |
string | stacked |
Chỉ dành cho chế độ màu (VTracer) — bỏ qua ở chế độ binary. stacked | cutout |
filter_speckle |
int | 4 |
Chỉ dành cho chế độ màu (VTracer) — bỏ qua ở chế độ binary. 0–16 — loại bỏ các đốm nhiễu nhỏ. |
color_precision |
int | 6 |
Chỉ dành cho chế độ màu (VTracer) — bỏ qua ở chế độ binary. 1–8 — số bit có nghĩa mỗi kênh màu. |
layer_difference |
int | 16 |
Chỉ dành cho chế độ màu (VTracer) — bỏ qua ở chế độ binary. 0–64 — khoảng cách giữa các lớp màu. |
corner_threshold |
int | 60 |
0–180 — góc nhận diện góc cạnh (cả hai công cụ). |
length_threshold |
float | 4.0 |
3.5–10 — độ dài phân đoạn tối thiểu (cả hai công cụ). |
splice_threshold |
int | 45 |
0–180 — góc chia tách đường dẫn (cả hai công cụ). |
path_precision |
int | 3 |
0–8 — chữ số thập phân trong tọa độ đường dẫn. |
invert |
bool | false |
Chỉ dành cho Binary (Potrace) — bỏ qua ở chế độ màu. Viền vùng sáng thay vì vùng tối. |
turdsize |
int | 2 |
Chỉ dành cho Binary (Potrace) — bỏ qua ở chế độ màu. 0–20 — ức chế đốm nhiễu đến kích thước này. |
alphamax |
float | 1.0 |
Chỉ dành cho Binary (Potrace) — bỏ qua ở chế độ màu. 0–1.334 — ngưỡng làm mượt góc cạnh. |
opttolerance |
float | 0.2 |
Chỉ dành cho Binary (Potrace) — bỏ qua ở chế độ màu. 0–10 — dung sai tối ưu hóa đường cong. |
Hai công cụ, được chọn bởi "colormode"
API chạy cùng một bộ công cụ giống hệt trình chuyển đổi miễn phí trực tuyến và ứng dụng dành cho máy tính để bàn:
binary — Potrace
Theo dấu đen trắng cho ảnh vẽ tay, ảnh quét, phác thảo và logo. Phần tối của hình ảnh (grayscale < 50%) được viền trên nền trắng. Tinh chỉnh đầu ra với turdsize (loại bỏ nhiễu), alphamax (làm mịn góc) và opttolerance (tối ưu hóa đường dẫn).
color — VTracer
Vector hóa màu theo lớp cho hình minh họa, phim hoạt hình và ảnh. Kiểm soát mức độ chi tiết bằng filter_speckle, color_precision, layer_difference và độ khớp đường cong với mode (spline, polygon, none).
Hình ảnh được tiền xử lý giống hệt như trên trang web: cạnh dài nhất được thay đổi kích thước thành 1500 px trước khi chuyển đổi và API sẽ trả về loại hình ảnh được phát hiện (line_art, logo, photo hoặc illustration) trong tiêu đề X-Detected-Type.
Phản hồi
Khi thành công: 200 OK với image/svg+xml — nội dung là chính tệp SVG. Các tiêu đề thông tin:
| Tiêu đề | Mô tả |
|---|---|
X-Credits-Remaining | Số dư tín dụng trả phí còn lại trên tài khoản, sau khi đã trừ cho lệnh gọi này. |
X-Free-Remaining | Số lượt chuyển đổi miễn phí còn lại trong tháng này. |
X-Detected-Type | Loại ảnh được phát hiện (thông tin): line_art, logo, photo hoặc illustration. |
X-Processing-Time | Thời gian xử lý của máy chủ (tính bằng giây). |
GET /v1/me
Trạng thái tài khoản của khóa được sử dụng để gọi. Miễn phí — không bao giờ tính vào hạn mức của bạn, không bao giờ bị trừ tín dụng.
Ví dụ về phản hồi
GET /v1/me
Authorization: Bearer ptp_live_…
{
"key": { "name": "prod", "prefix": "ptp_live_0123abc", … },
"usage": {
"month": "2026-09", "free_used": 7, "free_limit": 10,
"free_remaining": 3, "resets_at": "2026-10-01T00:00:00+00:00"
},
"credits": { "balance": 120 }
}
Lỗi
Mọi lỗi đều trả về một JSON đồng nhất. Các lệnh gọi thất bại sẽ không bao giờ tiêu tốn tín dụng.
HTTP/1.1 402 Payment Required
{
"error": {
"code": "quota_exceeded",
"message": "Monthly free quota used and no credits left.",
"usage": { "free_used": 10, "free_limit": 10, "credits": 0 }
}
}
| HTTP | Mã | Khi nào |
|---|---|---|
| 401 | invalid_api_key | Thiếu khóa API, khóa bị sai định dạng, không xác định hoặc đã bị thu hồi. |
| 402 | quota_exceeded | Đã sử dụng hết hạn mức miễn phí hàng tháng và không còn tín dụng. |
| 403 | account_banned | Tài khoản bị cấm — tất cả các khóa của tài khoản đó đều bị từ chối. |
| 403 | ip_blocked | IP của người gọi nằm trong danh sách chặn. |
| 413 | file_too_large | Tệp lớn hơn 20 MB. |
| 422 | invalid_image / image_too_small / invalid_params | Hình ảnh không hợp lệ, hình ảnh quá nhỏ hoặc giá trị tham số không hợp lệ. |
| 429 | rate_limited | Vượt quá giới hạn tốc độ trên mỗi khóa (xem bên dưới). Bao gồm tiêu đề Retry-After. |
| 500 | internal_error | Chuyển đổi không thành công ở phía máy chủ — không bị trừ tín dụng. |
Giới hạn tốc độ
Các giới hạn được áp dụng trên mỗi khóa API, không phải trên mỗi IP, do đó một văn phòng dùng chung hoặc trình chạy CI sẽ không bao giờ bị phạt vì lưu lượng truy cập của người khác.
| Giới hạn | Giá trị |
|---|---|
| Yêu cầu mỗi phút, trên mỗi khóa | 60 |
| Yêu cầu mỗi ngày, trên mỗi khóa | 2 000 |
| Chuyển đổi đồng thời, trên mỗi khóa | 2 (các cuộc gọi bổ sung sẽ chờ, sau đó 429) |
| Kích thước tệp / độ phân giải tối đa | 20 MB / 50 Mpx |
Bảng giá
Mọi tài khoản mới đều có 10 lượt chuyển đổi miễn phí mỗi tháng, không cần thẻ tín dụng. Cần thêm? Mua gói ảnh trả trước — với mọi số lượng (từng lô 50 ảnh), có giảm giá số lượng lớn. Chúng không bao giờ hết hạn và cộng dồn với hạn mức miễn phí hàng tháng của bạn (lượt chuyển đổi miễn phí sẽ được sử dụng trước).
Miễn phí
0€/tháng
- 10 lượt chuyển đổi / tháng
- Cả hai công cụ (Potrace + VTracer)
- Tối đa 5 khóa API
Ảnh trả trước
0,050€/ ảnh
| Ảnh | 50–450 | 500–2 450 | 2 500–9 950 | 10 000–49 950 | 50 000+ |
|---|---|---|---|---|---|
| €/image | 0.050 | 0.040 | 0.030 | 0.020 | 0.010 |
- Mua 1 ảnh = 1 lượt chuyển đổi (tín dụng không hết hạn)
- Không bao giờ hết hạn, cộng dồn với gói miễn phí
- Mọi số lượng: 0,040€/ảnh từ 500 ảnh, giảm còn 0,010€/ảnh
Tín dụng tự động: số dư của bạn sẽ được cập nhật trong vài giây sau khi thanh toán, thông qua webhook thanh toán. Tiền hoàn lại sẽ khấu trừ tín dụng đã mua, giới hạn ở mức số dư hiện tại. Thanh toán an toàn bằng Lemon Squeezy (thuế GTGT được xử lý tự động).
Ví dụ về mã
Sao chép, dán và tùy chỉnh. API sử dụng định dạng multipart/form-data thuần túy, nên mọi máy khách HTTP đều hoạt động được.
cURL
curl -sS -f -X POST https://api.pixel-to-path.com/v1/convert \
-H "Authorization: Bearer ptp_live_YOUR_KEY" \
-F "[email protected]" \
-F "colormode=color" \
-F "filter_speckle=4" \
-o photo.svg
Python
import requests
resp = requests.post(
"https://api.pixel-to-path.com/v1/convert",
headers={"Authorization": "Bearer ptp_live_YOUR_KEY"},
files={"file": open("photo.jpg", "rb")},
data={"colormode": "color", "filter_speckle": 4},
)
resp.raise_for_status()
print(resp.headers["X-Credits-Remaining"], "credits left")
with open("photo.svg", "wb") as f:
f.write(resp.content)
JavaScript
const form = new FormData();
form.append("file", new Blob([imageBytes]), "photo.jpg");
form.append("colormode", "color");
const resp = await fetch("https://api.pixel-to-path.com/v1/convert", {
method: "POST",
headers: { "Authorization": "Bearer ptp_live_YOUR_KEY" },
body: form,
});
if (!resp.ok) {
const { error } = await resp.json();
throw new Error(`${error.code}: ${error.message}`);
}
const svg = await resp.text();
console.log(resp.headers.get("X-Credits-Remaining"), "credits left");
Những câu hỏi thường gặp
Thế nào được tính là một lượt chuyển đổi?
Một lệnh gọi POST /v1/convert thành công và trả về một SVG. Các lệnh gọi thất bại (hình ảnh không hợp lệ, sai tham số, bị giới hạn tốc độ, lỗi máy chủ) và các lệnh gọi GET /v1/me sẽ không bao giờ bị tính phí.
Hạn mức miễn phí hàng tháng được tính như thế nào?
Tính trên mỗi tài khoản, theo tháng dương lịch UTC — nó sẽ làm mới vào ngày 1 lúc 00:00 UTC. Việc tạo nhiều khóa API không làm tăng hạn mức miễn phí: tất cả các khóa của một tài khoản cùng chia sẻ 10 lượt chuyển đổi miễn phí.
Tín dụng có hết hạn không?
Không. Số tín dụng đã mua sẽ nằm trong tài khoản cho đến khi bạn sử dụng. Chúng chỉ được tiêu thụ sau khi bạn đã dùng hết 10 lượt chuyển đổi miễn phí hàng tháng.
Làm thế nào để có thêm lượt chuyển đổi trong tháng?
Mua gói ảnh trả trước từ cổng thông tin khách hàng — mọi số lượng, theo từng lô 50 ảnh. Bạn luôn nhìn thấy chính xác số lượng ảnh bạn sẽ nhận được: 50 ảnh 2,50€, 500 ảnh 20€, 2.500 ảnh 75€, 10.000 ảnh 200€, 50.000 ảnh 500€. Tín dụng được tự động thêm vào tài khoản của bạn trong vài giây sau khi thanh toán — không có khóa cấp phép, không cần nhập gì cả.
Chuyện gì xảy ra nếu tôi mất khóa API?
Các khóa được lưu trữ băm, nên không thể khôi phục được. Hãy thu hồi khóa bị mất trong cổng thông tin và tạo một khóa mới — nó sẽ có hiệu lực ngay lập tức.
Những định dạng hình ảnh nào được hỗ trợ?
PNG, JPEG, BMP và WebP, lên tới 20 MB và 50 megapixel, tối thiểu 64×64 pixel. Các hình ảnh có cạnh dài nhất lớn hơn 1500 px sẽ được điều chỉnh kích thước trước khi chuyển đổi, giống hệt như trên trang web miễn phí.
Chọn Phiên bản Của Bạn
Cùng một công cụ mạnh mẽ - chọn định dạng phù hợp với quy trình làm việc của bạn.
Công cụ Trực tuyến
Miễn phí
Chuyển đổi hình ảnh ngay trong trình duyệt của bạn. Không cần cài đặt, không cần tài khoản.
Mở công cụỨng dụng Máy tính bàn
Miễn phí & mã nguồn mở
Trình chuyển đổi đầy đủ ngay trên máy tính của bạn, cho Windows & Linux.
Tải xuống miễn phíỨng dụng desktop Pro
Thanh toán một lần 39€
Giám sát thư mục, chuyển đổi hàng loạt và CLI cho khối lượng công việc lớn.
Mua ProAPI
Gói miễn phí + các gói tín dụng
Một lệnh gọi REST: gửi hình ảnh, nhận lại tệp SVG rõ nét. 10 lượt miễn phí/tháng.
Nhận khóa APISo sánh tất cả các phiên bản & bảng giá →
Đã có tài khoản? Đăng nhập vào cổng thông tin khách hàng →
Sẵn sàng vector hóa ở quy mô lớn?
Tạo tài khoản của bạn, lấy khóa API và thực hiện lệnh gọi đầu tiên của bạn trong vòng chưa tới hai phút.
Nhận khóa API miễn phí