Referens — API

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

Dina API-nycklar

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.

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

Krävs. Bilden som ska konverteras. Detekteras från dess byte, inte från filnamnet.

image_typeauto · clipart · photo · scan · blueprint

Vilken sorts bild det är. Standard auto, som låter motorn klassificera den.

output_formatsvg

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.

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

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.

batch_idvalfri sträng

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.

folder_namevalfri sträng

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.

detailmanuelllow · medium · high

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.

gradientsmanuellauto · smooth · stepped

Hantering av toningar. Standard smooth; stepped och auto lämnar motorns plana fyllningar.

smoothingmanuelloff · light · strong · maximum

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.

trace_stylemanuellfill · centerline

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.

close_seamstrue · false

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

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 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.

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" }
}

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.

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 använder Google Analytics-cookies för att se vilka sidor som besöks och var besökare fastnar — ingen reklam, ingen profilering, inget säljs. Neka, och webbplatsen fungerar precis likadant. Detaljer finns i integritetspolicyn.