API-dokumentation
Integrér Vectorgram i din applikation. Ét endpoint til at sende, ét til at polle, ét til at hente — jobs er asynkrone af design. Base-URL https://api.vectorgram.ai, autentificeringen er Authorization: Bearer <api_key>. Nøgler ser ud som vectorgram_sk_live_… — præfikset er med vilje stavet ud, så en nøgle, der findes i en gammel .env kan identificeres uden at blive prøvet.
En ny konto får 25 API-konverteringer gratis i 30 dage — fuld kvalitet, intet vandmærke. Derefter kræver API'en en plan, der omfatter den (Pro og derover), og kald tæller på planens månedlige kvote. Der er ingen overage: Når kvoten er brugt, besvares kald med 402 og nulstillingsdatoen. GET /v1/account rapporterer begge kvoter og, hvad der er tilbage af hver af dem.
Hurtig start
1 — Hent din API-nøgle
Indlæser…
2 — Send et billede
curl -X POST https://api.vectorgram.ai/v1/vectorize \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Idempotency-Key: 8f1b0c2e-0a1d-4f77-9c3a-2b6e5d4c1a90" \
-F "file=@image.png" \
-F "image_type=clipart" \
-F "detail=high" \
-F "gradients=smooth" \
-F "smoothing=strong" \
-F "retention=24h"Svaret er 202 Accepted med et job i køen — konverteringen er ikke sket endnu. Sender du samme anmodning to gange med samme Idempotency-Key returneres det første job i stedet for, at der oprettes et nyt; ændrer du filen eller indstillingerne under en allerede brugt nøgle, er svaret en 409.
3 — Poll, eller modtag en webhook
GET /v1/jobs/job_abc123
{
"id": "job_abc123",
"status": "queued",
"progress": 0,
"queue_position": 3,
"mode": "logo",
"retention": "24h",
"megapixels": 2.1,
"created_at": "2026-08-03T10:30:00Z"
}status går gennem queued → processing → completed | failed | canceled | expired. Mens jobbet ligger i køen, får du en rigtig queue_position og ikke en opdigtet nedtælling; progress under behandlingen beregnes ud fra størrelsesskønnet og stopper ved 95%, indtil filen findes. Store billeder kan tage minutter — poll med et fornuftigt interval, eller endnu bedre: registrér en webhook.
4 — Hent
{
"id": "job_abc123",
"status": "completed",
"progress": 100,
"download_url": "https://api.vectorgram.ai/v1/jobs/job_abc123/download",
"completed_at": "2026-08-03T10:30:04Z",
"expires_at": "2026-08-04T10:30:04Z"
}download_url vises først, når der findes et resultat, kræver samme bearer-token og sender filen som en vedhæftning. Med retention=none slettes filen, mens den sendes — hent den én gang.
Konverteringsparametre
Alle felter er multipart form data på POST /v1/vectorize. De fire markerede manuell er sporingsindstillingerne: de findes på Pro, Studio, Agency og Enterprise. På Free og Lite accepteres de og erstattes derefter med standardværdierne i stedet for at blive afvist, så en klient, der altid sender dem, stadig konvertérer — den får bare det automatiske resultat.
Påkrævet. Billedet, der skal konvertéres. Genkendes ud fra dets bytes, ikke dets filnavn.
Hvilken slags billede det er. Standard auto, som lader motoren klassificere det.
Valgfrit, og svg er den eneste værdi. SVG er, hvad motoren skriver, og intet konvertérer det til noget andet — EPS, PNG, PDF, DXF og AI afvises med 400 unsupported_output_format i stedet for at blive sat i kø til at fejle.
Hvor længe resultatet gemmes. Standard 24 t; none sletter det efter den første hentning. Begrænses til dit plans maksimum i stedet for at blive afvist — Free kan ikke gemme et resultat i 10 dage ved bare at bede om det.
Din egen grupperingsnøgle, som gentages på jobbet og kan bruges som filter. Send én anmodning pr. billede. Batchkonvertering starter ved Pro (30 filer, 50 på Studio, 100 på Agency); under den rummer gruppen én fil, og en anden besvares med 400 batch_limit_exceeded.
Navnet på den mappe, batchens filer ligger i på dashboardet. Valgfrit og kræver batch_id (ellers 400 invalid_folder_name); begrænset som batch_id — 128 tegn, ingen kontroltegn. Den første fil, der slippes igennem, giver mappen sit navn; senere filer i batchet omdøber den ikke. Udelades det, får mappen sin oprettelsesdato som navn.
Hvor meget af billedet overlever, når regioner lægges sammen. Standard high — det løseste trin, motoren har haft siden 1.3.0. En skyderværdi fra 1 til 100 accepteres og grupperes.
Håndtering af farveovergange. Standard smooth; stepped og auto giver motorens flade fyld.
Afrunding af hjørner. Standard strong — ægte hjørner forbliver skarpe, og kun det, sporingen ved et uheld afrundede, kommer tilbage. En skyderværdi fra 0 til 100 accepteres og grupperes.
Hvad motoren tegner. Standard fill — hver form er et fyldt omrids. centerline tegner én åben streg langs midten af hver linje (fill="none", med en stregfarve og stregbredde), hvilket er det, plottere, lasergravører, CNC-fræsere og vinylskærere følger: én passage pr. linje i stedet for to omrids omkring den. Dele, der er for tykke til at være en linje, forbliver fyldte former. detail, gradients og smoothing gælder ikke og ignoreres. En ukendt værdi besvares med 400.
Sammenføjning af samlinger — på alle planer. Standard true — hvert fyld løber 0,75 px under sin nabo, så der ikke vises en tynd lys linje mellem to farver. false giver den eksakte opdeling, hvor former mødes kant til kant uden overlap (til redigering af geometrien). Ingen form flyttes i nogen af tilfældene. Ignoreres med centerline.
Endpoints
Den genererede reference — hvert felt, hver svarform — er Swagger-UI'en, som tjenesten serverer på /docs/swagger, med OpenAPI-dokumentet på /v3/api-docs.
Webhooks
Fordi jobs kører asynkront — minutter for store filer — så abonnér på webhooks i stedet for at polle. Registrér et endpoint med POST /v1/webhooks; signeringshemmeligheden returneres én gang, ved oprettelsen, og aldrig igen.
POST https://your-app.example/hooks/vectorgram
X-Vectorgram-Event: processing.completed
X-Vectorgram-Signature: sha256=<hmac of the raw body, hex>
{
"id": "evt_9f2c…",
"event": "processing.completed",
"created_at": "2026-08-03T10:30:04Z",
"data": { "job_id": "job_abc123", "status": "completed" }
}Verificér signaturen ved at beregne HMAC-SHA256 over den rå anmodningstekst med dit endpoints hemmelighed og sammenligne i konstant tid — behandl en mismatch som en uautentiseret anmodning. Levering sker mindst én gang: et svar uden for 2xx-området forsøges igen tre gange med eksponentiel backoff, så sørg for, at din handler er idempotent på id. Endpoints skal pege på en offentlig adresse; det kontrolleres igen ved levering, ikke kun ved registrering.
Fejl
Fejl er JSON: { "error": { "code": "…", "message": "…", "details": { … } } }. Læs code, ikke beskeden — beskeder formuleres om.