API

API PixelToPath

Vectorisez vos images par programmation avec un seul appel REST. Envoyez un fichier PNG, JPG, BMP ou WebP, et récupérez un SVG propre, prêt pour la production. Les dessins en noir & blanc sont tracés par Potrace, les images en couleurs par VTracer — les mêmes moteurs que le convertisseur en ligne gratuit.

10 conversions gratuites chaque mois · Aucune carte bancaire requise

10 conversions gratuites / mois • 1 appel REST • Moteurs Potrace + VTracer • Les crédits n'expirent jamais

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-RemainingCrédits payés restants sur le compte, après le débit de cet appel.
X-Free-RemainingConversions gratuites restantes ce mois-ci.
X-Detected-TypeType d'image détecté (info) : line_art, logo, photo ou illustration.
X-Processing-TimeTemps 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
401invalid_api_keyClé API manquante, mal formée, inconnue ou révoquée.
402quota_exceededQuota gratuit mensuel épuisé et aucun crédit restant.
403account_bannedLe compte est banni — toutes ses clés sont refusées.
403ip_blockedL'adresse IP de l'appelant est sur liste noire.
413file_too_largeFichier supérieur à 20 Mo.
422invalid_image / image_too_small / invalid_paramsImage invalide, image trop petite ou valeur de paramètre invalide.
429rate_limitedLimite de requêtes par clé dépassée (voir ci-dessous). Inclut un en-tête Retry-After.
500internal_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ésolution20 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
Créer un compte

Images prépayées

0,050 €/ image

Tarification au volume — plus vous achetez d'images, moins chacune vous coûte cher
Images50–450500–2 4502 500–9 95010 000–49 95050 000+
€/image0.0500.0400.0300.0200.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
Acheter des images

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'outil
💻

App de bureau

Gratuit & open source

Le convertisseur complet sur votre machine, pour Windows & Linux.

Télécharger gratuitement
⌨️

App de bureau Pro

39 € unique

Hot folder, conversion par lots et CLI pour les gros volumes.

Obtenir Pro
🔌

API

Palier gratuit + packs

Un appel REST : envoyez une image, récupérez un SVG propre. 10 gratuits/mois.

Obtenir une clé API

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