API-dokumentation
Integrera Vectorgram i din applikation. En endpoint att skicka till, en att polla, en att ladda ner från — jobben är asynkrona av design. Bas-URL https://api.vectorgram.ai, autentiseringen är Authorization: Bearer <api_key>. Nycklar ser ut som vectorgram_sk_live_… — prefixet är medvetet utskrivet i klartext, så att en nyckel som hittas i en gammal .env kan identifieras utan att behöva provas.
Ett nytt konto får 25 API-konverteringar gratis i 30 dagar — full kvalitet, ingen vattenstämpel. Därefter kräver API:et en plan som omfattar det (Pro och högre), och anropen drar från planens månadskvot. Det finns ingen överförbrukning: när kvoten är slut svarar anropen med 402 med återställningsdatumet. GET /v1/account rapporterar båda kvoterna och hur mycket som återstår av var och en.
Snabbstart
1 — Skaffa din API-nyckel
Laddar…
2 — Skicka en bild
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 är 202 Accepted med ett jobb i kön — konverteringen har inte hänt ännu. Skickar du samma begäran två gånger med samma Idempotency-Key returneras det första jobbet i stället för att ett andra skapas; byter du fil eller inställningar under en nyckel som redan använts blir svaret en 409.
3 — Polla, eller ta 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 igenom queued → processing → completed | failed | canceled | expired. Medan jobbet står i kön får du en verklig queue_position i stället för en påhittad nedräkning; progress under bearbetning interpoleras från storleksestimatet och stannar på 95 % tills filen finns. Stora bilder kan ta minuter — polla med ett rimligt intervall eller, bättre, registrera en webhook.
4 — Ladda ner
{
"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 visas bara när ett resultat finns, kräver samma bearer-token och strömmar filen som en bilaga. Med retention=none raderas filen i samband med att den serveras — ladda ner den en gång.
Konverteringsparametrar
Alla fält är multipart-formulärdata på POST /v1/vectorize. De fyra markerade manuell är spårningskontrollerna: tillgängliga på Pro, Studio, Agency och Enterprise. På Free och Lite accepteras de och ersätts sedan med standardvärdena i stället för att avvisas, så en klient som alltid skickar dem konverterar ändå — den får bara det automatiska resultatet.
Krävs. Bilden som ska konverteras. Detekteras från dess byte, inte från filnamnet.
Vilken sorts bild det är. Standard auto, som låter motorn klassificera den.
Valfritt, och svg är enda värdet. SVG är det motorn skriver, och inget konverterar det till något annat — EPS, PNG, PDF, DXF och AI avvisas med 400 unsupported_output_format i stället för att läggas i kön för att misslyckas.
Hur länge resultatet sparas. Standard 24h; none raderar det efter första nedladdningen. Begränsas till din plans maxvärde i stället för att avvisas — Free kan inte spara ett resultat i 10 dagar bara genom att be om det.
Din egen grupperingsnyckel, returneras med jobbet och går att filtrera på. Skicka en begäran per bild. Batchkonvertering startar på Pro (30 filer, 50 på Studio, 100 på Agency); under det håller gruppen en fil och en andra svarar med 400 batch_limit_exceeded.
Namnet på mappen som batchens filer hamnar i på dashboarden. Valfritt och kräver batch_id (400 invalid_folder_name annars); begränsad som batch_id — 128 tecken, inga kontrolltecken. Den första filen som släpps igenom ger mappen dess namn; senare filer i batchen döper inte om den. Utelämnas det stämplas mappen med sitt skapandedatum.
Hur mycket av bilden som överlever sammanslagningen av regioner. Standard high — motorns lättesta steg sedan 1.3.0. Ett reglagevärde 1–100 accepteras och sorteras in.
Hantering av toningar. Standard smooth; stepped och auto lämnar motorns plana fyllningar.
Avrundning av hörn. Standard strong — riktiga hörn förblir vassa, bara det som spårningen råkade runda av kommer tillbaka. Ett reglagevärde 0–100 accepteras och sorteras in.
Vad motorn ritar. Standard fill — varje form en fylld kontur. centerline ritar ett öppet streck längs mitten av varje linje (fill="none", med en streckfärg och -bredd), vilket är det plottrar, lasrare, CNC-fräsar och vinylskärmaskiner följer: ett varv per linje i stället för två konturer runt den. Partier som är för tjocka för att vara en linje förblir fyllda former. detail, gradients och smoothing tillämpas inte och ignoreras. Ett okänt värde svarar med 400.
Sömslutning, på alla planer. Standard true — varje fyllning går 0,75 px under sin granne, så att ingen tunn ljus linje syns mellan två färger. false ger den exakta partitionen, där former möts kant mot kant utan överlapp (för att redigera geometrin). Ingen form flyttas i något av fallen. Ignoreras med centerline.
Endpoints
Den genererade referensen — varenda fält, varenda svarsform — är Swagger-UI:t som tjänsten serverar på /docs/swagger, med OpenAPI-dokumentet på /v3/api-docs.
Webhooks
Eftersom jobben körs asynkront — minuter för stora filer — prenumerera på webhooks i stället för att polla. Registrera en endpoint med POST /v1/webhooks; signeringshemligheten returneras en gång, vid skapandet, och 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" }
}Verifiera signaturen genom att beräkna HMAC-SHA256 av den råa begärandekroppen med din endpoints hemlighet och jämföra i konstant tid — behandla en avvikelse som en oautentiserad begäran. Leveransen sker minst en gång: ett icke-2xx-svar försöks igen tre gånger med exponentiell backoff, så gör din hanterare idempotent på id. Endpoints måste peka på en publik adress; det kontrolleras igen vid leveranstillfället, inte bara vid registreringen.
Fel
Fel returneras som JSON: { "error": { "code": "…", "message": "…", "details": { … } } }. Läs code, inte meddelandet — meddelandena formuleras om.