Démarrage rapide
En trois étapes, vous convertirez des images en SVG depuis votre terminal, vos scripts ou votre application.
1 · Créez votre compte
Inscrivez-vous sur le portail client avec votre adresse e-mail et un mot de passe (plus de 10 caractères). Aucune carte bancaire requise.
2 · Créez une clé API
Dans le portail, créez une clé. Elle ne sera affichée qu'une seule fois — conservez-la précieusement. Les clés ressemblent à ptp_live_… et peuvent être révoquées à tout moment.
3 · Appelez /v1/convert
Envoyez votre image en multipart/form-data avec votre clé dans l'en-tête Authorization. Le SVG vous sera retourné dans le corps de la réponse.
Votre première conversion
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
Référence interactive : pixel-to-path.com/v1/docs (OpenAPI/Swagger).
Authentification
Chaque requête est authentifiée avec un jeton Bearer dans l'en-tête Authorization :
Authorization: Bearer ptp_live_0123abc…
- Les clés sont secrètes : elles sont stockées hachées côté serveur et ne sont affichées qu'une seule fois à la création. Clé perdue ? Révoquez-la et créez-en une nouvelle.
- Un compte, plusieurs clés : créez jusqu'à 5 clés actives pour séparer vos projets. Votre quota gratuit mensuel est calculé par compte, non par clé.
- Révocation instantanée : une clé révoquée cesse immédiatement de fonctionner, que ce soit depuis le portail ou via la réponse de l'API d'un compte banni.
POST /v1/convert
Téléversement et conversion en un seul appel sans état. Un appel réussi coûte au maximum 1 crédit — les appels échoués, invalides ou limités par le taux de requêtes ne coûtent rien.
Requête (multipart/form-data)
| Champ | Type | Défaut | Description |
|---|---|---|---|
file |
file | — | L'image à convertir. PNG, JPEG, BMP ou WebP · max 20 Mo · max 50 Mpx · min 64×64 px. |
colormode |
string | color |
<code>color</code> utilise le moteur VTracer, <code>binary</code> utilise Potrace (noir & blanc). |
mode |
string | spline |
Uniquement pour Color (VTracer) — ignoré en mode binaire. spline | polygon | none |
hierarchical |
string | stacked |
Uniquement pour Color (VTracer) — ignoré en mode binaire. stacked | cutout |
filter_speckle |
int | 4 |
Uniquement pour Color (VTracer) — ignoré en mode binaire. 0–16 — supprime les petites taches de bruit. |
color_precision |
int | 6 |
Uniquement pour Color (VTracer) — ignoré en mode binaire. 1–8 — nombre de bits significatifs par canal de couleur. |
layer_difference |
int | 16 |
Uniquement pour Color (VTracer) — ignoré en mode binaire. 0–64 — distance entre les couches de couleur. |
corner_threshold |
int | 60 |
0–180 — angle de détection des coins (deux moteurs). |
length_threshold |
float | 4.0 |
3.5–10 — longueur minimale de segment (deux moteurs). |
splice_threshold |
int | 45 |
0–180 — angle de découpage des tracés (deux moteurs). |
path_precision |
int | 3 |
0–8 — décimales dans les coordonnées des tracés. |
invert |
bool | false |
Uniquement pour Binary (Potrace) — ignoré en mode couleur. Tracer les zones claires au lieu des zones sombres. |
turdsize |
int | 2 |
Uniquement pour Binary (Potrace) — ignoré en mode couleur. 0–20 — supprime les petites taches jusqu’à cette taille. |
alphamax |
float | 1.0 |
Uniquement pour Binary (Potrace) — ignoré en mode couleur. 0–1.334 — seuil de lissage des coins. |
opttolerance |
float | 0.2 |
Uniquement pour Binary (Potrace) — ignoré en mode couleur. 0–10 — tolérance d’optimisation des courbes. |
Deux moteurs, choisis par "colormode"
L'API exécute exactement les mêmes moteurs que le convertisseur en ligne gratuit et l'application de bureau :
binary — Potrace
Traçage en noir & blanc pour les dessins au trait, les scans, les croquis et les logos. La partie sombre de l'image (niveaux de gris < 50 %) est tracée sur un fond blanc. Affinez le résultat avec turdsize (suppression du bruit), alphamax (lissage des angles) et opttolerance (optimisation des tracés).
color — VTracer
Vectorisation en couleurs superposées pour les illustrations, les dessins animés et les photos. Contrôlez le niveau de détail avec filter_speckle, color_precision, layer_difference et l'ajustement des courbes avec mode (spline, polygon, none).
Les images sont prétraitées exactement comme sur le site web : le côté le plus long est redimensionné à 1500 px avant la conversion, et l'API renvoie le type d'image détecté (line_art, logo, photo ou illustration) dans l'en-tête X-Detected-Type.
Réponse
En cas de succès : 200 OK avec image/svg+xml — le corps de la réponse est le fichier SVG lui-même. En-têtes informatifs :
| En-tête | Description |
|---|---|
X-Credits-Remaining | Crédits payés restants sur le compte, après le débit de cet appel. |
X-Free-Remaining | Conversions gratuites restantes ce mois-ci. |
X-Detected-Type | Type d'image détecté (info) : line_art, logo, photo ou illustration. |
X-Processing-Time | Temps de traitement sur le serveur en secondes. |
GET /v1/me
Statut du compte pour la clé utilisée lors de l'appel. Gratuit — n'est jamais décompté de votre quota, jamais débité.
Exemple de réponse
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 }
}
Erreurs
Chaque erreur renvoie une enveloppe JSON cohérente. Les appels échoués ne consomment jamais de crédits.
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 | Code | Quand |
|---|---|---|
| 401 | invalid_api_key | Clé API manquante, mal formée, inconnue ou révoquée. |
| 402 | quota_exceeded | Quota gratuit mensuel épuisé et aucun crédit restant. |
| 403 | account_banned | Le compte est banni — toutes ses clés sont refusées. |
| 403 | ip_blocked | L'adresse IP de l'appelant est sur liste noire. |
| 413 | file_too_large | Fichier supérieur à 20 Mo. |
| 422 | invalid_image / image_too_small / invalid_params | Image invalide, image trop petite ou valeur de paramètre invalide. |
| 429 | rate_limited | Limite de requêtes par clé dépassée (voir ci-dessous). Inclut un en-tête Retry-After. |
| 500 | internal_error | Échec de la conversion côté serveur — aucun crédit n'est facturé. |
Limites de requêtes
Les limites s'appliquent par clé API, et non par adresse IP, de sorte qu'un bureau partagé ou un agent CI ne sera jamais pénalisé par le trafic de quelqu'un d'autre.
| Limite | Valeur |
|---|---|
| Requêtes par minute, par clé | 60 |
| Requêtes par jour, par clé | 2 000 |
| Conversions simultanées, par clé | 2 (les appels supplémentaires attendent, puis 429) |
| Taille de fichier max / résolution | 20 Mo / 50 Mpx |
Tarification
Chaque nouveau compte bénéficie de 10 conversions gratuites chaque mois, sans carte bancaire. Vous en avez besoin de plus ? Achetez des images prépayées — n'importe quelle quantité (par lots de 50), avec des réductions sur le volume. Elles n'expirent jamais et se cumulent avec votre quota mensuel gratuit (les conversions gratuites sont consommées en premier).
Gratuit
0 €/ mois
- 10 conversions / mois
- Les deux moteurs (Potrace + VTracer)
- Jusqu'à 5 clés API
Images prépayées
0,050 €/ image
| Images | 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 |
- 1 image achetée = 1 conversion (les crédits n'expirent jamais)
- N'expire jamais, se cumule avec le niveau gratuit
- Toute quantité : 0,040 €/image à partir de 500, jusqu'à 0,010 €/image
Crédit automatique : votre solde est mis à jour en quelques secondes après le paiement, via le webhook de paiement. Les remboursements déduisent les crédits achetés, dans la limite du solde actuel. Paiement sécurisé via Lemon Squeezy (TVA gérée automatiquement).
Exemples de code
Copiez-collez et adaptez. L'API utilise du multipart/form-data standard, donc n'importe quel client HTTP fonctionne.
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");
Questions fréquemment posées
Qu'est-ce qui compte comme une conversion ?
Un appel POST /v1/convert réussi qui renvoie un SVG. Les appels échoués (image invalide, mauvais paramètres, limite de requêtes atteinte, erreur de serveur) et les appels GET /v1/me ne sont jamais facturés.
Comment le quota mensuel gratuit est-il comptabilisé ?
Par compte, sur le mois civil UTC — il est réinitialisé le 1er du mois à 00:00 UTC. La création de plusieurs clés API ne multiplie pas le quota gratuit : toutes les clés d'un même compte partagent les mêmes 10 conversions gratuites.
Les crédits expirent-ils ?
Non. Les crédits achetés restent sur votre compte jusqu'à ce que vous les utilisiez. Ils ne sont consommés qu'une fois vos 10 conversions gratuites mensuelles épuisées.
Comment obtenir plus de conversions dans le mois ?
Achetez des images prépayées depuis le portail client — n'importe quelle quantité, par lots de 50. Vous voyez toujours exactement combien d'images vous obtenez : 50 images à 2,50 €, 500 images à 20 €, 2 500 images à 75 €, 10 000 images à 200 €, 50 000 images à 500 €. Les crédits sont ajoutés automatiquement à votre compte en quelques secondes après le paiement — pas de clé de licence, rien à saisir.
Que se passe-t-il si je perds ma clé API ?
Les clés sont stockées hachées et ne peuvent donc pas être récupérées. Révoquez la clé perdue dans le portail et créez-en une nouvelle — elle est active immédiatement.
Quels formats d'image sont pris en charge ?
PNG, JPEG, BMP et WebP, jusqu'à 20 Mo et 50 mégapixels, et au moins 64×64 pixels. Les images dont le côté le plus long dépasse 1500 px sont redimensionnées avant conversion, exactement comme sur le site gratuit.
Choisissez votre version
Le même moteur puissant - choisissez le format qui correspond à votre flux de travail.
Outil en ligne
Gratuit
Convertissez vos images dans le navigateur. Rien à installer, aucun compte.
Ouvrir l'outilApp de bureau
Gratuit & open source
Le convertisseur complet sur votre machine, pour Windows & Linux.
Télécharger gratuitementApp de bureau Pro
39 € unique
Hot folder, conversion par lots et CLI pour les gros volumes.
Obtenir ProAPI
Palier gratuit + packs
Un appel REST : envoyez une image, récupérez un SVG propre. 10 gratuits/mois.
Obtenir une clé APIComparer les versions & tarifs →
Vous avez déjà un compte ? Accéder au portail client →
Prêt à vectoriser à grande échelle ?
Créez votre compte, obtenez une clé et effectuez votre premier appel en moins de deux minutes.
Obtenir une clé API gratuite