Reference — API

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

Dine API-nøgler

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.

filePNG, JPEG, WebP, AVIF eller BMP, ≤ 50 MB

Påkrævet. Billedet, der skal konvertéres. Genkendes ud fra dets bytes, ikke dets filnavn.

image_typeauto · clipart · photo · scan · blueprint

Hvilken slags billede det er. Standard auto, som lader motoren klassificere det.

output_formatsvg

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.

retentionnone · 24h · 3d · 7d · 10d

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.

batch_idvilkårlig streng

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.

folder_namevilkårlig streng

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.

detailmanuelllow · medium · high

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.

gradientsmanuellauto · smooth · stepped

Håndtering af farveovergange. Standard smooth; stepped og auto giver motorens flade fyld.

smoothingmanuelloff · light · strong · maximum

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.

trace_stylemanuellfill · centerline

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.

close_seamstrue · false

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

POST/v1/vectorize
GET/v1/jobs
GET/v1/folders
DELETE/v1/folders/{id}
GET/v1/jobs/{id}
GET/v1/jobs/{id}/download
DELETE/v1/jobs/{id}
POST/v1/jobs/{id}/report
GET/v1/account
GET/v1/keys
POST/v1/keys
DELETE/v1/keys/{id}
GET/v1/webhooks
POST/v1/webhooks
DELETE/v1/webhooks/{id}

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.

processing.started
processing.completed
processing.failed
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.

400missing_file
400unreadable_file
400empty_file
400batch_limit_exceeded
400invalid_batch_id
400invalid_folder_name
401unauthorized
402quota_exhausted
402megapixels_exceeded
402high_detail_not_included
403forbidden
404not_found
409not_ready
409idempotency_key_reuse
409request_in_progress
410result_expired
413file_too_large
415unsupported_format
429too_many_active_jobs
429daily_fuse_tripped
503queue_full
503storage_full

Cookies

Vi bruger Google Analytics-cookies til at se, hvilke sider der besøges, og hvor besøgende går i stå — ingen reklamer, ingen profilering, intet sælges. Afvis, og siden virker præcis ens. Detaljer i privatlivspolitikken.